@hypercli/ui 0.1.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 (267) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/dist/capabilities/index.d.ts +62 -0
  4. package/dist/capabilities/index.d.ts.map +1 -0
  5. package/dist/capabilities/index.js +182 -0
  6. package/dist/capabilities/index.js.map +1 -0
  7. package/dist/colors.d.ts +32 -0
  8. package/dist/colors.d.ts.map +1 -0
  9. package/dist/colors.js +40 -0
  10. package/dist/colors.js.map +1 -0
  11. package/dist/components/columns.d.ts +28 -0
  12. package/dist/components/columns.d.ts.map +1 -0
  13. package/dist/components/columns.js +70 -0
  14. package/dist/components/columns.js.map +1 -0
  15. package/dist/components/confirmPrompt.d.ts +38 -0
  16. package/dist/components/confirmPrompt.d.ts.map +1 -0
  17. package/dist/components/confirmPrompt.js +109 -0
  18. package/dist/components/confirmPrompt.js.map +1 -0
  19. package/dist/components/diff.d.ts +37 -0
  20. package/dist/components/diff.d.ts.map +1 -0
  21. package/dist/components/diff.js +36 -0
  22. package/dist/components/diff.js.map +1 -0
  23. package/dist/components/helpLayout.d.ts +59 -0
  24. package/dist/components/helpLayout.d.ts.map +1 -0
  25. package/dist/components/helpLayout.js +103 -0
  26. package/dist/components/helpLayout.js.map +1 -0
  27. package/dist/components/index.d.ts +38 -0
  28. package/dist/components/index.d.ts.map +1 -0
  29. package/dist/components/index.js +23 -0
  30. package/dist/components/index.js.map +1 -0
  31. package/dist/components/keyValue.d.ts +31 -0
  32. package/dist/components/keyValue.d.ts.map +1 -0
  33. package/dist/components/keyValue.js +36 -0
  34. package/dist/components/keyValue.js.map +1 -0
  35. package/dist/components/list.d.ts +30 -0
  36. package/dist/components/list.d.ts.map +1 -0
  37. package/dist/components/list.js +80 -0
  38. package/dist/components/list.js.map +1 -0
  39. package/dist/components/message.d.ts +33 -0
  40. package/dist/components/message.d.ts.map +1 -0
  41. package/dist/components/message.js +86 -0
  42. package/dist/components/message.js.map +1 -0
  43. package/dist/components/panel.d.ts +28 -0
  44. package/dist/components/panel.d.ts.map +1 -0
  45. package/dist/components/panel.js +30 -0
  46. package/dist/components/panel.js.map +1 -0
  47. package/dist/components/progressBar.d.ts +44 -0
  48. package/dist/components/progressBar.d.ts.map +1 -0
  49. package/dist/components/progressBar.js +154 -0
  50. package/dist/components/progressBar.js.map +1 -0
  51. package/dist/components/section.d.ts +22 -0
  52. package/dist/components/section.d.ts.map +1 -0
  53. package/dist/components/section.js +48 -0
  54. package/dist/components/section.js.map +1 -0
  55. package/dist/components/selectPrompt.d.ts +58 -0
  56. package/dist/components/selectPrompt.d.ts.map +1 -0
  57. package/dist/components/selectPrompt.js +206 -0
  58. package/dist/components/selectPrompt.js.map +1 -0
  59. package/dist/components/spinner.d.ts +38 -0
  60. package/dist/components/spinner.d.ts.map +1 -0
  61. package/dist/components/spinner.js +125 -0
  62. package/dist/components/spinner.js.map +1 -0
  63. package/dist/components/statusList.d.ts +22 -0
  64. package/dist/components/statusList.d.ts.map +1 -0
  65. package/dist/components/statusList.js +43 -0
  66. package/dist/components/statusList.js.map +1 -0
  67. package/dist/components/table.d.ts +39 -0
  68. package/dist/components/table.d.ts.map +1 -0
  69. package/dist/components/table.js +132 -0
  70. package/dist/components/table.js.map +1 -0
  71. package/dist/components/textPrompt.d.ts +43 -0
  72. package/dist/components/textPrompt.d.ts.map +1 -0
  73. package/dist/components/textPrompt.js +123 -0
  74. package/dist/components/textPrompt.js.map +1 -0
  75. package/dist/components/tree.d.ts +30 -0
  76. package/dist/components/tree.d.ts.map +1 -0
  77. package/dist/components/tree.js +49 -0
  78. package/dist/components/tree.js.map +1 -0
  79. package/dist/ds-index.d.ts +113 -0
  80. package/dist/ds-index.d.ts.map +1 -0
  81. package/dist/ds-index.js +112 -0
  82. package/dist/ds-index.js.map +1 -0
  83. package/dist/help.d.ts +32 -0
  84. package/dist/help.d.ts.map +1 -0
  85. package/dist/help.js +34 -0
  86. package/dist/help.js.map +1 -0
  87. package/dist/hyper-theme.d.ts +8 -0
  88. package/dist/hyper-theme.d.ts.map +1 -0
  89. package/dist/hyper-theme.js +30 -0
  90. package/dist/hyper-theme.js.map +1 -0
  91. package/dist/index.d.ts +50 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +39 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/md.d.ts +12 -0
  96. package/dist/md.d.ts.map +1 -0
  97. package/dist/md.js +19 -0
  98. package/dist/md.js.map +1 -0
  99. package/dist/messages.d.ts +20 -0
  100. package/dist/messages.d.ts.map +1 -0
  101. package/dist/messages.js +65 -0
  102. package/dist/messages.js.map +1 -0
  103. package/dist/palette.d.ts +20 -0
  104. package/dist/palette.d.ts.map +1 -0
  105. package/dist/palette.js +22 -0
  106. package/dist/palette.js.map +1 -0
  107. package/dist/primitives/align.d.ts +23 -0
  108. package/dist/primitives/align.d.ts.map +1 -0
  109. package/dist/primitives/align.js +40 -0
  110. package/dist/primitives/align.js.map +1 -0
  111. package/dist/primitives/badge.d.ts +24 -0
  112. package/dist/primitives/badge.d.ts.map +1 -0
  113. package/dist/primitives/badge.js +40 -0
  114. package/dist/primitives/badge.js.map +1 -0
  115. package/dist/primitives/border.d.ts +29 -0
  116. package/dist/primitives/border.d.ts.map +1 -0
  117. package/dist/primitives/border.js +100 -0
  118. package/dist/primitives/border.js.map +1 -0
  119. package/dist/primitives/context.d.ts +48 -0
  120. package/dist/primitives/context.d.ts.map +1 -0
  121. package/dist/primitives/context.js +64 -0
  122. package/dist/primitives/context.js.map +1 -0
  123. package/dist/primitives/divider.d.ts +25 -0
  124. package/dist/primitives/divider.d.ts.map +1 -0
  125. package/dist/primitives/divider.js +56 -0
  126. package/dist/primitives/divider.js.map +1 -0
  127. package/dist/primitives/indent.d.ts +16 -0
  128. package/dist/primitives/indent.d.ts.map +1 -0
  129. package/dist/primitives/indent.js +25 -0
  130. package/dist/primitives/indent.js.map +1 -0
  131. package/dist/primitives/index.d.ts +32 -0
  132. package/dist/primitives/index.d.ts.map +1 -0
  133. package/dist/primitives/index.js +22 -0
  134. package/dist/primitives/index.js.map +1 -0
  135. package/dist/primitives/line.d.ts +21 -0
  136. package/dist/primitives/line.d.ts.map +1 -0
  137. package/dist/primitives/line.js +29 -0
  138. package/dist/primitives/line.js.map +1 -0
  139. package/dist/primitives/markdown.d.ts +91 -0
  140. package/dist/primitives/markdown.d.ts.map +1 -0
  141. package/dist/primitives/markdown.js +62 -0
  142. package/dist/primitives/markdown.js.map +1 -0
  143. package/dist/primitives/pad.d.ts +24 -0
  144. package/dist/primitives/pad.d.ts.map +1 -0
  145. package/dist/primitives/pad.js +20 -0
  146. package/dist/primitives/pad.js.map +1 -0
  147. package/dist/primitives/stack.d.ts +22 -0
  148. package/dist/primitives/stack.d.ts.map +1 -0
  149. package/dist/primitives/stack.js +21 -0
  150. package/dist/primitives/stack.js.map +1 -0
  151. package/dist/primitives/styledText.d.ts +36 -0
  152. package/dist/primitives/styledText.d.ts.map +1 -0
  153. package/dist/primitives/styledText.js +42 -0
  154. package/dist/primitives/styledText.js.map +1 -0
  155. package/dist/primitives/symbol.d.ts +15 -0
  156. package/dist/primitives/symbol.d.ts.map +1 -0
  157. package/dist/primitives/symbol.js +18 -0
  158. package/dist/primitives/symbol.js.map +1 -0
  159. package/dist/primitives/truncate.d.ts +23 -0
  160. package/dist/primitives/truncate.d.ts.map +1 -0
  161. package/dist/primitives/truncate.js +99 -0
  162. package/dist/primitives/truncate.js.map +1 -0
  163. package/dist/primitives/wrap.d.ts +23 -0
  164. package/dist/primitives/wrap.d.ts.map +1 -0
  165. package/dist/primitives/wrap.js +30 -0
  166. package/dist/primitives/wrap.js.map +1 -0
  167. package/dist/render/ansi-utils.d.ts +49 -0
  168. package/dist/render/ansi-utils.d.ts.map +1 -0
  169. package/dist/render/ansi-utils.js +405 -0
  170. package/dist/render/ansi-utils.js.map +1 -0
  171. package/dist/render/index.d.ts +11 -0
  172. package/dist/render/index.d.ts.map +1 -0
  173. package/dist/render/index.js +11 -0
  174. package/dist/render/index.js.map +1 -0
  175. package/dist/render/sgr.d.ts +60 -0
  176. package/dist/render/sgr.d.ts.map +1 -0
  177. package/dist/render/sgr.js +191 -0
  178. package/dist/render/sgr.js.map +1 -0
  179. package/dist/render/strip.d.ts +24 -0
  180. package/dist/render/strip.d.ts.map +1 -0
  181. package/dist/render/strip.js +81 -0
  182. package/dist/render/strip.js.map +1 -0
  183. package/dist/render/width.d.ts +30 -0
  184. package/dist/render/width.d.ts.map +1 -0
  185. package/dist/render/width.js +149 -0
  186. package/dist/render/width.js.map +1 -0
  187. package/dist/shortcuts.d.ts +76 -0
  188. package/dist/shortcuts.d.ts.map +1 -0
  189. package/dist/shortcuts.js +117 -0
  190. package/dist/shortcuts.js.map +1 -0
  191. package/dist/styles.d.ts +43 -0
  192. package/dist/styles.d.ts.map +1 -0
  193. package/dist/styles.js +44 -0
  194. package/dist/styles.js.map +1 -0
  195. package/dist/symbols.d.ts +19 -0
  196. package/dist/symbols.d.ts.map +1 -0
  197. package/dist/symbols.js +21 -0
  198. package/dist/symbols.js.map +1 -0
  199. package/dist/test/compare.d.ts +28 -0
  200. package/dist/test/compare.d.ts.map +1 -0
  201. package/dist/test/compare.js +37 -0
  202. package/dist/test/compare.js.map +1 -0
  203. package/dist/test/index.d.ts +16 -0
  204. package/dist/test/index.d.ts.map +1 -0
  205. package/dist/test/index.js +14 -0
  206. package/dist/test/index.js.map +1 -0
  207. package/dist/test/mock.d.ts +50 -0
  208. package/dist/test/mock.d.ts.map +1 -0
  209. package/dist/test/mock.js +135 -0
  210. package/dist/test/mock.js.map +1 -0
  211. package/dist/test/render.d.ts +29 -0
  212. package/dist/test/render.d.ts.map +1 -0
  213. package/dist/test/render.js +87 -0
  214. package/dist/test/render.js.map +1 -0
  215. package/dist/test/snapshot.d.ts +16 -0
  216. package/dist/test/snapshot.d.ts.map +1 -0
  217. package/dist/test/snapshot.js +216 -0
  218. package/dist/test/snapshot.js.map +1 -0
  219. package/dist/theme/builtins.d.ts +10 -0
  220. package/dist/theme/builtins.d.ts.map +1 -0
  221. package/dist/theme/builtins.js +102 -0
  222. package/dist/theme/builtins.js.map +1 -0
  223. package/dist/theme/engine.d.ts +51 -0
  224. package/dist/theme/engine.d.ts.map +1 -0
  225. package/dist/theme/engine.js +123 -0
  226. package/dist/theme/engine.js.map +1 -0
  227. package/dist/theme/index.d.ts +10 -0
  228. package/dist/theme/index.d.ts.map +1 -0
  229. package/dist/theme/index.js +12 -0
  230. package/dist/theme/index.js.map +1 -0
  231. package/dist/theme/merge.d.ts +24 -0
  232. package/dist/theme/merge.d.ts.map +1 -0
  233. package/dist/theme/merge.js +66 -0
  234. package/dist/theme/merge.js.map +1 -0
  235. package/dist/theme/types.d.ts +44 -0
  236. package/dist/theme/types.d.ts.map +1 -0
  237. package/dist/theme/types.js +8 -0
  238. package/dist/theme/types.js.map +1 -0
  239. package/dist/theme.d.ts +9 -0
  240. package/dist/theme.d.ts.map +1 -0
  241. package/dist/theme.js +53 -0
  242. package/dist/theme.js.map +1 -0
  243. package/dist/tokens/defaults.d.ts +13 -0
  244. package/dist/tokens/defaults.d.ts.map +1 -0
  245. package/dist/tokens/defaults.js +248 -0
  246. package/dist/tokens/defaults.js.map +1 -0
  247. package/dist/tokens/index.d.ts +10 -0
  248. package/dist/tokens/index.d.ts.map +1 -0
  249. package/dist/tokens/index.js +10 -0
  250. package/dist/tokens/index.js.map +1 -0
  251. package/dist/tokens/resolver.d.ts +100 -0
  252. package/dist/tokens/resolver.d.ts.map +1 -0
  253. package/dist/tokens/resolver.js +138 -0
  254. package/dist/tokens/resolver.js.map +1 -0
  255. package/dist/tokens/types.d.ts +265 -0
  256. package/dist/tokens/types.d.ts.map +1 -0
  257. package/dist/tokens/types.js +10 -0
  258. package/dist/tokens/types.js.map +1 -0
  259. package/dist/tokens.d.ts +26 -0
  260. package/dist/tokens.d.ts.map +1 -0
  261. package/dist/tokens.js +30 -0
  262. package/dist/tokens.js.map +1 -0
  263. package/dist/types.d.ts +38 -0
  264. package/dist/types.d.ts.map +1 -0
  265. package/dist/types.js +11 -0
  266. package/dist/types.js.map +1 -0
  267. package/package.json +78 -0
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Token Resolver
3
+ *
4
+ * Resolves abstract token values to concrete output values based on
5
+ * detected terminal capabilities. This is the bridge between the
6
+ * semantic token system and the actual ANSI output.
7
+ */
8
+ import type { TerminalCapabilities } from "../capabilities/index.ts";
9
+ import type { BorderCharSet, BorderStyleName, ColorTokenValue, ColorTokens, LayoutTokens, SpacingTokens, SpinnerDefinition, SymbolPair, SymbolTokens, TokenSet, TreeCharSet, TypographyStyle, TypographyTokens } from "./types.ts";
10
+ /** A resolved color: string value or null when color is disabled. */
11
+ export type ResolvedColor = string | null;
12
+ /** Resolved typography style with the color reference replaced by a resolved color. */
13
+ export type ResolvedTypographyStyle = Omit<TypographyStyle, "color"> & {
14
+ color?: ResolvedColor;
15
+ };
16
+ /** Resolved color tokens: each role maps to a string or null. */
17
+ export type ResolvedColorTokens = {
18
+ [K in keyof ColorTokens]: ResolvedColor;
19
+ };
20
+ /** Resolved typography tokens: each role maps to a resolved style. */
21
+ export type ResolvedTypographyTokens = {
22
+ [K in keyof TypographyTokens]: ResolvedTypographyStyle;
23
+ };
24
+ /** Resolved symbol tokens: each role maps to a single string. */
25
+ export type ResolvedSymbolTokens = {
26
+ [K in keyof SymbolTokens]: string;
27
+ };
28
+ /** Resolved border tokens: a style name and the resolved character set. */
29
+ export type ResolvedBorderTokens = {
30
+ style: BorderStyleName;
31
+ styles: Record<BorderStyleName, BorderCharSet>;
32
+ chars: BorderCharSet;
33
+ };
34
+ /** Resolved tree tokens: a single character set. */
35
+ export type ResolvedTreeTokens = TreeCharSet;
36
+ /** Resolved spinner: just the frame array for the current capability. */
37
+ export type ResolvedSpinnerDefinition = string[];
38
+ /** Resolved motion tokens. */
39
+ export type ResolvedMotionTokens = {
40
+ spinnerDots: ResolvedSpinnerDefinition;
41
+ spinnerLine: ResolvedSpinnerDefinition;
42
+ spinnerArc: ResolvedSpinnerDefinition;
43
+ progressFilled: string;
44
+ progressPartial: string;
45
+ progressHead: string;
46
+ spinnerInterval: number;
47
+ progressInterval: number;
48
+ };
49
+ /** The complete resolved token set, ready for use by components. */
50
+ export type ResolvedTokens = {
51
+ color: ResolvedColorTokens;
52
+ type: ResolvedTypographyTokens;
53
+ space: SpacingTokens;
54
+ layout: LayoutTokens;
55
+ symbol: ResolvedSymbolTokens;
56
+ border: ResolvedBorderTokens;
57
+ tree: ResolvedTreeTokens;
58
+ motion: ResolvedMotionTokens;
59
+ };
60
+ /**
61
+ * Resolves a single color token value to a string (or null if color is disabled).
62
+ *
63
+ * - colorDepth 'none' -> null
64
+ * - colorDepth '16' -> the ansi16 name (e.g. 'red')
65
+ * - colorDepth '256' -> the ansi256 index as a string
66
+ * - colorDepth 'truecolor' -> the hex string
67
+ * - Attribute tokens ('dim', 'bold', 'default') pass through as-is.
68
+ *
69
+ * @param token - The color token value to resolve.
70
+ * @param capabilities - Detected terminal capabilities used to pick the right tier.
71
+ * @returns A string representation of the color, or null when color is disabled.
72
+ */
73
+ export declare function resolveColor(token: ColorTokenValue, capabilities: TerminalCapabilities): string | null;
74
+ /**
75
+ * Resolves a symbol pair to the appropriate glyph based on unicode support.
76
+ *
77
+ * @param token - The symbol pair containing unicode and ascii variants.
78
+ * @param capabilities - Detected terminal capabilities.
79
+ * @returns The unicode or ascii glyph string.
80
+ */
81
+ export declare function resolveSymbol(token: SymbolPair, capabilities: TerminalCapabilities): string;
82
+ /**
83
+ * Resolves a spinner definition to the appropriate frame array.
84
+ *
85
+ * @param token - The spinner definition containing unicode and ascii frame arrays.
86
+ * @param capabilities - Detected terminal capabilities.
87
+ * @returns The unicode or ascii frame array.
88
+ */
89
+ export declare function resolveSpinner(token: SpinnerDefinition, capabilities: TerminalCapabilities): string[];
90
+ /**
91
+ * Resolves an entire token set against the given terminal capabilities,
92
+ * producing a {@link ResolvedTokens} object where every value is a concrete
93
+ * output-ready value.
94
+ *
95
+ * @param tokens - The complete token set to resolve.
96
+ * @param capabilities - Detected terminal capabilities.
97
+ * @returns A fully resolved token set ready for use by components.
98
+ */
99
+ export declare function resolveTokens(tokens: TokenSet, capabilities: TerminalCapabilities): ResolvedTokens;
100
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/tokens/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAc,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EACX,aAAa,EACb,eAAe,EAEf,eAAe,EACf,WAAW,EAEX,YAAY,EAEZ,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EAEX,eAAe,EACf,gBAAgB,EAChB,MAAM,YAAY,CAAC;AAMpB,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC;AAE1C,uFAAuF;AACvF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG;IACtE,KAAK,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG;KAChC,CAAC,IAAI,MAAM,WAAW,GAAG,aAAa;CACvC,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,wBAAwB,GAAG;KACrC,CAAC,IAAI,MAAM,gBAAgB,GAAG,uBAAuB;CACtD,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,oBAAoB,GAAG;KACjC,CAAC,IAAI,MAAM,YAAY,GAAG,MAAM;CACjC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC/C,KAAK,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE7C,yEAAyE;AACzE,MAAM,MAAM,yBAAyB,GAAG,MAAM,EAAE,CAAC;AAEjD,8BAA8B;AAC9B,MAAM,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,yBAAyB,CAAC;IACvC,WAAW,EAAE,yBAAyB,CAAC;IACvC,UAAU,EAAE,yBAAyB,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC3B,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,oBAAoB,GAChC,MAAM,GAAG,IAAI,CAqBf;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,GAAG,MAAM,CAE3F;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,oBAAoB,GAChC,MAAM,EAAE,CAEV;AAkFD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC5B,MAAM,EAAE,QAAQ,EAChB,YAAY,EAAE,oBAAoB,GAChC,cAAc,CAWhB"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Token Resolver
3
+ *
4
+ * Resolves abstract token values to concrete output values based on
5
+ * detected terminal capabilities. This is the bridge between the
6
+ * semantic token system and the actual ANSI output.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Individual Resolvers
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Resolves a single color token value to a string (or null if color is disabled).
13
+ *
14
+ * - colorDepth 'none' -> null
15
+ * - colorDepth '16' -> the ansi16 name (e.g. 'red')
16
+ * - colorDepth '256' -> the ansi256 index as a string
17
+ * - colorDepth 'truecolor' -> the hex string
18
+ * - Attribute tokens ('dim', 'bold', 'default') pass through as-is.
19
+ *
20
+ * @param token - The color token value to resolve.
21
+ * @param capabilities - Detected terminal capabilities used to pick the right tier.
22
+ * @returns A string representation of the color, or null when color is disabled.
23
+ */
24
+ export function resolveColor(token, capabilities) {
25
+ // Attribute-only tokens pass through regardless of color depth
26
+ if (token === "dim" || token === "bold" || token === "default") {
27
+ return token;
28
+ }
29
+ const depth = capabilities.colorDepth;
30
+ if (depth === "none") {
31
+ return null;
32
+ }
33
+ // After the attribute guard above, token is narrowed to ColorValue
34
+ switch (depth) {
35
+ case "16":
36
+ return token.ansi16;
37
+ case "256":
38
+ return String(token.ansi256);
39
+ case "truecolor":
40
+ return token.truecolor;
41
+ }
42
+ }
43
+ /**
44
+ * Resolves a symbol pair to the appropriate glyph based on unicode support.
45
+ *
46
+ * @param token - The symbol pair containing unicode and ascii variants.
47
+ * @param capabilities - Detected terminal capabilities.
48
+ * @returns The unicode or ascii glyph string.
49
+ */
50
+ export function resolveSymbol(token, capabilities) {
51
+ return capabilities.unicode ? token.unicode : token.ascii;
52
+ }
53
+ /**
54
+ * Resolves a spinner definition to the appropriate frame array.
55
+ *
56
+ * @param token - The spinner definition containing unicode and ascii frame arrays.
57
+ * @param capabilities - Detected terminal capabilities.
58
+ * @returns The unicode or ascii frame array.
59
+ */
60
+ export function resolveSpinner(token, capabilities) {
61
+ return capabilities.unicode ? token.unicode : token.ascii;
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // Full Token Set Resolver
65
+ // ---------------------------------------------------------------------------
66
+ function resolveColorTokens(colors, capabilities) {
67
+ const result = {};
68
+ for (const key of Object.keys(colors)) {
69
+ result[key] = resolveColor(colors[key], capabilities);
70
+ }
71
+ return result;
72
+ }
73
+ function resolveTypographyTokens(typography, colors, capabilities) {
74
+ const result = {};
75
+ for (const key of Object.keys(typography)) {
76
+ const style = typography[key];
77
+ const { color: colorRef, ...rest } = style;
78
+ const resolved = { ...rest };
79
+ if (colorRef !== undefined) {
80
+ resolved.color = resolveColor(colors[colorRef], capabilities);
81
+ }
82
+ result[key] = resolved;
83
+ }
84
+ return result;
85
+ }
86
+ function resolveSymbolTokens(symbols, capabilities) {
87
+ const result = {};
88
+ for (const key of Object.keys(symbols)) {
89
+ result[key] = resolveSymbol(symbols[key], capabilities);
90
+ }
91
+ return result;
92
+ }
93
+ function resolveBorderTokens(border, capabilities) {
94
+ // ASCII-only terminals force the ascii border style
95
+ const effectiveStyle = capabilities.unicode ? border.style : "ascii";
96
+ return {
97
+ style: effectiveStyle,
98
+ styles: border.styles,
99
+ chars: border.styles[effectiveStyle],
100
+ };
101
+ }
102
+ function resolveTreeTokens(tree, capabilities) {
103
+ return capabilities.unicode ? tree.unicode : tree.ascii;
104
+ }
105
+ function resolveMotionTokens(motion, capabilities) {
106
+ return {
107
+ spinnerDots: resolveSpinner(motion.spinnerDots, capabilities),
108
+ spinnerLine: resolveSpinner(motion.spinnerLine, capabilities),
109
+ spinnerArc: resolveSpinner(motion.spinnerArc, capabilities),
110
+ progressFilled: resolveSymbol(motion.progressFilled, capabilities),
111
+ progressPartial: resolveSymbol(motion.progressPartial, capabilities),
112
+ progressHead: resolveSymbol(motion.progressHead, capabilities),
113
+ spinnerInterval: motion.spinnerInterval,
114
+ progressInterval: motion.progressInterval,
115
+ };
116
+ }
117
+ /**
118
+ * Resolves an entire token set against the given terminal capabilities,
119
+ * producing a {@link ResolvedTokens} object where every value is a concrete
120
+ * output-ready value.
121
+ *
122
+ * @param tokens - The complete token set to resolve.
123
+ * @param capabilities - Detected terminal capabilities.
124
+ * @returns A fully resolved token set ready for use by components.
125
+ */
126
+ export function resolveTokens(tokens, capabilities) {
127
+ return {
128
+ color: resolveColorTokens(tokens.color, capabilities),
129
+ type: resolveTypographyTokens(tokens.type, tokens.color, capabilities),
130
+ space: tokens.space,
131
+ layout: tokens.layout,
132
+ symbol: resolveSymbolTokens(tokens.symbol, capabilities),
133
+ border: resolveBorderTokens(tokens.border, capabilities),
134
+ tree: resolveTreeTokens(tokens.tree, capabilities),
135
+ motion: resolveMotionTokens(tokens.motion, capabilities),
136
+ };
137
+ }
138
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/tokens/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Token Type Definitions
3
+ *
4
+ * All token types for the CLI Design System. Tokens are named for what they
5
+ * mean, never for what they look like. Every component references tokens
6
+ * by semantic role, and the token engine resolves them to concrete values
7
+ * based on terminal capabilities.
8
+ */
9
+ /** Per-tier color values for capability-aware resolution. */
10
+ export type ColorValue = {
11
+ /** Hex color string, e.g. '#f87171' */
12
+ truecolor: string;
13
+ /** 256-color palette index (0-255) */
14
+ ansi256: number;
15
+ /** ANSI 16 color name or attribute: 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'black' | 'dim' | 'bold' */
16
+ ansi16: string;
17
+ };
18
+ /**
19
+ * A color token value is either a full ColorValue with per-tier fallbacks,
20
+ * or a simple attribute string for tokens that represent styling rather
21
+ * than a specific hue.
22
+ */
23
+ export type ColorTokenValue = ColorValue | "dim" | "bold" | "default";
24
+ /** Semantic color roles used throughout the design system. */
25
+ export type ColorTokens = {
26
+ /** Default foreground text */
27
+ fg: ColorTokenValue;
28
+ /** De-emphasized, secondary text */
29
+ fgMuted: ColorTokenValue;
30
+ /** Errors, failures, destructive actions */
31
+ error: ColorTokenValue;
32
+ /** Warnings, cautions, non-fatal issues */
33
+ warning: ColorTokenValue;
34
+ /** Success, completion, positive outcomes */
35
+ success: ColorTokenValue;
36
+ /** Informational, neutral highlights */
37
+ info: ColorTokenValue;
38
+ /** Interactive elements, links, focus states */
39
+ accent: ColorTokenValue;
40
+ /** High-importance text within a message */
41
+ emphasis: ColorTokenValue;
42
+ /** Inline code, commands, file paths, flags */
43
+ code: ColorTokenValue;
44
+ /** Section headers, titles */
45
+ heading: ColorTokenValue;
46
+ /** Error badge background */
47
+ bgError: ColorTokenValue;
48
+ /** Warning badge background */
49
+ bgWarning: ColorTokenValue;
50
+ /** Success badge background */
51
+ bgSuccess: ColorTokenValue;
52
+ /** Info badge background */
53
+ bgInfo: ColorTokenValue;
54
+ /** Selection highlight, search match */
55
+ bgHighlight: ColorTokenValue;
56
+ /** Added lines/content */
57
+ diffAdded: ColorTokenValue;
58
+ /** Removed lines/content */
59
+ diffRemoved: ColorTokenValue;
60
+ /** Unchanged context lines */
61
+ diffContext: ColorTokenValue;
62
+ /** Hunk headers */
63
+ diffHunk: ColorTokenValue;
64
+ };
65
+ /** A combination of ANSI text attributes and an optional color reference. */
66
+ export type TypographyStyle = {
67
+ bold?: boolean;
68
+ dim?: boolean;
69
+ italic?: boolean;
70
+ underline?: boolean;
71
+ strikethrough?: boolean;
72
+ inverse?: boolean;
73
+ /** Reference to a color token by key name */
74
+ color?: keyof ColorTokens;
75
+ };
76
+ /** Semantic typography roles. */
77
+ export type TypographyTokens = {
78
+ /** Key terms, important values, primary information */
79
+ emphasis: TypographyStyle;
80
+ /** Headings, critical labels */
81
+ strong: TypographyStyle;
82
+ /** Secondary info, timestamps, metadata, hints */
83
+ deEmphasis: TypographyStyle;
84
+ /** Inline code, commands, file paths, flag names */
85
+ code: TypographyStyle;
86
+ /** Clickable URLs */
87
+ link: TypographyStyle;
88
+ /** Removed or deprecated content */
89
+ deleted: TypographyStyle;
90
+ /** Top-level section headers */
91
+ heading1: TypographyStyle;
92
+ /** Sub-section headers */
93
+ heading2: TypographyStyle;
94
+ /** Minor section headers */
95
+ heading3: TypographyStyle;
96
+ /** Key in key-value pairs, column headers */
97
+ label: TypographyStyle;
98
+ /** Supplementary notes, help text */
99
+ caption: TypographyStyle;
100
+ };
101
+ /** Horizontal and vertical spacing measured in characters/lines. */
102
+ export type SpacingTokens = {
103
+ /** Standard indentation per nesting level (characters) */
104
+ indent: number;
105
+ /** Wide indentation for code blocks, deep nesting (characters) */
106
+ indentLarge: number;
107
+ /** Gap between columns (characters) */
108
+ gutter: number;
109
+ /** Gap between major columns (characters) */
110
+ gutterLarge: number;
111
+ /** Inner padding inside boxes (characters) */
112
+ padding: number;
113
+ /** Generous inner padding (characters) */
114
+ paddingLarge: number;
115
+ /** Space between a status icon and its text (characters) */
116
+ iconGap: number;
117
+ /** Items within a dense group (blank lines) */
118
+ lineNone: number;
119
+ /** List items, table rows — no extra spacing (blank lines) */
120
+ lineCompact: number;
121
+ /** Between sections (blank lines) */
122
+ lineNormal: number;
123
+ /** Between major sections of output (blank lines) */
124
+ lineRelaxed: number;
125
+ };
126
+ /** Layout constraints for content width. */
127
+ export type LayoutTokens = {
128
+ /** Maximum content width for readability */
129
+ maxWidth: number;
130
+ /** Minimum width before switching to compact mode */
131
+ minWidth: number;
132
+ /** Assumed width when detection fails */
133
+ defaultWidth: number;
134
+ };
135
+ /** A pair of glyphs: one for Unicode-capable terminals, one for ASCII-only. */
136
+ export type SymbolPair = {
137
+ unicode: string;
138
+ ascii: string;
139
+ };
140
+ /** Semantic symbol tokens for status, navigation, structure, and interaction. */
141
+ export type SymbolTokens = {
142
+ /** Operation succeeded */
143
+ success: SymbolPair;
144
+ /** Operation failed */
145
+ error: SymbolPair;
146
+ /** Warning condition */
147
+ warning: SymbolPair;
148
+ /** Informational notice */
149
+ info: SymbolPair;
150
+ /** Not yet started */
151
+ pending: SymbolPair;
152
+ /** In progress (static representation) */
153
+ running: SymbolPair;
154
+ /** Intentionally skipped */
155
+ skipped: SymbolPair;
156
+ /** Tip/suggestion indicator */
157
+ tip: SymbolPair;
158
+ /** Vertical bar for body content connectors */
159
+ bar: SymbolPair;
160
+ /** Points to, leads to */
161
+ arrowRight: SymbolPair;
162
+ /** Returns to, back */
163
+ arrowLeft: SymbolPair;
164
+ /** Upward, increase */
165
+ arrowUp: SymbolPair;
166
+ /** Downward, decrease */
167
+ arrowDown: SymbolPair;
168
+ /** Current selection, active item */
169
+ pointer: SymbolPair;
170
+ /** Nested indicator */
171
+ pointerSmall: SymbolPair;
172
+ /** List item */
173
+ bullet: SymbolPair;
174
+ /** Separator, range */
175
+ dash: SymbolPair;
176
+ /** Truncation, continuation */
177
+ ellipsis: SymbolPair;
178
+ /** Separator in inline lists */
179
+ middot: SymbolPair;
180
+ /** Selected radio option */
181
+ radioOn: SymbolPair;
182
+ /** Unselected radio option */
183
+ radioOff: SymbolPair;
184
+ /** Checked checkbox */
185
+ checkboxOn: SymbolPair;
186
+ /** Unchecked checkbox */
187
+ checkboxOff: SymbolPair;
188
+ /** Cursor position in select list */
189
+ cursor: SymbolPair;
190
+ };
191
+ /** A complete set of box-drawing characters for one border style. */
192
+ export type BorderCharSet = {
193
+ topLeft: string;
194
+ topRight: string;
195
+ bottomLeft: string;
196
+ bottomRight: string;
197
+ horizontal: string;
198
+ vertical: string;
199
+ teeRight: string;
200
+ teeLeft: string;
201
+ teeDown: string;
202
+ teeUp: string;
203
+ cross: string;
204
+ };
205
+ /** Named border styles shipped with the design system. */
206
+ export type BorderStyleName = "rounded" | "single" | "double" | "heavy" | "dashed" | "ascii";
207
+ /** Border tokens: a default style and all available style character sets. */
208
+ export type BorderTokens = {
209
+ /** The default border style to use */
210
+ style: BorderStyleName;
211
+ /** All available border style character sets */
212
+ styles: Record<BorderStyleName, BorderCharSet>;
213
+ };
214
+ /** Characters for rendering tree structures. */
215
+ export type TreeCharSet = {
216
+ /** Intermediate child connector */
217
+ branch: string;
218
+ /** Last child connector */
219
+ last: string;
220
+ /** Continuation line */
221
+ vertical: string;
222
+ /** Indent after last child */
223
+ indent: string;
224
+ };
225
+ /** Tree drawing tokens with Unicode and ASCII variants. */
226
+ export type TreeTokens = {
227
+ unicode: TreeCharSet;
228
+ ascii: TreeCharSet;
229
+ };
230
+ /** Spinner animation frames with Unicode and ASCII variants. */
231
+ export type SpinnerDefinition = {
232
+ unicode: string[];
233
+ ascii: string[];
234
+ };
235
+ /** Motion tokens for animated elements — spinners, progress bars, timing. */
236
+ export type MotionTokens = {
237
+ /** Default spinner for indeterminate work */
238
+ spinnerDots: SpinnerDefinition;
239
+ /** Alternative minimal spinner */
240
+ spinnerLine: SpinnerDefinition;
241
+ /** Smooth circular spinner */
242
+ spinnerArc: SpinnerDefinition;
243
+ /** Completed portion of progress bar */
244
+ progressFilled: SymbolPair;
245
+ /** Remaining portion of progress bar */
246
+ progressPartial: SymbolPair;
247
+ /** Leading edge of progress bar */
248
+ progressHead: SymbolPair;
249
+ /** Frame interval for spinners (ms) */
250
+ spinnerInterval: number;
251
+ /** Update interval for progress bars (ms) */
252
+ progressInterval: number;
253
+ };
254
+ /** The complete set of all design tokens. */
255
+ export type TokenSet = {
256
+ color: ColorTokens;
257
+ type: TypographyTokens;
258
+ space: SpacingTokens;
259
+ layout: LayoutTokens;
260
+ symbol: SymbolTokens;
261
+ border: BorderTokens;
262
+ tree: TreeTokens;
263
+ motion: MotionTokens;
264
+ };
265
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tokens/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Token Type Definitions
3
+ *
4
+ * All token types for the CLI Design System. Tokens are named for what they
5
+ * mean, never for what they look like. Every component references tokens
6
+ * by semantic role, and the token engine resolves them to concrete values
7
+ * based on terminal capabilities.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tokens/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Semantic tokens — map UI roles to palette values.
3
+ *
4
+ * These tokens define *what* a color means in the CLI context,
5
+ * not *what* color it is. Change the palette, and all tokens update.
6
+ */
7
+ export declare const tokens: {
8
+ readonly success: "green";
9
+ readonly error: "red";
10
+ readonly warning: "yellow";
11
+ readonly info: "blue";
12
+ readonly tip: "#7FB3D5";
13
+ readonly muted: "gray";
14
+ readonly command: "#4EC9B0";
15
+ readonly danger: "#F67280";
16
+ readonly kit: "magenta";
17
+ readonly recipe: "cyan";
18
+ readonly cookbook: "magenta";
19
+ readonly highlight: "cyan";
20
+ readonly subtle: "gray";
21
+ readonly title: "cyan";
22
+ readonly heading: "yellow";
23
+ readonly version: "gray";
24
+ readonly path: "gray";
25
+ };
26
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;CAuBT,CAAC"}
package/dist/tokens.js ADDED
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Semantic tokens — map UI roles to palette values.
3
+ *
4
+ * These tokens define *what* a color means in the CLI context,
5
+ * not *what* color it is. Change the palette, and all tokens update.
6
+ */
7
+ import { palette } from "./palette.js";
8
+ export const tokens = {
9
+ // Status
10
+ success: palette.green,
11
+ error: palette.red,
12
+ warning: palette.yellow,
13
+ info: palette.blue,
14
+ tip: palette.tipBlue,
15
+ muted: palette.gray,
16
+ // CLI entities
17
+ command: palette.brand,
18
+ danger: palette.danger,
19
+ kit: palette.magenta,
20
+ recipe: palette.cyan,
21
+ cookbook: palette.magenta,
22
+ // Text roles
23
+ highlight: palette.cyan,
24
+ subtle: palette.gray,
25
+ title: palette.cyan,
26
+ heading: palette.yellow,
27
+ version: palette.gray,
28
+ path: palette.gray,
29
+ };
30
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,SAAS;IACT,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,KAAK,EAAE,OAAO,CAAC,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC,MAAM;IACvB,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,GAAG,EAAE,OAAO,CAAC,OAAO;IACpB,KAAK,EAAE,OAAO,CAAC,IAAI;IAEnB,eAAe;IACf,OAAO,EAAE,OAAO,CAAC,KAAK;IACtB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,GAAG,EAAE,OAAO,CAAC,OAAO;IACpB,MAAM,EAAE,OAAO,CAAC,IAAI;IACpB,QAAQ,EAAE,OAAO,CAAC,OAAO;IAEzB,aAAa;IACb,SAAS,EAAE,OAAO,CAAC,IAAI;IACvB,MAAM,EAAE,OAAO,CAAC,IAAI;IACpB,KAAK,EAAE,OAAO,CAAC,IAAI;IACnB,OAAO,EAAE,OAAO,CAAC,MAAM;IACvB,OAAO,EAAE,OAAO,CAAC,IAAI;IACrB,IAAI,EAAE,OAAO,CAAC,IAAI;CACT,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * cli-html type fixes.
3
+ *
4
+ * The published types in cli-html have incorrect HeadingStyle —
5
+ * they use `marker?: string` but the actual config uses `indicator: { marker, color }`.
6
+ * This module re-exports corrected types.
7
+ *
8
+ * Moved from core/src/logger/cli-html-types.ts.
9
+ */
10
+ import type { Config as CliHtmlConfig, Theme as CliHtmlTheme } from "cli-html";
11
+ export type { CliHtmlConfig, CliHtmlTheme };
12
+ export interface HeadingStyle {
13
+ color?: string;
14
+ indicator?: {
15
+ marker?: string;
16
+ color?: string;
17
+ };
18
+ }
19
+ /**
20
+ * cli-html Theme with corrected heading types.
21
+ */
22
+ export type Theme = Omit<CliHtmlTheme, "h1" | "h2" | "h3" | "h4" | "h5" | "h6"> & {
23
+ h1?: string | HeadingStyle;
24
+ h2?: string | HeadingStyle;
25
+ h3?: string | HeadingStyle;
26
+ h4?: string | HeadingStyle;
27
+ h5?: string | HeadingStyle;
28
+ h6?: string | HeadingStyle;
29
+ };
30
+ /**
31
+ * cli-html Config with corrected Theme type.
32
+ */
33
+ export interface HelpThemeConfig {
34
+ theme?: Theme;
35
+ lineWidth?: CliHtmlConfig["lineWidth"];
36
+ asciiMode?: boolean;
37
+ }
38
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,aAAa,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG;IACjF,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB"}
package/dist/types.js ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * cli-html type fixes.
3
+ *
4
+ * The published types in cli-html have incorrect HeadingStyle —
5
+ * they use `marker?: string` but the actual config uses `indicator: { marker, color }`.
6
+ * This module re-exports corrected types.
7
+ *
8
+ * Moved from core/src/logger/cli-html-types.ts.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}