@zakmandhro/bunti 0.1.5 → 0.2.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 (192) hide show
  1. package/AGENTS.md +65 -0
  2. package/README.md +81 -11
  3. package/dist/cli.d.ts +44 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +147 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/colors.d.ts +77 -7
  8. package/dist/colors.d.ts.map +1 -1
  9. package/dist/colors.js +238 -39
  10. package/dist/colors.js.map +1 -1
  11. package/dist/components/Box.d.ts +6 -0
  12. package/dist/components/Box.d.ts.map +1 -1
  13. package/dist/components/Box.js +5 -0
  14. package/dist/components/Box.js.map +1 -1
  15. package/dist/components/Button.d.ts +12 -2
  16. package/dist/components/Button.d.ts.map +1 -1
  17. package/dist/components/Button.js +35 -24
  18. package/dist/components/Button.js.map +1 -1
  19. package/dist/components/Card.d.ts +24 -2
  20. package/dist/components/Card.d.ts.map +1 -1
  21. package/dist/components/Card.js +56 -14
  22. package/dist/components/Card.js.map +1 -1
  23. package/dist/components/Header.d.ts +11 -1
  24. package/dist/components/Header.d.ts.map +1 -1
  25. package/dist/components/Header.js +12 -8
  26. package/dist/components/Header.js.map +1 -1
  27. package/dist/components/Input.d.ts +10 -1
  28. package/dist/components/Input.d.ts.map +1 -1
  29. package/dist/components/Input.js +172 -41
  30. package/dist/components/Input.js.map +1 -1
  31. package/dist/components/Link.d.ts +21 -0
  32. package/dist/components/Link.d.ts.map +1 -0
  33. package/dist/components/Link.js +29 -0
  34. package/dist/components/Link.js.map +1 -0
  35. package/dist/components/Modal.d.ts +25 -0
  36. package/dist/components/Modal.d.ts.map +1 -1
  37. package/dist/components/Modal.js +83 -24
  38. package/dist/components/Modal.js.map +1 -1
  39. package/dist/components/Progress.d.ts +27 -0
  40. package/dist/components/Progress.d.ts.map +1 -0
  41. package/dist/components/Progress.js +39 -0
  42. package/dist/components/Progress.js.map +1 -0
  43. package/dist/components/Spinner.d.ts +19 -0
  44. package/dist/components/Spinner.d.ts.map +1 -0
  45. package/dist/components/Spinner.js +27 -0
  46. package/dist/components/Spinner.js.map +1 -0
  47. package/dist/components/index.d.ts +3 -0
  48. package/dist/components/index.d.ts.map +1 -1
  49. package/dist/components/index.js +3 -0
  50. package/dist/components/index.js.map +1 -1
  51. package/dist/data/nf-glyphs.d.ts +11 -0
  52. package/dist/data/nf-glyphs.d.ts.map +1 -0
  53. package/dist/data/nf-glyphs.js +535 -0
  54. package/dist/data/nf-glyphs.js.map +1 -0
  55. package/dist/data/nf-names.d.ts +8 -0
  56. package/dist/data/nf-names.d.ts.map +1 -0
  57. package/dist/data/nf-names.js +2 -0
  58. package/dist/data/nf-names.js.map +1 -0
  59. package/dist/demo-registry.d.ts +27 -0
  60. package/dist/demo-registry.d.ts.map +1 -0
  61. package/dist/demo-registry.js +57 -0
  62. package/dist/demo-registry.js.map +1 -0
  63. package/dist/demos/2048.ts +743 -0
  64. package/dist/demos/animation.ts +246 -0
  65. package/dist/demos/demo-layout.ts +124 -0
  66. package/dist/demos/engine.ts +374 -0
  67. package/dist/demos/interaction.ts +91 -0
  68. package/dist/demos/login.ts +203 -0
  69. package/dist/demos/mission-control.ts +558 -0
  70. package/dist/demos/showcase.ts +224 -0
  71. package/dist/detect.d.ts +92 -3
  72. package/dist/detect.d.ts.map +1 -1
  73. package/dist/detect.js +218 -40
  74. package/dist/detect.js.map +1 -1
  75. package/dist/diagnostics.d.ts +73 -0
  76. package/dist/diagnostics.d.ts.map +1 -0
  77. package/dist/diagnostics.js +225 -0
  78. package/dist/diagnostics.js.map +1 -0
  79. package/dist/dsl/context.d.ts +11 -0
  80. package/dist/dsl/context.d.ts.map +1 -0
  81. package/dist/dsl/context.js +563 -0
  82. package/dist/dsl/context.js.map +1 -0
  83. package/dist/dsl/hooks.d.ts +12 -0
  84. package/dist/dsl/hooks.d.ts.map +1 -0
  85. package/dist/dsl/hooks.js +148 -0
  86. package/dist/dsl/hooks.js.map +1 -0
  87. package/dist/dsl/interaction.d.ts +16 -0
  88. package/dist/dsl/interaction.d.ts.map +1 -0
  89. package/dist/dsl/interaction.js +101 -0
  90. package/dist/dsl/interaction.js.map +1 -0
  91. package/dist/dsl/layers.d.ts +14 -0
  92. package/dist/dsl/layers.d.ts.map +1 -0
  93. package/dist/dsl/layers.js +87 -0
  94. package/dist/dsl/layers.js.map +1 -0
  95. package/dist/dsl/motion.d.ts +10 -0
  96. package/dist/dsl/motion.d.ts.map +1 -0
  97. package/dist/dsl/motion.js +150 -0
  98. package/dist/dsl/motion.js.map +1 -0
  99. package/dist/dsl/render.d.ts +22 -0
  100. package/dist/dsl/render.d.ts.map +1 -0
  101. package/dist/dsl/render.js +69 -0
  102. package/dist/dsl/render.js.map +1 -0
  103. package/dist/dsl/types.d.ts +510 -0
  104. package/dist/dsl/types.d.ts.map +1 -0
  105. package/dist/dsl/types.js +33 -0
  106. package/dist/dsl/types.js.map +1 -0
  107. package/dist/dsl.d.ts +13 -154
  108. package/dist/dsl.d.ts.map +1 -1
  109. package/dist/dsl.js +12 -658
  110. package/dist/dsl.js.map +1 -1
  111. package/dist/easing.d.ts +41 -1
  112. package/dist/easing.d.ts.map +1 -1
  113. package/dist/easing.js +105 -2
  114. package/dist/easing.js.map +1 -1
  115. package/dist/geometry.d.ts +39 -0
  116. package/dist/geometry.d.ts.map +1 -1
  117. package/dist/geometry.js +20 -0
  118. package/dist/geometry.js.map +1 -1
  119. package/dist/icons-full.d.ts +5 -0
  120. package/dist/icons-full.d.ts.map +1 -0
  121. package/dist/icons-full.js +31 -0
  122. package/dist/icons-full.js.map +1 -0
  123. package/dist/icons.d.ts +426 -5
  124. package/dist/icons.d.ts.map +1 -1
  125. package/dist/icons.js +144 -15
  126. package/dist/icons.js.map +1 -1
  127. package/dist/index.d.ts +93 -22
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +17 -7
  130. package/dist/index.js.map +1 -1
  131. package/dist/input.d.ts +177 -0
  132. package/dist/input.d.ts.map +1 -0
  133. package/dist/input.js +533 -0
  134. package/dist/input.js.map +1 -0
  135. package/dist/layout.d.ts +111 -6
  136. package/dist/layout.d.ts.map +1 -1
  137. package/dist/layout.js +163 -23
  138. package/dist/layout.js.map +1 -1
  139. package/dist/render.d.ts +33 -1
  140. package/dist/render.d.ts.map +1 -1
  141. package/dist/render.js +431 -116
  142. package/dist/render.js.map +1 -1
  143. package/dist/state.d.ts +137 -3
  144. package/dist/state.d.ts.map +1 -1
  145. package/dist/state.js +25 -0
  146. package/dist/state.js.map +1 -1
  147. package/dist/theme.d.ts +129 -0
  148. package/dist/theme.d.ts.map +1 -0
  149. package/dist/theme.js +167 -0
  150. package/dist/theme.js.map +1 -0
  151. package/dist/themes/catppuccin-mocha.d.ts +19 -0
  152. package/dist/themes/catppuccin-mocha.d.ts.map +1 -0
  153. package/dist/themes/catppuccin-mocha.js +36 -0
  154. package/dist/themes/catppuccin-mocha.js.map +1 -0
  155. package/dist/themes/dracula.d.ts +21 -0
  156. package/dist/themes/dracula.d.ts.map +1 -0
  157. package/dist/themes/dracula.js +37 -0
  158. package/dist/themes/dracula.js.map +1 -0
  159. package/dist/themes/github-light.d.ts +21 -0
  160. package/dist/themes/github-light.d.ts.map +1 -0
  161. package/dist/themes/github-light.js +36 -0
  162. package/dist/themes/github-light.js.map +1 -0
  163. package/dist/themes/index.d.ts +19 -0
  164. package/dist/themes/index.d.ts.map +1 -0
  165. package/dist/themes/index.js +17 -0
  166. package/dist/themes/index.js.map +1 -0
  167. package/dist/themes/nord.d.ts +23 -0
  168. package/dist/themes/nord.d.ts.map +1 -0
  169. package/dist/themes/nord.js +38 -0
  170. package/dist/themes/nord.js.map +1 -0
  171. package/dist/themes/one-dark-pro.d.ts +21 -0
  172. package/dist/themes/one-dark-pro.d.ts.map +1 -0
  173. package/dist/themes/one-dark-pro.js +36 -0
  174. package/dist/themes/one-dark-pro.js.map +1 -0
  175. package/dist/themes/tokyo-night.d.ts +20 -0
  176. package/dist/themes/tokyo-night.d.ts.map +1 -0
  177. package/dist/themes/tokyo-night.js +37 -0
  178. package/dist/themes/tokyo-night.js.map +1 -0
  179. package/dist/utils.d.ts +1 -0
  180. package/dist/utils.d.ts.map +1 -1
  181. package/dist/utils.js +1 -0
  182. package/dist/utils.js.map +1 -1
  183. package/dist/vendor/colors.d.ts +45 -0
  184. package/dist/vendor/colors.d.ts.map +1 -0
  185. package/dist/vendor/colors.js +72 -0
  186. package/dist/vendor/colors.js.map +1 -0
  187. package/llms.txt +79 -0
  188. package/package.json +23 -7
  189. package/dist/data/glyphs.d.ts +0 -5
  190. package/dist/data/glyphs.d.ts.map +0 -1
  191. package/dist/data/glyphs.js +0 -29
  192. package/dist/data/glyphs.js.map +0 -1
package/dist/theme.js ADDED
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Bunti Semantic Theme System
3
+ *
4
+ * Themes are sets of semantic color tokens (background, primary, danger, ...)
5
+ * rather than hardcoded colors. Every token is a ThemeColor: callable as an
6
+ * fg-styler (`theme.primary('text')` returns an ANSI-colored string) AND
7
+ * usable as plain color data anywhere a color is accepted (bgColor,
8
+ * borderColor, wallpaper, gradient stops) via its `.rgb` / `.hex` payload.
9
+ *
10
+ * `createTheme(partial)` fills missing tokens by derivation so sparse inputs
11
+ * (e.g. a converted VS Code theme with only a handful of colors) still
12
+ * produce a coherent theme.
13
+ */
14
+ import { contrastText, fade, fg, isThemeColor, relativeLuminance, resolveColorToRGB, rgbToHex, THEME_COLOR, } from './colors';
15
+ /** The semantic token names every Theme carries. */
16
+ export const THEME_TOKENS = [
17
+ 'background',
18
+ 'surface',
19
+ 'surfaceRaised',
20
+ 'foreground',
21
+ 'muted',
22
+ 'primary',
23
+ 'onPrimary',
24
+ 'accent',
25
+ 'border',
26
+ 'focus',
27
+ 'selection',
28
+ 'success',
29
+ 'warning',
30
+ 'danger',
31
+ 'info',
32
+ ];
33
+ /**
34
+ * Creates a ThemeColor from any color value: a function that fg-styles text,
35
+ * branded and carrying `.rgb` + `.hex`. ThemeColor inputs pass through
36
+ * unchanged.
37
+ */
38
+ export function themeColor(input) {
39
+ if (isThemeColor(input))
40
+ return input;
41
+ const rgb = Object.freeze(resolveColorToRGB(input));
42
+ const color = ((text) => fg(rgb, String(text)));
43
+ Object.defineProperties(color, {
44
+ rgb: { value: rgb, enumerable: true },
45
+ hex: { value: rgbToHex(rgb), enumerable: true },
46
+ [THEME_COLOR]: { value: true },
47
+ });
48
+ return color;
49
+ }
50
+ /**
51
+ * Returns true when the value is a complete Theme (all tokens are branded
52
+ * ThemeColors), as opposed to a sparse ThemeInput.
53
+ */
54
+ export function isTheme(value) {
55
+ if (typeof value !== 'object' || value === null)
56
+ return false;
57
+ const candidate = value;
58
+ return (typeof candidate.name === 'string' &&
59
+ THEME_TOKENS.every((token) => isThemeColor(candidate[token])));
60
+ }
61
+ const WHITE = { r: 255, g: 255, b: 255 };
62
+ const BLACK = { r: 0, g: 0, b: 0 };
63
+ /**
64
+ * Builds a complete Theme from a sparse spec. Missing tokens are derived:
65
+ *
66
+ * - mode: from background luminance when a background is given, else 'dark'.
67
+ * - background: #0f0f23 (dark) / #f4f5f9 (light).
68
+ * - surface / surfaceRaised: background shifted 8% / 16% toward white in
69
+ * dark mode, toward black in light mode.
70
+ * - foreground: WCAG auto-contrast vs background, softened 8% toward it.
71
+ * - muted: foreground mixed 45% toward background.
72
+ * - primary: bunti-blue #3bbce1 (dark) / #0d7ea6 (light).
73
+ * - onPrimary: WCAG auto-contrast (pure black/white) vs primary.
74
+ * - accent: primary shifted 25% toward white (dark) / black (light).
75
+ * - border: foreground mixed 70% toward background.
76
+ * - focus: primary.
77
+ * - selection: primary mixed 70% toward background.
78
+ * - success/warning/danger/info: PALETTE-derived defaults per mode.
79
+ */
80
+ export function createTheme(input = {}) {
81
+ const mode = input.mode ??
82
+ (input.background !== undefined
83
+ ? relativeLuminance(resolveColorToRGB(input.background)) > 0.5
84
+ ? 'light'
85
+ : 'dark'
86
+ : 'dark');
87
+ const dark = mode === 'dark';
88
+ const lift = dark ? WHITE : BLACK;
89
+ const shift = (base, amount) => fade(base, lift, amount);
90
+ const background = themeColor(input.background ??
91
+ (dark ? { r: 15, g: 15, b: 35 } : { r: 244, g: 245, b: 249 }));
92
+ const foreground = themeColor(input.foreground ??
93
+ fade(contrastText(background.rgb), background.rgb, 0.08));
94
+ const primary = themeColor(input.primary ??
95
+ (dark ? { r: 59, g: 188, b: 225 } : { r: 13, g: 126, b: 166 }));
96
+ const theme = {
97
+ name: input.name ?? `custom-${mode}`,
98
+ mode,
99
+ background,
100
+ surface: themeColor(input.surface ?? shift(background.rgb, 0.08)),
101
+ surfaceRaised: themeColor(input.surfaceRaised ?? shift(background.rgb, 0.16)),
102
+ foreground,
103
+ muted: themeColor(input.muted ?? fade(foreground.rgb, background.rgb, 0.45)),
104
+ primary,
105
+ onPrimary: themeColor(input.onPrimary ?? contrastText(primary.rgb)),
106
+ accent: themeColor(input.accent ?? shift(primary.rgb, 0.25)),
107
+ border: themeColor(input.border ?? fade(foreground.rgb, background.rgb, 0.7)),
108
+ focus: themeColor(input.focus ?? primary.rgb),
109
+ selection: themeColor(input.selection ?? fade(primary.rgb, background.rgb, 0.7)),
110
+ success: themeColor(input.success ??
111
+ (dark ? { r: 0, g: 215, b: 0 } : { r: 15, g: 157, b: 60 })),
112
+ warning: themeColor(input.warning ??
113
+ (dark ? { r: 255, g: 175, b: 0 } : { r: 178, g: 107, b: 0 })),
114
+ danger: themeColor(input.danger ??
115
+ (dark ? { r: 215, g: 0, b: 0 } : { r: 198, g: 40, b: 40 })),
116
+ info: themeColor(input.info ??
117
+ (dark ? { r: 0, g: 175, b: 255 } : { r: 11, g: 120, b: 194 })),
118
+ };
119
+ if (input.gradients)
120
+ theme.gradients = input.gradients;
121
+ return theme;
122
+ }
123
+ function themeToInput(theme) {
124
+ const input = { name: theme.name, mode: theme.mode };
125
+ for (const token of THEME_TOKENS)
126
+ input[token] = theme[token];
127
+ if (theme.gradients)
128
+ input.gradients = theme.gradients;
129
+ return input;
130
+ }
131
+ /**
132
+ * Normalizes a Theme | ThemeInput. Full Themes pass through. Sparse inputs
133
+ * overlay `base` when given (used by `ctx.themed`), otherwise they are
134
+ * completed by `createTheme` derivation (used by `ctx.setTheme`).
135
+ */
136
+ export function resolveTheme(input, base) {
137
+ if (isTheme(input))
138
+ return input;
139
+ return base
140
+ ? createTheme({ ...themeToInput(base), ...input })
141
+ : createTheme(input);
142
+ }
143
+ /**
144
+ * Built-in dark theme, derived from Bunti's PALETTE aesthetic
145
+ * (midnight / silver / bunti-blue / plasma).
146
+ */
147
+ export const darkTheme = createTheme({
148
+ name: 'bunti-dark',
149
+ mode: 'dark',
150
+ background: 'midnight',
151
+ foreground: 'silver',
152
+ primary: 'bunti-blue',
153
+ accent: 'plasma',
154
+ });
155
+ /**
156
+ * Built-in light theme: the PALETTE aesthetic re-balanced for light
157
+ * backgrounds (deepened primary/semantic colors for WCAG contrast).
158
+ */
159
+ export const lightTheme = createTheme({
160
+ name: 'bunti-light',
161
+ mode: 'light',
162
+ background: '#f4f5f9',
163
+ foreground: '#23283b',
164
+ primary: '#0d7ea6',
165
+ accent: '#8a2bd8',
166
+ });
167
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAEL,YAAY,EACZ,IAAI,EACJ,EAAE,EACF,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,WAAW,GACZ,MAAM,UAAU,CAAC;AAoBlB,oDAAoD;AACpD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,YAAY;IACZ,SAAS;IACT,eAAe;IACf,YAAY;IACZ,OAAO;IACP,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;CACE,CAAC;AAyDX;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAQ,CAAC;IAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,IAAqB,EAAE,EAAE,CACvC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAe,CAAC;IACvC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;QAC7B,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;QACrC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;QAC/C,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,CACL,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;QAClC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAC9C,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CAAC,QAAoB,EAAE;IAChD,MAAM,IAAI,GACR,KAAK,CAAC,IAAI;QACV,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;YAC7B,CAAC,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG;gBAC5D,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,MAAM;YACV,CAAC,CAAC,MAAM,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAEtE,MAAM,UAAU,GAAG,UAAU,CAC3B,KAAK,CAAC,UAAU;QACd,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAChE,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAC3B,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAC3D,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CACxB,KAAK,CAAC,OAAO;QACX,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CACjE,CAAC;IAEF,MAAM,KAAK,GAAU;QACnB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,UAAU,IAAI,EAAE;QACpC,IAAI;QACJ,UAAU;QACV,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjE,aAAa,EAAE,UAAU,CACvB,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CACnD;QACD,UAAU;QACV,KAAK,EAAE,UAAU,CACf,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAC1D;QACD,OAAO;QACP,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,EAAE,UAAU,CAChB,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAC1D;QACD,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC;QAC7C,SAAS,EAAE,UAAU,CACnB,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAC1D;QACD,OAAO,EAAE,UAAU,CACjB,KAAK,CAAC,OAAO;YACX,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAC7D;QACD,OAAO,EAAE,UAAU,CACjB,KAAK,CAAC,OAAO;YACX,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAC/D;QACD,MAAM,EAAE,UAAU,CAChB,KAAK,CAAC,MAAM;YACV,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAC7D;QACD,IAAI,EAAE,UAAU,CACd,KAAK,CAAC,IAAI;YACR,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAChE;KACF,CAAC;IACF,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAY;IAChC,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,YAAY;QAAE,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAyB,EAAE,IAAY;IAClE,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,IAAI;QACT,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;QAClD,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAU,WAAW,CAAC;IAC1C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAU,WAAW,CAAC;IAC3C,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Catppuccin Mocha — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Catppuccin Mocha" VS Code theme.
5
+ * Source: https://github.com/catppuccin/vscode (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/catppuccin-mocha.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - accent: activityBarBadge duplicates the mauve primary; use Catppuccin pink
10
+ * - muted auto-derives (descriptionForeground equals foreground); the derived
11
+ * - value lands on overlay1
12
+ *
13
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
14
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
15
+ */
16
+ import { type Theme } from '../theme';
17
+ /** Catppuccin Mocha preset theme (dark). */
18
+ export declare const catppuccinMocha: Theme;
19
+ //# sourceMappingURL=catppuccin-mocha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catppuccin-mocha.d.ts","sourceRoot":"","sources":["../../src/themes/catppuccin-mocha.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEnD,4CAA4C;AAC5C,eAAO,MAAM,eAAe,EAAE,KAiB5B,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Catppuccin Mocha — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Catppuccin Mocha" VS Code theme.
5
+ * Source: https://github.com/catppuccin/vscode (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/catppuccin-mocha.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - accent: activityBarBadge duplicates the mauve primary; use Catppuccin pink
10
+ * - muted auto-derives (descriptionForeground equals foreground); the derived
11
+ * - value lands on overlay1
12
+ *
13
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
14
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
15
+ */
16
+ import { createTheme } from '../theme';
17
+ /** Catppuccin Mocha preset theme (dark). */
18
+ export const catppuccinMocha = createTheme({
19
+ name: 'catppuccin-mocha',
20
+ mode: 'dark',
21
+ background: '#1e1e2e',
22
+ surface: '#181825',
23
+ surfaceRaised: '#11111b',
24
+ foreground: '#cdd6f4',
25
+ primary: '#cba6f7',
26
+ onPrimary: '#11111b',
27
+ accent: '#f5c2e7',
28
+ border: '#585b70',
29
+ focus: '#cba6f7',
30
+ selection: '#313244',
31
+ success: '#a6e3a1',
32
+ warning: '#fab387',
33
+ danger: '#f38ba8',
34
+ info: '#89b4fa',
35
+ });
36
+ //# sourceMappingURL=catppuccin-mocha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catppuccin-mocha.js","sourceRoot":"","sources":["../../src/themes/catppuccin-mocha.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAEnD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAU,WAAW,CAAC;IAChD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Dracula — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Dracula" VS Code theme.
5
+ * Source: https://github.com/dracula/visual-studio-code (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/dracula.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - primary: button.background is the neutral #44475a; use the signature purple
10
+ * - muted/border: #6272a4 is the canonical Dracula comment color
11
+ * - focus: derive from primary (source swaps border/focus prominence)
12
+ * - warning: Dracula sets editorWarning.foreground to its cyan; use its orange
13
+ * - info: source omits editorInfo.foreground; use the Dracula cyan
14
+ *
15
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
16
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
17
+ */
18
+ import { type Theme } from '../theme';
19
+ /** Dracula preset theme (dark). */
20
+ export declare const dracula: Theme;
21
+ //# sourceMappingURL=dracula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dracula.d.ts","sourceRoot":"","sources":["../../src/themes/dracula.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEnD,mCAAmC;AACnC,eAAO,MAAM,OAAO,EAAE,KAgBpB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Dracula — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Dracula" VS Code theme.
5
+ * Source: https://github.com/dracula/visual-studio-code (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/dracula.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - primary: button.background is the neutral #44475a; use the signature purple
10
+ * - muted/border: #6272a4 is the canonical Dracula comment color
11
+ * - focus: derive from primary (source swaps border/focus prominence)
12
+ * - warning: Dracula sets editorWarning.foreground to its cyan; use its orange
13
+ * - info: source omits editorInfo.foreground; use the Dracula cyan
14
+ *
15
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
16
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
17
+ */
18
+ import { createTheme } from '../theme';
19
+ /** Dracula preset theme (dark). */
20
+ export const dracula = createTheme({
21
+ name: 'dracula',
22
+ mode: 'dark',
23
+ background: '#282a36',
24
+ surface: '#21222c',
25
+ surfaceRaised: '#191a21',
26
+ foreground: '#f8f8f2',
27
+ muted: '#6272a4',
28
+ primary: '#bd93f9',
29
+ accent: '#ff79c6',
30
+ border: '#6272a4',
31
+ selection: '#44475a',
32
+ success: '#50fa7b',
33
+ warning: '#ffb86c',
34
+ danger: '#ff5555',
35
+ info: '#8be9fd',
36
+ });
37
+ //# sourceMappingURL=dracula.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dracula.js","sourceRoot":"","sources":["../../src/themes/dracula.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAEnD,mCAAmC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAU,WAAW,CAAC;IACxC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * GitHub Light — Bunti preset theme (light).
3
+ *
4
+ * Converted from the "GitHub Light" VS Code theme.
5
+ * Source: https://github.com/primer/github-vscode-theme (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/github-light.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - primary: button.background green sits at ~4.5:1 with white; GitHub's brand
10
+ * - blue is the safer, more recognizable primary
11
+ * - accent: badge.background would duplicate the new primary; use GitHub purple
12
+ * - surfaceRaised: source equals surface; use Primer gray-1
13
+ * - selection: source value composites to near-white; derive a visible one
14
+ *
15
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
16
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
17
+ */
18
+ import { type Theme } from '../theme';
19
+ /** GitHub Light preset theme (light). */
20
+ export declare const githubLight: Theme;
21
+ //# sourceMappingURL=github-light.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-light.d.ts","sourceRoot":"","sources":["../../src/themes/github-light.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEnD,yCAAyC;AACzC,eAAO,MAAM,WAAW,EAAE,KAexB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * GitHub Light — Bunti preset theme (light).
3
+ *
4
+ * Converted from the "GitHub Light" VS Code theme.
5
+ * Source: https://github.com/primer/github-vscode-theme (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/github-light.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - primary: button.background green sits at ~4.5:1 with white; GitHub's brand
10
+ * - blue is the safer, more recognizable primary
11
+ * - accent: badge.background would duplicate the new primary; use GitHub purple
12
+ * - surfaceRaised: source equals surface; use Primer gray-1
13
+ * - selection: source value composites to near-white; derive a visible one
14
+ *
15
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
16
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
17
+ */
18
+ import { createTheme } from '../theme';
19
+ /** GitHub Light preset theme (light). */
20
+ export const githubLight = createTheme({
21
+ name: 'github-light',
22
+ mode: 'light',
23
+ background: '#ffffff',
24
+ surface: '#f6f8fa',
25
+ surfaceRaised: '#eaeef2',
26
+ foreground: '#1f2328',
27
+ muted: '#656d76',
28
+ primary: '#0969da',
29
+ onPrimary: '#ffffff',
30
+ accent: '#8250df',
31
+ border: '#d0d7de',
32
+ focus: '#0969da',
33
+ success: '#116329',
34
+ danger: '#cf222e',
35
+ });
36
+ //# sourceMappingURL=github-light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-light.js","sourceRoot":"","sources":["../../src/themes/github-light.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAEnD,yCAAyC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAU,WAAW,CAAC;IAC5C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Bunti preset themes, converted from popular VS Code themes.
3
+ *
4
+ * import { themes, dracula } from '@zakmandhro/bunti/themes';
5
+ *
6
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
7
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
8
+ */
9
+ import type { Theme } from '../theme';
10
+ import { catppuccinMocha } from './catppuccin-mocha';
11
+ import { dracula } from './dracula';
12
+ import { githubLight } from './github-light';
13
+ import { nord } from './nord';
14
+ import { oneDarkPro } from './one-dark-pro';
15
+ import { tokyoNight } from './tokyo-night';
16
+ export { catppuccinMocha, dracula, githubLight, nord, oneDarkPro, tokyoNight };
17
+ /** All preset themes, keyed by slug. */
18
+ export declare const themes: Record<string, Theme>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAE/E,wCAAwC;AACxC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAOxC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { catppuccinMocha } from './catppuccin-mocha';
2
+ import { dracula } from './dracula';
3
+ import { githubLight } from './github-light';
4
+ import { nord } from './nord';
5
+ import { oneDarkPro } from './one-dark-pro';
6
+ import { tokyoNight } from './tokyo-night';
7
+ export { catppuccinMocha, dracula, githubLight, nord, oneDarkPro, tokyoNight };
8
+ /** All preset themes, keyed by slug. */
9
+ export const themes = {
10
+ 'catppuccin-mocha': catppuccinMocha,
11
+ dracula,
12
+ 'github-light': githubLight,
13
+ nord,
14
+ 'one-dark-pro': oneDarkPro,
15
+ 'tokyo-night': tokyoNight,
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAE/E,wCAAwC;AACxC,MAAM,CAAC,MAAM,MAAM,GAA0B;IAC3C,kBAAkB,EAAE,eAAe;IACnC,OAAO;IACP,cAAc,EAAE,WAAW;IAC3B,IAAI;IACJ,cAAc,EAAE,UAAU;IAC1B,aAAa,EAAE,UAAU;CAC1B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Nord — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Nord" VS Code theme.
5
+ * Source: https://github.com/nordtheme/visual-studio-code (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/nord.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - surface/surfaceRaised: source is flat (all #2e3440); use nord1/nord2
10
+ * - border: nord3 so it stays visible on the lifted surfaces
11
+ * - muted: descriptionForeground is 90%-alpha foreground (too bright); derive
12
+ * - selection: source uses bright nord8 as a bg (unreadable under light text); derive
13
+ * - focus: focusBorder is nord1 (invisible); derive from primary
14
+ * - accent: badge colors duplicate the frost primary; use nord15 purple
15
+ * - info: source omits editorInfo.foreground; use nord9 blue
16
+ *
17
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
18
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
19
+ */
20
+ import { type Theme } from '../theme';
21
+ /** Nord preset theme (dark). */
22
+ export declare const nord: Theme;
23
+ //# sourceMappingURL=nord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nord.d.ts","sourceRoot":"","sources":["../../src/themes/nord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEnD,gCAAgC;AAChC,eAAO,MAAM,IAAI,EAAE,KAejB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Nord — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Nord" VS Code theme.
5
+ * Source: https://github.com/nordtheme/visual-studio-code (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/nord.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - surface/surfaceRaised: source is flat (all #2e3440); use nord1/nord2
10
+ * - border: nord3 so it stays visible on the lifted surfaces
11
+ * - muted: descriptionForeground is 90%-alpha foreground (too bright); derive
12
+ * - selection: source uses bright nord8 as a bg (unreadable under light text); derive
13
+ * - focus: focusBorder is nord1 (invisible); derive from primary
14
+ * - accent: badge colors duplicate the frost primary; use nord15 purple
15
+ * - info: source omits editorInfo.foreground; use nord9 blue
16
+ *
17
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
18
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
19
+ */
20
+ import { createTheme } from '../theme';
21
+ /** Nord preset theme (dark). */
22
+ export const nord = createTheme({
23
+ name: 'nord',
24
+ mode: 'dark',
25
+ background: '#2e3440',
26
+ surface: '#3b4252',
27
+ surfaceRaised: '#434c5e',
28
+ foreground: '#d8dee9',
29
+ primary: '#82b7c6',
30
+ onPrimary: '#2e3440',
31
+ accent: '#b48ead',
32
+ border: '#4c566a',
33
+ success: '#a3be8c',
34
+ warning: '#ebcb8b',
35
+ danger: '#bf616a',
36
+ info: '#81a1c1',
37
+ });
38
+ //# sourceMappingURL=nord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nord.js","sourceRoot":"","sources":["../../src/themes/nord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAEnD,gCAAgC;AAChC,MAAM,CAAC,MAAM,IAAI,GAAU,WAAW,CAAC;IACrC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * One Dark Pro — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "One Dark Pro" VS Code theme.
5
+ * Source: https://github.com/Binaryify/OneDark-Pro (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/one-dark-pro.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - primary: button.background is the muddy #404754; use the signature blue
10
+ * - accent: activityBarBadge blue is too close to primary; use the purple
11
+ * - info: source omits editorInfo.foreground; use the One Dark cyan
12
+ * - surfaceRaised: source equals surface; use the menu/dropdown shade
13
+ * - focus: focusBorder equals border (invisible); derive from primary
14
+ *
15
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
16
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
17
+ */
18
+ import { type Theme } from '../theme';
19
+ /** One Dark Pro preset theme (dark). */
20
+ export declare const oneDarkPro: Theme;
21
+ //# sourceMappingURL=one-dark-pro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"one-dark-pro.d.ts","sourceRoot":"","sources":["../../src/themes/one-dark-pro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEnD,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,KAevB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * One Dark Pro — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "One Dark Pro" VS Code theme.
5
+ * Source: https://github.com/Binaryify/OneDark-Pro (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/one-dark-pro.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - primary: button.background is the muddy #404754; use the signature blue
10
+ * - accent: activityBarBadge blue is too close to primary; use the purple
11
+ * - info: source omits editorInfo.foreground; use the One Dark cyan
12
+ * - surfaceRaised: source equals surface; use the menu/dropdown shade
13
+ * - focus: focusBorder equals border (invisible); derive from primary
14
+ *
15
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
16
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
17
+ */
18
+ import { createTheme } from '../theme';
19
+ /** One Dark Pro preset theme (dark). */
20
+ export const oneDarkPro = createTheme({
21
+ name: 'one-dark-pro',
22
+ mode: 'dark',
23
+ background: '#282c34',
24
+ surface: '#21252b',
25
+ surfaceRaised: '#353b45',
26
+ foreground: '#abb2bf',
27
+ primary: '#61afef',
28
+ accent: '#c678dd',
29
+ border: '#3e4452',
30
+ selection: '#2c313a',
31
+ success: '#8cc265',
32
+ warning: '#d19a66',
33
+ danger: '#c24038',
34
+ info: '#56b6c2',
35
+ });
36
+ //# sourceMappingURL=one-dark-pro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"one-dark-pro.js","sourceRoot":"","sources":["../../src/themes/one-dark-pro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAEnD,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAU,WAAW,CAAC;IAC3C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Tokyo Night — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Tokyo Night" VS Code theme.
5
+ * Source: https://github.com/tokyo-night/tokyo-night-vscode-theme (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/tokyo-night.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - muted: descriptionForeground fails 2.5:1; #565f89 is the theme comment color
10
+ * - surfaceRaised: source equals surface; #292e42 is the bg-highlight shade
11
+ * - accent: activityBarBadge duplicates the primary hue; #7aa2f7 is the signature blue
12
+ * - focus: focusBorder is 20% alpha (near-invisible composited); derive from primary
13
+ *
14
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
15
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
16
+ */
17
+ import { type Theme } from '../theme';
18
+ /** Tokyo Night preset theme (dark). */
19
+ export declare const tokyoNight: Theme;
20
+ //# sourceMappingURL=tokyo-night.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokyo-night.d.ts","sourceRoot":"","sources":["../../src/themes/tokyo-night.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEnD,uCAAuC;AACvC,eAAO,MAAM,UAAU,EAAE,KAiBvB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Tokyo Night — Bunti preset theme (dark).
3
+ *
4
+ * Converted from the "Tokyo Night" VS Code theme.
5
+ * Source: https://github.com/tokyo-night/tokyo-night-vscode-theme (MIT license).
6
+ * Vendored theme JSON: scripts/vscode-themes/tokyo-night.json
7
+ *
8
+ * Hand-tuning (applied by the converter, see PRESETS):
9
+ * - muted: descriptionForeground fails 2.5:1; #565f89 is the theme comment color
10
+ * - surfaceRaised: source equals surface; #292e42 is the bg-highlight shade
11
+ * - accent: activityBarBadge duplicates the primary hue; #7aa2f7 is the signature blue
12
+ * - focus: focusBorder is 20% alpha (near-invisible composited); derive from primary
13
+ *
14
+ * Generated by scripts/convert-vscode-theme.ts - do not edit by hand.
15
+ * Regenerate: bun scripts/convert-vscode-theme.ts --presets
16
+ */
17
+ import { createTheme } from '../theme';
18
+ /** Tokyo Night preset theme (dark). */
19
+ export const tokyoNight = createTheme({
20
+ name: 'tokyo-night',
21
+ mode: 'dark',
22
+ background: '#1a1b26',
23
+ surface: '#16161e',
24
+ surfaceRaised: '#292e42',
25
+ foreground: '#a9b1d6',
26
+ muted: '#565f89',
27
+ primary: '#385191',
28
+ onPrimary: '#ffffff',
29
+ accent: '#7aa2f7',
30
+ border: '#101014',
31
+ selection: '#202330',
32
+ success: '#73daca',
33
+ warning: '#e0af68',
34
+ danger: '#db4b4b',
35
+ info: '#0da0ba',
36
+ });
37
+ //# sourceMappingURL=tokyo-night.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokyo-night.js","sourceRoot":"","sources":["../../src/themes/tokyo-night.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAEnD,uCAAuC;AACvC,MAAM,CAAC,MAAM,UAAU,GAAU,WAAW,CAAC;IAC3C,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,SAAS;IACxB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -23,5 +23,6 @@ export declare function truncate(str: string, width: number, tail?: string): str
23
23
  * Implements word-based wrapping with fallback to char-breaking for long tokens.
24
24
  */
25
25
  export declare function wrapText(str: string, width: number): string[];
26
+ /** Prefixes every line of a block with `columns` spaces. */
26
27
  export declare function indentBlock(content: string, columns: number): string;
27
28
  //# sourceMappingURL=utils.d.ts.map