@theokit/ui 0.13.0 → 0.14.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 (48) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +5 -5
  3. package/dist/chunk-DMVWZWU5.js +62 -0
  4. package/dist/chunk-DMVWZWU5.js.map +1 -0
  5. package/dist/{chunk-M6JIC5PU.js → chunk-ETMMPUFO.js} +3 -3
  6. package/dist/{chunk-M6JIC5PU.js.map → chunk-ETMMPUFO.js.map} +1 -1
  7. package/dist/{chunk-VT7VSYH5.js → chunk-KE773ODY.js} +4 -4
  8. package/dist/{chunk-VT7VSYH5.js.map → chunk-KE773ODY.js.map} +1 -1
  9. package/dist/{chunk-BYZ6OFH4.js → chunk-KPYORAP6.js} +6 -6
  10. package/dist/chunk-KPYORAP6.js.map +1 -0
  11. package/dist/chunk-UCGROAS4.js +61 -0
  12. package/dist/chunk-UCGROAS4.js.map +1 -0
  13. package/dist/{chunk-LKRNUSKZ.js → chunk-W6KORCLX.js} +4 -4
  14. package/dist/chunk-W6KORCLX.js.map +1 -0
  15. package/dist/components.css +1 -1
  16. package/dist/composites/metric-card/index.js +5 -0
  17. package/dist/composites/metric-card/index.js.map +1 -0
  18. package/dist/composites/stability-bundle-viewer/index.js +1 -1
  19. package/dist/composites/status-indicator/index.js +4 -0
  20. package/dist/composites/status-indicator/index.js.map +1 -0
  21. package/dist/index.d.ts +165 -40
  22. package/dist/index.js +863 -612
  23. package/dist/index.js.map +1 -1
  24. package/dist/{plugin-D5xmXqYb.d.ts → plugin-Atb0VKtr.d.ts} +1 -1
  25. package/dist/preset-v3-legacy.js +1 -1
  26. package/dist/preset-v3-legacy.js.map +1 -1
  27. package/dist/primitives/gateway-status-indicator/index.js +1 -1
  28. package/dist/primitives/run-status-pill/index.js +1 -1
  29. package/dist/primitives/update-banner/index.js +1 -1
  30. package/dist/slide/index.d.ts +2 -2
  31. package/dist/slide/plugins/emoji/index.d.ts +1 -1
  32. package/dist/slide/plugins/math/index.d.ts +1 -1
  33. package/dist/slide/plugins/mermaid/index.d.ts +1 -1
  34. package/dist/slide/plugins/shiki/index.d.ts +1 -1
  35. package/dist/slide-deck/index.d.ts +1 -1
  36. package/dist/tokens-v4.css +77 -41
  37. package/dist/tokens.css +158 -73
  38. package/dist/whiteboard/index.d.ts +2 -2
  39. package/package.json +18 -2
  40. package/registry/index.json +12 -0
  41. package/registry/r/metric-card.json +23 -0
  42. package/registry/r/safe-href.json +1 -1
  43. package/registry/r/status-indicator.json +20 -0
  44. package/registry/r/tailwind-preset.json +1 -1
  45. package/registry/r/theme-provider.json +6 -6
  46. package/registry/r/tokens.json +1 -1
  47. package/dist/chunk-BYZ6OFH4.js.map +0 -1
  48. package/dist/chunk-LKRNUSKZ.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,19 +1,21 @@
1
+ export { TaskHeader } from './chunk-FAWPRZTM.js';
2
+ export { UsageMeter } from './chunk-DKCRLN35.js';
3
+ export { PreviewPanel } from './chunk-OAKCXT35.js';
1
4
  export { ProjectCard } from './chunk-DN5BUDBI.js';
2
5
  export { RollbackUI } from './chunk-TSZ5DEAT.js';
3
6
  export { RuleEditor } from './chunk-C55VUQ7N.js';
4
7
  export { SkillEditor } from './chunk-N2HJ3SLS.js';
5
8
  export { SkillsList } from './chunk-4AM2HSXU.js';
6
- export { StabilityBundleViewer } from './chunk-LKRNUSKZ.js';
7
- export { TaskHeader } from './chunk-FAWPRZTM.js';
8
- export { UsageMeter } from './chunk-DKCRLN35.js';
9
+ export { StabilityBundleViewer } from './chunk-W6KORCLX.js';
10
+ export { StatusIndicator } from './chunk-DMVWZWU5.js';
9
11
  export { DeploymentRow } from './chunk-QDAF3LP7.js';
10
12
  export { DomainConfig } from './chunk-X7VIMKLD.js';
11
13
  export { EnvVarEditor } from './chunk-5TY3NYF5.js';
12
14
  export { MCPServerList } from './chunk-76YWTIWK.js';
15
+ export { MetricCard } from './chunk-UCGROAS4.js';
13
16
  export { PageShell } from './chunk-QTLQZ7OJ.js';
14
17
  export { PermissionModal } from './chunk-D4GEAV4C.js';
15
18
  export { PreviewEnvCard } from './chunk-Y72IP43U.js';
16
- export { PreviewPanel } from './chunk-OAKCXT35.js';
17
19
  import './chunk-ZXPDS6DH.js';
18
20
  export { CodeBlock } from './chunk-QGVIGNJ3.js';
19
21
  export { CommandPalette } from './chunk-ZU6IM6PK.js';
@@ -22,7 +24,7 @@ export { CronJobsList } from './chunk-LQ4B5X4Y.js';
22
24
  export { DataTable } from './chunk-JJ65ZI4P.js';
23
25
  export { TooltipWithStatics as Tooltip } from './chunk-GBG3I5I5.js';
24
26
  export { TopNav } from './chunk-4D3JILQX.js';
25
- export { UpdateBanner } from './chunk-M6JIC5PU.js';
27
+ export { UpdateBanner } from './chunk-ETMMPUFO.js';
26
28
  export { AccountMenu } from './chunk-HRDRGZ2Y.js';
27
29
  export { AgentComposer } from './chunk-BMRZXT5T.js';
28
30
  export { ChatComposer } from './chunk-F5P5P2SC.js';
@@ -60,7 +62,7 @@ export { StatusDot } from './chunk-QYAMLIG2.js';
60
62
  export { StepsRail } from './chunk-OUXESQ2R.js';
61
63
  export { RuleCard } from './chunk-WHFIQUCC.js';
62
64
  export { RunStats } from './chunk-3TBXLYNM.js';
63
- export { RunStatusPill } from './chunk-VT7VSYH5.js';
65
+ export { RunStatusPill } from './chunk-KE773ODY.js';
64
66
  export { RunningTasksPanel } from './chunk-YD6FLXBV.js';
65
67
  export { ScrollArea } from './chunk-QNUITYSY.js';
66
68
  export { Select } from './chunk-27ENTTY7.js';
@@ -82,7 +84,7 @@ export { ModelCard, modelCapabilityPresets } from './chunk-PPBGGNPV.js';
82
84
  export { ModelSelector } from './chunk-HNTOGGVD.js';
83
85
  export { Pagination, computePageRange } from './chunk-VVBAEYKI.js';
84
86
  export { PermissionMatrix } from './chunk-AMT3CPMC.js';
85
- export { GatewayStatusIndicator } from './chunk-BYZ6OFH4.js';
87
+ export { GatewayStatusIndicator } from './chunk-KPYORAP6.js';
86
88
  export { HOOK_EVENTS, HookConfig } from './chunk-KI7KZBSN.js';
87
89
  export { HookEventLog } from './chunk-M5G3O6H6.js';
88
90
  export { Input } from './chunk-B3VAJSZ2.js';
@@ -132,10 +134,24 @@ import './chunk-UGKI466V.js';
132
134
  import { cn } from './chunk-EWDN56AS.js';
133
135
  export { cn } from './chunk-EWDN56AS.js';
134
136
  import { createContext, useContext, useMemo, useState, useEffect, useRef, useCallback } from 'react';
137
+ import * as v from 'valibot';
135
138
  import { jsx, jsxs } from 'react/jsx-runtime';
136
139
  import * as DropdownMenu2 from '@radix-ui/react-dropdown-menu';
137
140
  import { Palette, Check, Moon, Sun } from 'lucide-react';
138
141
 
142
+ // src/themes/color-value-pattern.ts
143
+ var OKLCH_RELATIVE_OR_STATIC = String.raw`(?:oklch|oklab)\(\s*` + // Optional `from var(--token)` prefix.
144
+ String.raw`(?:from\s+var\(--[a-zA-Z0-9-]+\)\s+)?` + // 1+ component tokens: calc(no-nested) | single letter | numeric | `none` | `/`.
145
+ // max()/min() may wrap a calc(); calc() itself stays flat. Single nesting depth.
146
+ String.raw`(?:max\([^(){}]*(?:\([^(){}]*\))?[^(){}]*\)|min\([^(){}]*(?:\([^(){}]*\))?[^(){}]*\)|calc\([^();{}]+\)|[a-z]|-?\d+(?:\.\d+)?%?|none|\/|\s)+` + String.raw`\)`;
147
+ var CONSERVATIVE_COLOR_FN = String.raw`(?:rgb|rgba|hsl|hsla|lab|lch|color)\(\s*[\d.\s%,/+\-]+\s*\)`;
148
+ var HEX = String.raw`#[0-9a-fA-F]{3,8}`;
149
+ var HSL_SPLIT = String.raw`-?\d+(?:\.\d+)?%?(?:\s+-?\d+(?:\.\d+)?%?){1,3}`;
150
+ var VAR_REF = String.raw`var\(--[a-zA-Z0-9-]+(?:\s*,\s*[^();{}]+)?\)`;
151
+ var KEYWORDS = String.raw`transparent|currentColor|inherit|initial|unset`;
152
+ var COLOR_VALUE_PATTERN = new RegExp(
153
+ `^(${HEX}|${OKLCH_RELATIVE_OR_STATIC}|${CONSERVATIVE_COLOR_FN}|${HSL_SPLIT}|${VAR_REF}|${KEYWORDS})$`
154
+ );
139
155
  var DensityContext = createContext(void 0);
140
156
  var STYLE_ELEMENT_ID = "theo-ui-density-vars";
141
157
  var DENSITY_CSS = `[data-density="compact"] { --theo-control-h: 2rem; --theo-control-px: 0.75rem; }
@@ -158,11 +174,110 @@ function useDensity() {
158
174
  }
159
175
  return ctx;
160
176
  }
177
+ var THEME_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
178
+ var FONT_FAMILY_PATTERN = /^[\w\s,"'\-.]+$/;
179
+ var colorValueSchema = v.pipe(
180
+ v.string(),
181
+ v.check(
182
+ (value) => COLOR_VALUE_PATTERN.test(value),
183
+ "color value did not match the allowed format (hex, oklch, hsl, rgb, var(), HSL split, or CSS keyword)"
184
+ )
185
+ );
186
+ var themeNameSchema = v.pipe(
187
+ v.string(),
188
+ v.check(
189
+ (value) => THEME_NAME_PATTERN.test(value),
190
+ "theme name must match /^[a-z][a-z0-9-]*$/ (lowercase + digits + hyphens, starts with a letter)"
191
+ )
192
+ );
193
+ var fontFamilySchema = v.pipe(
194
+ v.string(),
195
+ v.check(
196
+ (value) => FONT_FAMILY_PATTERN.test(value),
197
+ "font family contains disallowed characters (parens, semicolons, etc.)"
198
+ )
199
+ );
200
+ var fontsSchema = v.object({
201
+ display: fontFamilySchema,
202
+ body: fontFamilySchema,
203
+ mono: fontFamilySchema
204
+ });
205
+ var colorScaleSchema = v.object({
206
+ background: colorValueSchema,
207
+ foreground: colorValueSchema,
208
+ card: colorValueSchema,
209
+ "card-foreground": colorValueSchema,
210
+ popover: colorValueSchema,
211
+ "popover-foreground": colorValueSchema,
212
+ primary: colorValueSchema,
213
+ // Optional since T3.2 (ADR-0006) — CSS derives via oklch(from var(--primary) ...).
214
+ "primary-deep": v.optional(colorValueSchema),
215
+ "primary-glow": v.optional(colorValueSchema),
216
+ "primary-foreground": colorValueSchema,
217
+ secondary: colorValueSchema,
218
+ "secondary-foreground": colorValueSchema,
219
+ accent: colorValueSchema,
220
+ "accent-deep": v.optional(colorValueSchema),
221
+ "accent-foreground": colorValueSchema,
222
+ muted: colorValueSchema,
223
+ "muted-foreground": colorValueSchema,
224
+ border: colorValueSchema,
225
+ input: colorValueSchema,
226
+ ring: colorValueSchema,
227
+ success: colorValueSchema,
228
+ "success-foreground": colorValueSchema,
229
+ warning: colorValueSchema,
230
+ "warning-foreground": colorValueSchema,
231
+ destructive: colorValueSchema,
232
+ "destructive-foreground": colorValueSchema,
233
+ info: colorValueSchema,
234
+ "info-foreground": colorValueSchema,
235
+ "status-online": colorValueSchema,
236
+ "status-online-foreground": colorValueSchema,
237
+ "status-offline": colorValueSchema,
238
+ "status-offline-foreground": colorValueSchema,
239
+ "status-degraded": colorValueSchema,
240
+ "status-degraded-foreground": colorValueSchema,
241
+ "status-info": colorValueSchema,
242
+ "status-info-foreground": colorValueSchema
243
+ });
244
+ var themeSchema = v.object({
245
+ name: themeNameSchema,
246
+ label: v.string(),
247
+ description: v.optional(v.string()),
248
+ fonts: fontsSchema,
249
+ light: colorScaleSchema,
250
+ dark: colorScaleSchema,
251
+ fontUrls: v.optional(
252
+ v.array(
253
+ v.pipe(
254
+ v.string(),
255
+ v.url(),
256
+ v.check(
257
+ (value) => /^https?:\/\//i.test(value),
258
+ "fontUrls must use http(s) protocol (javascript:, data:, etc. are rejected)"
259
+ )
260
+ )
261
+ )
262
+ )
263
+ });
264
+ function validateTheme(theme) {
265
+ const result = v.safeParse(themeSchema, theme);
266
+ if (result.success) return { success: true };
267
+ return { success: false, issues: result.issues };
268
+ }
269
+ function formatThemeIssues(themeName, issues) {
270
+ const lines = [`[@theokit/ui] theme '${themeName}' failed validation:`];
271
+ for (const issue of issues) {
272
+ const path = (issue.path ?? []).map((segment) => typeof segment.key === "string" ? segment.key : String(segment.key)).join(".");
273
+ lines.push(` - ${path || "(root)"}: ${issue.message}`);
274
+ }
275
+ return lines.join("\n");
276
+ }
161
277
  var ThemeContext = createContext(void 0);
162
278
  var STYLE_ELEMENT_ID2 = "theo-ui-theme-vars";
163
- var COLOR_VALUE_PATTERN = /^(#[0-9a-fA-F]{3,8}|(?:oklch|oklab|rgb|rgba|hsl|hsla|lab|lch|color)\(\s*[\d.\s%,/+\-]+\s*\)|-?\d+(?:\.\d+)?%?(?:\s+-?\d+(?:\.\d+)?%?){1,3}|var\(--[a-zA-Z0-9-]+(?:\s*,\s*[^();{}]+)?\)|transparent|currentColor|inherit|initial|unset)$/;
164
- var FONT_FAMILY_PATTERN = /^[\w\s,"'\-.]+$/;
165
- var THEME_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
279
+ var FONT_FAMILY_PATTERN2 = /^[\w\s,"'\-.]+$/;
280
+ var THEME_NAME_PATTERN2 = /^[a-z][a-z0-9-]*$/;
166
281
  var IS_DEV = typeof process === "undefined" || process.env.NODE_ENV !== "production";
167
282
  function rejectOrFallback(scope, value, fallback) {
168
283
  if (IS_DEV) {
@@ -177,11 +292,11 @@ function validatedColor(token, value) {
177
292
  return rejectOrFallback(`color "${token}"`, value, "transparent");
178
293
  }
179
294
  function validatedFontFamily(slot, value) {
180
- if (FONT_FAMILY_PATTERN.test(value)) return value;
295
+ if (FONT_FAMILY_PATTERN2.test(value)) return value;
181
296
  return rejectOrFallback(`fontFamily "${slot}"`, value, "inherit");
182
297
  }
183
298
  function validatedThemeName(value) {
184
- if (THEME_NAME_PATTERN.test(value)) return value;
299
+ if (THEME_NAME_PATTERN2.test(value)) return value;
185
300
  return rejectOrFallback("theme.name", value, "invalid-theme");
186
301
  }
187
302
  function colorScaleToCss(name, mode, colors) {
@@ -222,8 +337,8 @@ function injectThemeCss(themes) {
222
337
  function loadThemeFonts(theme) {
223
338
  if (typeof document === "undefined") return;
224
339
  if (!theme.fontUrls) return;
225
- for (const url of theme.fontUrls) {
226
- const safe2 = safeHref(url);
340
+ for (const url2 of theme.fontUrls) {
341
+ const safe2 = safeHref(url2);
227
342
  if (!safe2) continue;
228
343
  if (document.head.querySelector(`link[rel="stylesheet"][href="${CSS.escape(safe2)}"]`)) {
229
344
  continue;
@@ -238,13 +353,17 @@ function warnStorageFailure(scope, err) {
238
353
  if (typeof process === "undefined" || process.env.NODE_ENV === "production") return;
239
354
  console.warn(`[@theokit/ui] theme storage failure (${scope}):`, err);
240
355
  }
356
+ function warnInvalidTheme(message) {
357
+ console.warn(message);
358
+ }
241
359
  function ThemeProvider({
242
360
  children,
243
361
  defaultTheme = "violet-forge",
244
362
  defaultMode = "dark",
245
363
  themes: themesProp,
246
364
  storageKey = "theo-ui:theme",
247
- defaultDensity = "comfortable"
365
+ defaultDensity = "comfortable",
366
+ respectSystemMode = true
248
367
  }) {
249
368
  if (!themesProp || themesProp.length === 0) {
250
369
  throw new Error(
@@ -252,6 +371,17 @@ function ThemeProvider({
252
371
  );
253
372
  }
254
373
  const mergedThemes = useMemo(() => {
374
+ for (const t of themesProp) {
375
+ const result = validateTheme(t);
376
+ if (!result.success) {
377
+ const message = formatThemeIssues(
378
+ t.name ?? "(unnamed)",
379
+ result.issues ?? []
380
+ );
381
+ if (IS_DEV) throw new Error(message);
382
+ warnInvalidTheme(message);
383
+ }
384
+ }
255
385
  for (const t of themesProp) {
256
386
  validatedThemeName(t.name);
257
387
  validatedFontFamily("display", t.fonts.display);
@@ -275,6 +405,7 @@ function ThemeProvider({
275
405
  const [themeName, setThemeName] = useState(defaultTheme);
276
406
  const [mode, setModeState] = useState(defaultMode);
277
407
  const [density, setDensityState] = useState(defaultDensity);
408
+ const userOverrodeModeRef = useRef(false);
278
409
  const skipFirstPersistRef = useRef(true);
279
410
  useEffect(() => {
280
411
  if (typeof window === "undefined" || !storageKey) return;
@@ -283,7 +414,10 @@ function ThemeProvider({
283
414
  const storedMode = window.localStorage.getItem(`${storageKey}:mode`);
284
415
  const storedDensity = window.localStorage.getItem(`${storageKey}:density`);
285
416
  if (storedName) setThemeName(storedName);
286
- if (storedMode === "dark" || storedMode === "light") setModeState(storedMode);
417
+ if (storedMode === "dark" || storedMode === "light") {
418
+ setModeState(storedMode);
419
+ userOverrodeModeRef.current = true;
420
+ }
287
421
  if (storedDensity === "compact" || storedDensity === "comfortable" || storedDensity === "spacious") {
288
422
  setDensityState(storedDensity);
289
423
  }
@@ -291,6 +425,23 @@ function ThemeProvider({
291
425
  warnStorageFailure("read theme + mode + density", err);
292
426
  }
293
427
  }, [storageKey]);
428
+ useEffect(() => {
429
+ if (!respectSystemMode) return;
430
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
431
+ const mql = window.matchMedia("(prefers-color-scheme: dark)");
432
+ if (!userOverrodeModeRef.current) {
433
+ setModeState(mql.matches ? "dark" : "light");
434
+ }
435
+ const onChange = (event) => {
436
+ if (!userOverrodeModeRef.current) {
437
+ setModeState(event.matches ? "dark" : "light");
438
+ }
439
+ };
440
+ mql.addEventListener("change", onChange);
441
+ return () => {
442
+ mql.removeEventListener("change", onChange);
443
+ };
444
+ }, [respectSystemMode]);
294
445
  useEffect(() => {
295
446
  injectThemeCss(themes);
296
447
  }, [themes]);
@@ -320,11 +471,14 @@ function ThemeProvider({
320
471
  }
321
472
  }, [themeName, mode, density, storageKey]);
322
473
  const setTheme = useCallback((name) => setThemeName(name), []);
323
- const setMode = useCallback((next) => setModeState(next), []);
324
- const toggleMode = useCallback(
325
- () => setModeState((cur) => cur === "light" ? "dark" : "light"),
326
- []
327
- );
474
+ const setMode = useCallback((next) => {
475
+ userOverrodeModeRef.current = true;
476
+ setModeState(next);
477
+ }, []);
478
+ const toggleMode = useCallback(() => {
479
+ userOverrodeModeRef.current = true;
480
+ setModeState((cur) => cur === "light" ? "dark" : "light");
481
+ }, []);
328
482
  const setDensity = useCallback((next) => setDensityState(next), []);
329
483
  const registerTheme = useCallback((theme) => {
330
484
  setThemes((cur) => {
@@ -468,64 +622,74 @@ var violetForge = {
468
622
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
469
623
  ],
470
624
  light: {
471
- background: "0 0% 100%",
472
- foreground: "0 0% 4%",
473
- card: "0 0% 100%",
474
- "card-foreground": "0 0% 4%",
475
- popover: "0 0% 100%",
476
- "popover-foreground": "0 0% 4%",
477
- primary: "262 83% 58%",
478
- "primary-deep": "263 70% 42%",
479
- "primary-glow": "263 90% 76%",
480
- "primary-foreground": "0 0% 100%",
481
- secondary: "0 0% 96%",
482
- "secondary-foreground": "0 0% 4%",
483
- accent: "15 54% 53%",
484
- "accent-deep": "15 55% 40%",
485
- "accent-foreground": "0 0% 100%",
486
- muted: "0 0% 96%",
487
- "muted-foreground": "0 0% 45%",
488
- border: "0 0% 91%",
489
- input: "0 0% 91%",
490
- ring: "262 83% 58%",
491
- success: "142 71% 36%",
492
- "success-foreground": "0 0% 100%",
493
- warning: "33 92% 44%",
494
- "warning-foreground": "0 0% 100%",
495
- destructive: "0 72% 51%",
496
- "destructive-foreground": "0 0% 100%",
497
- info: "217 91% 60%",
498
- "info-foreground": "0 0% 100%"
625
+ background: "oklch(1 0 0)",
626
+ foreground: "oklch(0.146 0 0)",
627
+ card: "oklch(1 0 0)",
628
+ "card-foreground": "oklch(0.146 0 0)",
629
+ popover: "oklch(1 0 0)",
630
+ "popover-foreground": "oklch(0.146 0 0)",
631
+ primary: "oklch(0.542 0.245 293)",
632
+ "primary-foreground": "oklch(1 0 0)",
633
+ secondary: "oklch(0.97 0 0)",
634
+ "secondary-foreground": "oklch(0.146 0 0)",
635
+ accent: "oklch(0.621 0.132 39)",
636
+ "accent-foreground": "oklch(1 0 0)",
637
+ muted: "oklch(0.97 0 0)",
638
+ "muted-foreground": "oklch(0.555 0 0)",
639
+ border: "oklch(0.931 0 0)",
640
+ input: "oklch(0.931 0 0)",
641
+ ring: "oklch(0.542 0.245 293)",
642
+ success: "oklch(0.611 0.161 149.7)",
643
+ "success-foreground": "oklch(1 0 0)",
644
+ warning: "oklch(0.67 0.154 60.6)",
645
+ "warning-foreground": "oklch(1 0 0)",
646
+ destructive: "oklch(0.579 0.214 27.2)",
647
+ "destructive-foreground": "oklch(1 0 0)",
648
+ info: "oklch(0.626 0.186 259.6)",
649
+ "info-foreground": "oklch(1 0 0)",
650
+ "status-online": "oklch(0.611 0.161 149.7)",
651
+ "status-online-foreground": "oklch(1 0 0)",
652
+ "status-offline": "oklch(0.579 0.214 27.2)",
653
+ "status-offline-foreground": "oklch(1 0 0)",
654
+ "status-degraded": "oklch(0.67 0.154 60.6)",
655
+ "status-degraded-foreground": "oklch(1 0 0)",
656
+ "status-info": "oklch(0.626 0.186 259.6)",
657
+ "status-info-foreground": "oklch(1 0 0)"
499
658
  },
500
659
  dark: {
501
- background: "0 0% 4%",
502
- foreground: "0 0% 96%",
503
- card: "0 0% 7%",
504
- "card-foreground": "0 0% 96%",
505
- popover: "0 0% 9%",
506
- "popover-foreground": "0 0% 96%",
507
- primary: "262 83% 58%",
508
- "primary-deep": "263 70% 42%",
509
- "primary-glow": "263 90% 76%",
510
- "primary-foreground": "0 0% 100%",
511
- secondary: "0 0% 11%",
512
- "secondary-foreground": "0 0% 96%",
513
- accent: "15 54% 53%",
514
- "accent-deep": "15 55% 40%",
515
- "accent-foreground": "0 0% 100%",
516
- muted: "0 0% 11%",
517
- "muted-foreground": "0 0% 60%",
518
- border: "0 0% 16%",
519
- input: "0 0% 11%",
520
- ring: "262 83% 58%",
521
- success: "152 79% 52%",
522
- "success-foreground": "0 0% 4%",
523
- warning: "38 92% 50%",
524
- "warning-foreground": "0 0% 4%",
525
- destructive: "350 100% 65%",
526
- "destructive-foreground": "0 0% 4%",
527
- info: "213 100% 70%",
528
- "info-foreground": "0 0% 4%"
660
+ background: "oklch(0.146 0 0)",
661
+ foreground: "oklch(0.97 0 0)",
662
+ card: "oklch(0.182 0 0)",
663
+ "card-foreground": "oklch(0.97 0 0)",
664
+ popover: "oklch(0.204 0 0)",
665
+ "popover-foreground": "oklch(0.97 0 0)",
666
+ primary: "oklch(0.542 0.245 293)",
667
+ "primary-foreground": "oklch(1 0 0)",
668
+ secondary: "oklch(0.227 0 0)",
669
+ "secondary-foreground": "oklch(0.97 0 0)",
670
+ accent: "oklch(0.621 0.132 39)",
671
+ "accent-foreground": "oklch(1 0 0)",
672
+ muted: "oklch(0.227 0 0)",
673
+ "muted-foreground": "oklch(0.683 0 0)",
674
+ border: "oklch(0.28 0 0)",
675
+ input: "oklch(0.227 0 0)",
676
+ ring: "oklch(0.542 0.245 293)",
677
+ success: "oklch(0.814 0.192 155.7)",
678
+ "success-foreground": "oklch(0.146 0 0)",
679
+ warning: "oklch(0.77 0.165 70.6)",
680
+ "warning-foreground": "oklch(0.146 0 0)",
681
+ destructive: "oklch(0.677 0.213 15.6)",
682
+ "destructive-foreground": "oklch(0.146 0 0)",
683
+ info: "oklch(0.732 0.142 254.4)",
684
+ "info-foreground": "oklch(0.146 0 0)",
685
+ "status-online": "oklch(0.814 0.192 155.7)",
686
+ "status-online-foreground": "oklch(0.146 0 0)",
687
+ "status-offline": "oklch(0.677 0.213 15.6)",
688
+ "status-offline-foreground": "oklch(0.146 0 0)",
689
+ "status-degraded": "oklch(0.77 0.165 70.6)",
690
+ "status-degraded-foreground": "oklch(0.146 0 0)",
691
+ "status-info": "oklch(0.732 0.142 254.4)",
692
+ "status-info-foreground": "oklch(0.146 0 0)"
529
693
  }
530
694
  };
531
695
 
@@ -543,66 +707,76 @@ var classicPaper = {
543
707
  "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap"
544
708
  ],
545
709
  light: {
546
- background: "36 30% 98%",
547
- foreground: "222 47% 11%",
548
- card: "0 0% 100%",
549
- "card-foreground": "222 47% 11%",
550
- popover: "0 0% 100%",
551
- "popover-foreground": "222 47% 11%",
552
- primary: "221 83% 53%",
553
- "primary-deep": "224 76% 38%",
554
- "primary-glow": "217 91% 70%",
555
- "primary-foreground": "0 0% 100%",
556
- secondary: "210 40% 96%",
557
- "secondary-foreground": "222 47% 11%",
558
- accent: "37 92% 40%",
559
- "accent-deep": "32 81% 30%",
560
- "accent-foreground": "0 0% 100%",
561
- muted: "210 40% 96%",
562
- "muted-foreground": "215 16% 47%",
563
- border: "214 32% 91%",
564
- input: "214 32% 91%",
565
- ring: "221 83% 53%",
566
- success: "142 71% 36%",
567
- "success-foreground": "0 0% 100%",
568
- warning: "33 92% 44%",
569
- "warning-foreground": "0 0% 100%",
570
- destructive: "0 72% 51%",
571
- "destructive-foreground": "0 0% 100%",
572
- info: "217 91% 60%",
573
- "info-foreground": "0 0% 100%"
710
+ background: "oklch(0.95 0.025 80)",
711
+ foreground: "oklch(0.206 0.039 265.5)",
712
+ card: "oklch(0.97 0.012 80)",
713
+ "card-foreground": "oklch(0.206 0.039 265.5)",
714
+ popover: "oklch(0.98 0.008 80)",
715
+ "popover-foreground": "oklch(0.206 0.039 265.5)",
716
+ primary: "oklch(0.545 0.215 262.7)",
717
+ "primary-foreground": "oklch(1 0 0)",
718
+ secondary: "oklch(0.93 0.02 80)",
719
+ "secondary-foreground": "oklch(0.206 0.039 265.5)",
720
+ accent: "oklch(0.647 0.139 69)",
721
+ "accent-foreground": "oklch(1 0 0)",
722
+ muted: "oklch(0.93 0.02 80)",
723
+ "muted-foreground": "oklch(0.45 0.03 80)",
724
+ border: "oklch(0.88 0.025 80)",
725
+ input: "oklch(0.92 0.02 80)",
726
+ ring: "oklch(0.545 0.215 262.7)",
727
+ success: "oklch(0.611 0.161 149.7)",
728
+ "success-foreground": "oklch(1 0 0)",
729
+ warning: "oklch(0.67 0.154 60.6)",
730
+ "warning-foreground": "oklch(1 0 0)",
731
+ destructive: "oklch(0.579 0.214 27.2)",
732
+ "destructive-foreground": "oklch(1 0 0)",
733
+ info: "oklch(0.626 0.186 259.6)",
734
+ "info-foreground": "oklch(1 0 0)",
735
+ "status-online": "oklch(0.611 0.161 149.7)",
736
+ "status-online-foreground": "oklch(1 0 0)",
737
+ "status-offline": "oklch(0.579 0.214 27.2)",
738
+ "status-offline-foreground": "oklch(1 0 0)",
739
+ "status-degraded": "oklch(0.67 0.154 60.6)",
740
+ "status-degraded-foreground": "oklch(1 0 0)",
741
+ "status-info": "oklch(0.626 0.186 259.6)",
742
+ "status-info-foreground": "oklch(1 0 0)"
574
743
  },
575
744
  // Dark mirror — mainly the same hues with inverted lightness so the theme
576
745
  // still feels coherent if a consumer toggles `.dark`.
577
746
  dark: {
578
- background: "222 47% 8%",
579
- foreground: "210 40% 98%",
580
- card: "222 47% 11%",
581
- "card-foreground": "210 40% 98%",
582
- popover: "222 47% 11%",
583
- "popover-foreground": "210 40% 98%",
584
- primary: "217 91% 60%",
585
- "primary-deep": "221 83% 45%",
586
- "primary-glow": "213 100% 80%",
587
- "primary-foreground": "222 47% 11%",
588
- secondary: "217 19% 18%",
589
- "secondary-foreground": "210 40% 98%",
590
- accent: "37 92% 60%",
591
- "accent-deep": "32 81% 45%",
592
- "accent-foreground": "222 47% 11%",
593
- muted: "217 19% 18%",
594
- "muted-foreground": "215 20% 65%",
595
- border: "217 19% 22%",
596
- input: "217 19% 18%",
597
- ring: "217 91% 60%",
598
- success: "152 79% 52%",
599
- "success-foreground": "222 47% 11%",
600
- warning: "38 92% 50%",
601
- "warning-foreground": "222 47% 11%",
602
- destructive: "350 100% 65%",
603
- "destructive-foreground": "222 47% 11%",
604
- info: "213 100% 70%",
605
- "info-foreground": "222 47% 11%"
747
+ background: "oklch(0.177 0.029 265.8)",
748
+ foreground: "oklch(0.984 0.003 247.9)",
749
+ card: "oklch(0.206 0.039 265.5)",
750
+ "card-foreground": "oklch(0.984 0.003 247.9)",
751
+ popover: "oklch(0.206 0.039 265.5)",
752
+ "popover-foreground": "oklch(0.984 0.003 247.9)",
753
+ primary: "oklch(0.626 0.186 259.6)",
754
+ "primary-foreground": "oklch(0.206 0.039 265.5)",
755
+ secondary: "oklch(0.291 0.022 259.9)",
756
+ "secondary-foreground": "oklch(0.984 0.003 247.9)",
757
+ accent: "oklch(0.803 0.15 74.7)",
758
+ "accent-foreground": "oklch(0.206 0.039 265.5)",
759
+ muted: "oklch(0.291 0.022 259.9)",
760
+ "muted-foreground": "oklch(0.71 0.035 256.8)",
761
+ border: "oklch(0.329 0.026 259.9)",
762
+ input: "oklch(0.291 0.022 259.9)",
763
+ ring: "oklch(0.626 0.186 259.6)",
764
+ success: "oklch(0.814 0.192 155.7)",
765
+ "success-foreground": "oklch(0.206 0.039 265.5)",
766
+ warning: "oklch(0.77 0.165 70.6)",
767
+ "warning-foreground": "oklch(0.206 0.039 265.5)",
768
+ destructive: "oklch(0.677 0.213 15.6)",
769
+ "destructive-foreground": "oklch(0.206 0.039 265.5)",
770
+ info: "oklch(0.732 0.142 254.4)",
771
+ "info-foreground": "oklch(0.206 0.039 265.5)",
772
+ "status-online": "oklch(0.814 0.192 155.7)",
773
+ "status-online-foreground": "oklch(0.206 0.039 265.5)",
774
+ "status-offline": "oklch(0.677 0.213 15.6)",
775
+ "status-offline-foreground": "oklch(0.206 0.039 265.5)",
776
+ "status-degraded": "oklch(0.77 0.165 70.6)",
777
+ "status-degraded-foreground": "oklch(0.206 0.039 265.5)",
778
+ "status-info": "oklch(0.732 0.142 254.4)",
779
+ "status-info-foreground": "oklch(0.206 0.039 265.5)"
606
780
  }
607
781
  };
608
782
 
@@ -620,64 +794,74 @@ var auroraTerminal = {
620
794
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
621
795
  ],
622
796
  light: {
623
- background: "220 30% 96%",
624
- foreground: "222 47% 11%",
625
- card: "0 0% 100%",
626
- "card-foreground": "222 47% 11%",
627
- popover: "0 0% 100%",
628
- "popover-foreground": "222 47% 11%",
629
- primary: "178 78% 41%",
630
- "primary-deep": "180 100% 25%",
631
- "primary-glow": "180 89% 70%",
632
- "primary-foreground": "222 47% 11%",
633
- secondary: "210 40% 96%",
634
- "secondary-foreground": "222 47% 11%",
635
- accent: "340 82% 60%",
636
- "accent-deep": "340 80% 50%",
637
- "accent-foreground": "0 0% 100%",
638
- muted: "214 32% 91%",
639
- "muted-foreground": "215 16% 47%",
640
- border: "214 32% 91%",
641
- input: "214 32% 91%",
642
- ring: "178 78% 41%",
643
- success: "152 79% 42%",
644
- "success-foreground": "0 0% 100%",
645
- warning: "33 92% 44%",
646
- "warning-foreground": "0 0% 100%",
647
- destructive: "0 72% 51%",
648
- "destructive-foreground": "0 0% 100%",
649
- info: "217 91% 60%",
650
- "info-foreground": "0 0% 100%"
797
+ background: "oklch(0.966 0.006 264.5)",
798
+ foreground: "oklch(0.206 0.039 265.5)",
799
+ card: "oklch(1 0 0)",
800
+ "card-foreground": "oklch(0.206 0.039 265.5)",
801
+ popover: "oklch(1 0 0)",
802
+ "popover-foreground": "oklch(0.206 0.039 265.5)",
803
+ primary: "oklch(0.714 0.12 191)",
804
+ "primary-foreground": "oklch(0.206 0.039 265.5)",
805
+ secondary: "oklch(0.968 0.007 247.9)",
806
+ "secondary-foreground": "oklch(0.206 0.039 265.5)",
807
+ accent: "oklch(0.646 0.206 4.9)",
808
+ "accent-foreground": "oklch(1 0 0)",
809
+ muted: "oklch(0.926 0.013 255)",
810
+ "muted-foreground": "oklch(0.556 0.04 256.8)",
811
+ border: "oklch(0.926 0.013 255)",
812
+ input: "oklch(0.926 0.013 255)",
813
+ ring: "oklch(0.714 0.12 191)",
814
+ success: "oklch(0.711 0.171 155.2)",
815
+ "success-foreground": "oklch(1 0 0)",
816
+ warning: "oklch(0.67 0.154 60.6)",
817
+ "warning-foreground": "oklch(1 0 0)",
818
+ destructive: "oklch(0.579 0.214 27.2)",
819
+ "destructive-foreground": "oklch(1 0 0)",
820
+ info: "oklch(0.626 0.186 259.6)",
821
+ "info-foreground": "oklch(1 0 0)",
822
+ "status-online": "oklch(0.711 0.171 155.2)",
823
+ "status-online-foreground": "oklch(1 0 0)",
824
+ "status-offline": "oklch(0.579 0.214 27.2)",
825
+ "status-offline-foreground": "oklch(1 0 0)",
826
+ "status-degraded": "oklch(0.67 0.154 60.6)",
827
+ "status-degraded-foreground": "oklch(1 0 0)",
828
+ "status-info": "oklch(0.626 0.186 259.6)",
829
+ "status-info-foreground": "oklch(1 0 0)"
651
830
  },
652
831
  dark: {
653
- background: "224 36% 7%",
654
- foreground: "220 30% 96%",
655
- card: "224 35% 10%",
656
- "card-foreground": "220 30% 96%",
657
- popover: "224 35% 10%",
658
- "popover-foreground": "220 30% 96%",
659
- primary: "178 71% 60%",
660
- "primary-deep": "180 100% 35%",
661
- "primary-glow": "180 89% 80%",
662
- "primary-foreground": "224 36% 7%",
663
- secondary: "222 30% 14%",
664
- "secondary-foreground": "220 30% 96%",
665
- accent: "340 90% 65%",
666
- "accent-deep": "340 80% 50%",
667
- "accent-foreground": "224 36% 7%",
668
- muted: "222 30% 14%",
669
- "muted-foreground": "215 20% 65%",
670
- border: "222 28% 18%",
671
- input: "222 30% 14%",
672
- ring: "178 71% 60%",
673
- success: "152 79% 52%",
674
- "success-foreground": "224 36% 7%",
675
- warning: "38 92% 50%",
676
- "warning-foreground": "224 36% 7%",
677
- destructive: "350 100% 65%",
678
- "destructive-foreground": "224 36% 7%",
679
- info: "213 100% 70%",
680
- "info-foreground": "224 36% 7%"
832
+ background: "oklch(0.169 0.021 268.7)",
833
+ foreground: "oklch(0.966 0.006 264.5)",
834
+ card: "oklch(0.199 0.027 268.5)",
835
+ "card-foreground": "oklch(0.966 0.006 264.5)",
836
+ popover: "oklch(0.199 0.027 268.5)",
837
+ "popover-foreground": "oklch(0.966 0.006 264.5)",
838
+ primary: "oklch(0.834 0.122 191.9)",
839
+ "primary-foreground": "oklch(0.169 0.021 268.7)",
840
+ secondary: "oklch(0.242 0.03 266.3)",
841
+ "secondary-foreground": "oklch(0.966 0.006 264.5)",
842
+ accent: "oklch(0.68 0.2 3.6)",
843
+ "accent-foreground": "oklch(0.169 0.021 268.7)",
844
+ muted: "oklch(0.242 0.03 266.3)",
845
+ "muted-foreground": "oklch(0.71 0.035 256.8)",
846
+ border: "oklch(0.281 0.035 266.3)",
847
+ input: "oklch(0.242 0.03 266.3)",
848
+ ring: "oklch(0.834 0.122 191.9)",
849
+ success: "oklch(0.814 0.192 155.7)",
850
+ "success-foreground": "oklch(0.169 0.021 268.7)",
851
+ warning: "oklch(0.77 0.165 70.6)",
852
+ "warning-foreground": "oklch(0.169 0.021 268.7)",
853
+ destructive: "oklch(0.677 0.213 15.6)",
854
+ "destructive-foreground": "oklch(0.169 0.021 268.7)",
855
+ info: "oklch(0.732 0.142 254.4)",
856
+ "info-foreground": "oklch(0.169 0.021 268.7)",
857
+ "status-online": "oklch(0.814 0.192 155.7)",
858
+ "status-online-foreground": "oklch(0.169 0.021 268.7)",
859
+ "status-offline": "oklch(0.677 0.213 15.6)",
860
+ "status-offline-foreground": "oklch(0.169 0.021 268.7)",
861
+ "status-degraded": "oklch(0.77 0.165 70.6)",
862
+ "status-degraded-foreground": "oklch(0.169 0.021 268.7)",
863
+ "status-info": "oklch(0.732 0.142 254.4)",
864
+ "status-info-foreground": "oklch(0.169 0.021 268.7)"
681
865
  }
682
866
  };
683
867
 
@@ -744,39 +928,36 @@ function parseHex(input) {
744
928
  }
745
929
  return { r, g, b };
746
930
  }
747
- function rgbToHsl(r, g, b) {
748
- const rn = r / 255;
749
- const gn = g / 255;
750
- const bn = b / 255;
751
- const max = Math.max(rn, gn, bn);
752
- const min = Math.min(rn, gn, bn);
753
- const l = (max + min) / 2;
754
- let h = 0;
755
- let s = 0;
756
- if (max !== min) {
757
- const d = max - min;
758
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
759
- switch (max) {
760
- case rn:
761
- h = (gn - bn) / d + (gn < bn ? 6 : 0);
762
- break;
763
- case gn:
764
- h = (bn - rn) / d + 2;
765
- break;
766
- default:
767
- h = (rn - gn) / d + 4;
768
- break;
769
- }
770
- h *= 60;
771
- }
772
- const hh = Math.round(h);
773
- const ss = Math.round(s * 100);
774
- const ll = Math.round(l * 100);
775
- return `${hh} ${ss}% ${ll}%`;
931
+ function rgbToOklch(r, g, b) {
932
+ const linearize = (c) => {
933
+ const cn2 = c / 255;
934
+ return cn2 <= 0.04045 ? cn2 / 12.92 : ((cn2 + 0.055) / 1.055) ** 2.4;
935
+ };
936
+ const rl = linearize(r);
937
+ const gl = linearize(g);
938
+ const bl = linearize(b);
939
+ const l_ = 0.4122214708 * rl + 0.5363325363 * gl + 0.0514459929 * bl;
940
+ const m_ = 0.2119034982 * rl + 0.6806995451 * gl + 0.1073969566 * bl;
941
+ const s_ = 0.0883024619 * rl + 0.2817188376 * gl + 0.6299787005 * bl;
942
+ const l = Math.cbrt(l_);
943
+ const m = Math.cbrt(m_);
944
+ const s = Math.cbrt(s_);
945
+ const L = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
946
+ const a = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
947
+ const bComp = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
948
+ const C = Math.sqrt(a * a + bComp * bComp);
949
+ let H = Math.atan2(bComp, a) * 180 / Math.PI;
950
+ if (H < 0) H += 360;
951
+ const round = (n, d) => {
952
+ const f = 10 ** d;
953
+ return Math.round(n * f) / f;
954
+ };
955
+ const hOut = C < 1e-4 ? 0 : round(H, 1);
956
+ return `oklch(${round(L, 3)} ${round(C, 3)} ${hOut})`;
776
957
  }
777
958
  function hex(input) {
778
959
  const { r, g, b } = parseHex(input);
779
- return rgbToHsl(r, g, b);
960
+ return rgbToOklch(r, g, b);
780
961
  }
781
962
  function rgb(r, g, b) {
782
963
  for (const value of [r, g, b]) {
@@ -786,7 +967,7 @@ function rgb(r, g, b) {
786
967
  );
787
968
  }
788
969
  }
789
- return rgbToHsl(Math.round(r), Math.round(g), Math.round(b));
970
+ return rgbToOklch(Math.round(r), Math.round(g), Math.round(b));
790
971
  }
791
972
 
792
973
  // src/themes/vercel-mono.ts
@@ -803,64 +984,74 @@ var vercelMono = {
803
984
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
804
985
  ],
805
986
  light: {
806
- background: "0 0% 100%",
807
- foreground: "0 0% 0%",
808
- card: "0 0% 100%",
809
- "card-foreground": "0 0% 0%",
810
- popover: "0 0% 100%",
811
- "popover-foreground": "0 0% 0%",
812
- primary: "212 100% 47%",
813
- "primary-deep": "212 100% 36%",
814
- "primary-glow": "212 100% 72%",
815
- "primary-foreground": "0 0% 100%",
816
- secondary: "0 0% 96%",
817
- "secondary-foreground": "0 0% 0%",
818
- accent: "212 100% 47%",
819
- "accent-deep": "212 100% 36%",
820
- "accent-foreground": "0 0% 100%",
821
- muted: "0 0% 96%",
822
- "muted-foreground": "0 0% 40%",
823
- border: "0 0% 92%",
824
- input: "0 0% 92%",
825
- ring: "212 100% 47%",
826
- success: "168 76% 40%",
827
- "success-foreground": "0 0% 100%",
828
- warning: "34 92% 45%",
829
- "warning-foreground": "0 0% 100%",
830
- destructive: "0 100% 40%",
831
- "destructive-foreground": "0 0% 100%",
832
- info: "212 100% 47%",
833
- "info-foreground": "0 0% 100%"
987
+ background: "oklch(1 0 0)",
988
+ foreground: "oklch(0 0 0)",
989
+ card: "oklch(1 0 0)",
990
+ "card-foreground": "oklch(0 0 0)",
991
+ popover: "oklch(1 0 0)",
992
+ "popover-foreground": "oklch(0 0 0)",
993
+ primary: "oklch(0.57 0.211 257.9)",
994
+ "primary-foreground": "oklch(1 0 0)",
995
+ secondary: "oklch(0.97 0 0)",
996
+ "secondary-foreground": "oklch(0 0 0)",
997
+ accent: "oklch(0.57 0.211 257.9)",
998
+ "accent-foreground": "oklch(1 0 0)",
999
+ muted: "oklch(0.97 0 0)",
1000
+ "muted-foreground": "oklch(0.51 0 0)",
1001
+ border: "oklch(0.939 0 0)",
1002
+ input: "oklch(0.939 0 0)",
1003
+ ring: "oklch(0.57 0.211 257.9)",
1004
+ success: "oklch(0.687 0.127 174)",
1005
+ "success-foreground": "oklch(1 0 0)",
1006
+ warning: "oklch(0.687 0.155 62.5)",
1007
+ "warning-foreground": "oklch(1 0 0)",
1008
+ destructive: "oklch(0.531 0.218 29.2)",
1009
+ "destructive-foreground": "oklch(1 0 0)",
1010
+ info: "oklch(0.57 0.211 257.9)",
1011
+ "info-foreground": "oklch(1 0 0)",
1012
+ "status-online": "oklch(0.687 0.127 174)",
1013
+ "status-online-foreground": "oklch(1 0 0)",
1014
+ "status-offline": "oklch(0.531 0.218 29.2)",
1015
+ "status-offline-foreground": "oklch(1 0 0)",
1016
+ "status-degraded": "oklch(0.687 0.155 62.5)",
1017
+ "status-degraded-foreground": "oklch(1 0 0)",
1018
+ "status-info": "oklch(0.57 0.211 257.9)",
1019
+ "status-info-foreground": "oklch(1 0 0)"
834
1020
  },
835
1021
  dark: {
836
- background: "0 0% 4%",
837
- foreground: "0 0% 93%",
838
- card: "0 0% 7%",
839
- "card-foreground": "0 0% 93%",
840
- popover: "0 0% 7%",
841
- "popover-foreground": "0 0% 93%",
842
- primary: "212 100% 55%",
843
- "primary-deep": "212 100% 42%",
844
- "primary-glow": "212 100% 75%",
845
- "primary-foreground": "0 0% 100%",
846
- secondary: "0 0% 13%",
847
- "secondary-foreground": "0 0% 93%",
848
- accent: "212 100% 60%",
849
- "accent-deep": "212 100% 47%",
850
- "accent-foreground": "0 0% 0%",
851
- muted: "0 0% 13%",
852
- "muted-foreground": "0 0% 60%",
853
- border: "0 0% 20%",
854
- input: "0 0% 20%",
855
- ring: "212 100% 55%",
856
- success: "144 89% 50%",
857
- "success-foreground": "0 0% 0%",
858
- warning: "34 92% 65%",
859
- "warning-foreground": "0 0% 0%",
860
- destructive: "0 100% 55%",
861
- "destructive-foreground": "0 0% 100%",
862
- info: "212 100% 55%",
863
- "info-foreground": "0 0% 100%"
1022
+ background: "oklch(0.146 0 0)",
1023
+ foreground: "oklch(0.947 0 0)",
1024
+ card: "oklch(0.182 0 0)",
1025
+ "card-foreground": "oklch(0.947 0 0)",
1026
+ popover: "oklch(0.182 0 0)",
1027
+ "popover-foreground": "oklch(0.947 0 0)",
1028
+ primary: "oklch(0.627 0.203 256.2)",
1029
+ "primary-foreground": "oklch(1 0 0)",
1030
+ secondary: "oklch(0.248 0 0)",
1031
+ "secondary-foreground": "oklch(0.947 0 0)",
1032
+ accent: "oklch(0.661 0.184 254.7)",
1033
+ "accent-foreground": "oklch(0 0 0)",
1034
+ muted: "oklch(0.248 0 0)",
1035
+ "muted-foreground": "oklch(0.683 0 0)",
1036
+ border: "oklch(0.321 0 0)",
1037
+ input: "oklch(0.321 0 0)",
1038
+ ring: "oklch(0.627 0.203 256.2)",
1039
+ success: "oklch(0.837 0.237 148.6)",
1040
+ "success-foreground": "oklch(0 0 0)",
1041
+ warning: "oklch(0.81 0.136 70.9)",
1042
+ "warning-foreground": "oklch(0 0 0)",
1043
+ destructive: "oklch(0.634 0.251 28.5)",
1044
+ "destructive-foreground": "oklch(1 0 0)",
1045
+ info: "oklch(0.627 0.203 256.2)",
1046
+ "info-foreground": "oklch(1 0 0)",
1047
+ "status-online": "oklch(0.837 0.237 148.6)",
1048
+ "status-online-foreground": "oklch(0 0 0)",
1049
+ "status-offline": "oklch(0.634 0.251 28.5)",
1050
+ "status-offline-foreground": "oklch(1 0 0)",
1051
+ "status-degraded": "oklch(0.81 0.136 70.9)",
1052
+ "status-degraded-foreground": "oklch(0 0 0)",
1053
+ "status-info": "oklch(0.627 0.203 256.2)",
1054
+ "status-info-foreground": "oklch(1 0 0)"
864
1055
  }
865
1056
  };
866
1057
 
@@ -878,64 +1069,74 @@ var githubDark = {
878
1069
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
879
1070
  ],
880
1071
  light: {
881
- background: "0 0% 100%",
882
- foreground: "213 13% 16%",
883
- card: "210 29% 97%",
884
- "card-foreground": "213 13% 16%",
885
- popover: "0 0% 100%",
886
- "popover-foreground": "213 13% 16%",
887
- primary: "212 92% 44%",
888
- "primary-deep": "212 92% 36%",
889
- "primary-glow": "212 92% 58%",
890
- "primary-foreground": "0 0% 100%",
891
- secondary: "210 29% 97%",
892
- "secondary-foreground": "213 13% 16%",
893
- accent: "213 84% 52%",
894
- "accent-deep": "213 84% 42%",
895
- "accent-foreground": "0 0% 100%",
896
- muted: "210 29% 97%",
897
- "muted-foreground": "213 8% 43%",
898
- border: "210 14% 84%",
899
- input: "210 14% 84%",
900
- ring: "212 92% 44%",
901
- success: "137 66% 30%",
902
- "success-foreground": "0 0% 100%",
903
- warning: "41 100% 30%",
904
- "warning-foreground": "0 0% 100%",
905
- destructive: "355 71% 47%",
906
- "destructive-foreground": "0 0% 100%",
907
- info: "212 92% 44%",
908
- "info-foreground": "0 0% 100%"
1072
+ background: "oklch(1 0 0)",
1073
+ foreground: "oklch(0.276 0.013 253.5)",
1074
+ card: "oklch(0.976 0.004 247.9)",
1075
+ "card-foreground": "oklch(0.276 0.013 253.5)",
1076
+ popover: "oklch(1 0 0)",
1077
+ "popover-foreground": "oklch(0.276 0.013 253.5)",
1078
+ primary: "oklch(0.539 0.187 257.1)",
1079
+ "primary-foreground": "oklch(1 0 0)",
1080
+ secondary: "oklch(0.976 0.004 247.9)",
1081
+ "secondary-foreground": "oklch(0.276 0.013 253.5)",
1082
+ accent: "oklch(0.592 0.19 256.7)",
1083
+ "accent-foreground": "oklch(1 0 0)",
1084
+ muted: "oklch(0.976 0.004 247.9)",
1085
+ "muted-foreground": "oklch(0.531 0.018 253.4)",
1086
+ border: "oklch(0.874 0.01 247.9)",
1087
+ input: "oklch(0.874 0.01 247.9)",
1088
+ ring: "oklch(0.539 0.187 257.1)",
1089
+ success: "oklch(0.524 0.14 147.9)",
1090
+ "success-foreground": "oklch(1 0 0)",
1091
+ warning: "oklch(0.556 0.116 76.9)",
1092
+ "warning-foreground": "oklch(1 0 0)",
1093
+ destructive: "oklch(0.549 0.203 23.7)",
1094
+ "destructive-foreground": "oklch(1 0 0)",
1095
+ info: "oklch(0.539 0.187 257.1)",
1096
+ "info-foreground": "oklch(1 0 0)",
1097
+ "status-online": "oklch(0.524 0.14 147.9)",
1098
+ "status-online-foreground": "oklch(1 0 0)",
1099
+ "status-offline": "oklch(0.549 0.203 23.7)",
1100
+ "status-offline-foreground": "oklch(1 0 0)",
1101
+ "status-degraded": "oklch(0.556 0.116 76.9)",
1102
+ "status-degraded-foreground": "oklch(1 0 0)",
1103
+ "status-info": "oklch(0.539 0.187 257.1)",
1104
+ "status-info-foreground": "oklch(1 0 0)"
909
1105
  },
910
1106
  dark: {
911
- background: "215 28% 7%",
912
- foreground: "210 67% 96%",
913
- card: "215 21% 11%",
914
- "card-foreground": "210 67% 96%",
915
- popover: "215 21% 11%",
916
- "popover-foreground": "210 67% 96%",
917
- primary: "212 92% 57%",
918
- "primary-deep": "212 92% 47%",
919
- "primary-glow": "213 92% 67%",
920
- "primary-foreground": "0 0% 100%",
921
- secondary: "215 21% 14%",
922
- "secondary-foreground": "210 67% 96%",
923
- accent: "213 92% 61%",
924
- "accent-deep": "213 92% 50%",
925
- "accent-foreground": "0 0% 100%",
926
- muted: "215 21% 14%",
927
- "muted-foreground": "213 9% 59%",
928
- border: "213 13% 21%",
929
- input: "213 13% 21%",
930
- ring: "212 92% 57%",
931
- success: "135 53% 49%",
932
- "success-foreground": "0 0% 0%",
933
- warning: "41 73% 48%",
934
- "warning-foreground": "0 0% 0%",
935
- destructive: "1 90% 62%",
936
- "destructive-foreground": "0 0% 100%",
937
- info: "212 92% 57%",
938
- "info-foreground": "0 0% 100%"
1107
+ background: "oklch(0.176 0.014 256.8)",
1108
+ foreground: "oklch(0.966 0.012 247.9)",
1109
+ card: "oklch(0.221 0.015 256.8)",
1110
+ "card-foreground": "oklch(0.966 0.012 247.9)",
1111
+ popover: "oklch(0.221 0.015 256.8)",
1112
+ "popover-foreground": "oklch(0.966 0.012 247.9)",
1113
+ primary: "oklch(0.637 0.182 254.9)",
1114
+ "primary-foreground": "oklch(1 0 0)",
1115
+ secondary: "oklch(0.252 0.019 256.8)",
1116
+ "secondary-foreground": "oklch(0.966 0.012 247.9)",
1117
+ accent: "oklch(0.66 0.17 255.2)",
1118
+ "accent-foreground": "oklch(1 0 0)",
1119
+ muted: "oklch(0.252 0.019 256.8)",
1120
+ "muted-foreground": "oklch(0.668 0.018 253.4)",
1121
+ border: "oklch(0.326 0.016 253.5)",
1122
+ input: "oklch(0.326 0.016 253.5)",
1123
+ ring: "oklch(0.637 0.182 254.9)",
1124
+ success: "oklch(0.712 0.18 147.9)",
1125
+ "success-foreground": "oklch(0 0 0)",
1126
+ warning: "oklch(0.726 0.142 80.6)",
1127
+ "warning-foreground": "oklch(0 0 0)",
1128
+ destructive: "oklch(0.653 0.209 25.9)",
1129
+ "destructive-foreground": "oklch(1 0 0)",
1130
+ info: "oklch(0.637 0.182 254.9)",
1131
+ "info-foreground": "oklch(1 0 0)",
1132
+ "status-online": "oklch(0.712 0.18 147.9)",
1133
+ "status-online-foreground": "oklch(0 0 0)",
1134
+ "status-offline": "oklch(0.653 0.209 25.9)",
1135
+ "status-offline-foreground": "oklch(1 0 0)",
1136
+ "status-degraded": "oklch(0.726 0.142 80.6)",
1137
+ "status-degraded-foreground": "oklch(0 0 0)",
1138
+ "status-info": "oklch(0.637 0.182 254.9)",
1139
+ "status-info-foreground": "oklch(1 0 0)"
939
1140
  }
940
1141
  };
941
1142
 
@@ -953,64 +1154,74 @@ var dracula = {
953
1154
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
954
1155
  ],
955
1156
  light: {
956
- background: "60 30% 96%",
957
- foreground: "231 15% 18%",
958
- card: "0 0% 100%",
959
- "card-foreground": "231 15% 18%",
960
- popover: "0 0% 100%",
961
- "popover-foreground": "231 15% 18%",
962
- primary: "275 70% 45%",
963
- "primary-deep": "271 63% 35%",
964
- "primary-glow": "265 89% 70%",
965
- "primary-foreground": "0 0% 100%",
966
- secondary: "60 20% 92%",
967
- "secondary-foreground": "231 15% 18%",
968
- accent: "271 63% 40%",
969
- "accent-deep": "271 63% 30%",
970
- "accent-foreground": "0 0% 100%",
971
- muted: "60 20% 92%",
972
- "muted-foreground": "225 20% 40%",
973
- border: "60 15% 88%",
974
- input: "60 15% 88%",
975
- ring: "275 70% 45%",
976
- success: "129 33% 35%",
977
- "success-foreground": "0 0% 100%",
978
- warning: "43 89% 30%",
979
- "warning-foreground": "0 0% 100%",
980
- destructive: "0 71% 42%",
981
- "destructive-foreground": "0 0% 100%",
982
- info: "190 88% 30%",
983
- "info-foreground": "0 0% 100%"
1157
+ background: "oklch(0.977 0.008 106.5)",
1158
+ foreground: "oklch(0.284 0.022 277.1)",
1159
+ card: "oklch(1 0 0)",
1160
+ "card-foreground": "oklch(0.284 0.022 277.1)",
1161
+ popover: "oklch(1 0 0)",
1162
+ "popover-foreground": "oklch(0.284 0.022 277.1)",
1163
+ primary: "oklch(0.489 0.227 305.4)",
1164
+ "primary-foreground": "oklch(1 0 0)",
1165
+ secondary: "oklch(0.949 0.011 106.6)",
1166
+ "secondary-foreground": "oklch(0.284 0.022 277.1)",
1167
+ accent: "oklch(0.438 0.191 302.4)",
1168
+ "accent-foreground": "oklch(1 0 0)",
1169
+ muted: "oklch(0.949 0.011 106.6)",
1170
+ "muted-foreground": "oklch(0.478 0.051 270.1)",
1171
+ border: "oklch(0.919 0.012 106.6)",
1172
+ input: "oklch(0.919 0.012 106.6)",
1173
+ ring: "oklch(0.489 0.227 305.4)",
1174
+ success: "oklch(0.515 0.1 147.3)",
1175
+ "success-foreground": "oklch(1 0 0)",
1176
+ warning: "oklch(0.549 0.111 82.7)",
1177
+ "warning-foreground": "oklch(1 0 0)",
1178
+ destructive: "oklch(0.504 0.187 27.2)",
1179
+ "destructive-foreground": "oklch(1 0 0)",
1180
+ info: "oklch(0.533 0.093 217.1)",
1181
+ "info-foreground": "oklch(1 0 0)",
1182
+ "status-online": "oklch(0.515 0.1 147.3)",
1183
+ "status-online-foreground": "oklch(1 0 0)",
1184
+ "status-offline": "oklch(0.504 0.187 27.2)",
1185
+ "status-offline-foreground": "oklch(1 0 0)",
1186
+ "status-degraded": "oklch(0.549 0.111 82.7)",
1187
+ "status-degraded-foreground": "oklch(1 0 0)",
1188
+ "status-info": "oklch(0.533 0.093 217.1)",
1189
+ "status-info-foreground": "oklch(1 0 0)"
984
1190
  },
985
1191
  dark: {
986
- background: "231 15% 18%",
987
- foreground: "60 30% 96%",
988
- card: "232 14% 22%",
989
- "card-foreground": "60 30% 96%",
990
- popover: "232 14% 22%",
991
- "popover-foreground": "60 30% 96%",
992
- primary: "326 100% 74%",
993
- "primary-deep": "326 100% 60%",
994
- "primary-glow": "326 100% 85%",
995
- "primary-foreground": "231 15% 18%",
996
- secondary: "232 14% 28%",
997
- "secondary-foreground": "60 30% 96%",
998
- accent: "265 89% 78%",
999
- "accent-deep": "265 89% 65%",
1000
- "accent-foreground": "231 15% 18%",
1001
- muted: "232 14% 28%",
1002
- "muted-foreground": "225 27% 65%",
1003
- border: "232 14% 31%",
1004
- input: "232 14% 31%",
1005
- ring: "326 100% 74%",
1006
- success: "135 94% 65%",
1007
- "success-foreground": "231 15% 18%",
1008
- warning: "65 92% 76%",
1009
- "warning-foreground": "231 15% 18%",
1010
- destructive: "0 100% 67%",
1011
- "destructive-foreground": "0 0% 100%",
1012
- info: "191 97% 77%",
1013
- "info-foreground": "231 15% 18%"
1192
+ background: "oklch(0.284 0.022 277.1)",
1193
+ foreground: "oklch(0.977 0.008 106.5)",
1194
+ card: "oklch(0.322 0.024 278.1)",
1195
+ "card-foreground": "oklch(0.977 0.008 106.5)",
1196
+ popover: "oklch(0.322 0.024 278.1)",
1197
+ "popover-foreground": "oklch(0.977 0.008 106.5)",
1198
+ primary: "oklch(0.756 0.181 347.2)",
1199
+ "primary-foreground": "oklch(0.284 0.022 277.1)",
1200
+ secondary: "oklch(0.376 0.03 278)",
1201
+ "secondary-foreground": "oklch(0.977 0.008 106.5)",
1202
+ accent: "oklch(0.747 0.146 302.2)",
1203
+ "accent-foreground": "oklch(0.284 0.022 277.1)",
1204
+ muted: "oklch(0.376 0.03 278)",
1205
+ "muted-foreground": "oklch(0.688 0.055 270.5)",
1206
+ border: "oklch(0.403 0.032 278)",
1207
+ input: "oklch(0.403 0.032 278)",
1208
+ ring: "oklch(0.756 0.181 347.2)",
1209
+ success: "oklch(0.871 0.218 148)",
1210
+ "success-foreground": "oklch(0.284 0.022 277.1)",
1211
+ warning: "oklch(0.955 0.137 112.9)",
1212
+ "warning-foreground": "oklch(0.284 0.022 277.1)",
1213
+ destructive: "oklch(0.684 0.205 24.3)",
1214
+ "destructive-foreground": "oklch(1 0 0)",
1215
+ info: "oklch(0.882 0.093 213.7)",
1216
+ "info-foreground": "oklch(0.284 0.022 277.1)",
1217
+ "status-online": "oklch(0.871 0.218 148)",
1218
+ "status-online-foreground": "oklch(0.284 0.022 277.1)",
1219
+ "status-offline": "oklch(0.684 0.205 24.3)",
1220
+ "status-offline-foreground": "oklch(1 0 0)",
1221
+ "status-degraded": "oklch(0.955 0.137 112.9)",
1222
+ "status-degraded-foreground": "oklch(0.284 0.022 277.1)",
1223
+ "status-info": "oklch(0.882 0.093 213.7)",
1224
+ "status-info-foreground": "oklch(0.284 0.022 277.1)"
1014
1225
  }
1015
1226
  };
1016
1227
 
@@ -1028,64 +1239,74 @@ var oneDark = {
1028
1239
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1029
1240
  ],
1030
1241
  light: {
1031
- background: "0 0% 98%",
1032
- foreground: "230 8% 24%",
1033
- card: "0 0% 100%",
1034
- "card-foreground": "230 8% 24%",
1035
- popover: "0 0% 100%",
1036
- "popover-foreground": "230 8% 24%",
1037
- primary: "220 88% 50%",
1038
- "primary-deep": "220 88% 40%",
1039
- "primary-glow": "220 88% 70%",
1040
- "primary-foreground": "0 0% 100%",
1041
- secondary: "0 0% 95%",
1042
- "secondary-foreground": "230 8% 24%",
1043
- accent: "301 62% 40%",
1044
- "accent-deep": "301 62% 30%",
1045
- "accent-foreground": "0 0% 100%",
1046
- muted: "0 0% 95%",
1047
- "muted-foreground": "230 4% 50%",
1048
- border: "0 0% 90%",
1049
- input: "0 0% 90%",
1050
- ring: "220 88% 50%",
1051
- success: "119 34% 35%",
1052
- "success-foreground": "0 0% 100%",
1053
- warning: "41 99% 30%",
1054
- "warning-foreground": "0 0% 100%",
1055
- destructive: "5 74% 45%",
1056
- "destructive-foreground": "0 0% 100%",
1057
- info: "198 99% 30%",
1058
- "info-foreground": "0 0% 100%"
1242
+ background: "oklch(0.985 0 0)",
1243
+ foreground: "oklch(0.35 0.014 276.7)",
1244
+ card: "oklch(1 0 0)",
1245
+ "card-foreground": "oklch(0.35 0.014 276.7)",
1246
+ popover: "oklch(1 0 0)",
1247
+ "popover-foreground": "oklch(0.35 0.014 276.7)",
1248
+ primary: "oklch(0.529 0.235 262.3)",
1249
+ "primary-foreground": "oklch(1 0 0)",
1250
+ secondary: "oklch(0.962 0 0)",
1251
+ "secondary-foreground": "oklch(0.35 0.014 276.7)",
1252
+ accent: "oklch(0.522 0.209 328.8)",
1253
+ "accent-foreground": "oklch(1 0 0)",
1254
+ muted: "oklch(0.962 0 0)",
1255
+ "muted-foreground": "oklch(0.588 0.013 276.9)",
1256
+ border: "oklch(0.923 0 0)",
1257
+ input: "oklch(0.923 0 0)",
1258
+ ring: "oklch(0.529 0.235 262.3)",
1259
+ success: "oklch(0.515 0.111 143.4)",
1260
+ "success-foreground": "oklch(1 0 0)",
1261
+ warning: "oklch(0.555 0.116 77)",
1262
+ "warning-foreground": "oklch(1 0 0)",
1263
+ destructive: "oklch(0.544 0.194 29.8)",
1264
+ "destructive-foreground": "oklch(1 0 0)",
1265
+ info: "oklch(0.499 0.108 236.7)",
1266
+ "info-foreground": "oklch(1 0 0)",
1267
+ "status-online": "oklch(0.515 0.111 143.4)",
1268
+ "status-online-foreground": "oklch(1 0 0)",
1269
+ "status-offline": "oklch(0.544 0.194 29.8)",
1270
+ "status-offline-foreground": "oklch(1 0 0)",
1271
+ "status-degraded": "oklch(0.555 0.116 77)",
1272
+ "status-degraded-foreground": "oklch(1 0 0)",
1273
+ "status-info": "oklch(0.499 0.108 236.7)",
1274
+ "status-info-foreground": "oklch(1 0 0)"
1059
1275
  },
1060
1276
  dark: {
1061
- background: "220 13% 18%",
1062
- foreground: "220 14% 71%",
1063
- card: "220 13% 15%",
1064
- "card-foreground": "220 14% 71%",
1065
- popover: "220 13% 15%",
1066
- "popover-foreground": "220 14% 71%",
1067
- primary: "207 82% 66%",
1068
- "primary-deep": "207 82% 52%",
1069
- "primary-glow": "207 82% 78%",
1070
- "primary-foreground": "220 13% 18%",
1071
- secondary: "220 13% 23%",
1072
- "secondary-foreground": "220 14% 71%",
1073
- accent: "286 60% 67%",
1074
- "accent-deep": "286 60% 52%",
1075
- "accent-foreground": "220 13% 18%",
1076
- muted: "220 13% 23%",
1077
- "muted-foreground": "220 8% 55%",
1078
- border: "220 13% 28%",
1079
- input: "220 13% 28%",
1080
- ring: "207 82% 66%",
1081
- success: "95 38% 62%",
1082
- "success-foreground": "220 13% 18%",
1083
- warning: "29 54% 61%",
1084
- "warning-foreground": "220 13% 18%",
1085
- destructive: "355 65% 65%",
1086
- "destructive-foreground": "0 0% 100%",
1087
- info: "187 47% 55%",
1088
- "info-foreground": "220 13% 18%"
1277
+ background: "oklch(0.292 0.016 264.3)",
1278
+ foreground: "oklch(0.761 0.021 264.4)",
1279
+ card: "oklch(0.262 0.013 264.3)",
1280
+ "card-foreground": "oklch(0.761 0.021 264.4)",
1281
+ popover: "oklch(0.262 0.013 264.3)",
1282
+ "popover-foreground": "oklch(0.761 0.021 264.4)",
1283
+ primary: "oklch(0.732 0.121 245.2)",
1284
+ "primary-foreground": "oklch(0.292 0.016 264.3)",
1285
+ secondary: "oklch(0.34 0.019 264.3)",
1286
+ "secondary-foreground": "oklch(0.761 0.021 264.4)",
1287
+ accent: "oklch(0.694 0.163 318)",
1288
+ "accent-foreground": "oklch(0.292 0.016 264.3)",
1289
+ muted: "oklch(0.34 0.019 264.3)",
1290
+ "muted-foreground": "oklch(0.63 0.02 264.4)",
1291
+ border: "oklch(0.387 0.023 264.3)",
1292
+ input: "oklch(0.387 0.023 264.3)",
1293
+ ring: "oklch(0.732 0.121 245.2)",
1294
+ success: "oklch(0.768 0.11 133.1)",
1295
+ "success-foreground": "oklch(0.292 0.016 264.3)",
1296
+ warning: "oklch(0.727 0.095 63.5)",
1297
+ "warning-foreground": "oklch(0.292 0.016 264.3)",
1298
+ destructive: "oklch(0.67 0.145 16.7)",
1299
+ "destructive-foreground": "oklch(1 0 0)",
1300
+ info: "oklch(0.722 0.091 206.9)",
1301
+ "info-foreground": "oklch(0.292 0.016 264.3)",
1302
+ "status-online": "oklch(0.768 0.11 133.1)",
1303
+ "status-online-foreground": "oklch(0.292 0.016 264.3)",
1304
+ "status-offline": "oklch(0.67 0.145 16.7)",
1305
+ "status-offline-foreground": "oklch(1 0 0)",
1306
+ "status-degraded": "oklch(0.727 0.095 63.5)",
1307
+ "status-degraded-foreground": "oklch(0.292 0.016 264.3)",
1308
+ "status-info": "oklch(0.722 0.091 206.9)",
1309
+ "status-info-foreground": "oklch(0.292 0.016 264.3)"
1089
1310
  }
1090
1311
  };
1091
1312
 
@@ -1103,64 +1324,74 @@ var anthropicStyle = {
1103
1324
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1104
1325
  ],
1105
1326
  light: {
1106
- background: "60 27% 97%",
1107
- foreground: "0 0% 10%",
1108
- card: "0 0% 100%",
1109
- "card-foreground": "0 0% 10%",
1110
- popover: "0 0% 100%",
1111
- "popover-foreground": "0 0% 10%",
1112
- primary: "15 54% 45%",
1113
- "primary-deep": "15 54% 35%",
1114
- "primary-glow": "15 54% 65%",
1115
- "primary-foreground": "0 0% 100%",
1116
- secondary: "45 22% 92%",
1117
- "secondary-foreground": "0 0% 10%",
1118
- accent: "26 39% 39%",
1119
- "accent-deep": "26 39% 29%",
1120
- "accent-foreground": "0 0% 100%",
1121
- muted: "45 22% 92%",
1122
- "muted-foreground": "0 0% 39%",
1123
- border: "45 22% 87%",
1124
- input: "45 22% 87%",
1125
- ring: "15 54% 45%",
1126
- success: "127 35% 35%",
1127
- "success-foreground": "0 0% 100%",
1128
- warning: "35 65% 35%",
1129
- "warning-foreground": "0 0% 100%",
1130
- destructive: "5 60% 40%",
1131
- "destructive-foreground": "0 0% 100%",
1132
- info: "200 50% 35%",
1133
- "info-foreground": "0 0% 100%"
1327
+ background: "oklch(0.982 0.005 106.5)",
1328
+ foreground: "oklch(0.216 0 0)",
1329
+ card: "oklch(1 0 0)",
1330
+ "card-foreground": "oklch(0.216 0 0)",
1331
+ popover: "oklch(1 0 0)",
1332
+ "popover-foreground": "oklch(0.216 0 0)",
1333
+ primary: "oklch(0.555 0.13 38.8)",
1334
+ "primary-foreground": "oklch(1 0 0)",
1335
+ secondary: "oklch(0.946 0.009 91.5)",
1336
+ "secondary-foreground": "oklch(0.216 0 0)",
1337
+ accent: "oklch(0.522 0.075 57.6)",
1338
+ "accent-foreground": "oklch(1 0 0)",
1339
+ muted: "oklch(0.946 0.009 91.5)",
1340
+ "muted-foreground": "oklch(0.501 0 0)",
1341
+ border: "oklch(0.911 0.015 91.5)",
1342
+ input: "oklch(0.911 0.015 91.5)",
1343
+ ring: "oklch(0.555 0.13 38.8)",
1344
+ success: "oklch(0.518 0.107 146.3)",
1345
+ "success-foreground": "oklch(1 0 0)",
1346
+ warning: "oklch(0.539 0.102 70.9)",
1347
+ "warning-foreground": "oklch(1 0 0)",
1348
+ destructive: "oklch(0.487 0.15 28.9)",
1349
+ "destructive-foreground": "oklch(1 0 0)",
1350
+ info: "oklch(0.492 0.078 233.2)",
1351
+ "info-foreground": "oklch(1 0 0)",
1352
+ "status-online": "oklch(0.518 0.107 146.3)",
1353
+ "status-online-foreground": "oklch(1 0 0)",
1354
+ "status-offline": "oklch(0.487 0.15 28.9)",
1355
+ "status-offline-foreground": "oklch(1 0 0)",
1356
+ "status-degraded": "oklch(0.539 0.102 70.9)",
1357
+ "status-degraded-foreground": "oklch(1 0 0)",
1358
+ "status-info": "oklch(0.492 0.078 233.2)",
1359
+ "status-info-foreground": "oklch(1 0 0)"
1134
1360
  },
1135
1361
  dark: {
1136
- background: "0 0% 10%",
1137
- foreground: "36 28% 93%",
1138
- card: "0 0% 15%",
1139
- "card-foreground": "36 28% 93%",
1140
- popover: "0 0% 15%",
1141
- "popover-foreground": "36 28% 93%",
1142
- primary: "16 62% 60%",
1143
- "primary-deep": "16 62% 48%",
1144
- "primary-glow": "16 62% 72%",
1145
- "primary-foreground": "0 0% 100%",
1146
- secondary: "0 0% 18%",
1147
- "secondary-foreground": "36 28% 93%",
1148
- accent: "21 33% 55%",
1149
- "accent-deep": "21 33% 42%",
1150
- "accent-foreground": "0 0% 100%",
1151
- muted: "0 0% 18%",
1152
- "muted-foreground": "30 6% 64%",
1153
- border: "0 0% 25%",
1154
- input: "0 0% 25%",
1155
- ring: "16 62% 60%",
1156
- success: "142 71% 58%",
1157
- "success-foreground": "0 0% 10%",
1158
- warning: "45 96% 65%",
1159
- "warning-foreground": "0 0% 10%",
1160
- destructive: "0 84% 60%",
1161
- "destructive-foreground": "0 0% 100%",
1162
- info: "200 70% 60%",
1163
- "info-foreground": "0 0% 10%"
1362
+ background: "oklch(0.216 0 0)",
1363
+ foreground: "oklch(0.951 0.009 78.3)",
1364
+ card: "oklch(0.27 0 0)",
1365
+ "card-foreground": "oklch(0.951 0.009 78.3)",
1366
+ popover: "oklch(0.27 0 0)",
1367
+ "popover-foreground": "oklch(0.951 0.009 78.3)",
1368
+ primary: "oklch(0.679 0.125 40.5)",
1369
+ "primary-foreground": "oklch(1 0 0)",
1370
+ secondary: "oklch(0.301 0 0)",
1371
+ "secondary-foreground": "oklch(0.951 0.009 78.3)",
1372
+ accent: "oklch(0.645 0.072 49.3)",
1373
+ "accent-foreground": "oklch(1 0 0)",
1374
+ muted: "oklch(0.301 0 0)",
1375
+ "muted-foreground": "oklch(0.719 0.01 67.7)",
1376
+ border: "oklch(0.371 0 0)",
1377
+ input: "oklch(0.371 0 0)",
1378
+ ring: "oklch(0.679 0.125 40.5)",
1379
+ success: "oklch(0.805 0.186 151.6)",
1380
+ "success-foreground": "oklch(0.216 0 0)",
1381
+ warning: "oklch(0.874 0.15 90.2)",
1382
+ "warning-foreground": "oklch(0.216 0 0)",
1383
+ destructive: "oklch(0.636 0.208 25.4)",
1384
+ "destructive-foreground": "oklch(1 0 0)",
1385
+ info: "oklch(0.722 0.113 233.1)",
1386
+ "info-foreground": "oklch(0.216 0 0)",
1387
+ "status-online": "oklch(0.805 0.186 151.6)",
1388
+ "status-online-foreground": "oklch(0.216 0 0)",
1389
+ "status-offline": "oklch(0.636 0.208 25.4)",
1390
+ "status-offline-foreground": "oklch(1 0 0)",
1391
+ "status-degraded": "oklch(0.874 0.15 90.2)",
1392
+ "status-degraded-foreground": "oklch(0.216 0 0)",
1393
+ "status-info": "oklch(0.722 0.113 233.1)",
1394
+ "status-info-foreground": "oklch(0.216 0 0)"
1164
1395
  }
1165
1396
  };
1166
1397
 
@@ -1178,64 +1409,74 @@ var openaiStyle = {
1178
1409
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1179
1410
  ],
1180
1411
  light: {
1181
- background: "0 0% 100%",
1182
- foreground: "0 0% 13%",
1183
- card: "240 5% 97%",
1184
- "card-foreground": "0 0% 13%",
1185
- popover: "0 0% 100%",
1186
- "popover-foreground": "0 0% 13%",
1187
- primary: "165 82% 35%",
1188
- "primary-deep": "165 82% 28%",
1189
- "primary-glow": "165 82% 50%",
1190
- "primary-foreground": "0 0% 100%",
1191
- secondary: "240 5% 96%",
1192
- "secondary-foreground": "0 0% 13%",
1193
- accent: "165 82% 35%",
1194
- "accent-deep": "165 82% 28%",
1195
- "accent-foreground": "0 0% 100%",
1196
- muted: "240 5% 96%",
1197
- "muted-foreground": "240 7% 47%",
1198
- border: "0 0% 90%",
1199
- input: "0 0% 90%",
1200
- ring: "165 82% 35%",
1201
- success: "165 82% 35%",
1202
- "success-foreground": "0 0% 100%",
1203
- warning: "30 91% 44%",
1204
- "warning-foreground": "0 0% 100%",
1205
- destructive: "0 73% 50%",
1206
- "destructive-foreground": "0 0% 100%",
1207
- info: "212 100% 47%",
1208
- "info-foreground": "0 0% 100%"
1412
+ background: "oklch(1 0 0)",
1413
+ foreground: "oklch(0.248 0 0)",
1414
+ card: "oklch(0.976 0.001 286.4)",
1415
+ "card-foreground": "oklch(0.248 0 0)",
1416
+ popover: "oklch(1 0 0)",
1417
+ "popover-foreground": "oklch(0.248 0 0)",
1418
+ primary: "oklch(0.636 0.124 169.1)",
1419
+ "primary-foreground": "oklch(1 0 0)",
1420
+ secondary: "oklch(0.968 0.001 286.4)",
1421
+ "secondary-foreground": "oklch(0.248 0 0)",
1422
+ accent: "oklch(0.636 0.124 169.1)",
1423
+ "accent-foreground": "oklch(1 0 0)",
1424
+ muted: "oklch(0.968 0.001 286.4)",
1425
+ "muted-foreground": "oklch(0.549 0.026 285.5)",
1426
+ border: "oklch(0.923 0 0)",
1427
+ input: "oklch(0.923 0 0)",
1428
+ ring: "oklch(0.636 0.124 169.1)",
1429
+ success: "oklch(0.636 0.124 169.1)",
1430
+ "success-foreground": "oklch(1 0 0)",
1431
+ warning: "oklch(0.651 0.158 55.2)",
1432
+ "warning-foreground": "oklch(1 0 0)",
1433
+ destructive: "oklch(0.576 0.218 27.6)",
1434
+ "destructive-foreground": "oklch(1 0 0)",
1435
+ info: "oklch(0.57 0.211 257.9)",
1436
+ "info-foreground": "oklch(1 0 0)",
1437
+ "status-online": "oklch(0.636 0.124 169.1)",
1438
+ "status-online-foreground": "oklch(1 0 0)",
1439
+ "status-offline": "oklch(0.576 0.218 27.6)",
1440
+ "status-offline-foreground": "oklch(1 0 0)",
1441
+ "status-degraded": "oklch(0.651 0.158 55.2)",
1442
+ "status-degraded-foreground": "oklch(1 0 0)",
1443
+ "status-info": "oklch(0.57 0.211 257.9)",
1444
+ "status-info-foreground": "oklch(1 0 0)"
1209
1445
  },
1210
1446
  dark: {
1211
- background: "0 0% 13%",
1212
- foreground: "0 0% 93%",
1213
- card: "0 0% 18%",
1214
- "card-foreground": "0 0% 93%",
1215
- popover: "0 0% 18%",
1216
- "popover-foreground": "0 0% 93%",
1217
- primary: "155 78% 30%",
1218
- "primary-deep": "155 78% 22%",
1219
- "primary-glow": "155 78% 50%",
1220
- "primary-foreground": "0 0% 100%",
1221
- secondary: "0 0% 20%",
1222
- "secondary-foreground": "0 0% 93%",
1223
- accent: "155 78% 50%",
1224
- "accent-deep": "155 78% 40%",
1225
- "accent-foreground": "0 0% 13%",
1226
- muted: "0 0% 20%",
1227
- "muted-foreground": "0 0% 61%",
1228
- border: "0 0% 26%",
1229
- input: "0 0% 26%",
1230
- ring: "155 78% 43%",
1231
- success: "155 78% 43%",
1232
- "success-foreground": "0 0% 100%",
1233
- warning: "38 92% 50%",
1234
- "warning-foreground": "0 0% 13%",
1235
- destructive: "0 84% 60%",
1236
- "destructive-foreground": "0 0% 100%",
1237
- info: "212 100% 55%",
1238
- "info-foreground": "0 0% 100%"
1447
+ background: "oklch(0.248 0 0)",
1448
+ foreground: "oklch(0.947 0 0)",
1449
+ card: "oklch(0.301 0 0)",
1450
+ "card-foreground": "oklch(0.947 0 0)",
1451
+ popover: "oklch(0.301 0 0)",
1452
+ "popover-foreground": "oklch(0.947 0 0)",
1453
+ primary: "oklch(0.555 0.125 158.4)",
1454
+ "primary-foreground": "oklch(1 0 0)",
1455
+ secondary: "oklch(0.321 0 0)",
1456
+ "secondary-foreground": "oklch(0.947 0 0)",
1457
+ accent: "oklch(0.808 0.186 157.7)",
1458
+ "accent-foreground": "oklch(0.248 0 0)",
1459
+ muted: "oklch(0.321 0 0)",
1460
+ "muted-foreground": "oklch(0.691 0 0)",
1461
+ border: "oklch(0.38 0 0)",
1462
+ input: "oklch(0.38 0 0)",
1463
+ ring: "oklch(0.722 0.165 157.9)",
1464
+ success: "oklch(0.722 0.165 157.9)",
1465
+ "success-foreground": "oklch(1 0 0)",
1466
+ warning: "oklch(0.77 0.165 70.6)",
1467
+ "warning-foreground": "oklch(0.248 0 0)",
1468
+ destructive: "oklch(0.636 0.208 25.4)",
1469
+ "destructive-foreground": "oklch(1 0 0)",
1470
+ info: "oklch(0.627 0.203 256.2)",
1471
+ "info-foreground": "oklch(1 0 0)",
1472
+ "status-online": "oklch(0.722 0.165 157.9)",
1473
+ "status-online-foreground": "oklch(1 0 0)",
1474
+ "status-offline": "oklch(0.636 0.208 25.4)",
1475
+ "status-offline-foreground": "oklch(1 0 0)",
1476
+ "status-degraded": "oklch(0.77 0.165 70.6)",
1477
+ "status-degraded-foreground": "oklch(0.248 0 0)",
1478
+ "status-info": "oklch(0.627 0.203 256.2)",
1479
+ "status-info-foreground": "oklch(1 0 0)"
1239
1480
  }
1240
1481
  };
1241
1482
 
@@ -1253,64 +1494,74 @@ var linearGlass = {
1253
1494
  "https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap"
1254
1495
  ],
1255
1496
  light: {
1256
- background: "0 0% 100%",
1257
- foreground: "240 5% 12%",
1258
- card: "220 25% 98%",
1259
- "card-foreground": "240 5% 12%",
1260
- popover: "0 0% 100%",
1261
- "popover-foreground": "240 5% 12%",
1262
- primary: "233 56% 55%",
1263
- "primary-deep": "233 56% 45%",
1264
- "primary-glow": "233 56% 70%",
1265
- "primary-foreground": "0 0% 100%",
1266
- secondary: "240 9% 96%",
1267
- "secondary-foreground": "240 5% 12%",
1268
- accent: "245 60% 60%",
1269
- "accent-deep": "245 60% 50%",
1270
- "accent-foreground": "0 0% 100%",
1271
- muted: "240 9% 96%",
1272
- "muted-foreground": "240 4% 44%",
1273
- border: "240 9% 93%",
1274
- input: "240 9% 93%",
1275
- ring: "233 56% 55%",
1276
- success: "155 62% 35%",
1277
- "success-foreground": "0 0% 100%",
1278
- warning: "35 76% 45%",
1279
- "warning-foreground": "0 0% 100%",
1280
- destructive: "358 75% 50%",
1281
- "destructive-foreground": "0 0% 100%",
1282
- info: "233 56% 55%",
1283
- "info-foreground": "0 0% 100%"
1497
+ background: "oklch(1 0 0)",
1498
+ foreground: "oklch(0.232 0.006 285.9)",
1499
+ card: "oklch(0.983 0.002 264.5)",
1500
+ "card-foreground": "oklch(0.232 0.006 285.9)",
1501
+ popover: "oklch(1 0 0)",
1502
+ "popover-foreground": "oklch(0.232 0.006 285.9)",
1503
+ primary: "oklch(0.523 0.175 273.1)",
1504
+ "primary-foreground": "oklch(1 0 0)",
1505
+ secondary: "oklch(0.967 0.002 286.4)",
1506
+ "secondary-foreground": "oklch(0.232 0.006 285.9)",
1507
+ accent: "oklch(0.55 0.181 282.4)",
1508
+ "accent-foreground": "oklch(1 0 0)",
1509
+ muted: "oklch(0.967 0.002 286.4)",
1510
+ "muted-foreground": "oklch(0.533 0.014 285.9)",
1511
+ border: "oklch(0.943 0.004 286.3)",
1512
+ input: "oklch(0.943 0.004 286.3)",
1513
+ ring: "oklch(0.523 0.175 273.1)",
1514
+ success: "oklch(0.583 0.12 160.3)",
1515
+ "success-foreground": "oklch(1 0 0)",
1516
+ warning: "oklch(0.665 0.138 68.3)",
1517
+ "warning-foreground": "oklch(1 0 0)",
1518
+ destructive: "oklch(0.579 0.221 26.6)",
1519
+ "destructive-foreground": "oklch(1 0 0)",
1520
+ info: "oklch(0.523 0.175 273.1)",
1521
+ "info-foreground": "oklch(1 0 0)",
1522
+ "status-online": "oklch(0.583 0.12 160.3)",
1523
+ "status-online-foreground": "oklch(1 0 0)",
1524
+ "status-offline": "oklch(0.579 0.221 26.6)",
1525
+ "status-offline-foreground": "oklch(1 0 0)",
1526
+ "status-degraded": "oklch(0.665 0.138 68.3)",
1527
+ "status-degraded-foreground": "oklch(1 0 0)",
1528
+ "status-info": "oklch(0.523 0.175 273.1)",
1529
+ "status-info-foreground": "oklch(1 0 0)"
1284
1530
  },
1285
1531
  dark: {
1286
- background: "240 9% 6%",
1287
- foreground: "0 0% 90%",
1288
- card: "240 8% 11%",
1289
- "card-foreground": "0 0% 90%",
1290
- popover: "240 8% 11%",
1291
- "popover-foreground": "0 0% 90%",
1292
- primary: "245 60% 67%",
1293
- "primary-deep": "245 60% 55%",
1294
- "primary-glow": "245 60% 78%",
1295
- "primary-foreground": "0 0% 100%",
1296
- secondary: "240 8% 14%",
1297
- "secondary-foreground": "0 0% 90%",
1298
- accent: "253 100% 78%",
1299
- "accent-deep": "253 100% 65%",
1300
- "accent-foreground": "240 9% 6%",
1301
- muted: "240 8% 14%",
1302
- "muted-foreground": "240 5% 67%",
1303
- border: "240 6% 17%",
1304
- input: "240 6% 17%",
1305
- ring: "245 60% 67%",
1306
- success: "147 49% 53%",
1307
- "success-foreground": "240 9% 6%",
1308
- warning: "32 100% 66%",
1309
- "warning-foreground": "240 9% 6%",
1310
- destructive: "357 100% 70%",
1311
- "destructive-foreground": "240 9% 6%",
1312
- info: "245 60% 67%",
1313
- "info-foreground": "0 0% 100%"
1532
+ background: "oklch(0.165 0.006 285.8)",
1533
+ foreground: "oklch(0.923 0 0)",
1534
+ card: "oklch(0.219 0.009 285.7)",
1535
+ "card-foreground": "oklch(0.923 0 0)",
1536
+ popover: "oklch(0.219 0.009 285.7)",
1537
+ "popover-foreground": "oklch(0.923 0 0)",
1538
+ primary: "oklch(0.627 0.149 285.1)",
1539
+ "primary-foreground": "oklch(1 0 0)",
1540
+ secondary: "oklch(0.25 0.011 285.6)",
1541
+ "secondary-foreground": "oklch(0.923 0 0)",
1542
+ accent: "oklch(0.718 0.16 291.8)",
1543
+ "accent-foreground": "oklch(0.165 0.006 285.8)",
1544
+ muted: "oklch(0.25 0.011 285.6)",
1545
+ "muted-foreground": "oklch(0.73 0.012 286.1)",
1546
+ border: "oklch(0.282 0.009 285.8)",
1547
+ input: "oklch(0.282 0.009 285.8)",
1548
+ ring: "oklch(0.627 0.149 285.1)",
1549
+ success: "oklch(0.73 0.142 156)",
1550
+ "success-foreground": "oklch(0.165 0.006 285.8)",
1551
+ warning: "oklch(0.813 0.143 66.8)",
1552
+ "warning-foreground": "oklch(0.165 0.006 285.8)",
1553
+ destructive: "oklch(0.706 0.187 20.3)",
1554
+ "destructive-foreground": "oklch(0.165 0.006 285.8)",
1555
+ info: "oklch(0.627 0.149 285.1)",
1556
+ "info-foreground": "oklch(1 0 0)",
1557
+ "status-online": "oklch(0.73 0.142 156)",
1558
+ "status-online-foreground": "oklch(0.165 0.006 285.8)",
1559
+ "status-offline": "oklch(0.706 0.187 20.3)",
1560
+ "status-offline-foreground": "oklch(0.165 0.006 285.8)",
1561
+ "status-degraded": "oklch(0.813 0.143 66.8)",
1562
+ "status-degraded-foreground": "oklch(0.165 0.006 285.8)",
1563
+ "status-info": "oklch(0.627 0.149 285.1)",
1564
+ "status-info-foreground": "oklch(1 0 0)"
1314
1565
  }
1315
1566
  };
1316
1567