@promptctl/rich-js 0.1.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 (318) hide show
  1. package/README.md +418 -0
  2. package/dist/core/box.d.ts +91 -0
  3. package/dist/core/box.d.ts.map +1 -0
  4. package/dist/core/box.js +534 -0
  5. package/dist/core/box.js.map +1 -0
  6. package/dist/core/cells.d.ts +24 -0
  7. package/dist/core/cells.d.ts.map +1 -0
  8. package/dist/core/cells.js +114 -0
  9. package/dist/core/cells.js.map +1 -0
  10. package/dist/core/color.d.ts +158 -0
  11. package/dist/core/color.d.ts.map +1 -0
  12. package/dist/core/color.js +825 -0
  13. package/dist/core/color.js.map +1 -0
  14. package/dist/core/console.d.ts +100 -0
  15. package/dist/core/console.d.ts.map +1 -0
  16. package/dist/core/console.js +353 -0
  17. package/dist/core/console.js.map +1 -0
  18. package/dist/core/emoji.d.ts +25 -0
  19. package/dist/core/emoji.d.ts.map +1 -0
  20. package/dist/core/emoji.js +392 -0
  21. package/dist/core/emoji.js.map +1 -0
  22. package/dist/core/highlighter.d.ts +33 -0
  23. package/dist/core/highlighter.d.ts.map +1 -0
  24. package/dist/core/highlighter.js +103 -0
  25. package/dist/core/highlighter.js.map +1 -0
  26. package/dist/core/markup.d.ts +69 -0
  27. package/dist/core/markup.d.ts.map +1 -0
  28. package/dist/core/markup.js +401 -0
  29. package/dist/core/markup.js.map +1 -0
  30. package/dist/core/measure.d.ts +17 -0
  31. package/dist/core/measure.d.ts.map +1 -0
  32. package/dist/core/measure.js +50 -0
  33. package/dist/core/measure.js.map +1 -0
  34. package/dist/core/protocol.d.ts +32 -0
  35. package/dist/core/protocol.d.ts.map +1 -0
  36. package/dist/core/protocol.js +17 -0
  37. package/dist/core/protocol.js.map +1 -0
  38. package/dist/core/render.d.ts +51 -0
  39. package/dist/core/render.d.ts.map +1 -0
  40. package/dist/core/render.js +69 -0
  41. package/dist/core/render.js.map +1 -0
  42. package/dist/core/segment.d.ts +104 -0
  43. package/dist/core/segment.d.ts.map +1 -0
  44. package/dist/core/segment.js +364 -0
  45. package/dist/core/segment.js.map +1 -0
  46. package/dist/core/spinnerData.d.ts +11 -0
  47. package/dist/core/spinnerData.d.ts.map +1 -0
  48. package/dist/core/spinnerData.js +116 -0
  49. package/dist/core/spinnerData.js.map +1 -0
  50. package/dist/core/strip.d.ts +159 -0
  51. package/dist/core/strip.d.ts.map +1 -0
  52. package/dist/core/strip.js +237 -0
  53. package/dist/core/strip.js.map +1 -0
  54. package/dist/core/style.d.ts +115 -0
  55. package/dist/core/style.d.ts.map +1 -0
  56. package/dist/core/style.js +662 -0
  57. package/dist/core/style.js.map +1 -0
  58. package/dist/core/text.d.ts +91 -0
  59. package/dist/core/text.d.ts.map +1 -0
  60. package/dist/core/text.js +610 -0
  61. package/dist/core/text.js.map +1 -0
  62. package/dist/index.d.ts +99 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +72 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/renderables/align.d.ts +17 -0
  67. package/dist/renderables/align.d.ts.map +1 -0
  68. package/dist/renderables/align.js +47 -0
  69. package/dist/renderables/align.js.map +1 -0
  70. package/dist/renderables/columns.d.ts +28 -0
  71. package/dist/renderables/columns.d.ts.map +1 -0
  72. package/dist/renderables/columns.js +92 -0
  73. package/dist/renderables/columns.js.map +1 -0
  74. package/dist/renderables/constrain.d.ts +16 -0
  75. package/dist/renderables/constrain.d.ts.map +1 -0
  76. package/dist/renderables/constrain.js +38 -0
  77. package/dist/renderables/constrain.js.map +1 -0
  78. package/dist/renderables/flexStrip.d.ts +42 -0
  79. package/dist/renderables/flexStrip.d.ts.map +1 -0
  80. package/dist/renderables/flexStrip.js +201 -0
  81. package/dist/renderables/flexStrip.js.map +1 -0
  82. package/dist/renderables/group.d.ts +12 -0
  83. package/dist/renderables/group.d.ts.map +1 -0
  84. package/dist/renderables/group.js +16 -0
  85. package/dist/renderables/group.js.map +1 -0
  86. package/dist/renderables/json.d.ts +23 -0
  87. package/dist/renderables/json.d.ts.map +1 -0
  88. package/dist/renderables/json.js +49 -0
  89. package/dist/renderables/json.js.map +1 -0
  90. package/dist/renderables/layout.d.ts +37 -0
  91. package/dist/renderables/layout.d.ts.map +1 -0
  92. package/dist/renderables/layout.js +151 -0
  93. package/dist/renderables/layout.js.map +1 -0
  94. package/dist/renderables/live.d.ts +48 -0
  95. package/dist/renderables/live.d.ts.map +1 -0
  96. package/dist/renderables/live.js +131 -0
  97. package/dist/renderables/live.js.map +1 -0
  98. package/dist/renderables/markdown.d.ts +25 -0
  99. package/dist/renderables/markdown.d.ts.map +1 -0
  100. package/dist/renderables/markdown.js +190 -0
  101. package/dist/renderables/markdown.js.map +1 -0
  102. package/dist/renderables/padding.d.ts +26 -0
  103. package/dist/renderables/padding.d.ts.map +1 -0
  104. package/dist/renderables/padding.js +92 -0
  105. package/dist/renderables/padding.js.map +1 -0
  106. package/dist/renderables/panel.d.ts +42 -0
  107. package/dist/renderables/panel.d.ts.map +1 -0
  108. package/dist/renderables/panel.js +202 -0
  109. package/dist/renderables/panel.js.map +1 -0
  110. package/dist/renderables/pretty.d.ts +29 -0
  111. package/dist/renderables/pretty.d.ts.map +1 -0
  112. package/dist/renderables/pretty.js +141 -0
  113. package/dist/renderables/pretty.js.map +1 -0
  114. package/dist/renderables/progress.d.ts +91 -0
  115. package/dist/renderables/progress.d.ts.map +1 -0
  116. package/dist/renderables/progress.js +234 -0
  117. package/dist/renderables/progress.js.map +1 -0
  118. package/dist/renderables/progressBar.d.ts +32 -0
  119. package/dist/renderables/progressBar.d.ts.map +1 -0
  120. package/dist/renderables/progressBar.js +59 -0
  121. package/dist/renderables/progressBar.js.map +1 -0
  122. package/dist/renderables/prompt.d.ts +25 -0
  123. package/dist/renderables/prompt.d.ts.map +1 -0
  124. package/dist/renderables/prompt.js +109 -0
  125. package/dist/renderables/prompt.js.map +1 -0
  126. package/dist/renderables/rule.d.ts +25 -0
  127. package/dist/renderables/rule.d.ts.map +1 -0
  128. package/dist/renderables/rule.js +96 -0
  129. package/dist/renderables/rule.js.map +1 -0
  130. package/dist/renderables/spinner.d.ts +30 -0
  131. package/dist/renderables/spinner.d.ts.map +1 -0
  132. package/dist/renderables/spinner.js +70 -0
  133. package/dist/renderables/spinner.js.map +1 -0
  134. package/dist/renderables/status.d.ts +24 -0
  135. package/dist/renderables/status.d.ts.map +1 -0
  136. package/dist/renderables/status.js +67 -0
  137. package/dist/renderables/status.js.map +1 -0
  138. package/dist/renderables/syntax.d.ts +36 -0
  139. package/dist/renderables/syntax.d.ts.map +1 -0
  140. package/dist/renderables/syntax.js +115 -0
  141. package/dist/renderables/syntax.js.map +1 -0
  142. package/dist/renderables/table.d.ts +109 -0
  143. package/dist/renderables/table.d.ts.map +1 -0
  144. package/dist/renderables/table.js +434 -0
  145. package/dist/renderables/table.js.map +1 -0
  146. package/dist/renderables/traceback.d.ts +26 -0
  147. package/dist/renderables/traceback.d.ts.map +1 -0
  148. package/dist/renderables/traceback.js +108 -0
  149. package/dist/renderables/traceback.js.map +1 -0
  150. package/dist/renderables/tree.d.ts +30 -0
  151. package/dist/renderables/tree.d.ts.map +1 -0
  152. package/dist/renderables/tree.js +107 -0
  153. package/dist/renderables/tree.js.map +1 -0
  154. package/dist/template-bindings/index.d.ts +61 -0
  155. package/dist/template-bindings/index.d.ts.map +1 -0
  156. package/dist/template-bindings/index.js +70 -0
  157. package/dist/template-bindings/index.js.map +1 -0
  158. package/dist/template-bindings/style-funcs.d.ts +30 -0
  159. package/dist/template-bindings/style-funcs.d.ts.map +1 -0
  160. package/dist/template-bindings/style-funcs.js +172 -0
  161. package/dist/template-bindings/style-funcs.js.map +1 -0
  162. package/dist/themes/buildPalette.d.ts +31 -0
  163. package/dist/themes/buildPalette.d.ts.map +1 -0
  164. package/dist/themes/buildPalette.js +43 -0
  165. package/dist/themes/buildPalette.js.map +1 -0
  166. package/dist/themes/colorMath.d.ts +23 -0
  167. package/dist/themes/colorMath.d.ts.map +1 -0
  168. package/dist/themes/colorMath.js +99 -0
  169. package/dist/themes/colorMath.js.map +1 -0
  170. package/dist/themes/data/atom-one-dark.d.ts +4 -0
  171. package/dist/themes/data/atom-one-dark.d.ts.map +1 -0
  172. package/dist/themes/data/atom-one-dark.js +159 -0
  173. package/dist/themes/data/atom-one-dark.js.map +1 -0
  174. package/dist/themes/data/atom-one-light.d.ts +4 -0
  175. package/dist/themes/data/atom-one-light.d.ts.map +1 -0
  176. package/dist/themes/data/atom-one-light.js +159 -0
  177. package/dist/themes/data/atom-one-light.js.map +1 -0
  178. package/dist/themes/data/catppuccin-latte.d.ts +4 -0
  179. package/dist/themes/data/catppuccin-latte.d.ts.map +1 -0
  180. package/dist/themes/data/catppuccin-latte.js +159 -0
  181. package/dist/themes/data/catppuccin-latte.js.map +1 -0
  182. package/dist/themes/data/catppuccin-mocha.d.ts +4 -0
  183. package/dist/themes/data/catppuccin-mocha.d.ts.map +1 -0
  184. package/dist/themes/data/catppuccin-mocha.js +159 -0
  185. package/dist/themes/data/catppuccin-mocha.js.map +1 -0
  186. package/dist/themes/data/dracula.d.ts +4 -0
  187. package/dist/themes/data/dracula.d.ts.map +1 -0
  188. package/dist/themes/data/dracula.js +159 -0
  189. package/dist/themes/data/dracula.js.map +1 -0
  190. package/dist/themes/data/flexoki.d.ts +4 -0
  191. package/dist/themes/data/flexoki.d.ts.map +1 -0
  192. package/dist/themes/data/flexoki.js +159 -0
  193. package/dist/themes/data/flexoki.js.map +1 -0
  194. package/dist/themes/data/gruvbox.d.ts +4 -0
  195. package/dist/themes/data/gruvbox.d.ts.map +1 -0
  196. package/dist/themes/data/gruvbox.js +159 -0
  197. package/dist/themes/data/gruvbox.js.map +1 -0
  198. package/dist/themes/data/index.d.ts +29 -0
  199. package/dist/themes/data/index.d.ts.map +1 -0
  200. package/dist/themes/data/index.js +48 -0
  201. package/dist/themes/data/index.js.map +1 -0
  202. package/dist/themes/data/monokai.d.ts +4 -0
  203. package/dist/themes/data/monokai.d.ts.map +1 -0
  204. package/dist/themes/data/monokai.js +159 -0
  205. package/dist/themes/data/monokai.js.map +1 -0
  206. package/dist/themes/data/nord.d.ts +4 -0
  207. package/dist/themes/data/nord.d.ts.map +1 -0
  208. package/dist/themes/data/nord.js +159 -0
  209. package/dist/themes/data/nord.js.map +1 -0
  210. package/dist/themes/data/rose-pine-dawn.d.ts +4 -0
  211. package/dist/themes/data/rose-pine-dawn.d.ts.map +1 -0
  212. package/dist/themes/data/rose-pine-dawn.js +159 -0
  213. package/dist/themes/data/rose-pine-dawn.js.map +1 -0
  214. package/dist/themes/data/rose-pine-moon.d.ts +4 -0
  215. package/dist/themes/data/rose-pine-moon.d.ts.map +1 -0
  216. package/dist/themes/data/rose-pine-moon.js +159 -0
  217. package/dist/themes/data/rose-pine-moon.js.map +1 -0
  218. package/dist/themes/data/rose-pine.d.ts +4 -0
  219. package/dist/themes/data/rose-pine.d.ts.map +1 -0
  220. package/dist/themes/data/rose-pine.js +159 -0
  221. package/dist/themes/data/rose-pine.js.map +1 -0
  222. package/dist/themes/data/solarized-dark.d.ts +4 -0
  223. package/dist/themes/data/solarized-dark.d.ts.map +1 -0
  224. package/dist/themes/data/solarized-dark.js +159 -0
  225. package/dist/themes/data/solarized-dark.js.map +1 -0
  226. package/dist/themes/data/solarized-light.d.ts +4 -0
  227. package/dist/themes/data/solarized-light.d.ts.map +1 -0
  228. package/dist/themes/data/solarized-light.js +159 -0
  229. package/dist/themes/data/solarized-light.js.map +1 -0
  230. package/dist/themes/data/textual-ansi.d.ts +4 -0
  231. package/dist/themes/data/textual-ansi.d.ts.map +1 -0
  232. package/dist/themes/data/textual-ansi.js +159 -0
  233. package/dist/themes/data/textual-ansi.js.map +1 -0
  234. package/dist/themes/data/textual-dark.d.ts +4 -0
  235. package/dist/themes/data/textual-dark.d.ts.map +1 -0
  236. package/dist/themes/data/textual-dark.js +159 -0
  237. package/dist/themes/data/textual-dark.js.map +1 -0
  238. package/dist/themes/data/textual-light.d.ts +4 -0
  239. package/dist/themes/data/textual-light.d.ts.map +1 -0
  240. package/dist/themes/data/textual-light.js +159 -0
  241. package/dist/themes/data/textual-light.js.map +1 -0
  242. package/dist/themes/data/tokyo-night.d.ts +4 -0
  243. package/dist/themes/data/tokyo-night.d.ts.map +1 -0
  244. package/dist/themes/data/tokyo-night.js +159 -0
  245. package/dist/themes/data/tokyo-night.js.map +1 -0
  246. package/dist/themes/data/types.d.ts +15 -0
  247. package/dist/themes/data/types.d.ts.map +1 -0
  248. package/dist/themes/data/types.js +2 -0
  249. package/dist/themes/data/types.js.map +1 -0
  250. package/dist/themes/palette.d.ts +20 -0
  251. package/dist/themes/palette.d.ts.map +1 -0
  252. package/dist/themes/palette.js +27 -0
  253. package/dist/themes/palette.js.map +1 -0
  254. package/dist/themes/paletteResolver.d.ts +35 -0
  255. package/dist/themes/paletteResolver.d.ts.map +1 -0
  256. package/dist/themes/paletteResolver.js +88 -0
  257. package/dist/themes/paletteResolver.js.map +1 -0
  258. package/dist/themes/registry.d.ts +17 -0
  259. package/dist/themes/registry.d.ts.map +1 -0
  260. package/dist/themes/registry.js +33 -0
  261. package/dist/themes/registry.js.map +1 -0
  262. package/dist/themes/terminalThemes.d.ts +46 -0
  263. package/dist/themes/terminalThemes.d.ts.map +1 -0
  264. package/dist/themes/terminalThemes.js +268 -0
  265. package/dist/themes/terminalThemes.js.map +1 -0
  266. package/dist/widgets/button.d.ts +47 -0
  267. package/dist/widgets/button.d.ts.map +1 -0
  268. package/dist/widgets/button.js +183 -0
  269. package/dist/widgets/button.js.map +1 -0
  270. package/dist/widgets/checkbox.d.ts +43 -0
  271. package/dist/widgets/checkbox.d.ts.map +1 -0
  272. package/dist/widgets/checkbox.js +144 -0
  273. package/dist/widgets/checkbox.js.map +1 -0
  274. package/dist/widgets/dropdown.d.ts +67 -0
  275. package/dist/widgets/dropdown.d.ts.map +1 -0
  276. package/dist/widgets/dropdown.js +373 -0
  277. package/dist/widgets/dropdown.js.map +1 -0
  278. package/dist/widgets/event-router.d.ts +73 -0
  279. package/dist/widgets/event-router.d.ts.map +1 -0
  280. package/dist/widgets/event-router.js +479 -0
  281. package/dist/widgets/event-router.js.map +1 -0
  282. package/dist/widgets/focus-manager.d.ts +26 -0
  283. package/dist/widgets/focus-manager.d.ts.map +1 -0
  284. package/dist/widgets/focus-manager.js +179 -0
  285. package/dist/widgets/focus-manager.js.map +1 -0
  286. package/dist/widgets/index.d.ts +23 -0
  287. package/dist/widgets/index.d.ts.map +1 -0
  288. package/dist/widgets/index.js +13 -0
  289. package/dist/widgets/index.js.map +1 -0
  290. package/dist/widgets/screen.d.ts +90 -0
  291. package/dist/widgets/screen.d.ts.map +1 -0
  292. package/dist/widgets/screen.js +440 -0
  293. package/dist/widgets/screen.js.map +1 -0
  294. package/dist/widgets/slider.d.ts +55 -0
  295. package/dist/widgets/slider.d.ts.map +1 -0
  296. package/dist/widgets/slider.js +248 -0
  297. package/dist/widgets/slider.js.map +1 -0
  298. package/dist/widgets/static-item.d.ts +41 -0
  299. package/dist/widgets/static-item.d.ts.map +1 -0
  300. package/dist/widgets/static-item.js +62 -0
  301. package/dist/widgets/static-item.js.map +1 -0
  302. package/dist/widgets/text-input.d.ts +50 -0
  303. package/dist/widgets/text-input.d.ts.map +1 -0
  304. package/dist/widgets/text-input.js +242 -0
  305. package/dist/widgets/text-input.js.map +1 -0
  306. package/dist/widgets/toggle.d.ts +46 -0
  307. package/dist/widgets/toggle.d.ts.map +1 -0
  308. package/dist/widgets/toggle.js +169 -0
  309. package/dist/widgets/toggle.js.map +1 -0
  310. package/dist/widgets/types.d.ts +92 -0
  311. package/dist/widgets/types.d.ts.map +1 -0
  312. package/dist/widgets/types.js +13 -0
  313. package/dist/widgets/types.js.map +1 -0
  314. package/dist/widgets/widget-base.d.ts +41 -0
  315. package/dist/widgets/widget-base.d.ts.map +1 -0
  316. package/dist/widgets/widget-base.js +159 -0
  317. package/dist/widgets/widget-base.js.map +1 -0
  318. package/package.json +76 -0
@@ -0,0 +1,35 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,88 @@
1
+ import { darken, alphaBlend, contrastFor } from "./colorMath.js";
2
+ const AUTO_NAME = "auto";
3
+ // Modifier matches the trailing "-darken-N" or "-lighten-N" of a name part.
4
+ // Anchored right (`.+` is greedy) because var names themselves contain
5
+ // hyphens — `"primary-background-darken-3"` must split into the var
6
+ // `primary-background` and the modifier `darken-3`, not `primary` /
7
+ // `background-darken-3`.
8
+ const MODIFIER_RE = /^(.+)-(darken|lighten)-(\d+)$/;
9
+ const ALPHA_RE = /^(\d+(?:\.\d+)?)%$/;
10
+ function parse(spec) {
11
+ const trimmed = spec.trim();
12
+ if (trimmed === "")
13
+ return null;
14
+ const [namePart, alphaPart, ...rest] = trimmed.split(/\s+/);
15
+ if (namePart === undefined || rest.length > 0)
16
+ return null;
17
+ let alpha = null;
18
+ if (alphaPart !== undefined) {
19
+ const m = ALPHA_RE.exec(alphaPart);
20
+ if (m === null)
21
+ return null;
22
+ const pct = parseFloat(m[1]);
23
+ if (pct < 0 || pct > 100)
24
+ return null;
25
+ alpha = pct / 100;
26
+ }
27
+ const mod = MODIFIER_RE.exec(namePart);
28
+ if (mod !== null) {
29
+ const levels = parseInt(mod[3], 10);
30
+ return {
31
+ name: mod[1],
32
+ darkenLevels: mod[2] === "darken" ? levels : -levels,
33
+ alpha,
34
+ };
35
+ }
36
+ return { name: namePart, darkenLevels: 0, alpha };
37
+ }
38
+ /**
39
+ * Resolves Textual-style spec strings against a Palette into ColorRgba values.
40
+ *
41
+ * Spec grammar:
42
+ * spec = name ("-darken-" N | "-lighten-" N)? (" " NN "%")?
43
+ * name = "auto" | <palette var name>
44
+ *
45
+ * Examples (against gruvbox):
46
+ * "primary" → palette["primary"]
47
+ * "primary-background" → palette["primary-background"] (name has hyphens)
48
+ * "primary-darken-3" → darken(palette["primary"], 3)
49
+ * "primary 50%" → alphaBlend(palette["primary"], against, 0.5)
50
+ * "auto 33%" → alphaBlend(contrastFor(against), against, 0.33)
51
+ * "primary-darken-3 50%" → alphaBlend(darken(palette["primary"], 3), against, 0.5)
52
+ *
53
+ * Returns null on: invalid syntax, missing var, or missing required `against`.
54
+ * Pure: same inputs always yield the same output, no internal state.
55
+ */
56
+ export class PaletteResolver {
57
+ palette;
58
+ constructor(palette) {
59
+ this.palette = palette;
60
+ }
61
+ resolve(spec, ctx) {
62
+ const parsed = parse(spec);
63
+ if (parsed === null)
64
+ return null;
65
+ // [LAW:one-type-per-behavior] `auto` is a synthetic var whose "lookup"
66
+ // depends on ctx; named vars look up in the palette. Both produce a
67
+ // ColorRgba | null, so the pipeline downstream is identical.
68
+ const base = this.lookupBase(parsed.name, ctx);
69
+ if (base === null)
70
+ return null;
71
+ // [LAW:dataflow-not-control-flow] darken at level 0 is a no-op (modulo
72
+ // ±1 RGB roundtrip); we always run it and let the data (levels) decide
73
+ // the magnitude. Negative levels lighten — same op, different value.
74
+ const modified = darken(base, parsed.darkenLevels);
75
+ if (parsed.alpha === null)
76
+ return modified;
77
+ if (!ctx?.against)
78
+ return null;
79
+ return alphaBlend(modified, ctx.against, parsed.alpha);
80
+ }
81
+ lookupBase(name, ctx) {
82
+ if (name === AUTO_NAME) {
83
+ return ctx?.against ? contrastFor(ctx.against) : null;
84
+ }
85
+ return this.palette.get(name) ?? null;
86
+ }
87
+ }
88
+ //# sourceMappingURL=paletteResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paletteResolver.js","sourceRoot":"","sources":["../../src/themes/paletteResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Palette } from "./palette.js";
2
+ import { type ThemeName } from "./data/index.js";
3
+ export type { ThemeName };
4
+ /**
5
+ * Returns the static list of available theme names. Pure and synchronous.
6
+ */
7
+ export declare function listThemePalettes(): readonly ThemeName[];
8
+ /**
9
+ * Returns the Palette for `name`, or `null` if unknown.
10
+ *
11
+ * Synchronous: theme data is bundled at compile time via the data barrel,
12
+ * 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.
15
+ */
16
+ export declare function getThemePalette(name: string): Palette | null;
17
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,33 @@
1
+ import { Palette } from "./palette.js";
2
+ import { THEMES } from "./data/index.js";
3
+ const THEME_NAMES = Object.keys(THEMES).sort();
4
+ const cache = new Map();
5
+ /**
6
+ * Returns the static list of available theme names. Pure and synchronous.
7
+ */
8
+ export function listThemePalettes() {
9
+ return THEME_NAMES;
10
+ }
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
+ export function getThemePalette(name) {
20
+ if (!isThemeName(name))
21
+ return null;
22
+ const cached = cache.get(name);
23
+ if (cached !== undefined)
24
+ return cached;
25
+ const data = THEMES[name];
26
+ const palette = Palette.fromHex(data.name, data.dark, data.vars);
27
+ cache.set(name, palette);
28
+ return palette;
29
+ }
30
+ function isThemeName(name) {
31
+ return name in THEMES;
32
+ }
33
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Pre-built `TerminalTheme` constants — default + 18 Textual-derived themes.
3
+ *
4
+ * Lives here (not in `core/color.ts`) because each theme uses `buildPalette` to
5
+ * derive its semantic palette, and `buildPalette` itself depends on
6
+ * `core/color.ts`. Keeping presets out of core breaks the cycle while
7
+ * preserving a single one-way edge `core/color → themes/palette` (used only
8
+ * for the small `INTERNAL_DEFAULT_THEME` substrate inside `getTruecolor`).
9
+ *
10
+ * [LAW:one-way-deps] core/color → themes/palette is the only edge into themes/.
11
+ * The reverse cycle through `TerminalTheme` presets has been broken by
12
+ * extracting them here; nothing in `core/color.ts` imports this file.
13
+ *
14
+ * [LAW:one-source-of-truth] Each preset's background and foreground are stated
15
+ * once and forwarded by `defineTheme` to both the `TerminalTheme` constructor
16
+ * (substrate colours) and the `buildPalette` base (semantic-palette baseline).
17
+ * This forecloses the drift the previous shape allowed, where the two copies
18
+ * could be edited independently.
19
+ *
20
+ * Note on `ansiColors`: every preset theme uses `STANDARD_TABLE` for its
21
+ * `ansiColors` field. Theme identity in this codebase lives in the semantic
22
+ * `palette` (primary, accent, text-*, surface, ...), not in the standard ANSI
23
+ * 16/256 LUT. `ColorSpec.parse("red")` is intentionally canonical across
24
+ * themes — the same way Textual itself models theming.
25
+ */
26
+ import { TerminalTheme } from "../core/color.js";
27
+ export declare const DEFAULT_TERMINAL_THEME: TerminalTheme;
28
+ export declare const MONOKAI: TerminalTheme;
29
+ export declare const SVG_EXPORT_THEME: TerminalTheme;
30
+ export declare const NORD: TerminalTheme;
31
+ export declare const GRUVBOX: TerminalTheme;
32
+ export declare const DRACULA: TerminalTheme;
33
+ export declare const TOKYO_NIGHT: TerminalTheme;
34
+ export declare const FLEXOKI: TerminalTheme;
35
+ export declare const CATPPUCCIN_MOCHA: TerminalTheme;
36
+ export declare const CATPPUCCIN_LATTE: TerminalTheme;
37
+ export declare const CATPPUCCIN_FRAPPE: TerminalTheme;
38
+ export declare const CATPPUCCIN_MACCHIATO: TerminalTheme;
39
+ export declare const SOLARIZED_DARK: TerminalTheme;
40
+ export declare const SOLARIZED_LIGHT: TerminalTheme;
41
+ export declare const ROSE_PINE: TerminalTheme;
42
+ export declare const ROSE_PINE_MOON: TerminalTheme;
43
+ export declare const ROSE_PINE_DAWN: TerminalTheme;
44
+ export declare const ATOM_ONE_DARK: TerminalTheme;
45
+ export declare const ATOM_ONE_LIGHT: TerminalTheme;
46
+ //# sourceMappingURL=terminalThemes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalThemes.d.ts","sourceRoot":"","sources":["../../src/themes/terminalThemes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAGL,aAAa,EACd,MAAM,kBAAkB,CAAC;AAkC1B,eAAO,MAAM,sBAAsB,eAWjC,CAAC;AAEH,eAAO,MAAM,OAAO,eAWlB,CAAC;AAEH,eAAO,MAAM,gBAAgB,eAW3B,CAAC;AAEH,eAAO,MAAM,IAAI,eAWf,CAAC;AAEH,eAAO,MAAM,OAAO,eAWlB,CAAC;AAEH,eAAO,MAAM,OAAO,eAWlB,CAAC;AAEH,eAAO,MAAM,WAAW,eAWtB,CAAC;AAEH,eAAO,MAAM,OAAO,eAWlB,CAAC;AAEH,eAAO,MAAM,gBAAgB,eAW3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,eAW3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,eAW5B,CAAC;AAEH,eAAO,MAAM,oBAAoB,eAW/B,CAAC;AAEH,eAAO,MAAM,cAAc,eAWzB,CAAC;AAEH,eAAO,MAAM,eAAe,eAW1B,CAAC;AAEH,eAAO,MAAM,SAAS,eAWpB,CAAC;AAEH,eAAO,MAAM,cAAc,eAWzB,CAAC;AAEH,eAAO,MAAM,cAAc,eAWzB,CAAC;AAEH,eAAO,MAAM,aAAa,eAWxB,CAAC;AAEH,eAAO,MAAM,cAAc,eAWzB,CAAC"}
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Pre-built `TerminalTheme` constants — default + 18 Textual-derived themes.
3
+ *
4
+ * Lives here (not in `core/color.ts`) because each theme uses `buildPalette` to
5
+ * derive its semantic palette, and `buildPalette` itself depends on
6
+ * `core/color.ts`. Keeping presets out of core breaks the cycle while
7
+ * preserving a single one-way edge `core/color → themes/palette` (used only
8
+ * for the small `INTERNAL_DEFAULT_THEME` substrate inside `getTruecolor`).
9
+ *
10
+ * [LAW:one-way-deps] core/color → themes/palette is the only edge into themes/.
11
+ * The reverse cycle through `TerminalTheme` presets has been broken by
12
+ * extracting them here; nothing in `core/color.ts` imports this file.
13
+ *
14
+ * [LAW:one-source-of-truth] Each preset's background and foreground are stated
15
+ * once and forwarded by `defineTheme` to both the `TerminalTheme` constructor
16
+ * (substrate colours) and the `buildPalette` base (semantic-palette baseline).
17
+ * This forecloses the drift the previous shape allowed, where the two copies
18
+ * could be edited independently.
19
+ *
20
+ * Note on `ansiColors`: every preset theme uses `STANDARD_TABLE` for its
21
+ * `ansiColors` field. Theme identity in this codebase lives in the semantic
22
+ * `palette` (primary, accent, text-*, surface, ...), not in the standard ANSI
23
+ * 16/256 LUT. `ColorSpec.parse("red")` is intentionally canonical across
24
+ * themes — the same way Textual itself models theming.
25
+ */
26
+ import { ColorRgba, STANDARD_TABLE, TerminalTheme, } from "../core/color.js";
27
+ import { buildPalette } from "./buildPalette.js";
28
+ function defineTheme(d) {
29
+ return new TerminalTheme(d.bg, d.fg, STANDARD_TABLE, buildPalette(d.name, d.isDark, {
30
+ primary: d.primary,
31
+ secondary: d.secondary,
32
+ accent: d.accent,
33
+ success: d.success,
34
+ warning: d.warning,
35
+ error: d.error,
36
+ background: d.bg,
37
+ foreground: d.fg,
38
+ }));
39
+ }
40
+ export const DEFAULT_TERMINAL_THEME = defineTheme({
41
+ name: "default",
42
+ isDark: true,
43
+ bg: new ColorRgba(0, 0, 0),
44
+ fg: new ColorRgba(255, 255, 255),
45
+ primary: new ColorRgba(0, 111, 184),
46
+ secondary: new ColorRgba(118, 38, 113),
47
+ accent: new ColorRgba(0, 111, 184),
48
+ success: new ColorRgba(0, 128, 0),
49
+ warning: new ColorRgba(128, 128, 0),
50
+ error: new ColorRgba(128, 0, 0),
51
+ });
52
+ export const MONOKAI = defineTheme({
53
+ name: "monokai",
54
+ isDark: true,
55
+ bg: new ColorRgba(39, 40, 34),
56
+ fg: new ColorRgba(214, 214, 214),
57
+ primary: new ColorRgba(174, 129, 255),
58
+ secondary: new ColorRgba(249, 38, 114),
59
+ accent: new ColorRgba(102, 217, 239),
60
+ success: new ColorRgba(166, 226, 46),
61
+ warning: new ColorRgba(253, 151, 31),
62
+ error: new ColorRgba(249, 38, 114),
63
+ });
64
+ export const SVG_EXPORT_THEME = defineTheme({
65
+ name: "svg-export",
66
+ isDark: true,
67
+ bg: new ColorRgba(41, 41, 41),
68
+ fg: new ColorRgba(197, 200, 198),
69
+ primary: new ColorRgba(97, 175, 239),
70
+ secondary: new ColorRgba(198, 120, 221),
71
+ accent: new ColorRgba(86, 182, 194),
72
+ success: new ColorRgba(152, 195, 121),
73
+ warning: new ColorRgba(229, 192, 123),
74
+ error: new ColorRgba(204, 85, 90),
75
+ });
76
+ export const NORD = defineTheme({
77
+ name: "nord",
78
+ isDark: true,
79
+ bg: new ColorRgba(46, 52, 64),
80
+ fg: new ColorRgba(216, 222, 233),
81
+ primary: new ColorRgba(136, 192, 208),
82
+ secondary: new ColorRgba(129, 161, 193),
83
+ accent: new ColorRgba(180, 142, 173),
84
+ success: new ColorRgba(163, 190, 140),
85
+ warning: new ColorRgba(235, 203, 139),
86
+ error: new ColorRgba(191, 97, 106),
87
+ });
88
+ export const GRUVBOX = defineTheme({
89
+ name: "gruvbox",
90
+ isDark: true,
91
+ bg: new ColorRgba(40, 40, 40),
92
+ fg: new ColorRgba(251, 241, 199),
93
+ primary: new ColorRgba(133, 165, 152),
94
+ secondary: new ColorRgba(168, 154, 133),
95
+ accent: new ColorRgba(250, 189, 47),
96
+ success: new ColorRgba(184, 187, 38),
97
+ warning: new ColorRgba(254, 128, 25),
98
+ error: new ColorRgba(251, 73, 52),
99
+ });
100
+ export const DRACULA = defineTheme({
101
+ name: "dracula",
102
+ isDark: true,
103
+ bg: new ColorRgba(40, 42, 54),
104
+ fg: new ColorRgba(248, 248, 242),
105
+ primary: new ColorRgba(189, 147, 249),
106
+ secondary: new ColorRgba(98, 114, 164),
107
+ accent: new ColorRgba(255, 121, 198),
108
+ success: new ColorRgba(80, 250, 123),
109
+ warning: new ColorRgba(255, 184, 108),
110
+ error: new ColorRgba(255, 85, 85),
111
+ });
112
+ export const TOKYO_NIGHT = defineTheme({
113
+ name: "tokyo-night",
114
+ isDark: true,
115
+ bg: new ColorRgba(26, 27, 38),
116
+ fg: new ColorRgba(169, 177, 214),
117
+ primary: new ColorRgba(187, 154, 247),
118
+ secondary: new ColorRgba(122, 162, 247),
119
+ accent: new ColorRgba(255, 158, 100),
120
+ success: new ColorRgba(158, 206, 106),
121
+ warning: new ColorRgba(224, 175, 104),
122
+ error: new ColorRgba(247, 118, 142),
123
+ });
124
+ export const FLEXOKI = defineTheme({
125
+ name: "flexoki",
126
+ isDark: true,
127
+ bg: new ColorRgba(16, 15, 15),
128
+ fg: new ColorRgba(255, 252, 240),
129
+ primary: new ColorRgba(32, 94, 166),
130
+ secondary: new ColorRgba(36, 131, 123),
131
+ accent: new ColorRgba(155, 118, 200),
132
+ success: new ColorRgba(102, 128, 11),
133
+ warning: new ColorRgba(173, 131, 1),
134
+ error: new ColorRgba(175, 48, 41),
135
+ });
136
+ export const CATPPUCCIN_MOCHA = defineTheme({
137
+ name: "catppuccin-mocha",
138
+ isDark: true,
139
+ bg: new ColorRgba(24, 24, 37),
140
+ fg: new ColorRgba(205, 214, 244),
141
+ primary: new ColorRgba(245, 194, 231),
142
+ secondary: new ColorRgba(203, 166, 247),
143
+ accent: new ColorRgba(250, 179, 135),
144
+ success: new ColorRgba(171, 233, 179),
145
+ warning: new ColorRgba(250, 227, 176),
146
+ error: new ColorRgba(242, 143, 173),
147
+ });
148
+ export const CATPPUCCIN_LATTE = defineTheme({
149
+ name: "catppuccin-latte",
150
+ isDark: false,
151
+ bg: new ColorRgba(239, 241, 245),
152
+ fg: new ColorRgba(76, 79, 105),
153
+ primary: new ColorRgba(136, 57, 239),
154
+ secondary: new ColorRgba(220, 138, 120),
155
+ accent: new ColorRgba(254, 100, 11),
156
+ success: new ColorRgba(64, 160, 43),
157
+ warning: new ColorRgba(223, 142, 29),
158
+ error: new ColorRgba(210, 15, 57),
159
+ });
160
+ export const CATPPUCCIN_FRAPPE = defineTheme({
161
+ name: "catppuccin-frappe",
162
+ isDark: true,
163
+ bg: new ColorRgba(48, 52, 70),
164
+ fg: new ColorRgba(198, 208, 245),
165
+ primary: new ColorRgba(202, 158, 230),
166
+ secondary: new ColorRgba(239, 159, 118),
167
+ accent: new ColorRgba(244, 184, 228),
168
+ success: new ColorRgba(166, 209, 137),
169
+ warning: new ColorRgba(229, 200, 144),
170
+ error: new ColorRgba(231, 130, 132),
171
+ });
172
+ export const CATPPUCCIN_MACCHIATO = defineTheme({
173
+ name: "catppuccin-macchiato",
174
+ isDark: true,
175
+ bg: new ColorRgba(36, 39, 58),
176
+ fg: new ColorRgba(202, 211, 245),
177
+ primary: new ColorRgba(198, 160, 246),
178
+ secondary: new ColorRgba(245, 169, 127),
179
+ accent: new ColorRgba(245, 189, 230),
180
+ success: new ColorRgba(166, 218, 149),
181
+ warning: new ColorRgba(238, 212, 159),
182
+ error: new ColorRgba(237, 135, 150),
183
+ });
184
+ export const SOLARIZED_DARK = defineTheme({
185
+ name: "solarized-dark",
186
+ isDark: true,
187
+ bg: new ColorRgba(0, 43, 54),
188
+ fg: new ColorRgba(131, 148, 150),
189
+ primary: new ColorRgba(38, 139, 210),
190
+ secondary: new ColorRgba(42, 161, 152),
191
+ accent: new ColorRgba(108, 113, 196),
192
+ success: new ColorRgba(133, 153, 0),
193
+ warning: new ColorRgba(203, 75, 22),
194
+ error: new ColorRgba(220, 50, 47),
195
+ });
196
+ export const SOLARIZED_LIGHT = defineTheme({
197
+ name: "solarized-light",
198
+ isDark: false,
199
+ bg: new ColorRgba(253, 246, 227),
200
+ fg: new ColorRgba(88, 110, 117),
201
+ primary: new ColorRgba(38, 139, 210),
202
+ secondary: new ColorRgba(42, 161, 152),
203
+ accent: new ColorRgba(108, 113, 196),
204
+ success: new ColorRgba(133, 153, 0),
205
+ warning: new ColorRgba(203, 75, 22),
206
+ error: new ColorRgba(220, 50, 47),
207
+ });
208
+ export const ROSE_PINE = defineTheme({
209
+ name: "rose-pine",
210
+ isDark: true,
211
+ bg: new ColorRgba(25, 23, 36),
212
+ fg: new ColorRgba(224, 222, 244),
213
+ primary: new ColorRgba(196, 167, 231),
214
+ secondary: new ColorRgba(49, 116, 143),
215
+ accent: new ColorRgba(235, 188, 186),
216
+ success: new ColorRgba(156, 207, 216),
217
+ warning: new ColorRgba(246, 193, 119),
218
+ error: new ColorRgba(235, 111, 146),
219
+ });
220
+ export const ROSE_PINE_MOON = defineTheme({
221
+ name: "rose-pine-moon",
222
+ isDark: true,
223
+ bg: new ColorRgba(35, 33, 54),
224
+ fg: new ColorRgba(224, 222, 244),
225
+ primary: new ColorRgba(196, 167, 231),
226
+ secondary: new ColorRgba(62, 143, 176),
227
+ accent: new ColorRgba(234, 154, 151),
228
+ success: new ColorRgba(156, 207, 216),
229
+ warning: new ColorRgba(246, 193, 119),
230
+ error: new ColorRgba(235, 111, 146),
231
+ });
232
+ export const ROSE_PINE_DAWN = defineTheme({
233
+ name: "rose-pine-dawn",
234
+ isDark: false,
235
+ bg: new ColorRgba(250, 244, 237),
236
+ fg: new ColorRgba(87, 82, 121),
237
+ primary: new ColorRgba(144, 122, 169),
238
+ secondary: new ColorRgba(40, 105, 131),
239
+ accent: new ColorRgba(215, 130, 126),
240
+ success: new ColorRgba(86, 148, 159),
241
+ warning: new ColorRgba(234, 157, 52),
242
+ error: new ColorRgba(180, 99, 122),
243
+ });
244
+ export const ATOM_ONE_DARK = defineTheme({
245
+ name: "atom-one-dark",
246
+ isDark: true,
247
+ bg: new ColorRgba(40, 44, 52),
248
+ fg: new ColorRgba(171, 178, 191),
249
+ primary: new ColorRgba(97, 175, 239),
250
+ secondary: new ColorRgba(198, 120, 221),
251
+ accent: new ColorRgba(163, 120, 194),
252
+ success: new ColorRgba(98, 240, 98),
253
+ warning: new ColorRgba(222, 178, 91),
254
+ error: new ColorRgba(240, 98, 98),
255
+ });
256
+ export const ATOM_ONE_LIGHT = defineTheme({
257
+ name: "atom-one-light",
258
+ isDark: false,
259
+ bg: new ColorRgba(250, 250, 250),
260
+ fg: new ColorRgba(56, 58, 66),
261
+ primary: new ColorRgba(64, 120, 242),
262
+ secondary: new ColorRgba(166, 38, 164),
263
+ accent: new ColorRgba(191, 146, 50),
264
+ success: new ColorRgba(108, 242, 63),
265
+ warning: new ColorRgba(216, 217, 56),
266
+ error: new ColorRgba(242, 63, 63),
267
+ });
268
+ //# sourceMappingURL=terminalThemes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalThemes.js","sourceRoot":"","sources":["../../src/themes/terminalThemes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Button widget — labeled action trigger with variant styling.
3
+ * [LAW:dataflow-not-control-flow] rendering is a pure function of observable state.
4
+ * [LAW:one-type-per-behavior] shared widget infrastructure lives on WidgetBase.
5
+ *
6
+ * Four visual states:
7
+ * normal — variant colors from theme semantic palette (muted)
8
+ * hover — full variant accent color (brighter than muted)
9
+ * focus — brackets [ label ] surrounding the button
10
+ * active — color reversal (pressed)
11
+ *
12
+ * States compose: active > focus > hover > normal.
13
+ */
14
+ import { Segment } from "../core/segment.js";
15
+ import type { RenderOptions } from "../core/protocol.js";
16
+ import type { TerminalTheme } from "../core/color.js";
17
+ import { WidgetBase } from "./widget-base.js";
18
+ import type { KeyEvent, WidgetMouseEvent } from "./types.js";
19
+ export type ButtonVariant = "default" | "primary" | "success" | "warning" | "danger";
20
+ export interface ButtonOptions {
21
+ label: string;
22
+ variant?: ButtonVariant;
23
+ id?: string;
24
+ disabled?: boolean;
25
+ theme?: TerminalTheme;
26
+ }
27
+ export declare class Button extends WidgetBase {
28
+ readonly id: string;
29
+ readonly focusable = true;
30
+ accessor label: string;
31
+ accessor variant: ButtonVariant;
32
+ private _theme;
33
+ constructor(options: ButtonOptions);
34
+ setTheme(theme: TerminalTheme): void;
35
+ handleKey(event: KeyEvent): void;
36
+ handleMouse(event: WidgetMouseEvent): void;
37
+ setHovered(value: boolean): void;
38
+ setActive(value: boolean): void;
39
+ render(_options: RenderOptions): Iterable<Segment>;
40
+ measure(_options: RenderOptions): {
41
+ minimum: number;
42
+ maximum: number;
43
+ };
44
+ private resolveColors;
45
+ private resolvePalette;
46
+ }
47
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/widgets/button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAgBD,qBAAa,MAAO,SAAQ,UAAU;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,QAAQ;IAEd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhD,OAAO,CAAC,MAAM,CAAgB;gBAElB,OAAO,EAAE,aAAa;IASlC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAKpC,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IASvB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAgBnD,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAGhC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI/B,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;IAyBlD,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAOtE,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,cAAc;CAKvB"}