@fluid-app/rep-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/chunk-6QLUUNJL.cjs +153 -0
  2. package/dist/chunk-6QLUUNJL.cjs.map +1 -0
  3. package/dist/chunk-EWR5EIBP.js +136 -0
  4. package/dist/chunk-EWR5EIBP.js.map +1 -0
  5. package/dist/data-sources/context.cjs +26 -0
  6. package/dist/data-sources/context.cjs.map +1 -0
  7. package/dist/data-sources/context.d.cts +16 -0
  8. package/dist/data-sources/context.d.ts +16 -0
  9. package/dist/data-sources/context.js +23 -0
  10. package/dist/data-sources/context.js.map +1 -0
  11. package/dist/data-sources/types.cjs +4 -0
  12. package/dist/data-sources/types.cjs.map +1 -0
  13. package/dist/data-sources/types.d.cts +122 -0
  14. package/dist/data-sources/types.d.ts +122 -0
  15. package/dist/data-sources/types.js +3 -0
  16. package/dist/data-sources/types.js.map +1 -0
  17. package/dist/registries/index.cjs +156 -0
  18. package/dist/registries/index.cjs.map +1 -0
  19. package/dist/registries/index.d.cts +303 -0
  20. package/dist/registries/index.d.ts +303 -0
  21. package/dist/registries/index.js +143 -0
  22. package/dist/registries/index.js.map +1 -0
  23. package/dist/shareable-item-DPmNZkE1.d.cts +138 -0
  24. package/dist/shareable-item-DPmNZkE1.d.ts +138 -0
  25. package/dist/theme/index.cjs +1013 -0
  26. package/dist/theme/index.cjs.map +1 -0
  27. package/dist/theme/index.d.cts +2680 -0
  28. package/dist/theme/index.d.ts +2680 -0
  29. package/dist/theme/index.js +956 -0
  30. package/dist/theme/index.js.map +1 -0
  31. package/dist/theme-DrMUYZTO.d.cts +22 -0
  32. package/dist/theme-DrMUYZTO.d.ts +22 -0
  33. package/dist/types/index.cjs +72 -0
  34. package/dist/types/index.cjs.map +1 -0
  35. package/dist/types/index.d.cts +227 -0
  36. package/dist/types/index.d.ts +227 -0
  37. package/dist/types/index.js +3 -0
  38. package/dist/types/index.js.map +1 -0
  39. package/dist/widget-utils/index.cjs +123 -0
  40. package/dist/widget-utils/index.cjs.map +1 -0
  41. package/dist/widget-utils/index.d.cts +43 -0
  42. package/dist/widget-utils/index.d.ts +43 -0
  43. package/dist/widget-utils/index.js +111 -0
  44. package/dist/widget-utils/index.js.map +1 -0
  45. package/package.json +99 -0
@@ -0,0 +1,1013 @@
1
+ 'use strict';
2
+
3
+ // src/theme/theme-engine.ts
4
+ var oklchString = (c) => `oklch(${c.l.toFixed(3)} ${c.c.toFixed(3)} ${c.h.toFixed(1)})`;
5
+ var parseOklch = (oklchStr) => {
6
+ const match = oklchStr.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)\)/);
7
+ if (!match) {
8
+ return { l: 0, c: 0, h: 0 };
9
+ }
10
+ return {
11
+ l: parseFloat(match[1] || "0"),
12
+ c: parseFloat(match[2] || "0"),
13
+ h: parseFloat(match[3] || "0")
14
+ };
15
+ };
16
+ var mod = (c, dl = 0, dc = 0, dh = 0) => ({
17
+ l: Math.max(0, Math.min(1, c.l + dl)),
18
+ c: Math.max(0, c.c + dc),
19
+ h: (c.h + dh + 360) % 360
20
+ });
21
+ var rotateHue = (c, degrees) => mod(c, 0, 0, degrees);
22
+ var clampChroma = (c, maxC = 0.15) => ({
23
+ ...c,
24
+ c: Math.min(c.c, maxC)
25
+ });
26
+ var rotateSoft = (c, deg, maxC = 0.15) => clampChroma(rotateHue(c, deg), maxC);
27
+ var getForegroundColor = (foreground, color) => {
28
+ const contrast = Math.abs(foreground.l - color.l);
29
+ if (contrast < 0.7) {
30
+ foreground.l = 1 - foreground.l;
31
+ return oklchString(foreground);
32
+ }
33
+ return oklchString(foreground);
34
+ };
35
+ var shadeColor = (color, lightnessShift, chromaShift) => {
36
+ return oklchString({
37
+ l: color.l + lightnessShift,
38
+ c: color.c > 3e-3 ? color.c + chromaShift : color.c,
39
+ h: color.h
40
+ });
41
+ };
42
+ function generateColorSwatches(oklchString2) {
43
+ try {
44
+ const color = parseOklch(oklchString2);
45
+ const safeMax = color.l >= 0.885 ? 0.995 : 0.97;
46
+ const safeMin = color.l <= 0.33 ? 0 : 0.21;
47
+ const lightBase = (safeMax - color.l) / 5;
48
+ const darkBase = -(color.l - safeMin) / 8;
49
+ return [
50
+ // Light shades
51
+ shadeColor(color, 5 * lightBase, -375e-5),
52
+ shadeColor(color, 4 * lightBase, -375e-5),
53
+ shadeColor(color, 3 * lightBase, -375e-5),
54
+ shadeColor(color, 2 * lightBase, -375e-5),
55
+ shadeColor(color, lightBase, -375e-5),
56
+ // Dark shades
57
+ shadeColor(color, 1.6 * darkBase, 0.025),
58
+ shadeColor(color, 1.875 * 2 * darkBase, 0.05),
59
+ shadeColor(color, 3 * 2 * darkBase, 0.075),
60
+ shadeColor(color, 4 * 2 * darkBase, 0.1)
61
+ ];
62
+ } catch (error) {
63
+ console.error(`Failed to generate swatches for ${oklchString2}:`, error);
64
+ return [
65
+ "#f5f5f5",
66
+ "#e0e0e0",
67
+ "#cccccc",
68
+ "#b3b3b3",
69
+ "#999999",
70
+ "#666666",
71
+ "#4d4d4d",
72
+ "#333333",
73
+ "#1a1a1a"
74
+ ];
75
+ }
76
+ }
77
+ var CORE_COLOR_KEYS = [
78
+ "base",
79
+ "text",
80
+ "body",
81
+ "muted",
82
+ "mutedForeground",
83
+ "primary",
84
+ "primaryForeground",
85
+ "secondary",
86
+ "secondaryForeground",
87
+ "accent",
88
+ "accentForeground",
89
+ "destructive",
90
+ "destructiveForeground"
91
+ ];
92
+ var DEFAULT_CORE_COLORS = {
93
+ base: { l: 1, c: 0, h: 0 },
94
+ text: { l: 0, c: 0, h: 0 },
95
+ body: { l: 0.2046, c: 0, h: 0 },
96
+ muted: { l: 0.94, c: 0, h: 0 },
97
+ mutedForeground: { l: 0.4997, c: 0, h: 0 },
98
+ primary: { l: 0.6231, c: 0.188, h: 259.81 },
99
+ primaryForeground: { l: 1, c: 0, h: 0 },
100
+ secondary: { l: 0.6056, c: 0.2189, h: 292.72 },
101
+ secondaryForeground: { l: 1, c: 0, h: 0 },
102
+ accent: { l: 0.6959, c: 0.1491, h: 162.48 },
103
+ accentForeground: { l: 1, c: 0, h: 0 },
104
+ destructive: { l: 0.6368, c: 0.2078, h: 25.33 },
105
+ destructiveForeground: { l: 1, c: 0, h: 0 }
106
+ };
107
+ var themeConfigToCoreColors = (config) => ({
108
+ base: parseOklch(
109
+ config.background || config.base || oklchString(DEFAULT_CORE_COLORS.base)
110
+ ),
111
+ text: parseOklch(
112
+ config.foreground || config.text || oklchString(DEFAULT_CORE_COLORS.text)
113
+ ),
114
+ body: parseOklch(config.body || oklchString(DEFAULT_CORE_COLORS.body)),
115
+ muted: parseOklch(config.muted || oklchString(DEFAULT_CORE_COLORS.muted)),
116
+ mutedForeground: parseOklch(
117
+ config.mutedForeground || config.muted_foreground || oklchString(DEFAULT_CORE_COLORS.mutedForeground)
118
+ ),
119
+ primary: parseOklch(
120
+ config.primary || oklchString(DEFAULT_CORE_COLORS.primary)
121
+ ),
122
+ primaryForeground: parseOklch(
123
+ config.primaryForeground || config.primary_foreground || oklchString(DEFAULT_CORE_COLORS.primaryForeground)
124
+ ),
125
+ secondary: parseOklch(
126
+ config.secondary || oklchString(DEFAULT_CORE_COLORS.secondary)
127
+ ),
128
+ secondaryForeground: parseOklch(
129
+ config.secondaryForeground || config.secondary_foreground || oklchString(DEFAULT_CORE_COLORS.secondaryForeground)
130
+ ),
131
+ accent: parseOklch(config.accent || oklchString(DEFAULT_CORE_COLORS.accent)),
132
+ accentForeground: parseOklch(
133
+ config.accentForeground || config.accent_foreground || oklchString(DEFAULT_CORE_COLORS.accentForeground)
134
+ ),
135
+ destructive: parseOklch(
136
+ config.destructive || oklchString(DEFAULT_CORE_COLORS.destructive)
137
+ ),
138
+ destructiveForeground: parseOklch(
139
+ config.destructiveForeground || config.destructive_foreground || oklchString(DEFAULT_CORE_COLORS.destructiveForeground)
140
+ )
141
+ });
142
+ var coreColorsToConfig = (colors) => {
143
+ const config = {};
144
+ for (const key of CORE_COLOR_KEYS) {
145
+ config[key] = oklchString(colors[key]);
146
+ }
147
+ return config;
148
+ };
149
+ var DEFAULT_CORE_COLORS_CONFIG = coreColorsToConfig(DEFAULT_CORE_COLORS);
150
+ var THEME_MODES = {
151
+ light: "light",
152
+ dark: "dark"
153
+ };
154
+ var detectThemeMode = (core) => {
155
+ return core.base.l < 0.5 ? THEME_MODES.dark : THEME_MODES.light;
156
+ };
157
+ var toDarkMode = (core) => {
158
+ const isDark = core.base.l < 0.5;
159
+ if (isDark) return core;
160
+ return {
161
+ // Base
162
+ base: mod(core.base, 1 - core.base.l * 2),
163
+ // Make base dark
164
+ text: mod(core.text, core.text.l > 0.5 ? 0 : 0.5),
165
+ // Ensure text is light
166
+ body: mod(core.body, core.body.l > 0.5 ? 0 : 0.5),
167
+ muted: mod(core.muted, 1 - core.muted.l * 2),
168
+ mutedForeground: mod(
169
+ core.mutedForeground,
170
+ core.mutedForeground.l > 0.5 ? 0 : 0.4
171
+ ),
172
+ // Color
173
+ primary: core.primary,
174
+ primaryForeground: core.primaryForeground,
175
+ secondary: core.secondary,
176
+ secondaryForeground: core.secondaryForeground,
177
+ accent: core.accent,
178
+ accentForeground: core.accentForeground,
179
+ destructive: core.destructive,
180
+ destructiveForeground: core.destructiveForeground
181
+ };
182
+ };
183
+ var toLightMode = (core) => {
184
+ const isLight = core.base.l > 0.5;
185
+ if (isLight) return core;
186
+ return {
187
+ // Base
188
+ base: mod(core.base, 1 - core.base.l * 2),
189
+ // Make base light
190
+ text: mod(core.text, core.text.l < 0.5 ? 0.5 : -0.5),
191
+ // Ensure text is dark
192
+ body: mod(core.body, core.body.l < 0.5 ? 0.5 : -0.5),
193
+ muted: mod(core.muted, 1 - core.muted.l * 2),
194
+ mutedForeground: mod(
195
+ core.mutedForeground,
196
+ core.mutedForeground.l < 0.5 ? 0.5 : -0.4
197
+ ),
198
+ // Color
199
+ primary: core.primary,
200
+ primaryForeground: core.primaryForeground,
201
+ secondary: core.secondary,
202
+ secondaryForeground: core.secondaryForeground,
203
+ accent: core.accent,
204
+ accentForeground: core.accentForeground,
205
+ destructive: core.destructive,
206
+ destructiveForeground: core.destructiveForeground
207
+ };
208
+ };
209
+ var FONT_OPTIONS = {
210
+ Inter: "var(--font-inter)",
211
+ Eina: "var(--font-eina)"
212
+ };
213
+ var CORE_FONT_KEYS = [
214
+ "headerFont",
215
+ "bodyFont",
216
+ "extraSmall",
217
+ "small",
218
+ "regular",
219
+ "large",
220
+ "extraLarge",
221
+ "giant"
222
+ ];
223
+ var DEFAULT_FONT = {
224
+ headerFont: FONT_OPTIONS.Inter,
225
+ bodyFont: FONT_OPTIONS.Inter,
226
+ extraSmall: "0.75rem",
227
+ small: "0.875rem",
228
+ regular: "1rem",
229
+ large: "1.125rem",
230
+ extraLarge: "1.25rem",
231
+ giant: "1.5rem"
232
+ };
233
+ var fontConfigToCoreFont = (config) => {
234
+ return {
235
+ headerFont: config.headerFont || DEFAULT_FONT.headerFont,
236
+ bodyFont: config.bodyFont || DEFAULT_FONT.bodyFont,
237
+ extraSmall: config.extraSmall || DEFAULT_FONT.extraSmall,
238
+ small: config.small || DEFAULT_FONT.small,
239
+ regular: config.regular || DEFAULT_FONT.regular,
240
+ large: config.large || DEFAULT_FONT.large,
241
+ extraLarge: config.extraLarge || DEFAULT_FONT.extraLarge,
242
+ giant: config.giant || DEFAULT_FONT.giant
243
+ };
244
+ };
245
+ var CORE_SPACING_KEYS = [
246
+ "globalSpacing",
247
+ "radiusSmall",
248
+ "radiusMedium",
249
+ "radiusLarge",
250
+ "radiusExtraLarge"
251
+ ];
252
+ var DEFAULT_SPACING = {
253
+ globalSpacing: "0.25rem",
254
+ radiusSmall: "0.25rem",
255
+ radiusMedium: "0.375rem",
256
+ radiusLarge: "0.5rem",
257
+ radiusExtraLarge: "0.75rem"
258
+ };
259
+ var spacingConfigToCoreSpacing = (config) => {
260
+ return {
261
+ globalSpacing: config.globalSpacing || DEFAULT_SPACING.globalSpacing,
262
+ radiusSmall: config.radiusSmall || DEFAULT_SPACING.radiusSmall,
263
+ radiusMedium: config.radiusMedium || DEFAULT_SPACING.radiusMedium,
264
+ radiusLarge: config.radiusLarge || DEFAULT_SPACING.radiusLarge,
265
+ radiusExtraLarge: config.radiusExtraLarge || DEFAULT_SPACING.radiusExtraLarge
266
+ };
267
+ };
268
+ var CORE_NON_COLOR_KEYS = [
269
+ ...CORE_FONT_KEYS,
270
+ ...CORE_SPACING_KEYS
271
+ ];
272
+ var separatedThemeConfig = (config) => {
273
+ const ensuredConfig = [
274
+ ...CORE_NON_COLOR_KEYS,
275
+ ...CORE_COLOR_KEYS
276
+ ].reduce((acc, key) => {
277
+ acc[key] = config[key] || DEFAULT_CORE_COLORS_CONFIG[key] || DEFAULT_FONT[key] || DEFAULT_SPACING[key];
278
+ return acc;
279
+ }, {});
280
+ const colorConfig = Object.fromEntries(
281
+ Object.entries(ensuredConfig).filter(
282
+ ([key]) => CORE_COLOR_KEYS.includes(key)
283
+ )
284
+ );
285
+ const otherConfig = Object.fromEntries(
286
+ Object.entries(ensuredConfig).filter(
287
+ ([key]) => CORE_NON_COLOR_KEYS.includes(key)
288
+ )
289
+ );
290
+ return {
291
+ colorConfig,
292
+ otherConfig
293
+ };
294
+ };
295
+ var themeConfigToCoreNonColorFields = (config) => {
296
+ return {
297
+ ...fontConfigToCoreFont(config),
298
+ ...spacingConfigToCoreSpacing(config)
299
+ };
300
+ };
301
+ var globalCSSOverride = {
302
+ "--color-background-foreground": "var(--color-foreground)",
303
+ "--color-foreground-foreground": "var(--color-background)",
304
+ "--sidebar-ring": "var(--color-primary)",
305
+ "--sidebar-border": "var(--color-border)",
306
+ "--sidebar-accent-foreground": "var(--color-accent-foreground)",
307
+ "--sidebar-accent": "var(--color-accent)",
308
+ "--sidebar-primary-foreground": "var(--color-primary-foreground)",
309
+ "--sidebar-primary": "var(--color-primary)",
310
+ "--sidebar-foreground": "var(--color-muted-foreground)",
311
+ "--sidebar": "var(--color-muted)",
312
+ "--ring": "var(--color-primary)",
313
+ "--popover": "var(--color-background)",
314
+ "--popover-foreground": "var(--color-foreground)",
315
+ "--card": "var(--color-muted)",
316
+ "--card-foreground": "var(--color-muted-foreground)",
317
+ "--spacing": "var(--global-spacing)",
318
+ "--radius-sm": "var(--radius-small)",
319
+ "--radius-md": "var(--radius-medium)",
320
+ "--radius-lg": "var(--radius-large)",
321
+ "--radius-xl": "var(--radius-extra-large)",
322
+ "--text-xs": "var(--text-extra-small)",
323
+ "--text-sm": "var(--text-small)",
324
+ "--text-base": "var(--text-regular)",
325
+ "--text-lg": "var(--text-large)",
326
+ "--text-xl": "var(--text-extra-large)",
327
+ "--text-2xl": "var(--text-giant)",
328
+ "--font-sans": "var(--font-body)",
329
+ "--font-mono": "var(--font-header)"
330
+ };
331
+ function generateThemeCssVars(config, mode) {
332
+ const coreColors = themeConfigToCoreColors(config);
333
+ const coreOther = themeConfigToCoreNonColorFields(config);
334
+ const theme = generateTheme("preview", coreColors, mode, coreOther);
335
+ const cssVars = { ...globalCSSOverride };
336
+ Object.entries(theme.config).forEach(([key, value]) => {
337
+ const cssKey = `--${key.replace(/_/g, "-")}`;
338
+ cssVars[cssKey] = String(value);
339
+ if (value.startsWith("oklch(")) {
340
+ const colorVariable = cssKey.replace(/^--/, "--color-");
341
+ cssVars[colorVariable] = String(value);
342
+ const swatches = generateColorSwatches(value);
343
+ swatches.forEach((swatch, index) => {
344
+ const swatchKey = `--color-${key.replace(/_/g, "-")}-${index + 1}00`;
345
+ cssVars[swatchKey] = String(swatch);
346
+ });
347
+ }
348
+ });
349
+ return cssVars;
350
+ }
351
+ var generateTheme = (name, colorFields, mode = THEME_MODES.dark, otherFields) => {
352
+ const modeCore = mode === "dark" ? toDarkMode(colorFields) : toLightMode(colorFields);
353
+ const surface = mod(modeCore.base, (1 - modeCore.base.l) * 0.1);
354
+ const normalize = (c) => c;
355
+ const base = normalize(modeCore.base);
356
+ const text = normalize(modeCore.text);
357
+ const body = normalize(modeCore.body);
358
+ const muted = normalize(modeCore.muted);
359
+ const mutedForeground = normalize(modeCore.mutedForeground);
360
+ const primary = normalize(modeCore.primary);
361
+ const primaryForeground = normalize(modeCore.primaryForeground);
362
+ const secondary = normalize(modeCore.secondary);
363
+ const secondaryForeground = normalize(modeCore.secondaryForeground);
364
+ const accent = normalize(modeCore.accent);
365
+ const accentForeground = normalize(modeCore.accentForeground);
366
+ const destructive = normalize(modeCore.destructive);
367
+ const destructiveForeground = normalize(modeCore.destructiveForeground);
368
+ const chart1 = accent;
369
+ const chart2 = primary;
370
+ const chart3 = secondary;
371
+ const chart4 = rotateSoft(primary, 60);
372
+ const chart5 = rotateSoft(primary, 120);
373
+ const otherConfig = otherFields ?? {
374
+ ...DEFAULT_FONT,
375
+ ...DEFAULT_SPACING
376
+ };
377
+ return {
378
+ name,
379
+ mode,
380
+ config: {
381
+ // Base
382
+ background: oklchString(base),
383
+ foreground: oklchString(text),
384
+ // Body
385
+ body: oklchString(body),
386
+ // Popover
387
+ popover: oklchString(base),
388
+ popover_foreground: oklchString(text),
389
+ // Primary
390
+ primary: oklchString(primary),
391
+ primary_foreground: oklchString(primaryForeground),
392
+ // Secondary
393
+ secondary: oklchString(secondary),
394
+ secondary_foreground: oklchString(secondaryForeground),
395
+ // muted
396
+ muted: oklchString(muted),
397
+ muted_foreground: oklchString(mutedForeground),
398
+ // Accent
399
+ accent: oklchString(accent),
400
+ accent_foreground: oklchString(accentForeground),
401
+ // Destructive
402
+ destructive: oklchString(destructive),
403
+ destructive_foreground: oklchString(destructiveForeground),
404
+ // Border / input / ring
405
+ border: oklchString(surface),
406
+ input: oklchString(surface),
407
+ // Charts
408
+ chart_1: oklchString(chart1),
409
+ chart_2: oklchString(chart2),
410
+ chart_3: oklchString(chart3),
411
+ chart_4: oklchString(chart4),
412
+ chart_5: oklchString(chart5),
413
+ // Font
414
+ font_header: otherConfig.headerFont || DEFAULT_FONT.headerFont,
415
+ font_body: otherConfig.bodyFont || DEFAULT_FONT.bodyFont,
416
+ text_extra_small: otherConfig.extraSmall || DEFAULT_FONT.extraSmall,
417
+ text_small: otherConfig.small || DEFAULT_FONT.small,
418
+ text_regular: otherConfig.regular || DEFAULT_FONT.regular,
419
+ text_large: otherConfig.large || DEFAULT_FONT.large,
420
+ text_extra_large: otherConfig.extraLarge || DEFAULT_FONT.extraLarge,
421
+ text_giant: otherConfig.giant || DEFAULT_FONT.giant,
422
+ // Spacing
423
+ global_spacing: otherConfig.globalSpacing || DEFAULT_SPACING.globalSpacing,
424
+ radius_small: otherConfig.radiusSmall || DEFAULT_SPACING.radiusSmall,
425
+ radius_medium: otherConfig.radiusMedium || DEFAULT_SPACING.radiusMedium,
426
+ radius_large: otherConfig.radiusLarge || DEFAULT_SPACING.radiusLarge,
427
+ radius_extra_large: otherConfig.radiusExtraLarge || DEFAULT_SPACING.radiusExtraLarge
428
+ },
429
+ default: false
430
+ };
431
+ };
432
+ var generateDualTheme = (name, core) => {
433
+ return {
434
+ light: generateTheme(name, core, "light"),
435
+ dark: generateTheme(name, core, "dark")
436
+ };
437
+ };
438
+ var generateSmartDualTheme = (name, core) => {
439
+ const detectedMode = detectThemeMode(core);
440
+ return {
441
+ light: generateTheme(name, core, "light"),
442
+ dark: generateTheme(name, core, "dark"),
443
+ detectedMode
444
+ // Returns which mode the original core colors represent
445
+ };
446
+ };
447
+ var getThemeIdentifier = (theme) => {
448
+ return theme.id !== void 0 ? theme.id.toString() : theme.name;
449
+ };
450
+ var findThemeByIdentifier = (themes, identifier) => {
451
+ if (typeof identifier === "number") {
452
+ return themes.find((t) => t.id === identifier);
453
+ }
454
+ const numericId = parseInt(identifier, 10);
455
+ if (!isNaN(numericId)) {
456
+ const byId = themes.find((t) => t.id === numericId);
457
+ if (byId) return byId;
458
+ }
459
+ return themes.find((t) => t.name === identifier);
460
+ };
461
+ var isSameTheme = (theme1, theme2) => {
462
+ if (!theme1) return false;
463
+ if (theme1.id !== void 0 && theme2.id !== void 0) {
464
+ return theme1.id === theme2.id;
465
+ }
466
+ return theme1.name === theme2.name;
467
+ };
468
+
469
+ // src/theme/index.ts
470
+ var dracula = generateTheme("Dracula", {
471
+ // Base - Official: draculatheme.com/spec
472
+ base: { l: 0.2882, c: 0.0221, h: 277.51 },
473
+ // Official: #282A36 (Background)
474
+ text: { l: 0.9775, c: 79e-4, h: 106.55 },
475
+ // Official: #F8F8F2 (Foreground)
476
+ body: { l: 0.75, c: 0.02, h: 300 },
477
+ // Body text
478
+ muted: { l: 0.4028, c: 0.0322, h: 277.83 },
479
+ // Surface/Card bg - Official: #44475A (Current Line)
480
+ mutedForeground: { l: 0.5598, c: 0.0803, h: 270.09 },
481
+ // Official: #6272A4 (Comment)
482
+ // Color
483
+ primary: { l: 0.742, c: 0.1485, h: 301.88 },
484
+ // Official: #BD93F9 (Purple)
485
+ primaryForeground: { l: 0.15, c: 0.01, h: 275 },
486
+ secondary: { l: 0.5598, c: 0.0803, h: 270.09 },
487
+ // Official: #6272A4 (Comment)
488
+ secondaryForeground: { l: 0.15, c: 0.01, h: 245 },
489
+ accent: { l: 0.871, c: 0.2195, h: 148.02 },
490
+ // Official: #50FA7B (Green)
491
+ accentForeground: { l: 0.15, c: 0.01, h: 110 },
492
+ destructive: { l: 0.6822, c: 0.2063, h: 24.43 },
493
+ // Official: #FF5555 (Red)
494
+ destructiveForeground: { l: 0.15, c: 0.01, h: 30 }
495
+ });
496
+ var solarized = generateTheme(
497
+ "Solarized",
498
+ {
499
+ // Base - Official: ethanschoonover.com/solarized
500
+ base: { l: 0.9735, c: 0.0261, h: 90.1 },
501
+ // Official: #fdf6e3 (base3)
502
+ text: { l: 0.3092, c: 0.0518, h: 219.65 },
503
+ // Official: #073642 (base02)
504
+ body: { l: 0.523, c: 0.0283, h: 219.14 },
505
+ // Official: #586e75 (base01)
506
+ muted: { l: 0.9306, c: 0.026, h: 92.4 },
507
+ // Surface/Card bg - Official: #eee8d5 (base2)
508
+ mutedForeground: { l: 0.5682, c: 0.0285, h: 221.9 },
509
+ // Official: #657b83 (base00)
510
+ // Color
511
+ primary: { l: 0.6437, c: 0.1019, h: 187.38 },
512
+ // Official: #2aa198 (cyan)
513
+ primaryForeground: { l: 0.98, c: 0.01, h: 180 },
514
+ secondary: { l: 0.6444, c: 0.1508, h: 118.6 },
515
+ // Official: #859900 (green)
516
+ secondaryForeground: { l: 0.15, c: 0.01, h: 145 },
517
+ accent: { l: 0.6545, c: 0.134, h: 85.72 },
518
+ // Official: #b58900 (yellow)
519
+ accentForeground: { l: 0.15, c: 0.01, h: 85 },
520
+ destructive: { l: 0.5863, c: 0.2064, h: 27.12 },
521
+ // Official: #dc322f (red)
522
+ destructiveForeground: { l: 0.98, c: 0.01, h: 30 }
523
+ },
524
+ "light"
525
+ );
526
+ var gruvbox = generateTheme(
527
+ "Gruvbox",
528
+ {
529
+ // Base - Official: github.com/morhetz/gruvbox (Light mode)
530
+ base: { l: 0.9555, c: 0.0555, h: 96.15 },
531
+ // Official: #fbf1c7 (bg0 light)
532
+ text: { l: 0.3441, c: 66e-4, h: 48.52 },
533
+ // Official: #3c3836 (fg1 light)
534
+ body: { l: 0.411, c: 0.0115, h: 51.87 },
535
+ // Official: #504945 (fg2 light)
536
+ muted: { l: 0.8941, c: 0.0566, h: 89.24 },
537
+ // Surface/Card bg - Official: #ebdbb2 (bg1 light)
538
+ mutedForeground: { l: 0.5505, c: 0.0234, h: 62.57 },
539
+ // Official: #7c6f64 (gray)
540
+ // Color
541
+ primary: { l: 0.7251, c: 0.1429, h: 77.71 },
542
+ // Official: #d79921 (yellow)
543
+ primaryForeground: { l: 0.15, c: 0.01, h: 80 },
544
+ secondary: { l: 0.6564, c: 0.1354, h: 109.12 },
545
+ // Official: #98971a (green)
546
+ secondaryForeground: { l: 0.15, c: 0.01, h: 145 },
547
+ accent: { l: 0.6217, c: 0.1707, h: 45.81 },
548
+ // Official: #d65d0e (orange)
549
+ accentForeground: { l: 0.15, c: 0.01, h: 35 },
550
+ destructive: { l: 0.5458, c: 0.203, h: 28.66 },
551
+ // Official: #cc241d (red)
552
+ destructiveForeground: { l: 0.98, c: 0.01, h: 30 }
553
+ },
554
+ "light"
555
+ );
556
+ var monokai = generateTheme("Monokai", {
557
+ // Base - Official: Sublime Text Monokai
558
+ base: { l: 0.2737, c: 0.0109, h: 114.8 },
559
+ // Official: #272822 (Background)
560
+ text: { l: 0.9775, c: 79e-4, h: 106.55 },
561
+ // Official: #F8F8F2 (Foreground)
562
+ body: { l: 0.75, c: 0.04, h: 90 },
563
+ // Body text
564
+ muted: { l: 0.3574, c: 0.0184, h: 103 },
565
+ // Surface/Card bg - Official: #3E3D32 (Line hig
566
+ mutedForeground: { l: 0.5467, c: 0.0288, h: 97.39 },
567
+ // Official: #75715E (Comment)
568
+ // Color
569
+ primary: { l: 0.8792, c: 0.1255, h: 103.18 },
570
+ // Official: #E6DB74 (Yellow)
571
+ primaryForeground: { l: 0.15, c: 0.01, h: 60 },
572
+ secondary: { l: 0.6416, c: 0.24, h: 7.47 },
573
+ // Official: #F92672 (Pink)
574
+ secondaryForeground: { l: 0.15, c: 0.01, h: 300 },
575
+ accent: { l: 0.8414, c: 0.2044, h: 127.29 },
576
+ // Official: #A6E22E (Green)
577
+ accentForeground: { l: 0.15, c: 0.01, h: 110 },
578
+ destructive: { l: 0.6416, c: 0.24, h: 7.47 },
579
+ // Official: #F92672 (Red/Pink)
580
+ destructiveForeground: { l: 0.98, c: 0.01, h: 20 }
581
+ });
582
+ var tokyoNight = generateTheme("Tokyo Night", {
583
+ // Base - Official: github.com/folke/tokyonight.nvim
584
+ base: { l: 0.2263, c: 0.0214, h: 280.49 },
585
+ // Official: #1a1b26 (bg)
586
+ text: { l: 0.8456, c: 0.0611, h: 274.76 },
587
+ // Official: #c0caf5 (fg)
588
+ body: { l: 0.7666, c: 0.0537, h: 275.49 },
589
+ // Official: #a9b1d6 (fg_dark)
590
+ muted: { l: 0.2819, c: 0.0355, h: 274.75 },
591
+ // Surface/Card bg - Official: #24283b (bg_highlight)
592
+ mutedForeground: { l: 0.4955, c: 0.0682, h: 274.37 },
593
+ // Official: #565f89 (comment)
594
+ // Color
595
+ primary: { l: 0.719, c: 0.1322, h: 264.2 },
596
+ // Official: #7aa2f7 (blue)
597
+ primaryForeground: { l: 0.15, c: 0.01, h: 260 },
598
+ secondary: { l: 0.7515, c: 0.1344, h: 299.5 },
599
+ // Official: #bb9af7 (magenta)
600
+ secondaryForeground: { l: 0.15, c: 0.01, h: 295 },
601
+ accent: { l: 0.7839, c: 0.1057, h: 75.43 },
602
+ // Official: #e0af68 (yellow)
603
+ accentForeground: { l: 0.15, c: 0.01, h: 80 },
604
+ destructive: { l: 0.7227, c: 0.1589, h: 10.28 },
605
+ // Official: #f7768e (red)
606
+ destructiveForeground: { l: 0.15, c: 0.01, h: 20 }
607
+ });
608
+ var rosePine = generateTheme("Rose Pine", {
609
+ // Base - Official: rosepinetheme.com/palette
610
+ base: { l: 0.2134, c: 0.0255, h: 291.13 },
611
+ // Official: #191724 (Base)
612
+ text: { l: 0.9088, c: 0.0299, h: 289.97 },
613
+ // Official: #e0def4 (Text)
614
+ body: { l: 0.6539, c: 0.0444, h: 291.23 },
615
+ // Official: #908caa (Subtle)
616
+ muted: { l: 0.2413, c: 0.0322, h: 289.14 },
617
+ // Surface/Card bg - Official: #1f1d2e (Surface)
618
+ mutedForeground: { l: 0.5383, c: 0.0435, h: 291.41 },
619
+ // Official: #6e6a86 (Muted)
620
+ // Color
621
+ primary: { l: 0.8363, c: 0.0544, h: 21.14 },
622
+ // Official: #ebbcba (Rose)
623
+ primaryForeground: { l: 0.15, c: 0.01, h: 345 },
624
+ secondary: { l: 0.5277, c: 0.0793, h: 227.72 },
625
+ // Official: #31748f (Pine)
626
+ secondaryForeground: { l: 0.15, c: 0.01, h: 155 },
627
+ accent: { l: 0.776, c: 0.0945, h: 304.99 },
628
+ // Official: #c4a7e7 (Iris)
629
+ accentForeground: { l: 0.15, c: 0.01, h: 270 },
630
+ destructive: { l: 0.6977, c: 0.1565, h: 4.22 },
631
+ // Official: #eb6f92 (Love)
632
+ destructiveForeground: { l: 0.15, c: 0.01, h: 25 }
633
+ });
634
+ var everforest = generateTheme(
635
+ "Everforest",
636
+ {
637
+ // Base - Official: github.com/sainnhe/everforest (Light mode)
638
+ base: { l: 0.9735, c: 0.0261, h: 90.1 },
639
+ // Official: #fdf6e3 (bg0 light medium)
640
+ text: { l: 0.5154, c: 0.0212, h: 232.87 },
641
+ // Official: #5c6a72 (fg)
642
+ body: { l: 0.6398, c: 0.0292, h: 143.51 },
643
+ // Official: #829181 (grey2)
644
+ muted: { l: 0.9522, c: 0.0306, h: 98.86 },
645
+ // Surface/Card bg - Official: #f4f0d9 (bg1 light)
646
+ mutedForeground: { l: 0.6888, c: 0.0243, h: 141.21 },
647
+ // Official: #939f91 (grey1)
648
+ // Color
649
+ primary: { l: 0.6697, c: 0.156, h: 118.23 },
650
+ // Official: #8da101 (green)
651
+ primaryForeground: { l: 0.98, c: 0.01, h: 140 },
652
+ secondary: { l: 0.7466, c: 0.1545, h: 80.27 },
653
+ // Official: #dfa000 (yellow)
654
+ secondaryForeground: { l: 0.15, c: 0.01, h: 60 },
655
+ accent: { l: 0.7147, c: 0.1729, h: 50.75 },
656
+ // Official: #f57d26 (orange)
657
+ accentForeground: { l: 0.15, c: 0.01, h: 30 },
658
+ destructive: { l: 0.6707, c: 0.1996, h: 25.2 },
659
+ // Official: #f85552 (red)
660
+ destructiveForeground: { l: 0.98, c: 0.01, h: 20 }
661
+ },
662
+ "light"
663
+ );
664
+ var nord = generateTheme("Nord", {
665
+ // Base - Official: nordtheme.com
666
+ base: { l: 0.3244, c: 0.0229, h: 264.18 },
667
+ // Official: #2e3440 (nord0 - Polar Night)
668
+ text: { l: 0.9513, c: 74e-4, h: 260.73 },
669
+ // Official: #eceff4 (nord6 - Snow Storm)
670
+ body: { l: 0.8993, c: 0.0164, h: 262.75 },
671
+ // Official: #d8dee9 (nord4 - Snow Storm)
672
+ muted: { l: 0.3792, c: 0.029, h: 266.47 },
673
+ // Surface/Card bg - Official: #3b4252 (nord1)
674
+ mutedForeground: { l: 0.4523, c: 0.0352, h: 264.13 },
675
+ // Official: #4c566a (nord3)
676
+ // Color
677
+ primary: { l: 0.7746, c: 0.0622, h: 217.47 },
678
+ // Official: #88c0d0 (nord8 - Frost)
679
+ primaryForeground: { l: 0.15, c: 0.01, h: 210 },
680
+ secondary: { l: 0.7629, c: 0.0477, h: 194.49 },
681
+ // Official: #8fbcbb (nord7 - Frost)
682
+ secondaryForeground: { l: 0.15, c: 0.01, h: 190 },
683
+ accent: { l: 0.6921, c: 0.0625, h: 332.66 },
684
+ // Official: #b48ead (nord15 - Aurora)
685
+ accentForeground: { l: 0.15, c: 0.01, h: 250 },
686
+ destructive: { l: 0.6061, c: 0.1206, h: 15.34 },
687
+ // Official: #bf616a (nord11 - Aurora)
688
+ destructiveForeground: { l: 0.98, c: 0.01, h: 25 }
689
+ });
690
+ var catppuccinMocha = generateTheme("Catppuccin Mocha", {
691
+ // Base - Official: catppuccin.com/palette (Mocha variant)
692
+ base: { l: 0.2429, c: 0.0304, h: 283.91 },
693
+ // Official: #1e1e2e (Base)
694
+ text: { l: 0.8787, c: 0.0426, h: 272.28 },
695
+ // Official: #cdd6f4 (Text)
696
+ body: { l: 0.8168, c: 0.0403, h: 272.86 },
697
+ // Official: #bac2de (Subtext 1)
698
+ muted: { l: 0.2155, c: 0.0254, h: 284.06 },
699
+ // Surface/Card bg - Official: #181825 (Mantle)
700
+ mutedForeground: { l: 0.751, c: 0.0396, h: 273.93 },
701
+ // Official: #a6adc8 (Subtext 0)
702
+ // Color
703
+ primary: { l: 0.7664, c: 0.1113, h: 259.88 },
704
+ // Official: #89b4fa (Blue)
705
+ primaryForeground: { l: 0.15, c: 0.01, h: 255 },
706
+ secondary: { l: 0.7871, c: 0.1187, h: 304.77 },
707
+ // Official: #cba6f7 (Mauve)
708
+ secondaryForeground: { l: 0.15, c: 0.01, h: 294 },
709
+ accent: { l: 0.9193, c: 0.0704, h: 86.53 },
710
+ // Official: #f9e2af (Yellow)
711
+ accentForeground: { l: 0.15, c: 0.01, h: 72 },
712
+ destructive: { l: 0.7556, c: 0.1297, h: 2.76 },
713
+ // Official: #f38ba8 (Red)
714
+ destructiveForeground: { l: 0.15, c: 0.01, h: 22 }
715
+ });
716
+ var nordifiedCatppuccin = generateTheme("Nordified Catppuccin", {
717
+ // Base - Custom hybrid: Nord backgrounds + Catppuccin accents
718
+ base: parseOklch(nord.config.background),
719
+ text: parseOklch(nord.config.foreground),
720
+ body: parseOklch(nord.config.body),
721
+ muted: parseOklch(nord.config.muted),
722
+ mutedForeground: parseOklch(nord.config.muted_foreground),
723
+ // Color - Catppuccin accent colors
724
+ primary: parseOklch(catppuccinMocha.config.primary),
725
+ primaryForeground: parseOklch(catppuccinMocha.config.primary_foreground),
726
+ secondary: parseOklch(catppuccinMocha.config.secondary),
727
+ secondaryForeground: parseOklch(catppuccinMocha.config.secondary_foreground),
728
+ accent: parseOklch(catppuccinMocha.config.accent),
729
+ accentForeground: parseOklch(catppuccinMocha.config.accent_foreground),
730
+ destructive: parseOklch(catppuccinMocha.config.destructive),
731
+ destructiveForeground: parseOklch(
732
+ catppuccinMocha.config.destructive_foreground
733
+ )
734
+ });
735
+ var christmas = generateTheme("Christmas", {
736
+ // Base - Custom holiday theme
737
+ base: { l: 0.22, c: 0.04, h: 150 },
738
+ // Dark forest green
739
+ text: { l: 0.95, c: 0.02, h: 100 },
740
+ // Snow white
741
+ body: { l: 0.85, c: 0.02, h: 100 },
742
+ // Body text
743
+ muted: { l: 0.15, c: 0.04, h: 150 },
744
+ // Surface/Card bg - Darker green
745
+ mutedForeground: { l: 0.65, c: 0.02, h: 100 },
746
+ // Muted snow
747
+ // Color
748
+ primary: { l: 0.6, c: 0.15, h: 30 },
749
+ // Christmas red
750
+ primaryForeground: { l: 0.98, c: 0.01, h: 30 },
751
+ secondary: { l: 0.7, c: 0.12, h: 140 },
752
+ // Bright holiday green
753
+ secondaryForeground: { l: 0.15, c: 0.01, h: 140 },
754
+ accent: { l: 0.85, c: 0.12, h: 90 },
755
+ // Warm gold highlight
756
+ accentForeground: { l: 0.15, c: 0.01, h: 90 },
757
+ destructive: { l: 0.55, c: 0.18, h: 25 },
758
+ // Stronger red
759
+ destructiveForeground: { l: 0.98, c: 0.01, h: 25 }
760
+ });
761
+ var pastel = generateTheme("Pastel", {
762
+ // Base - Custom soft pastel theme
763
+ base: { l: 0.95, c: 0.03, h: 210 },
764
+ // Soft light blue-tinted base
765
+ text: { l: 0.25, c: 0.03, h: 210 },
766
+ // Soft dark text
767
+ body: { l: 0.35, c: 0.03, h: 210 },
768
+ // Body text
769
+ muted: { l: 0.89, c: 0.03, h: 210 },
770
+ // Surface/Card bg - Slightly darker
771
+ mutedForeground: { l: 0.5, c: 0.03, h: 210 },
772
+ // Muted foreground
773
+ // Color
774
+ primary: { l: 0.55, c: 0.12, h: 200 },
775
+ // Pastel blue
776
+ primaryForeground: { l: 0.98, c: 0.01, h: 200 },
777
+ secondary: { l: 0.55, c: 0.12, h: 320 },
778
+ // Pastel pink
779
+ secondaryForeground: { l: 0.98, c: 0.01, h: 320 },
780
+ accent: { l: 0.6, c: 0.13, h: 80 },
781
+ // Pastel yellow
782
+ accentForeground: { l: 0.98, c: 0.01, h: 80 },
783
+ destructive: { l: 0.5, c: 0.15, h: 25 },
784
+ // Pastel red
785
+ destructiveForeground: { l: 0.98, c: 0.01, h: 25 }
786
+ });
787
+ var neon = generateTheme("Neon", {
788
+ // Base - Custom vibrant neon theme
789
+ base: { l: 0.1, c: 0.03, h: 260 },
790
+ // Deep dark purple-tinted base
791
+ text: { l: 0.9, c: 0.05, h: 260 },
792
+ // Bright neon text
793
+ body: { l: 0.8, c: 0.04, h: 260 },
794
+ // Body text
795
+ muted: { l: 0.18, c: 0.02, h: 260 },
796
+ // Surface/Card bg - Slightly lighter
797
+ mutedForeground: { l: 0.55, c: 0.04, h: 260 },
798
+ // Muted foreground
799
+ // Color - High saturation neon accents
800
+ primary: { l: 0.6, c: 0.2, h: 180 },
801
+ // Neon cyan
802
+ primaryForeground: { l: 0.1, c: 0.01, h: 180 },
803
+ secondary: { l: 0.6, c: 0.2, h: 300 },
804
+ // Neon magenta
805
+ secondaryForeground: { l: 0.1, c: 0.01, h: 300 },
806
+ accent: { l: 0.55, c: 0.2, h: 90 },
807
+ // Neon green
808
+ accentForeground: { l: 0.1, c: 0.01, h: 90 },
809
+ destructive: { l: 0.55, c: 0.22, h: 20 },
810
+ // Neon red
811
+ destructiveForeground: { l: 0.1, c: 0.01, h: 20 }
812
+ });
813
+ var highContrast = generateTheme("High Contrast", {
814
+ // Base - Custom accessibility theme (max contrast)
815
+ base: { l: 0, c: 0, h: 0 },
816
+ // Pure black #000000
817
+ text: { l: 1, c: 0, h: 0 },
818
+ // Pure white #ffffff
819
+ body: { l: 0.9, c: 0, h: 0 },
820
+ // Body text
821
+ muted: { l: 0.12, c: 0, h: 0 },
822
+ // Surface/Card bg - Near black
823
+ mutedForeground: { l: 0.6, c: 0, h: 0 },
824
+ // Muted gray
825
+ // Color - Maximum saturation for visibility
826
+ primary: { l: 0.5, c: 0.25, h: 260 },
827
+ // Saturated blue
828
+ primaryForeground: { l: 1, c: 0, h: 0 },
829
+ secondary: { l: 0.5, c: 0.25, h: 120 },
830
+ // Saturated green
831
+ secondaryForeground: { l: 1, c: 0, h: 0 },
832
+ accent: { l: 0.5, c: 0.25, h: 60 },
833
+ // Saturated yellow
834
+ accentForeground: { l: 0, c: 0, h: 0 },
835
+ destructive: { l: 0.5, c: 0.25, h: 0 },
836
+ // Saturated red
837
+ destructiveForeground: { l: 1, c: 0, h: 0 }
838
+ });
839
+ var ocean = generateTheme(
840
+ "Ocean",
841
+ {
842
+ // Base - Custom blue ocean theme
843
+ base: { l: 0.25, c: 0.03, h: 220 },
844
+ // Deep ocean blue
845
+ text: { l: 0.85, c: 0.02, h: 220 },
846
+ // Light seafoam text
847
+ body: { l: 0.75, c: 0.02, h: 220 },
848
+ // Body text
849
+ muted: { l: 0.33, c: 0.02, h: 220 },
850
+ // Surface/Card bg - Lighter ocean
851
+ mutedForeground: { l: 0.55, c: 0.02, h: 220 },
852
+ // Muted foreground
853
+ // Color
854
+ primary: { l: 0.65, c: 0.12, h: 200 },
855
+ // Ocean blue
856
+ primaryForeground: { l: 0.15, c: 0.01, h: 200 },
857
+ secondary: { l: 0.7, c: 0.1, h: 180 },
858
+ // Teal
859
+ secondaryForeground: { l: 0.15, c: 0.01, h: 180 },
860
+ accent: { l: 0.75, c: 0.08, h: 160 },
861
+ // Aqua
862
+ accentForeground: { l: 0.15, c: 0.01, h: 160 },
863
+ destructive: { l: 0.6, c: 0.14, h: 25 },
864
+ // Coral red
865
+ destructiveForeground: { l: 0.98, c: 0.01, h: 25 }
866
+ },
867
+ "light"
868
+ );
869
+ var forest = generateTheme(
870
+ "Forest",
871
+ {
872
+ // Base - Custom nature green theme
873
+ base: { l: 0.28, c: 0.04, h: 140 },
874
+ // Deep forest green
875
+ text: { l: 0.88, c: 0.03, h: 100 },
876
+ // Light cream text
877
+ body: { l: 0.78, c: 0.03, h: 100 },
878
+ // Body text
879
+ muted: { l: 0.36, c: 0.03, h: 140 },
880
+ // Surface/Card bg - Lighter forest
881
+ mutedForeground: { l: 0.58, c: 0.03, h: 100 },
882
+ // Muted foreground
883
+ // Color
884
+ primary: { l: 0.65, c: 0.12, h: 145 },
885
+ // Forest green
886
+ primaryForeground: { l: 0.15, c: 0.01, h: 145 },
887
+ secondary: { l: 0.7, c: 0.1, h: 80 },
888
+ // Olive
889
+ secondaryForeground: { l: 0.15, c: 0.01, h: 80 },
890
+ accent: { l: 0.8, c: 0.1, h: 60 },
891
+ // Golden
892
+ accentForeground: { l: 0.15, c: 0.01, h: 60 },
893
+ destructive: { l: 0.6, c: 0.14, h: 30 },
894
+ // Burnt orange
895
+ destructiveForeground: { l: 0.98, c: 0.01, h: 30 }
896
+ },
897
+ "light"
898
+ );
899
+ var sunset = generateTheme(
900
+ "Sunset",
901
+ {
902
+ // Base - Custom warm sunset theme
903
+ base: { l: 0.26, c: 0.04, h: 30 },
904
+ // Deep warm brown
905
+ text: { l: 0.9, c: 0.03, h: 60 },
906
+ // Warm cream text
907
+ body: { l: 0.8, c: 0.03, h: 60 },
908
+ // Body text
909
+ muted: { l: 0.34, c: 0.03, h: 30 },
910
+ // Surface/Card bg - Lighter warm brown
911
+ mutedForeground: { l: 0.58, c: 0.03, h: 60 },
912
+ // Muted foreground
913
+ // Color
914
+ primary: { l: 0.7, c: 0.15, h: 25 },
915
+ // Warm orange
916
+ primaryForeground: { l: 0.15, c: 0.01, h: 25 },
917
+ secondary: { l: 0.68, c: 0.16, h: 350 },
918
+ // Pink
919
+ secondaryForeground: { l: 0.15, c: 0.01, h: 350 },
920
+ accent: { l: 0.75, c: 0.14, h: 50 },
921
+ // Yellow-orange
922
+ accentForeground: { l: 0.15, c: 0.01, h: 50 },
923
+ destructive: { l: 0.6, c: 0.18, h: 20 },
924
+ // Red
925
+ destructiveForeground: { l: 0.98, c: 0.01, h: 20 }
926
+ },
927
+ "light"
928
+ );
929
+ var defaultTheme = generateTheme(
930
+ "Default",
931
+ DEFAULT_CORE_COLORS,
932
+ "light"
933
+ );
934
+ var BUILT_IN_THEMES = {
935
+ Default: defaultTheme,
936
+ Dracula: dracula,
937
+ Solarized: solarized,
938
+ Gruvbox: gruvbox,
939
+ Monokai: monokai,
940
+ "Tokyo Night": tokyoNight,
941
+ "Rose Pine": rosePine,
942
+ Everforest: everforest,
943
+ Nord: nord,
944
+ "Catppuccin Mocha": catppuccinMocha,
945
+ "Nordified Catppuccin": nordifiedCatppuccin,
946
+ Christmas: christmas,
947
+ Pastel: pastel,
948
+ Neon: neon,
949
+ "High Contrast": highContrast,
950
+ Ocean: ocean,
951
+ Forest: forest,
952
+ Sunset: sunset
953
+ };
954
+ var allThemes = BUILT_IN_THEMES;
955
+
956
+ exports.BUILT_IN_THEMES = BUILT_IN_THEMES;
957
+ exports.CORE_COLOR_KEYS = CORE_COLOR_KEYS;
958
+ exports.CORE_FONT_KEYS = CORE_FONT_KEYS;
959
+ exports.CORE_NON_COLOR_KEYS = CORE_NON_COLOR_KEYS;
960
+ exports.CORE_SPACING_KEYS = CORE_SPACING_KEYS;
961
+ exports.DEFAULT_CORE_COLORS = DEFAULT_CORE_COLORS;
962
+ exports.DEFAULT_CORE_COLORS_CONFIG = DEFAULT_CORE_COLORS_CONFIG;
963
+ exports.DEFAULT_FONT = DEFAULT_FONT;
964
+ exports.DEFAULT_SPACING = DEFAULT_SPACING;
965
+ exports.FONT_OPTIONS = FONT_OPTIONS;
966
+ exports.THEME_MODES = THEME_MODES;
967
+ exports.allThemes = allThemes;
968
+ exports.catppuccinMocha = catppuccinMocha;
969
+ exports.christmas = christmas;
970
+ exports.clampChroma = clampChroma;
971
+ exports.coreColorsToConfig = coreColorsToConfig;
972
+ exports.defaultTheme = defaultTheme;
973
+ exports.detectThemeMode = detectThemeMode;
974
+ exports.dracula = dracula;
975
+ exports.everforest = everforest;
976
+ exports.findThemeByIdentifier = findThemeByIdentifier;
977
+ exports.fontConfigToCoreFont = fontConfigToCoreFont;
978
+ exports.forest = forest;
979
+ exports.generateColorSwatches = generateColorSwatches;
980
+ exports.generateDualTheme = generateDualTheme;
981
+ exports.generateSmartDualTheme = generateSmartDualTheme;
982
+ exports.generateTheme = generateTheme;
983
+ exports.generateThemeCssVars = generateThemeCssVars;
984
+ exports.getForegroundColor = getForegroundColor;
985
+ exports.getThemeIdentifier = getThemeIdentifier;
986
+ exports.globalCSSOverride = globalCSSOverride;
987
+ exports.gruvbox = gruvbox;
988
+ exports.highContrast = highContrast;
989
+ exports.isSameTheme = isSameTheme;
990
+ exports.mod = mod;
991
+ exports.monokai = monokai;
992
+ exports.neon = neon;
993
+ exports.nord = nord;
994
+ exports.nordifiedCatppuccin = nordifiedCatppuccin;
995
+ exports.ocean = ocean;
996
+ exports.oklchString = oklchString;
997
+ exports.parseOklch = parseOklch;
998
+ exports.pastel = pastel;
999
+ exports.rosePine = rosePine;
1000
+ exports.rotateHue = rotateHue;
1001
+ exports.rotateSoft = rotateSoft;
1002
+ exports.separatedThemeConfig = separatedThemeConfig;
1003
+ exports.shadeColor = shadeColor;
1004
+ exports.solarized = solarized;
1005
+ exports.spacingConfigToCoreSpacing = spacingConfigToCoreSpacing;
1006
+ exports.sunset = sunset;
1007
+ exports.themeConfigToCoreColors = themeConfigToCoreColors;
1008
+ exports.themeConfigToCoreNonColorFields = themeConfigToCoreNonColorFields;
1009
+ exports.toDarkMode = toDarkMode;
1010
+ exports.toLightMode = toLightMode;
1011
+ exports.tokyoNight = tokyoNight;
1012
+ //# sourceMappingURL=index.cjs.map
1013
+ //# sourceMappingURL=index.cjs.map