silvery 0.19.2 → 0.21.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 (218) hide show
  1. package/README.md +9 -4
  2. package/dist/Text-Lq0dmj8-.mjs +239 -0
  3. package/dist/Text-Lq0dmj8-.mjs.map +1 -0
  4. package/dist/UPNG-Bo33r8rA.mjs +3 -0
  5. package/dist/UPNG-DosRPdF4.mjs +5075 -0
  6. package/dist/UPNG-DosRPdF4.mjs.map +1 -0
  7. package/dist/__vite-browser-external-2447137e-D_JM6skp.mjs +6 -0
  8. package/dist/__vite-browser-external-2447137e-D_JM6skp.mjs.map +1 -0
  9. package/dist/{animation-Cn64yepo.mjs → animation-ZMN2_XKv.mjs} +2 -2
  10. package/dist/animation-ZMN2_XKv.mjs.map +1 -0
  11. package/dist/{ansi-Cc33mW54.d.mts → ansi-2Xn0yatP.d.mts} +1 -1
  12. package/dist/{ansi-Cc33mW54.d.mts.map → ansi-2Xn0yatP.d.mts.map} +1 -1
  13. package/dist/{ansi-CLOitHKx.mjs → ansi-D1KQMAbf.mjs} +1 -1
  14. package/dist/{ansi-CLOitHKx.mjs.map → ansi-D1KQMAbf.mjs.map} +1 -1
  15. package/dist/ansi-yC4RyBNY.mjs +22441 -0
  16. package/dist/ansi-yC4RyBNY.mjs.map +1 -0
  17. package/dist/apng-CR08rIaH.mjs +58 -0
  18. package/dist/apng-CR08rIaH.mjs.map +1 -0
  19. package/dist/apng-DaHfVaVI.mjs +3 -0
  20. package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
  21. package/dist/assets/skia.darwin-arm64-DQs5sT6N.node +0 -0
  22. package/dist/backend-B-WYLUib.mjs +13396 -0
  23. package/dist/backend-B-WYLUib.mjs.map +1 -0
  24. package/dist/backends-CUtan80W.mjs +3 -0
  25. package/dist/backends-DIVYzKqd.mjs +1083 -0
  26. package/dist/backends-DIVYzKqd.mjs.map +1 -0
  27. package/dist/bound-term-0sPrrzH1.d.mts +4640 -0
  28. package/dist/bound-term-0sPrrzH1.d.mts.map +1 -0
  29. package/dist/canvas-1v7dPT-_.mjs +3 -0
  30. package/dist/canvas-CSuPOMNt.mjs +1442 -0
  31. package/dist/canvas-CSuPOMNt.mjs.map +1 -0
  32. package/dist/{chunk-Vs_PY4HZ.mjs → chunk-BSw8zbkd.mjs} +1 -1
  33. package/dist/cli-dvo0r2fs.mjs +4 -0
  34. package/dist/compare-CQodSH4G.mjs +376 -0
  35. package/dist/compare-CQodSH4G.mjs.map +1 -0
  36. package/dist/compare-DHlcxEYA.mjs +3 -0
  37. package/dist/context-BU5LkkIy.mjs.map +1 -1
  38. package/dist/devtools-CJdt5H0X.mjs +2 -0
  39. package/dist/{devtools-DxkSLXDA.mjs → devtools-DcQjgyjL.mjs} +5 -4
  40. package/dist/{devtools-DxkSLXDA.mjs.map → devtools-DcQjgyjL.mjs.map} +1 -1
  41. package/dist/easing-BI-ASGMO.d.mts +24 -0
  42. package/dist/easing-BI-ASGMO.d.mts.map +1 -0
  43. package/dist/{eta-Bb3RH3wh.mjs → eta-CJlGH06n.mjs} +1 -1
  44. package/dist/{eta-Bb3RH3wh.mjs.map → eta-CJlGH06n.mjs.map} +1 -1
  45. package/dist/flexily-zero-adapter-C3Vj0fPt.mjs +306 -0
  46. package/dist/flexily-zero-adapter-C3Vj0fPt.mjs.map +1 -0
  47. package/dist/{flexily-zero-adapter-CMxXhdOL.mjs → flexily-zero-adapter-C4lW_Ov5.mjs} +1 -1
  48. package/dist/fonts-BFmhXDv7.mjs +88 -0
  49. package/dist/fonts-BFmhXDv7.mjs.map +1 -0
  50. package/dist/gif-C_AjaT9d.mjs +188 -0
  51. package/dist/gif-C_AjaT9d.mjs.map +1 -0
  52. package/dist/gif-DaC4XrxA.mjs +3 -0
  53. package/dist/gifenc-BOUT-KFB.mjs +730 -0
  54. package/dist/gifenc-BOUT-KFB.mjs.map +1 -0
  55. package/dist/image-C2Birh2x.mjs +1252 -0
  56. package/dist/image-C2Birh2x.mjs.map +1 -0
  57. package/dist/index-BUMxS65f.d.mts +453 -0
  58. package/dist/index-BUMxS65f.d.mts.map +1 -0
  59. package/dist/{index-D3saHouR.d.mts → index-CSQf13CI.d.mts} +1057 -1133
  60. package/dist/index-CSQf13CI.d.mts.map +1 -0
  61. package/dist/{index-BXslOebb.d.mts → index-Cl9KKjQ_.d.mts} +4919 -3921
  62. package/dist/index-Cl9KKjQ_.d.mts.map +1 -0
  63. package/dist/index-XbNrPhWl.d.mts +336 -0
  64. package/dist/index-XbNrPhWl.d.mts.map +1 -0
  65. package/dist/index.d.mts +8 -5
  66. package/dist/index.d.mts.map +1 -1
  67. package/dist/index.mjs +14 -12
  68. package/dist/index.mjs.map +1 -1
  69. package/dist/key-mapping-CS-YD_cD.mjs +132 -0
  70. package/dist/key-mapping-CS-YD_cD.mjs.map +1 -0
  71. package/dist/key-mapping-Yn-Jgrij.mjs +3 -0
  72. package/dist/{layout-engine-B6Cdz1yZ.mjs → layout-engine-C07LEXWT.mjs} +1 -1
  73. package/dist/layout-engine-C2px0RJE.mjs +67 -0
  74. package/dist/layout-engine-C2px0RJE.mjs.map +1 -0
  75. package/dist/layout-signals-Cnw6xk8Q.mjs +988 -0
  76. package/dist/layout-signals-Cnw6xk8Q.mjs.map +1 -0
  77. package/dist/mouse-events-Dki3ISIp.mjs +1044 -0
  78. package/dist/mouse-events-Dki3ISIp.mjs.map +1 -0
  79. package/dist/{multi-progress-Bq9Oi_WI.mjs → multi-progress-CIRjrzma.mjs} +3 -3
  80. package/dist/{multi-progress-Bq9Oi_WI.mjs.map → multi-progress-CIRjrzma.mjs.map} +1 -1
  81. package/dist/{multi-progress-DAQC7eap.d.mts → multi-progress-DHZ2xUT2.d.mts} +2 -2
  82. package/dist/{multi-progress-DAQC7eap.d.mts.map → multi-progress-DHZ2xUT2.d.mts.map} +1 -1
  83. package/dist/{node-BeWlnCPY.mjs → node-CjM5Rt-M.mjs} +4 -4
  84. package/dist/node-CjM5Rt-M.mjs.map +1 -0
  85. package/dist/playwright-D5YiZcNS.mjs +76397 -0
  86. package/dist/playwright-D5YiZcNS.mjs.map +1 -0
  87. package/dist/png-codec-Dp84742B.mjs +36 -0
  88. package/dist/png-codec-Dp84742B.mjs.map +1 -0
  89. package/dist/png-codec-QwOtJ8Zs.mjs +3 -0
  90. package/dist/progress-DB_Xo071.mjs +675 -0
  91. package/dist/progress-DB_Xo071.mjs.map +1 -0
  92. package/dist/{progress-bar-CXE5Qfkd.mjs → progress-bar-oJwq22CR.mjs} +4 -4
  93. package/dist/{progress-bar-CXE5Qfkd.mjs.map → progress-bar-oJwq22CR.mjs.map} +1 -1
  94. package/dist/rasterizer-BRXrDdWx.mjs +3 -0
  95. package/dist/rasterizer-CpEhJvdR.mjs +296 -0
  96. package/dist/rasterizer-CpEhJvdR.mjs.map +1 -0
  97. package/dist/reconciler-DldIJB93.mjs +2083 -0
  98. package/dist/reconciler-DldIJB93.mjs.map +1 -0
  99. package/dist/{render-string-CDCeYkS3.mjs → render-string-BcoCpjCB.mjs} +1 -1
  100. package/dist/{render-string-Darrg7ku.mjs → render-string-DkQacASz.mjs} +2707 -549
  101. package/dist/render-string-DkQacASz.mjs.map +1 -0
  102. package/dist/resvg-js-DkOndZI3.mjs +203 -0
  103. package/dist/resvg-js-DkOndZI3.mjs.map +1 -0
  104. package/dist/runtime.d.mts +3 -2
  105. package/dist/runtime.mjs +3 -3
  106. package/dist/schemes-JjNp4aSl.mjs +2611 -0
  107. package/dist/schemes-JjNp4aSl.mjs.map +1 -0
  108. package/dist/{spinner-CGo34vyR.d.mts → spinner-CZINHpkV.d.mts} +2 -2
  109. package/dist/{spinner-CGo34vyR.d.mts.map → spinner-CZINHpkV.d.mts.map} +1 -1
  110. package/dist/{spinner-CeOmcuw_.mjs → spinner-D9lrHr8s.mjs} +7 -7
  111. package/dist/spinner-D9lrHr8s.mjs.map +1 -0
  112. package/dist/src-5w9QR6_8.mjs +1071 -0
  113. package/dist/src-5w9QR6_8.mjs.map +1 -0
  114. package/dist/src-BNTToU7l.mjs +4387 -0
  115. package/dist/src-BNTToU7l.mjs.map +1 -0
  116. package/dist/{src-CF-6UN01.mjs → src-BR4xNwdG.mjs} +10436 -2622
  117. package/dist/src-BR4xNwdG.mjs.map +1 -0
  118. package/dist/{types-Bk2yw9Qj.mjs → src-DKp-_OFG.mjs} +34 -94
  119. package/dist/src-DKp-_OFG.mjs.map +1 -0
  120. package/dist/src-bt8wSrfJ.mjs +258 -0
  121. package/dist/src-bt8wSrfJ.mjs.map +1 -0
  122. package/dist/src-e33Y6kNJ.mjs +3 -0
  123. package/dist/src-iDwu25UD.mjs +1814 -0
  124. package/dist/src-iDwu25UD.mjs.map +1 -0
  125. package/dist/steps-Bp2uNqnn.d.mts +202 -0
  126. package/dist/steps-Bp2uNqnn.d.mts.map +1 -0
  127. package/dist/svg-15lZZzxq.mjs +486 -0
  128. package/dist/svg-15lZZzxq.mjs.map +1 -0
  129. package/dist/svg-Cz0UXcDj.mjs +255 -0
  130. package/dist/svg-Cz0UXcDj.mjs.map +1 -0
  131. package/dist/svg-DY72a4HK.mjs +3 -0
  132. package/dist/svg-g1D6ErwR.d.mts +82 -0
  133. package/dist/svg-g1D6ErwR.d.mts.map +1 -0
  134. package/dist/term.d.mts +3 -0
  135. package/dist/term.mjs +9 -0
  136. package/dist/term.mjs.map +1 -0
  137. package/dist/theme.d.mts +95 -2
  138. package/dist/theme.d.mts.map +1 -0
  139. package/dist/theme.mjs +9 -3
  140. package/dist/theme.mjs.map +1 -0
  141. package/dist/{types-BH_v3iMT.d.mts → types-kt_fKR37.d.mts} +2 -15
  142. package/dist/types-kt_fKR37.d.mts.map +1 -0
  143. package/dist/ui/animation.d.mts +2 -1
  144. package/dist/ui/animation.mjs +1 -1
  145. package/dist/ui/ansi.d.mts +1 -1
  146. package/dist/ui/ansi.mjs +1 -1
  147. package/dist/ui/cli.d.mts +3 -3
  148. package/dist/ui/cli.mjs +5 -5
  149. package/dist/ui/display.d.mts +1 -1
  150. package/dist/ui/image.d.mts +2 -2
  151. package/dist/ui/image.mjs +2 -2
  152. package/dist/ui/input.d.mts +1 -1
  153. package/dist/ui/input.mjs +4 -2
  154. package/dist/ui/input.mjs.map +1 -1
  155. package/dist/ui/progress.d.mts +5 -249
  156. package/dist/ui/progress.mjs +5 -858
  157. package/dist/ui/react.d.mts +1 -1
  158. package/dist/ui/react.mjs +2 -2
  159. package/dist/ui/recording-chrome-react.d.mts +21 -0
  160. package/dist/ui/recording-chrome-react.d.mts.map +1 -0
  161. package/dist/ui/recording-chrome-react.mjs +105 -0
  162. package/dist/ui/recording-chrome-react.mjs.map +1 -0
  163. package/dist/ui/recording-chrome.d.mts +2 -0
  164. package/dist/ui/recording-chrome.mjs +2 -0
  165. package/dist/ui/utils.mjs +1 -1
  166. package/dist/ui/wrappers.d.mts +3 -3
  167. package/dist/ui/wrappers.mjs +2 -2
  168. package/dist/ui.d.mts +7 -6
  169. package/dist/ui.mjs +8 -7
  170. package/dist/{useLatest-Bg2x4bfP.d.mts → useLatest-DRDDVwjh.d.mts} +5 -25
  171. package/dist/useLatest-DRDDVwjh.d.mts.map +1 -0
  172. package/dist/{with-text-input-CRfoiFFG.d.mts → with-text-input-YeohVLeo.d.mts} +4 -55
  173. package/dist/with-text-input-YeohVLeo.d.mts.map +1 -0
  174. package/dist/wrapper-C70ATkVv.mjs +3527 -0
  175. package/dist/wrapper-C70ATkVv.mjs.map +1 -0
  176. package/dist/{wrappers-UTADQkSY.mjs → wrappers-BCUYITrY.mjs} +5 -157
  177. package/dist/wrappers-BCUYITrY.mjs.map +1 -0
  178. package/dist/{yoga-adapter-8oRGRw8V.mjs → yoga-adapter-BnZX1PAY.mjs} +28 -2
  179. package/dist/yoga-adapter-BnZX1PAY.mjs.map +1 -0
  180. package/dist/yoga-adapter-DxgsQ_gg.mjs +2 -0
  181. package/dist/zipBundle-3nqeDRtm.mjs +3 -0
  182. package/dist/zipBundle-VNAYFmqJ.mjs +2003 -0
  183. package/dist/zipBundle-VNAYFmqJ.mjs.map +1 -0
  184. package/package.json +20 -9
  185. package/dist/animation-Cn64yepo.mjs.map +0 -1
  186. package/dist/cli-BKp0YtBD.mjs +0 -4
  187. package/dist/devtools-9QY4teqI.mjs +0 -2
  188. package/dist/flexily-zero-adapter-BlQa46nr.mjs +0 -3385
  189. package/dist/flexily-zero-adapter-BlQa46nr.mjs.map +0 -1
  190. package/dist/image-CTII5QWI.mjs +0 -477
  191. package/dist/image-CTII5QWI.mjs.map +0 -1
  192. package/dist/index-BXslOebb.d.mts.map +0 -1
  193. package/dist/index-BnA7mNpo.d.mts +0 -175
  194. package/dist/index-BnA7mNpo.d.mts.map +0 -1
  195. package/dist/index-D3saHouR.d.mts.map +0 -1
  196. package/dist/layout-engine-ClUgv6jB.mjs +0 -50
  197. package/dist/layout-engine-ClUgv6jB.mjs.map +0 -1
  198. package/dist/node-BeWlnCPY.mjs.map +0 -1
  199. package/dist/reconciler-Cwgm8hRR.mjs +0 -8459
  200. package/dist/reconciler-Cwgm8hRR.mjs.map +0 -1
  201. package/dist/render-string-Darrg7ku.mjs.map +0 -1
  202. package/dist/spinner-CeOmcuw_.mjs.map +0 -1
  203. package/dist/src-B5GjfG7g.mjs +0 -4305
  204. package/dist/src-B5GjfG7g.mjs.map +0 -1
  205. package/dist/src-CChwjk0Z.mjs +0 -738
  206. package/dist/src-CChwjk0Z.mjs.map +0 -1
  207. package/dist/src-CF-6UN01.mjs.map +0 -1
  208. package/dist/src-NCKb8kE5.mjs +0 -2660
  209. package/dist/src-NCKb8kE5.mjs.map +0 -1
  210. package/dist/types-BH_v3iMT.d.mts.map +0 -1
  211. package/dist/types-Bk2yw9Qj.mjs.map +0 -1
  212. package/dist/ui/progress.d.mts.map +0 -1
  213. package/dist/ui/progress.mjs.map +0 -1
  214. package/dist/useLatest-Bg2x4bfP.d.mts.map +0 -1
  215. package/dist/with-text-input-CRfoiFFG.d.mts.map +0 -1
  216. package/dist/wrappers-UTADQkSY.mjs.map +0 -1
  217. package/dist/yoga-adapter-8oRGRw8V.mjs.map +0 -1
  218. package/dist/yoga-adapter-D_CcxSt5.mjs +0 -2
@@ -0,0 +1,453 @@
1
+ import { J as AnsiPrimary, X as ColorScheme, Z as HueName, mt as Theme } from "./index-CSQf13CI.mjs";
2
+
3
+ //#region packages/theme/src/generate.d.ts
4
+ /**
5
+ * Generate a complete ANSI 16 theme from a primary color + dark/light preference.
6
+ *
7
+ * All token values are hex strings (e.g. "#808000" for yellow).
8
+ * Terminal rendering quantizes these to 4-bit ANSI codes at paint time
9
+ * when colorLevel === "ansi16".
10
+ */
11
+ declare function generateTheme(primary: AnsiPrimary, dark: boolean): Theme;
12
+ //#endregion
13
+ //#region packages/theme/src/generators.d.ts
14
+ /** Find which hue slot the primary color best matches by OKLCH hue angle proximity. */
15
+ declare function assignPrimaryToSlot(primary: string): HueName;
16
+ /**
17
+ * Generate a ColorScheme from a Base16 YAML scheme.
18
+ *
19
+ * Maps base00–base0F to ANSI palette colors, derives special colors.
20
+ */
21
+ declare function fromBase16(yamlOrJson: string): ColorScheme;
22
+ interface FromColorsOptions {
23
+ /** Background color (infers dark/light). */
24
+ background?: string;
25
+ /** Foreground/text color. Generated if omitted. */
26
+ foreground?: string;
27
+ /** Primary accent color. Generated if omitted. */
28
+ primary?: string;
29
+ /** Force dark mode. */
30
+ dark?: boolean;
31
+ /** Theme name. */
32
+ name?: string;
33
+ }
34
+ /**
35
+ * Generate a full ColorScheme from 1-3 hex colors.
36
+ *
37
+ * At minimum, provide `background` or `primary`. Missing colors are
38
+ * generated via surface ramp (from bg) and hue rotation (from primary).
39
+ */
40
+ declare function fromColors(opts: FromColorsOptions): ColorScheme;
41
+ /**
42
+ * Look up a built-in palette by name.
43
+ *
44
+ * @returns The ColorScheme, or undefined if not found.
45
+ */
46
+ declare function fromPreset(name: string): ColorScheme | undefined;
47
+ //#endregion
48
+ //#region packages/theme/src/builder.d.ts
49
+ interface ThemeBuilder {
50
+ /** Set background color. */
51
+ bg(color: string): ThemeBuilder;
52
+ /** Set foreground color. */
53
+ fg(color: string): ThemeBuilder;
54
+ /** Set primary accent color. */
55
+ primary(color: string): ThemeBuilder;
56
+ /** Alias for `.primary()`. */
57
+ accent(color: string): ThemeBuilder;
58
+ /** Force dark mode. */
59
+ dark(): ThemeBuilder;
60
+ /** Force light mode. */
61
+ light(): ThemeBuilder;
62
+ /** Set any palette color by name. */
63
+ color(name: keyof Omit<ColorScheme, "name" | "dark">, value: string): ThemeBuilder;
64
+ /** Set full palette at once. */
65
+ palette(p: ColorScheme): ThemeBuilder;
66
+ /** Load a built-in palette by name. */
67
+ preset(name: string): ThemeBuilder;
68
+ /** Derive the final Theme from accumulated state. */
69
+ build(): Theme;
70
+ }
71
+ /** Create a chainable theme builder. */
72
+ declare function createTheme(): ThemeBuilder;
73
+ /**
74
+ * Quick theme from a primary color or color name.
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * quickTheme('#EBCB8B', 'dark') // yellow primary, dark mode
79
+ * quickTheme('blue') // blue primary, default dark
80
+ * ```
81
+ */
82
+ declare function quickTheme(primaryOrHex: string, mode?: "dark" | "light"): Theme;
83
+ /**
84
+ * Create a theme from a built-in preset name.
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * presetTheme('catppuccin-mocha')
89
+ * presetTheme('nord')
90
+ * ```
91
+ */
92
+ declare function presetTheme(name: string): Theme;
93
+ //#endregion
94
+ //#region packages/theme/src/auto-generate.d.ts
95
+ /**
96
+ * Generate a complete Theme from a single primary color.
97
+ *
98
+ * Derives a full ColorScheme using OKLCH color manipulation:
99
+ * - Background/foreground from lightness endpoints using the primary's hue
100
+ * - Complementary and analogous accent colors from hue rotation
101
+ * - Surface ramp from bg lightness offsets
102
+ * - Status colors (error, warning, success, info) from standard hue positions
103
+ *
104
+ * @param primaryColor - A hex color string (e.g. "#5E81AC")
105
+ * @param mode - "dark" or "light" theme mode
106
+ * @returns A complete Theme with all 33 semantic tokens
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const theme = autoGenerateTheme("#5E81AC", "dark")
111
+ * // Generates a full dark theme with blue as the primary accent
112
+ *
113
+ * const light = autoGenerateTheme("#E06C75", "light")
114
+ * // Generates a full light theme with red/rose as the primary accent
115
+ * ```
116
+ */
117
+ declare function autoGenerateTheme(primaryColor: string, mode: "dark" | "light"): Theme;
118
+ //#endregion
119
+ //#region packages/theme/src/validate.d.ts
120
+ /** Validation result from validateColorScheme(). */
121
+ interface ValidationResult {
122
+ valid: boolean;
123
+ errors: string[];
124
+ warnings: string[];
125
+ }
126
+ /**
127
+ * Validate a ColorScheme.
128
+ *
129
+ * Checks:
130
+ * - All 22 color fields are present and non-empty hex strings
131
+ * - Warns on low-contrast foreground/background combinations
132
+ */
133
+ declare function validateColorScheme(p: ColorScheme): ValidationResult;
134
+ //#endregion
135
+ //#region packages/theme/src/validate-theme.d.ts
136
+ /**
137
+ * Theme validation — checks that all required semantic tokens are present.
138
+ *
139
+ * Complements validateColorScheme() which validates the lower-level
140
+ * ColorScheme. This validates the derived Theme object.
141
+ */
142
+ /**
143
+ * Required semantic token keys on Theme (excludes `name` and `palette`).
144
+ *
145
+ * Sterling owns selection / inverse / link styling via flat tokens
146
+ * (`bg-selected`, `fg-on-selected`, `bg-inverse`, `fg-on-inverse`, `fg-link`)
147
+ * baked in by `inlineSterlingTokens`. The legacy single-hex aliases
148
+ * (`selection`, `selectionbg`, `inverse`, `inversebg`, `link`) were removed
149
+ * in 0.21.0 (sterling-purge-legacy-tokens).
150
+ */
151
+ declare const THEME_TOKEN_KEYS: readonly string[];
152
+ /** Result of theme validation. */
153
+ interface ThemeValidationResult {
154
+ /** Whether the theme has all required tokens. */
155
+ valid: boolean;
156
+ /** Token keys that are required but missing or empty. */
157
+ missing: string[];
158
+ /** Token keys that exist on the object but are not recognized theme tokens. */
159
+ extra: string[];
160
+ }
161
+ /**
162
+ * Validate a Theme object — check that all required tokens are present.
163
+ *
164
+ * @param theme - The theme object to validate
165
+ * @returns Validation result with missing and extra token lists
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const result = validateTheme(myTheme)
170
+ * if (!result.valid) {
171
+ * console.log("Missing tokens:", result.missing)
172
+ * }
173
+ * ```
174
+ */
175
+ declare function validateTheme(theme: Record<string, unknown>): ThemeValidationResult;
176
+ //#endregion
177
+ //#region packages/theme/src/alias.d.ts
178
+ /**
179
+ * Resolve all token aliases in a theme.
180
+ *
181
+ * Token values that start with `$` are treated as references to other tokens.
182
+ * Alias chains are followed until a concrete (non-$) value is reached.
183
+ * Circular references are detected via a depth limit and left unresolved.
184
+ *
185
+ * @param theme - A theme-like object where values may reference other tokens via `$name`
186
+ * @returns A new object with all aliases resolved to concrete values
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * const themed = resolveAliases({
191
+ * ...baseTheme,
192
+ * button: "$primary", // resolves to the value of 'primary'
193
+ * buttonHover: "$button", // chain: buttonHover -> button -> primary -> hex
194
+ * })
195
+ * ```
196
+ */
197
+ declare function resolveAliases(theme: Record<string, string>): Record<string, string>;
198
+ /**
199
+ * Resolve a single alias value against a Theme.
200
+ *
201
+ * Useful for resolving individual values without processing the entire theme.
202
+ *
203
+ * @param value - The value to resolve (may be "$tokenName" or a concrete value)
204
+ * @param theme - The theme to resolve against
205
+ * @returns The resolved concrete value
206
+ */
207
+ declare function resolveTokenAlias(value: string, theme: Theme): string;
208
+ //#endregion
209
+ //#region packages/theme/src/css.d.ts
210
+ /**
211
+ * Convert a Theme to CSS custom properties.
212
+ *
213
+ * Token names mirror Sterling's flat grammar with a `--` prefix:
214
+ * - `bg-surface-default` → `--bg-surface-default`
215
+ * - `fg-accent` → `--fg-accent`
216
+ * - `border-focus` → `--border-focus`
217
+ * - Palette entries: `--color0` through `--color15`
218
+ *
219
+ * @param theme - The theme to convert (Sterling flat tokens must be populated)
220
+ * @returns A record mapping CSS custom property names to color values
221
+ *
222
+ * @example
223
+ * ```typescript
224
+ * const vars = themeToCSSVars(myTheme)
225
+ * // { "--bg-surface-default": "#1E1E2E", "--fg-accent": "#F9E2AF", ... }
226
+ *
227
+ * // Apply to an element:
228
+ * Object.assign(element.style, vars)
229
+ * ```
230
+ */
231
+ declare function themeToCSSVars(theme: Theme): Record<string, string>;
232
+ //#endregion
233
+ //#region packages/theme/src/import/types.d.ts
234
+ /**
235
+ * Base16 scheme type — the 16-color format used by hundreds of community themes.
236
+ *
237
+ * @see https://github.com/chriskempson/base16
238
+ */
239
+ /** A parsed Base16 color scheme. All hex values are WITHOUT `#` prefix. */
240
+ interface Base16Scheme {
241
+ scheme: string;
242
+ author: string;
243
+ base00: string;
244
+ base01: string;
245
+ base02: string;
246
+ base03: string;
247
+ base04: string;
248
+ base05: string;
249
+ base06: string;
250
+ base07: string;
251
+ base08: string;
252
+ base09: string;
253
+ base0A: string;
254
+ base0B: string;
255
+ base0C: string;
256
+ base0D: string;
257
+ base0E: string;
258
+ base0F: string;
259
+ }
260
+ //#endregion
261
+ //#region packages/theme/src/import/base16.d.ts
262
+ /**
263
+ * Import a Base16 YAML (or JSON) scheme into a ColorScheme.
264
+ *
265
+ * Mapping:
266
+ * base00 → background, base01 → brightBlack, base02 → selectionBackground,
267
+ * base03 → white (muted fg), base05 → foreground/brightWhite,
268
+ * base08 → red, base09 → brightRed, base0A → yellow,
269
+ * base0B → green, base0C → cyan, base0D → blue, base0E → magenta,
270
+ * base0F → brightMagenta.
271
+ *
272
+ * Bright color variants are derived by brightening normals.
273
+ * `dark` is inferred from base00 luminance.
274
+ */
275
+ declare function importBase16(yamlOrJson: string): ColorScheme;
276
+ //#endregion
277
+ //#region packages/theme/src/export/base16.d.ts
278
+ /**
279
+ * Export a ColorScheme to Base16 YAML format.
280
+ *
281
+ * Mapping:
282
+ * background → base00, brightBlack → base01, selectionBackground → base02,
283
+ * white → base03, (interpolated) → base04, foreground → base05,
284
+ * (interpolated) → base06, (interpolated) → base07,
285
+ * red → base08, brightRed → base09, yellow → base0A, green → base0B,
286
+ * cyan → base0C, blue → base0D, magenta → base0E, brightMagenta → base0F.
287
+ */
288
+ declare function exportBase16(palette: ColorScheme): string;
289
+ //#endregion
290
+ //#region packages/theme/src/schemes/catppuccin.d.ts
291
+ /** Catppuccin Mocha — the classic dark variant. */
292
+ declare const catppuccinMocha: ColorScheme;
293
+ /** Catppuccin Frappe — muted dark variant. */
294
+ declare const catppuccinFrappe: ColorScheme;
295
+ /** Catppuccin Macchiato — warm dark variant. */
296
+ declare const catppuccinMacchiato: ColorScheme;
297
+ /** Catppuccin Latte — the light variant. */
298
+ declare const catppuccinLatte: ColorScheme;
299
+ //#endregion
300
+ //#region packages/theme/src/schemes/nord.d.ts
301
+ /** Nord — the classic dark arctic theme. */
302
+ declare const nord: ColorScheme;
303
+ //#endregion
304
+ //#region packages/theme/src/schemes/dracula.d.ts
305
+ /** Dracula — vibrant dark theme. */
306
+ declare const dracula: ColorScheme;
307
+ //#endregion
308
+ //#region packages/theme/src/schemes/solarized.d.ts
309
+ /** Solarized Dark — Ethan Schoonover's classic dark variant. */
310
+ declare const solarizedDark: ColorScheme;
311
+ /** Solarized Light — Ethan Schoonover's classic light variant. */
312
+ declare const solarizedLight: ColorScheme;
313
+ //#endregion
314
+ //#region packages/theme/src/schemes/tokyo-night.d.ts
315
+ /** Tokyo Night — the default dark variant. */
316
+ declare const tokyoNight: ColorScheme;
317
+ /** Tokyo Night Storm — slightly lighter background. */
318
+ declare const tokyoNightStorm: ColorScheme;
319
+ /** Tokyo Night Day — the light variant. */
320
+ declare const tokyoNightDay: ColorScheme;
321
+ //#endregion
322
+ //#region packages/theme/src/schemes/one-dark.d.ts
323
+ /** One Dark — the classic Atom editor theme. */
324
+ declare const oneDark: ColorScheme;
325
+ //#endregion
326
+ //#region packages/theme/src/schemes/gruvbox.d.ts
327
+ /** Gruvbox Dark — warm retro dark theme. */
328
+ declare const gruvboxDark: ColorScheme;
329
+ /** Gruvbox Light — warm retro light theme. */
330
+ declare const gruvboxLight: ColorScheme;
331
+ //#endregion
332
+ //#region packages/theme/src/schemes/rose-pine.d.ts
333
+ /** Rosé Pine — the main dark variant. */
334
+ declare const rosePine: ColorScheme;
335
+ /** Rosé Pine Moon — slightly lighter dark variant. */
336
+ declare const rosePineMoon: ColorScheme;
337
+ /** Rosé Pine Dawn — the light variant. */
338
+ declare const rosePineDawn: ColorScheme;
339
+ //#endregion
340
+ //#region packages/theme/src/schemes/kanagawa.d.ts
341
+ /** Kanagawa Wave — the default dark variant, inspired by "The Great Wave off Kanagawa". */
342
+ declare const kanagawaWave: ColorScheme;
343
+ /** Kanagawa Dragon — a muted, earthy dark variant. */
344
+ declare const kanagawaDragon: ColorScheme;
345
+ /** Kanagawa Lotus — the light variant, inspired by lotus flowers. */
346
+ declare const kanagawaLotus: ColorScheme;
347
+ //#endregion
348
+ //#region packages/theme/src/schemes/everforest.d.ts
349
+ /** Everforest Dark — warm green-based dark theme (medium background). */
350
+ declare const everforestDark: ColorScheme;
351
+ /** Everforest Light — warm green-based light theme (medium background). */
352
+ declare const everforestLight: ColorScheme;
353
+ //#endregion
354
+ //#region packages/theme/src/schemes/monokai.d.ts
355
+ /** Monokai Classic — the original Sublime Text Monokai colors. */
356
+ declare const monokai: ColorScheme;
357
+ /** Monokai Pro — the modern, refined Monokai with balanced colors. */
358
+ declare const monokaiPro: ColorScheme;
359
+ //#endregion
360
+ //#region packages/theme/src/schemes/snazzy.d.ts
361
+ /** Snazzy — clean dark theme by Sindre Sorhus. */
362
+ declare const snazzy: ColorScheme;
363
+ //#endregion
364
+ //#region packages/theme/src/schemes/material.d.ts
365
+ /** Material Darker — the deep dark Material variant. */
366
+ declare const materialDark: ColorScheme;
367
+ /** Material Lighter — the light Material variant. */
368
+ declare const materialLight: ColorScheme;
369
+ //#endregion
370
+ //#region packages/theme/src/schemes/palenight.d.ts
371
+ /** Palenight — the soft, purple-tinted Material dark variant. */
372
+ declare const palenight: ColorScheme;
373
+ //#endregion
374
+ //#region packages/theme/src/schemes/ayu.d.ts
375
+ /** Ayu Dark — deep dark variant with warm accents. */
376
+ declare const ayuDark: ColorScheme;
377
+ /** Ayu Mirage — balanced dark variant with softer contrast. */
378
+ declare const ayuMirage: ColorScheme;
379
+ /** Ayu Light — clean light variant. */
380
+ declare const ayuLight: ColorScheme;
381
+ //#endregion
382
+ //#region packages/theme/src/schemes/nightfox.d.ts
383
+ /** Nightfox — dark blue-toned variant. */
384
+ declare const nightfox: ColorScheme;
385
+ /** Dawnfox — warm light variant inspired by Rose Pine Dawn. */
386
+ declare const dawnfox: ColorScheme;
387
+ //#endregion
388
+ //#region packages/theme/src/schemes/horizon.d.ts
389
+ /** Horizon — warm dark variant with vivid accents. */
390
+ declare const horizon: ColorScheme;
391
+ //#endregion
392
+ //#region packages/theme/src/schemes/moonfly.d.ts
393
+ /** Moonfly — dark charcoal theme. */
394
+ declare const moonfly: ColorScheme;
395
+ //#endregion
396
+ //#region packages/theme/src/schemes/nightfly.d.ts
397
+ /** Nightfly — midnight-blue dark theme. */
398
+ declare const nightfly: ColorScheme;
399
+ //#endregion
400
+ //#region packages/theme/src/schemes/oxocarbon.d.ts
401
+ /** Oxocarbon Dark — IBM Carbon-inspired dark variant. */
402
+ declare const oxocarbonDark: ColorScheme;
403
+ /** Oxocarbon Light — IBM Carbon-inspired light variant. */
404
+ declare const oxocarbonLight: ColorScheme;
405
+ //#endregion
406
+ //#region packages/theme/src/schemes/sonokai.d.ts
407
+ /** Sonokai — vivid dark theme with Monokai-inspired accents. */
408
+ declare const sonokai: ColorScheme;
409
+ //#endregion
410
+ //#region packages/theme/src/schemes/edge.d.ts
411
+ /** Edge Dark — clean dark variant with balanced accents. */
412
+ declare const edgeDark: ColorScheme;
413
+ /** Edge Light — clean, readable light variant. */
414
+ declare const edgeLight: ColorScheme;
415
+ //#endregion
416
+ //#region packages/theme/src/schemes/modus.d.ts
417
+ /** Modus Vivendi — elegant dark theme with maximum legibility. */
418
+ declare const modusVivendi: ColorScheme;
419
+ /** Modus Operandi — elegant light theme with maximum legibility. */
420
+ declare const modusOperandi: ColorScheme;
421
+ //#endregion
422
+ //#region packages/theme/src/schemes/index.d.ts
423
+ /**
424
+ * Dark ANSI 16 theme — hex-valued, derived from the default dark scheme.
425
+ * All token values are hex strings (no ANSI slot names).
426
+ * Terminal rendering quantizes hex to 4-bit ANSI codes when colorLevel === "ansi16".
427
+ *
428
+ * Sterling flat tokens (`bg-surface-subtle`, `fg-on-accent`, `border-focus`, …)
429
+ * are baked in by `@silvery/ansi`'s `deriveAnsi16Theme` — consumers read either
430
+ * legacy fields or Sterling flat keys off the same object.
431
+ */
432
+ declare const ansi16DarkTheme: Theme;
433
+ /**
434
+ * Light ANSI 16 theme — hex-valued, derived from the default light scheme.
435
+ * All token values are hex strings (no ANSI slot names).
436
+ * Terminal rendering quantizes hex to 4-bit ANSI codes when colorLevel === "ansi16".
437
+ */
438
+ declare const ansi16LightTheme: Theme;
439
+ /** Dark truecolor theme — derived from Nord. Sterling flat tokens baked in by `deriveTheme`. */
440
+ declare const defaultDarkTheme: Theme;
441
+ /** Light truecolor theme — derived from Catppuccin Latte. Sterling flat tokens baked in by `deriveTheme`. */
442
+ declare const defaultLightTheme: Theme;
443
+ /** All built-in ColorScheme definitions (70+ palettes). */
444
+ declare const builtinPalettes: Record<string, ColorScheme>;
445
+ /** All built-in themes, indexed by name (includes backward-compat aliases). */
446
+ declare const builtinThemes: Record<string, Theme>;
447
+ /** Resolve a theme by name. Defaults to dark-ansi16. */
448
+ declare function getThemeByName(name?: string): Theme;
449
+ /** Resolve a palette by name. Returns undefined if not found. */
450
+ declare function getSchemeByName(name: string): ColorScheme | undefined;
451
+ //#endregion
452
+ export { importBase16 as $, everforestDark as A, oneDark as B, ayuMirage as C, snazzy as D, materialLight as E, rosePine as F, solarizedLight as G, tokyoNightDay as H, rosePineDawn as I, catppuccinFrappe as J, dracula as K, rosePineMoon as L, kanagawaDragon as M, kanagawaLotus as N, monokai as O, kanagawaWave as P, exportBase16 as Q, gruvboxDark as R, ayuLight as S, materialDark as T, tokyoNightStorm as U, tokyoNight as V, solarizedDark as W, catppuccinMacchiato as X, catppuccinLatte as Y, catppuccinMocha as Z, moonfly as _, generateTheme as _t, defaultDarkTheme as a, ThemeValidationResult as at, nightfox as b, getThemeByName as c, validateColorScheme as ct, edgeDark as d, presetTheme as dt, Base16Scheme as et, edgeLight as f, quickTheme as ft, nightfly as g, fromPreset as gt, oxocarbonLight as h, fromColors as ht, builtinThemes as i, THEME_TOKEN_KEYS as it, everforestLight as j, monokaiPro as k, modusOperandi as l, autoGenerateTheme as lt, oxocarbonDark as m, fromBase16 as mt, ansi16LightTheme as n, resolveAliases as nt, defaultLightTheme as o, validateTheme as ot, sonokai as p, assignPrimaryToSlot as pt, nord as q, builtinPalettes as r, resolveTokenAlias as rt, getSchemeByName as s, ValidationResult as st, ansi16DarkTheme as t, themeToCSSVars as tt, modusVivendi as u, createTheme as ut, horizon as v, palenight as w, ayuDark as x, dawnfox as y, gruvboxLight as z };
453
+ //# sourceMappingURL=index-BUMxS65f.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BUMxS65f.d.mts","names":[],"sources":["../packages/theme/src/generate.ts","../packages/theme/src/generators.ts","../packages/theme/src/builder.ts","../packages/theme/src/auto-generate.ts","../packages/theme/src/validate.ts","../packages/theme/src/validate-theme.ts","../packages/theme/src/alias.ts","../packages/theme/src/css.ts","../packages/theme/src/import/types.ts","../packages/theme/src/import/base16.ts","../packages/theme/src/export/base16.ts","../packages/theme/src/schemes/catppuccin.ts","../packages/theme/src/schemes/nord.ts","../packages/theme/src/schemes/dracula.ts","../packages/theme/src/schemes/solarized.ts","../packages/theme/src/schemes/tokyo-night.ts","../packages/theme/src/schemes/one-dark.ts","../packages/theme/src/schemes/gruvbox.ts","../packages/theme/src/schemes/rose-pine.ts","../packages/theme/src/schemes/kanagawa.ts","../packages/theme/src/schemes/everforest.ts","../packages/theme/src/schemes/monokai.ts","../packages/theme/src/schemes/snazzy.ts","../packages/theme/src/schemes/material.ts","../packages/theme/src/schemes/palenight.ts","../packages/theme/src/schemes/ayu.ts","../packages/theme/src/schemes/nightfox.ts","../packages/theme/src/schemes/horizon.ts","../packages/theme/src/schemes/moonfly.ts","../packages/theme/src/schemes/nightfly.ts","../packages/theme/src/schemes/oxocarbon.ts","../packages/theme/src/schemes/sonokai.ts","../packages/theme/src/schemes/edge.ts","../packages/theme/src/schemes/modus.ts","../packages/theme/src/schemes/index.ts"],"mappings":";;;;;;;;;;iBA4BgB,aAAA,CAAc,OAAA,EAAS,WAAA,EAAa,IAAA,YAAgB,KAAA;;;;iBCapD,mBAAA,CAAoB,OAAA,WAAkB,OAAA;;;;;;iBAwDtC,UAAA,CAAW,UAAA,WAAqB,WAAA;AAAA,UAQtC,iBAAA;;EAER,UAAA;EAlEiC;EAoEjC,UAAA;EApEkC;EAsElC,OAAA;EAdc;EAgBd,IAAA;;EAEA,IAAA;AAAA;AAhBD;;;;;;AAAA,iBAyBe,UAAA,CAAW,IAAA,EAAM,iBAAA,GAAoB,WAAA;;;;;AAArD;iBAkEgB,UAAA,CAAW,IAAA,WAAe,WAAA;;;UC7IzB,YAAA;EDgDD;EC9Cd,EAAA,CAAG,KAAA,WAAgB,YAAA;;EAEnB,EAAA,CAAG,KAAA,WAAgB,YAAA;ED4CsC;EC1CzD,OAAA,CAAQ,KAAA,WAAgB,YAAA;EDkDC;EChDzB,MAAA,CAAO,KAAA,WAAgB,YAAA;EDgDE;EC9CzB,IAAA,IAAQ,YAAA;EDkDR;EChDA,KAAA,IAAS,YAAA;EDoDT;EClDA,KAAA,CAAM,IAAA,QAAY,IAAA,CAAK,WAAA,oBAA+B,KAAA,WAAgB,YAAA;EDoDlE;EClDJ,OAAA,CAAQ,CAAA,EAAG,WAAA,GAAc,YAAA;ED2DX;ECzDd,MAAA,CAAO,IAAA,WAAe,YAAA;;EAEtB,KAAA,IAAS,KAAA;AAAA;;iBAIK,WAAA,CAAA,GAAe,YAAA;;;ADqH/B;;;;;;;iBCNgB,UAAA,CAAW,YAAA,UAAsB,IAAA,sBAA0B,KAAA;AAvI3E;;;;;;;;;AAAA,iBAyKgB,WAAA,CAAY,IAAA,WAAe,KAAA;;;;;;;;;;;ADjL3C;;;;;AAwDA;;;;;AAEC;;;;iBEjDe,iBAAA,CAAkB,YAAA,UAAsB,IAAA,qBAAyB,KAAA;;;;UC1ChE,gBAAA;EACf,KAAA;EACA,MAAA;EACA,QAAA;AAAA;;;;;;;AH8BF;iBGpBgB,mBAAA,CAAoB,CAAA,EAAG,WAAA,GAAc,gBAAA;;;;;;AJOrD;;;;;;;;;;;;cKZa,gBAAA;AJyBb;AAAA,UIWiB,qBAAA;;EAEf,KAAA;EJb2D;EIe3D,OAAA;EJyCwB;EIvCxB,KAAA;AAAA;;AJyCD;;;;;;;;;;;AAyBD;;iBI9CgB,aAAA,CAAc,KAAA,EAAO,MAAA,oBAA0B,qBAAA;;;;;;;;;;;;AJrC/D;;;;;AAwDA;;;;;iBKlEgB,cAAA,CAAe,KAAA,EAAO,MAAA,mBAAyB,MAAA;;;;;;;;;;iBA2C/C,iBAAA,CAAkB,KAAA,UAAe,KAAA,EAAO,KAAA;;;;;ALjCxD;;;;;AAwDA;;;;;AAEC;;;;;;;;;iBM7De,cAAA,CAAe,KAAA,EAAO,KAAA,GAAQ,MAAA;;;;;;APV9C;;;UQrBiB,YAAA;EACf,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;AAAA;;;;;;;;;APgBF;;;;;AAwDA;;iBQYgB,YAAA,CAAa,UAAA,WAAqB,WAAA;;;;;;;;;ARpElD;;;;iBSZgB,YAAA,CAAa,OAAA,EAAS,WAAA;;;;cCrBzB,eAAA,EAAiB,WAAA;;cA4BjB,gBAAA,EAAkB,WAAA;;cA4BlB,mBAAA,EAAqB,WAAA;;cA4BrB,eAAA,EAAiB,WAAA;;;;cCpFjB,IAAA,EAAM,WAAA;;;;cCAN,OAAA,EAAS,WAAA;;;;cCAT,aAAA,EAAe,WAAA;;cA4Bf,cAAA,EAAgB,WAAA;;;;cC5BhB,UAAA,EAAY,WAAA;;cA4BZ,eAAA,EAAiB,WAAA;;cA4BjB,aAAA,EAAe,WAAA;;;;cCxDf,OAAA,EAAS,WAAA;;;;cCAT,WAAA,EAAa,WAAA;;cA4Bb,YAAA,EAAc,WAAA;;;;cC5Bd,QAAA,EAAU,WAAA;;cA4BV,YAAA,EAAc,WAAA;;cA4Bd,YAAA,EAAc,WAAA;;;;cCvDd,YAAA,EAAc,WAAA;;cA4Bd,cAAA,EAAgB,WAAA;;cA4BhB,aAAA,EAAe,WAAA;;;;cCxDf,cAAA,EAAgB,WAAA;;cA4BhB,eAAA,EAAiB,WAAA;;;;cC3BjB,OAAA,EAAS,WAAA;;cA4BT,UAAA,EAAY,WAAA;;;;cC7BZ,MAAA,EAAQ,WAAA;;;;cCCR,YAAA,EAAc,WAAA;;cA4Bd,aAAA,EAAe,WAAA;;;;cC5Bf,SAAA,EAAW,WAAA;;;;cCAX,OAAA,EAAS,WAAA;;cA4BT,SAAA,EAAW,WAAA;;cA4BX,QAAA,EAAU,WAAA;;;;cCzDV,QAAA,EAAU,WAAA;;cA4BV,OAAA,EAAS,WAAA;;;;cC5BT,OAAA,EAAS,WAAA;;;;cCAT,OAAA,EAAS,WAAA;;;;cCAT,QAAA,EAAU,WAAA;;;;cCAV,aAAA,EAAe,WAAA;;cA4Bf,cAAA,EAAgB,WAAA;;;;cC5BhB,OAAA,EAAS,WAAA;;;;cCAT,QAAA,EAAU,WAAA;;cA4BV,SAAA,EAAW,WAAA;;;;cC5BX,YAAA,EAAc,WAAA;;cA4Bd,aAAA,EAAe,WAAA;;;;;;;;;;;;cCwHf,eAAA,EAAiB,KAAA;;;;;;cAOjB,gBAAA,EAAkB,KAAA;;cAOlB,gBAAA,EAAkB,KAAA;;cAGlB,iBAAA,EAAmB,KAAA;;cAOnB,eAAA,EAAiB,MAAA,SAAe,WAAA;;cA0IhC,aAAA,EAAe,MAAA,SAAe,KAAA;;iBAe3B,cAAA,CAAe,IAAA,YAAgB,KAAA;;iBAc/B,eAAA,CAAgB,IAAA,WAAe,WAAA"}