@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.
- package/dist/chunk-6QLUUNJL.cjs +153 -0
- package/dist/chunk-6QLUUNJL.cjs.map +1 -0
- package/dist/chunk-EWR5EIBP.js +136 -0
- package/dist/chunk-EWR5EIBP.js.map +1 -0
- package/dist/data-sources/context.cjs +26 -0
- package/dist/data-sources/context.cjs.map +1 -0
- package/dist/data-sources/context.d.cts +16 -0
- package/dist/data-sources/context.d.ts +16 -0
- package/dist/data-sources/context.js +23 -0
- package/dist/data-sources/context.js.map +1 -0
- package/dist/data-sources/types.cjs +4 -0
- package/dist/data-sources/types.cjs.map +1 -0
- package/dist/data-sources/types.d.cts +122 -0
- package/dist/data-sources/types.d.ts +122 -0
- package/dist/data-sources/types.js +3 -0
- package/dist/data-sources/types.js.map +1 -0
- package/dist/registries/index.cjs +156 -0
- package/dist/registries/index.cjs.map +1 -0
- package/dist/registries/index.d.cts +303 -0
- package/dist/registries/index.d.ts +303 -0
- package/dist/registries/index.js +143 -0
- package/dist/registries/index.js.map +1 -0
- package/dist/shareable-item-DPmNZkE1.d.cts +138 -0
- package/dist/shareable-item-DPmNZkE1.d.ts +138 -0
- package/dist/theme/index.cjs +1013 -0
- package/dist/theme/index.cjs.map +1 -0
- package/dist/theme/index.d.cts +2680 -0
- package/dist/theme/index.d.ts +2680 -0
- package/dist/theme/index.js +956 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme-DrMUYZTO.d.cts +22 -0
- package/dist/theme-DrMUYZTO.d.ts +22 -0
- package/dist/types/index.cjs +72 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +227 -0
- package/dist/types/index.d.ts +227 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/widget-utils/index.cjs +123 -0
- package/dist/widget-utils/index.cjs.map +1 -0
- package/dist/widget-utils/index.d.cts +43 -0
- package/dist/widget-utils/index.d.ts +43 -0
- package/dist/widget-utils/index.js +111 -0
- package/dist/widget-utils/index.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/theme/theme-engine.ts","../../src/theme/index.ts"],"names":["oklchString"],"mappings":"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","file":"index.cjs","sourcesContent":["// ──────────────────────────────────────────────────────────────\n// Enhanced OKLCH Theme Engine (2025 Edition)\n// ──────────────────────────────────────────────────────────────\n// Improvements:\n// • ΔE-ok contrast for accurate foreground resolution\n// • Adaptive surface lightening\n// • Smart text fallback based on light/dark\n// • Chroma normalization utilities\n// • Safer hue rotations with chroma clamping\n// • Keeps object form internally; stringifies at end\n// ──────────────────────────────────────────────────────────────\n\nimport type { Theme, ThemeConfig } from \"../types/theme\";\n\nexport type Oklch = { l: number; c: number; h: number };\n\nexport type CoreColors = {\n // Base\n base: Oklch;\n text: Oklch;\n body: Oklch;\n muted: Oklch;\n mutedForeground: Oklch;\n\n // Color\n primary: Oklch;\n primaryForeground: Oklch;\n secondary: Oklch;\n secondaryForeground: Oklch;\n accent: Oklch;\n accentForeground: Oklch;\n destructive: Oklch;\n destructiveForeground: Oklch;\n};\n\nexport interface Font {\n readonly headerFont: string;\n readonly bodyFont: string;\n\n readonly extraSmall: string;\n readonly small: string;\n readonly regular: string;\n readonly large: string;\n readonly extraLarge: string;\n readonly giant: string;\n}\n\nexport interface Spacing {\n readonly globalSpacing: string;\n\n readonly radiusSmall: string;\n readonly radiusMedium: string;\n readonly radiusLarge: string;\n readonly radiusExtraLarge: string;\n}\n\n/**\n * Combined non-color theme fields.\n * Uses interface extends for better performance and clearer error messages\n * compared to type intersection (&).\n */\nexport interface CoreNonColorFields extends Font, Spacing {}\n\n// Re-export ThemeConfig from canonical source for consumers of this module\nexport type { ThemeConfig };\n\n// ──────────────────────────────────────────────────────────────\n// OKLCH Utility Functions\n// ──────────────────────────────────────────────────────────────\n\nexport const oklchString = (c: Oklch) =>\n `oklch(${c.l.toFixed(3)} ${c.c.toFixed(3)} ${c.h.toFixed(1)})`;\n\n/** Parse OKLCH string back to object */\nexport const parseOklch = (oklchStr: string): Oklch => {\n const match = oklchStr.match(/oklch\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)\\)/);\n if (!match) {\n return { l: 0, c: 0, h: 0 };\n }\n return {\n l: parseFloat(match[1] || \"0\"),\n c: parseFloat(match[2] || \"0\"),\n h: parseFloat(match[3] || \"0\"),\n };\n};\n\n/** Safe modification of OKLCH */\nexport const mod = (c: Oklch, dl = 0, dc = 0, dh = 0): Oklch => ({\n l: Math.max(0, Math.min(1, c.l + dl)),\n c: Math.max(0, c.c + dc),\n h: (c.h + dh + 360) % 360,\n});\n\n/** Rotate hue safely */\nexport const rotateHue = (c: Oklch, degrees: number): Oklch =>\n mod(c, 0, 0, degrees);\n\n/** Chroma clamping (Catppuccin-like softness) */\nexport const clampChroma = (c: Oklch, maxC = 0.15): Oklch => ({\n ...c,\n c: Math.min(c.c, maxC),\n});\n\n/** Safer hue rotation (preserve L/C of original) */\nexport const rotateSoft = (c: Oklch, deg: number, maxC = 0.15): Oklch =>\n clampChroma(rotateHue(c, deg), maxC);\n\nexport const getForegroundColor = (foreground: Oklch, color: Oklch): string => {\n const contrast = Math.abs(foreground.l - color.l);\n\n if (contrast < 0.7) {\n foreground.l = 1 - foreground.l;\n return oklchString(foreground);\n }\n return oklchString(foreground);\n};\n\n// ──────────────────────────────────────────────────────────────\n// Color Swatches\n// ──────────────────────────────────────────────────────────────\n\nexport const shadeColor = (\n color: Oklch,\n lightnessShift: number,\n chromaShift: number,\n) => {\n return oklchString({\n l: color.l + lightnessShift,\n c: color.c > 0.003 ? color.c + chromaShift : color.c,\n h: color.h,\n });\n};\n\n/**\n * Generate 9 color swatches (shades) from a base color\n * Generates from lightest (90% lightness) to darkest (10% lightness)\n * @param oklchString - Base OKLCH string\n * @returns Array of 9 hex color strings representing shades\n */\nexport function generateColorSwatches(oklchString: string): string[] {\n try {\n const color = parseOklch(oklchString);\n\n const safeMax = color.l >= 0.885 ? 0.995 : 0.97;\n const safeMin = color.l <= 0.33 ? 0 : 0.21;\n const lightBase = (safeMax - color.l) / 5;\n const darkBase = -(color.l - safeMin) / 8;\n\n return [\n // Light shades\n shadeColor(color, 5 * lightBase, -0.00375),\n shadeColor(color, 4 * lightBase, -0.00375),\n shadeColor(color, 3 * lightBase, -0.00375),\n shadeColor(color, 2 * lightBase, -0.00375),\n shadeColor(color, lightBase, -0.00375),\n // Dark shades\n shadeColor(color, 1.6 * darkBase, 0.025),\n shadeColor(color, 1.875 * 2 * darkBase, 0.05),\n shadeColor(color, 3 * 2 * darkBase, 0.075),\n shadeColor(color, 4 * 2 * darkBase, 0.1),\n ];\n } catch (error) {\n console.error(`Failed to generate swatches for ${oklchString}:`, error);\n // Return grayscale swatches as fallback\n return [\n \"#f5f5f5\",\n \"#e0e0e0\",\n \"#cccccc\",\n \"#b3b3b3\",\n \"#999999\",\n \"#666666\",\n \"#4d4d4d\",\n \"#333333\",\n \"#1a1a1a\",\n ];\n }\n}\n\n// ──────────────────────────────────────────────────────────────\n// Color Handling\n// ──────────────────────────────────────────────────────────────\n\n/** Core color keys for iteration */\nexport const CORE_COLOR_KEYS = [\n \"base\",\n \"text\",\n \"body\",\n \"muted\",\n \"mutedForeground\",\n\n \"primary\",\n \"primaryForeground\",\n \"secondary\",\n \"secondaryForeground\",\n \"accent\",\n \"accentForeground\",\n \"destructive\",\n \"destructiveForeground\",\n] as const;\n\n/** Default core colors (fallbacks) */\nexport const DEFAULT_CORE_COLORS: CoreColors = {\n base: { l: 1, c: 0, h: 0 },\n text: { l: 0, c: 0, h: 0 },\n body: { l: 0.2046, c: 0, h: 0 },\n muted: { l: 0.94, c: 0, h: 0 },\n mutedForeground: { l: 0.4997, c: 0, h: 0 },\n\n primary: { l: 0.6231, c: 0.188, h: 259.81 },\n primaryForeground: { l: 1, c: 0, h: 0 },\n secondary: { l: 0.6056, c: 0.2189, h: 292.72 },\n secondaryForeground: { l: 1, c: 0, h: 0 },\n accent: { l: 0.6959, c: 0.1491, h: 162.48 },\n accentForeground: { l: 1, c: 0, h: 0 },\n destructive: { l: 0.6368, c: 0.2078, h: 25.33 },\n destructiveForeground: { l: 1, c: 0, h: 0 },\n};\n\n/** Convert a theme config (CSS string values) to CoreColors */\nexport const themeConfigToCoreColors = (config: ThemeConfig): CoreColors => ({\n base: parseOklch(\n config.background || config.base || oklchString(DEFAULT_CORE_COLORS.base),\n ),\n text: parseOklch(\n config.foreground || config.text || oklchString(DEFAULT_CORE_COLORS.text),\n ),\n body: parseOklch(config.body || oklchString(DEFAULT_CORE_COLORS.body)),\n muted: parseOklch(config.muted || oklchString(DEFAULT_CORE_COLORS.muted)),\n mutedForeground: parseOklch(\n config.mutedForeground ||\n config.muted_foreground ||\n oklchString(DEFAULT_CORE_COLORS.mutedForeground),\n ),\n\n primary: parseOklch(\n config.primary || oklchString(DEFAULT_CORE_COLORS.primary),\n ),\n primaryForeground: parseOklch(\n config.primaryForeground ||\n config.primary_foreground ||\n oklchString(DEFAULT_CORE_COLORS.primaryForeground),\n ),\n secondary: parseOklch(\n config.secondary || oklchString(DEFAULT_CORE_COLORS.secondary),\n ),\n secondaryForeground: parseOklch(\n config.secondaryForeground ||\n config.secondary_foreground ||\n oklchString(DEFAULT_CORE_COLORS.secondaryForeground),\n ),\n accent: parseOklch(config.accent || oklchString(DEFAULT_CORE_COLORS.accent)),\n accentForeground: parseOklch(\n config.accentForeground ||\n config.accent_foreground ||\n oklchString(DEFAULT_CORE_COLORS.accentForeground),\n ),\n destructive: parseOklch(\n config.destructive || oklchString(DEFAULT_CORE_COLORS.destructive),\n ),\n destructiveForeground: parseOklch(\n config.destructiveForeground ||\n config.destructive_foreground ||\n oklchString(DEFAULT_CORE_COLORS.destructiveForeground),\n ),\n});\n\n/** Convert CoreColors to a record of OKLCH strings */\nexport const coreColorsToConfig = (\n colors: CoreColors,\n): Record<string, string> => {\n const config: Record<string, string> = {};\n for (const key of CORE_COLOR_KEYS) {\n config[key] = oklchString(colors[key]);\n }\n return config;\n};\n\nexport const DEFAULT_CORE_COLORS_CONFIG =\n coreColorsToConfig(DEFAULT_CORE_COLORS);\n\n// ──────────────────────────────────────────────────────────────\n// Theme Mode Detection & Conversion\n// ──────────────────────────────────────────────────────────────\n\n/**\n * Theme mode constant - single source of truth for mode values.\n * Use THEME_MODES.light instead of \"light\" for type-safe comparisons.\n */\nexport const THEME_MODES = {\n light: \"light\",\n dark: \"dark\",\n} as const;\n\n/**\n * Union type of theme modes, derived from THEME_MODES constant.\n * @see deriving-typeof-for-object-keys pattern\n */\nexport type ThemeMode = (typeof THEME_MODES)[keyof typeof THEME_MODES];\n\n/**\n * Detect whether the core colors represent a light or dark theme.\n * Based on the lightness of the base color.\n */\nexport const detectThemeMode = (core: CoreColors): ThemeMode => {\n return core.base.l < 0.5 ? THEME_MODES.dark : THEME_MODES.light;\n};\n\n/** Convert core colors to work in dark mode (dark base) */\nexport const toDarkMode = (core: CoreColors): CoreColors => {\n const isDark = core.base.l < 0.5;\n if (isDark) return core; // Already dark\n\n return {\n // Base\n base: mod(core.base, 1 - core.base.l * 2), // Make base dark\n text: mod(core.text, core.text.l > 0.5 ? 0 : 0.5), // Ensure text is light\n body: mod(core.body, core.body.l > 0.5 ? 0 : 0.5),\n muted: mod(core.muted, 1 - core.muted.l * 2),\n mutedForeground: mod(\n core.mutedForeground,\n core.mutedForeground.l > 0.5 ? 0 : 0.4,\n ),\n\n // Color\n primary: core.primary,\n primaryForeground: core.primaryForeground,\n secondary: core.secondary,\n secondaryForeground: core.secondaryForeground,\n accent: core.accent,\n accentForeground: core.accentForeground,\n destructive: core.destructive,\n destructiveForeground: core.destructiveForeground,\n };\n};\n\n/** Convert core colors to work in light mode (light base) */\nexport const toLightMode = (core: CoreColors): CoreColors => {\n const isLight = core.base.l > 0.5;\n if (isLight) return core; // Already light\n\n return {\n // Base\n base: mod(core.base, 1 - core.base.l * 2), // Make base light\n text: mod(core.text, core.text.l < 0.5 ? 0.5 : -0.5), // Ensure text is dark\n body: mod(core.body, core.body.l < 0.5 ? 0.5 : -0.5),\n muted: mod(core.muted, 1 - core.muted.l * 2),\n mutedForeground: mod(\n core.mutedForeground,\n core.mutedForeground.l < 0.5 ? 0.5 : -0.4,\n ),\n\n // Color\n primary: core.primary,\n primaryForeground: core.primaryForeground,\n secondary: core.secondary,\n secondaryForeground: core.secondaryForeground,\n accent: core.accent,\n accentForeground: core.accentForeground,\n destructive: core.destructive,\n destructiveForeground: core.destructiveForeground,\n };\n};\n\n// ──────────────────────────────────────────────────────────────\n// Font Handling\n// ──────────────────────────────────────────────────────────────\n\nexport const FONT_OPTIONS = {\n Inter: \"var(--font-inter)\",\n Eina: \"var(--font-eina)\",\n};\n\nexport const CORE_FONT_KEYS = [\n \"headerFont\",\n \"bodyFont\",\n \"extraSmall\",\n \"small\",\n \"regular\",\n \"large\",\n \"extraLarge\",\n \"giant\",\n] as const;\n\nexport const DEFAULT_FONT = {\n headerFont: FONT_OPTIONS.Inter,\n bodyFont: FONT_OPTIONS.Inter,\n extraSmall: \"0.75rem\",\n small: \"0.875rem\",\n regular: \"1rem\",\n large: \"1.125rem\",\n extraLarge: \"1.25rem\",\n giant: \"1.5rem\",\n};\n\nexport const fontConfigToCoreFont = (config: ThemeConfig): Font => {\n return {\n headerFont: config.headerFont || DEFAULT_FONT.headerFont,\n bodyFont: config.bodyFont || DEFAULT_FONT.bodyFont,\n extraSmall: config.extraSmall || DEFAULT_FONT.extraSmall,\n small: config.small || DEFAULT_FONT.small,\n regular: config.regular || DEFAULT_FONT.regular,\n large: config.large || DEFAULT_FONT.large,\n extraLarge: config.extraLarge || DEFAULT_FONT.extraLarge,\n giant: config.giant || DEFAULT_FONT.giant,\n };\n};\n\n// ──────────────────────────────────────────────────────────────\n// Spacing Handling\n// ──────────────────────────────────────────────────────────────\n\nexport const CORE_SPACING_KEYS = [\n \"globalSpacing\",\n \"radiusSmall\",\n \"radiusMedium\",\n \"radiusLarge\",\n \"radiusExtraLarge\",\n] as const;\n\nexport const DEFAULT_SPACING = {\n globalSpacing: \"0.25rem\",\n\n radiusSmall: \"0.25rem\",\n radiusMedium: \"0.375rem\",\n radiusLarge: \"0.5rem\",\n radiusExtraLarge: \"0.75rem\",\n};\n\nexport const spacingConfigToCoreSpacing = (config: ThemeConfig): Spacing => {\n return {\n globalSpacing: config.globalSpacing || DEFAULT_SPACING.globalSpacing,\n radiusSmall: config.radiusSmall || DEFAULT_SPACING.radiusSmall,\n radiusMedium: config.radiusMedium || DEFAULT_SPACING.radiusMedium,\n radiusLarge: config.radiusLarge || DEFAULT_SPACING.radiusLarge,\n radiusExtraLarge:\n config.radiusExtraLarge || DEFAULT_SPACING.radiusExtraLarge,\n };\n};\n\n// ──────────────────────────────────────────────────────────────\n// Non Color Fields Handling\n// ──────────────────────────────────────────────────────────────\n\nexport const CORE_NON_COLOR_KEYS = [\n ...CORE_FONT_KEYS,\n ...CORE_SPACING_KEYS,\n] as const;\n\nexport const separatedThemeConfig = (config: ThemeConfig) => {\n // Type assertions in reduce: Required because we're building an object dynamically.\n // The key is typed as string from array iteration, but we know it's a valid ThemeConfig key.\n // The {} as ThemeConfig seed is necessary for TypeScript to type the accumulator.\n const ensuredConfig: ThemeConfig = [\n ...CORE_NON_COLOR_KEYS,\n ...CORE_COLOR_KEYS,\n ].reduce((acc, key) => {\n acc[key] =\n config[key] ||\n DEFAULT_CORE_COLORS_CONFIG[key] ||\n DEFAULT_FONT[key as keyof Font] ||\n DEFAULT_SPACING[key as keyof Spacing];\n return acc;\n }, {} as ThemeConfig);\n\n // Type assertions for .includes(): Required because TypeScript's readonly tuple types\n // don't directly support .includes() with string parameters. The filter ensures we\n // only include keys that are in the respective key arrays.\n const colorConfig = Object.fromEntries(\n Object.entries(ensuredConfig).filter(([key]) =>\n (CORE_COLOR_KEYS as readonly string[]).includes(key as string),\n ),\n );\n const otherConfig = Object.fromEntries(\n Object.entries(ensuredConfig).filter(([key]) =>\n (CORE_NON_COLOR_KEYS as readonly string[]).includes(key as string),\n ),\n );\n\n return {\n colorConfig,\n otherConfig,\n };\n};\n\nexport const themeConfigToCoreNonColorFields = (\n config: ThemeConfig,\n): CoreNonColorFields => {\n return {\n ...fontConfigToCoreFont(config),\n ...spacingConfigToCoreSpacing(config),\n };\n};\n\n// ──────────────────────────────────────────────────────────────\n// Theme Generator\n// ──────────────────────────────────────────────────────────────\n\nexport const globalCSSOverride = {\n \"--color-background-foreground\": \"var(--color-foreground)\",\n \"--color-foreground-foreground\": \"var(--color-background)\",\n\n \"--sidebar-ring\": \"var(--color-primary)\",\n \"--sidebar-border\": \"var(--color-border)\",\n \"--sidebar-accent-foreground\": \"var(--color-accent-foreground)\",\n \"--sidebar-accent\": \"var(--color-accent)\",\n \"--sidebar-primary-foreground\": \"var(--color-primary-foreground)\",\n \"--sidebar-primary\": \"var(--color-primary)\",\n \"--sidebar-foreground\": \"var(--color-muted-foreground)\",\n \"--sidebar\": \"var(--color-muted)\",\n \"--ring\": \"var(--color-primary)\",\n \"--popover\": \"var(--color-background)\",\n \"--popover-foreground\": \"var(--color-foreground)\",\n \"--card\": \"var(--color-muted)\",\n \"--card-foreground\": \"var(--color-muted-foreground)\",\n\n \"--spacing\": \"var(--global-spacing)\",\n \"--radius-sm\": \"var(--radius-small)\",\n \"--radius-md\": \"var(--radius-medium)\",\n \"--radius-lg\": \"var(--radius-large)\",\n \"--radius-xl\": \"var(--radius-extra-large)\",\n \"--text-xs\": \"var(--text-extra-small)\",\n \"--text-sm\": \"var(--text-small)\",\n \"--text-base\": \"var(--text-regular)\",\n \"--text-lg\": \"var(--text-large)\",\n \"--text-xl\": \"var(--text-extra-large)\",\n \"--text-2xl\": \"var(--text-giant)\",\n \"--font-sans\": \"var(--font-body)\",\n \"--font-mono\": \"var(--font-header)\",\n};\n\n/**\n * Generate CSS variables from a hex color config and theme mode\n */\nexport function generateThemeCssVars(\n config: ThemeConfig,\n mode: ThemeMode,\n): Record<string, string> {\n // Ensure core\n const coreColors = themeConfigToCoreColors(config);\n const coreOther = themeConfigToCoreNonColorFields(config);\n\n // Generate theme using the theme engine\n const theme = generateTheme(\"preview\", coreColors, mode, coreOther);\n\n // Convert theme config to CSS variables\n const cssVars: Record<string, string> = { ...globalCSSOverride };\n Object.entries(theme.config).forEach(([key, value]) => {\n const cssKey = `--${key.replace(/_/g, \"-\")}`;\n cssVars[cssKey] = String(value);\n\n if (value.startsWith(\"oklch(\")) {\n const colorVariable = cssKey.replace(/^--/, \"--color-\");\n cssVars[colorVariable] = String(value);\n const swatches = generateColorSwatches(value);\n swatches.forEach((swatch, index) => {\n const swatchKey = `--color-${key.replace(/_/g, \"-\")}-${index + 1}00`;\n cssVars[swatchKey] = String(swatch);\n });\n }\n });\n\n return cssVars;\n}\n\nexport const generateTheme = (\n name: string,\n colorFields: CoreColors,\n mode: ThemeMode = THEME_MODES.dark,\n otherFields?: CoreNonColorFields,\n) => {\n // Convert colors to appropriate mode\n const modeCore =\n mode === \"dark\" ? toDarkMode(colorFields) : toLightMode(colorFields);\n\n // Adaptive surface lighten (proportional, not absolute)\n const surface = mod(modeCore.base, (1 - modeCore.base.l) * 0.1);\n\n // Apply optional global chroma dampening\n const normalize = (c: Oklch) => c;\n\n // Base\n const base = normalize(modeCore.base);\n const text = normalize(modeCore.text);\n const body = normalize(modeCore.body);\n const muted = normalize(modeCore.muted);\n const mutedForeground = normalize(modeCore.mutedForeground);\n // Color\n const primary = normalize(modeCore.primary);\n const primaryForeground = normalize(modeCore.primaryForeground);\n const secondary = normalize(modeCore.secondary);\n const secondaryForeground = normalize(modeCore.secondaryForeground);\n const accent = normalize(modeCore.accent);\n const accentForeground = normalize(modeCore.accentForeground);\n const destructive = normalize(modeCore.destructive);\n const destructiveForeground = normalize(modeCore.destructiveForeground);\n\n // Chart hues using soft rotations\n const chart1 = accent;\n const chart2 = primary;\n const chart3 = secondary;\n const chart4 = rotateSoft(primary, 60);\n const chart5 = rotateSoft(primary, 120);\n\n const otherConfig = otherFields ?? {\n ...DEFAULT_FONT,\n ...DEFAULT_SPACING,\n };\n\n return {\n name,\n mode,\n config: {\n // Base\n background: oklchString(base),\n foreground: oklchString(text),\n\n // Body\n body: oklchString(body),\n\n // Popover\n popover: oklchString(base),\n popover_foreground: oklchString(text),\n\n // Primary\n primary: oklchString(primary),\n primary_foreground: oklchString(primaryForeground),\n\n // Secondary\n secondary: oklchString(secondary),\n secondary_foreground: oklchString(secondaryForeground),\n\n // muted\n muted: oklchString(muted),\n muted_foreground: oklchString(mutedForeground),\n\n // Accent\n accent: oklchString(accent),\n accent_foreground: oklchString(accentForeground),\n\n // Destructive\n destructive: oklchString(destructive),\n destructive_foreground: oklchString(destructiveForeground),\n\n // Border / input / ring\n border: oklchString(surface),\n input: oklchString(surface),\n\n // Charts\n chart_1: oklchString(chart1),\n chart_2: oklchString(chart2),\n chart_3: oklchString(chart3),\n chart_4: oklchString(chart4),\n chart_5: oklchString(chart5),\n\n // Font\n font_header: otherConfig.headerFont || DEFAULT_FONT.headerFont,\n font_body: otherConfig.bodyFont || DEFAULT_FONT.bodyFont,\n text_extra_small: otherConfig.extraSmall || DEFAULT_FONT.extraSmall,\n text_small: otherConfig.small || DEFAULT_FONT.small,\n text_regular: otherConfig.regular || DEFAULT_FONT.regular,\n text_large: otherConfig.large || DEFAULT_FONT.large,\n text_extra_large: otherConfig.extraLarge || DEFAULT_FONT.extraLarge,\n text_giant: otherConfig.giant || DEFAULT_FONT.giant,\n\n // Spacing\n global_spacing:\n otherConfig.globalSpacing || DEFAULT_SPACING.globalSpacing,\n radius_small: otherConfig.radiusSmall || DEFAULT_SPACING.radiusSmall,\n radius_medium: otherConfig.radiusMedium || DEFAULT_SPACING.radiusMedium,\n radius_large: otherConfig.radiusLarge || DEFAULT_SPACING.radiusLarge,\n radius_extra_large:\n otherConfig.radiusExtraLarge || DEFAULT_SPACING.radiusExtraLarge,\n },\n default: false,\n };\n};\n\n// ──────────────────────────────────────────────────────────────\n// Dual-Mode Theme Generator\n// ──────────────────────────────────────────────────────────────\n\n/**\n * Generate both light and dark themes from the same core colors.\n * Returns an object with 'light' and 'dark' theme variants.\n */\nexport const generateDualTheme = (name: string, core: CoreColors) => {\n return {\n light: generateTheme(name, core, \"light\"),\n dark: generateTheme(name, core, \"dark\"),\n };\n};\n\n/**\n * Smart dual theme generation that detects the original mode\n * and generates the opposite mode automatically.\n * Useful when you have a user-created theme and want to offer both modes.\n */\nexport const generateSmartDualTheme = (name: string, core: CoreColors) => {\n const detectedMode = detectThemeMode(core);\n\n return {\n light: generateTheme(name, core, \"light\"),\n dark: generateTheme(name, core, \"dark\"),\n detectedMode, // Returns which mode the original core colors represent\n };\n};\n\n// ──────────────────────────────────────────────────────────────\n// Theme Identifier\n// ──────────────────────────────────────────────────────────────\n\n/**\n * Gets a unique identifier for a theme\n * Prefers ID (converted to string) over name for uniqueness\n */\nexport const getThemeIdentifier = (theme: Theme): string => {\n return theme.id !== undefined ? theme.id.toString() : theme.name;\n};\n\n/**\n * Finds a theme by identifier (ID or name)\n * First attempts to match by ID, then falls back to name matching\n */\nexport const findThemeByIdentifier = (\n themes: Theme[],\n identifier: number | string,\n): Theme | undefined => {\n // If identifier is a number, try to find by ID first\n if (typeof identifier === \"number\") {\n return themes.find((t) => t.id === identifier);\n }\n\n // If identifier is a string, try to parse as number for ID match\n const numericId = parseInt(identifier, 10);\n if (!isNaN(numericId)) {\n const byId = themes.find((t) => t.id === numericId);\n if (byId) return byId;\n }\n\n // Fall back to name matching\n return themes.find((t) => t.name === identifier);\n};\n\n/**\n * Checks if two themes are the same based on their identifiers\n */\nexport const isSameTheme = (\n theme1: Theme | undefined,\n theme2: Theme,\n): boolean => {\n if (!theme1) return false;\n\n // If both have IDs, compare by ID\n if (theme1.id !== undefined && theme2.id !== undefined) {\n return theme1.id === theme2.id;\n }\n\n // Fall back to name comparison\n return theme1.name === theme2.name;\n};\n","import { DEFAULT_CORE_COLORS, generateTheme, parseOklch } from \"./theme-engine\";\n\n// Re-export theme engine functions\nexport * from \"./theme-engine\";\nexport type { Oklch, CoreColors, ThemeConfig } from \"./theme-engine\";\n\n// --------------------------------------------------------------------\n// Official Themes\n// --------------------------------------------------------------------\n\nexport const dracula = generateTheme(\"Dracula\", {\n // Base - Official: draculatheme.com/spec\n base: { l: 0.2882, c: 0.0221, h: 277.51 }, // Official: #282A36 (Background)\n text: { l: 0.9775, c: 0.0079, h: 106.55 }, // Official: #F8F8F2 (Foreground)\n body: { l: 0.75, c: 0.02, h: 300 }, // Body text\n muted: { l: 0.4028, c: 0.0322, h: 277.83 }, // Surface/Card bg - Official: #44475A (Current Line)\n mutedForeground: { l: 0.5598, c: 0.0803, h: 270.09 }, // Official: #6272A4 (Comment)\n\n // Color\n primary: { l: 0.742, c: 0.1485, h: 301.88 }, // Official: #BD93F9 (Purple)\n primaryForeground: { l: 0.15, c: 0.01, h: 275 },\n secondary: { l: 0.5598, c: 0.0803, h: 270.09 }, // Official: #6272A4 (Comment)\n secondaryForeground: { l: 0.15, c: 0.01, h: 245 },\n accent: { l: 0.871, c: 0.2195, h: 148.02 }, // Official: #50FA7B (Green)\n accentForeground: { l: 0.15, c: 0.01, h: 110 },\n destructive: { l: 0.6822, c: 0.2063, h: 24.43 }, // Official: #FF5555 (Red)\n destructiveForeground: { l: 0.15, c: 0.01, h: 30 },\n});\n\nexport const solarized = generateTheme(\n \"Solarized\",\n {\n // Base - Official: ethanschoonover.com/solarized\n base: { l: 0.9735, c: 0.0261, h: 90.1 }, // Official: #fdf6e3 (base3)\n text: { l: 0.3092, c: 0.0518, h: 219.65 }, // Official: #073642 (base02)\n body: { l: 0.523, c: 0.0283, h: 219.14 }, // Official: #586e75 (base01)\n muted: { l: 0.9306, c: 0.026, h: 92.4 }, // Surface/Card bg - Official: #eee8d5 (base2)\n mutedForeground: { l: 0.5682, c: 0.0285, h: 221.9 }, // Official: #657b83 (base00)\n\n // Color\n primary: { l: 0.6437, c: 0.1019, h: 187.38 }, // Official: #2aa198 (cyan)\n primaryForeground: { l: 0.98, c: 0.01, h: 180 },\n secondary: { l: 0.6444, c: 0.1508, h: 118.6 }, // Official: #859900 (green)\n secondaryForeground: { l: 0.15, c: 0.01, h: 145 },\n accent: { l: 0.6545, c: 0.134, h: 85.72 }, // Official: #b58900 (yellow)\n accentForeground: { l: 0.15, c: 0.01, h: 85 },\n destructive: { l: 0.5863, c: 0.2064, h: 27.12 }, // Official: #dc322f (red)\n destructiveForeground: { l: 0.98, c: 0.01, h: 30 },\n },\n \"light\",\n);\n\nexport const gruvbox = generateTheme(\n \"Gruvbox\",\n {\n // Base - Official: github.com/morhetz/gruvbox (Light mode)\n base: { l: 0.9555, c: 0.0555, h: 96.15 }, // Official: #fbf1c7 (bg0 light)\n text: { l: 0.3441, c: 0.0066, h: 48.52 }, // Official: #3c3836 (fg1 light)\n body: { l: 0.411, c: 0.0115, h: 51.87 }, // Official: #504945 (fg2 light)\n muted: { l: 0.8941, c: 0.0566, h: 89.24 }, // Surface/Card bg - Official: #ebdbb2 (bg1 light)\n mutedForeground: { l: 0.5505, c: 0.0234, h: 62.57 }, // Official: #7c6f64 (gray)\n\n // Color\n primary: { l: 0.7251, c: 0.1429, h: 77.71 }, // Official: #d79921 (yellow)\n primaryForeground: { l: 0.15, c: 0.01, h: 80 },\n secondary: { l: 0.6564, c: 0.1354, h: 109.12 }, // Official: #98971a (green)\n secondaryForeground: { l: 0.15, c: 0.01, h: 145 },\n accent: { l: 0.6217, c: 0.1707, h: 45.81 }, // Official: #d65d0e (orange)\n accentForeground: { l: 0.15, c: 0.01, h: 35 },\n destructive: { l: 0.5458, c: 0.203, h: 28.66 }, // Official: #cc241d (red)\n destructiveForeground: { l: 0.98, c: 0.01, h: 30 },\n },\n \"light\",\n);\n\nexport const monokai = generateTheme(\"Monokai\", {\n // Base - Official: Sublime Text Monokai\n base: { l: 0.2737, c: 0.0109, h: 114.8 }, // Official: #272822 (Background)\n text: { l: 0.9775, c: 0.0079, h: 106.55 }, // Official: #F8F8F2 (Foreground)\n body: { l: 0.75, c: 0.04, h: 90 }, // Body text\n muted: { l: 0.3574, c: 0.0184, h: 103 }, // Surface/Card bg - Official: #3E3D32 (Line hig\n mutedForeground: { l: 0.5467, c: 0.0288, h: 97.39 }, // Official: #75715E (Comment)\n\n // Color\n primary: { l: 0.8792, c: 0.1255, h: 103.18 }, // Official: #E6DB74 (Yellow)\n primaryForeground: { l: 0.15, c: 0.01, h: 60 },\n secondary: { l: 0.6416, c: 0.24, h: 7.47 }, // Official: #F92672 (Pink)\n secondaryForeground: { l: 0.15, c: 0.01, h: 300 },\n accent: { l: 0.8414, c: 0.2044, h: 127.29 }, // Official: #A6E22E (Green)\n accentForeground: { l: 0.15, c: 0.01, h: 110 },\n destructive: { l: 0.6416, c: 0.24, h: 7.47 }, // Official: #F92672 (Red/Pink)\n destructiveForeground: { l: 0.98, c: 0.01, h: 20 },\n});\n\nexport const tokyoNight = generateTheme(\"Tokyo Night\", {\n // Base - Official: github.com/folke/tokyonight.nvim\n base: { l: 0.2263, c: 0.0214, h: 280.49 }, // Official: #1a1b26 (bg)\n text: { l: 0.8456, c: 0.0611, h: 274.76 }, // Official: #c0caf5 (fg)\n body: { l: 0.7666, c: 0.0537, h: 275.49 }, // Official: #a9b1d6 (fg_dark)\n muted: { l: 0.2819, c: 0.0355, h: 274.75 }, // Surface/Card bg - Official: #24283b (bg_highlight)\n mutedForeground: { l: 0.4955, c: 0.0682, h: 274.37 }, // Official: #565f89 (comment)\n\n // Color\n primary: { l: 0.719, c: 0.1322, h: 264.2 }, // Official: #7aa2f7 (blue)\n primaryForeground: { l: 0.15, c: 0.01, h: 260 },\n secondary: { l: 0.7515, c: 0.1344, h: 299.5 }, // Official: #bb9af7 (magenta)\n secondaryForeground: { l: 0.15, c: 0.01, h: 295 },\n accent: { l: 0.7839, c: 0.1057, h: 75.43 }, // Official: #e0af68 (yellow)\n accentForeground: { l: 0.15, c: 0.01, h: 80 },\n destructive: { l: 0.7227, c: 0.1589, h: 10.28 }, // Official: #f7768e (red)\n destructiveForeground: { l: 0.15, c: 0.01, h: 20 },\n});\n\nexport const rosePine = generateTheme(\"Rose Pine\", {\n // Base - Official: rosepinetheme.com/palette\n base: { l: 0.2134, c: 0.0255, h: 291.13 }, // Official: #191724 (Base)\n text: { l: 0.9088, c: 0.0299, h: 289.97 }, // Official: #e0def4 (Text)\n body: { l: 0.6539, c: 0.0444, h: 291.23 }, // Official: #908caa (Subtle)\n muted: { l: 0.2413, c: 0.0322, h: 289.14 }, // Surface/Card bg - Official: #1f1d2e (Surface)\n mutedForeground: { l: 0.5383, c: 0.0435, h: 291.41 }, // Official: #6e6a86 (Muted)\n\n // Color\n primary: { l: 0.8363, c: 0.0544, h: 21.14 }, // Official: #ebbcba (Rose)\n primaryForeground: { l: 0.15, c: 0.01, h: 345 },\n secondary: { l: 0.5277, c: 0.0793, h: 227.72 }, // Official: #31748f (Pine)\n secondaryForeground: { l: 0.15, c: 0.01, h: 155 },\n accent: { l: 0.776, c: 0.0945, h: 304.99 }, // Official: #c4a7e7 (Iris)\n accentForeground: { l: 0.15, c: 0.01, h: 270 },\n destructive: { l: 0.6977, c: 0.1565, h: 4.22 }, // Official: #eb6f92 (Love)\n destructiveForeground: { l: 0.15, c: 0.01, h: 25 },\n});\n\nexport const everforest = generateTheme(\n \"Everforest\",\n {\n // Base - Official: github.com/sainnhe/everforest (Light mode)\n base: { l: 0.9735, c: 0.0261, h: 90.1 }, // Official: #fdf6e3 (bg0 light medium)\n text: { l: 0.5154, c: 0.0212, h: 232.87 }, // Official: #5c6a72 (fg)\n body: { l: 0.6398, c: 0.0292, h: 143.51 }, // Official: #829181 (grey2)\n muted: { l: 0.9522, c: 0.0306, h: 98.86 }, // Surface/Card bg - Official: #f4f0d9 (bg1 light)\n mutedForeground: { l: 0.6888, c: 0.0243, h: 141.21 }, // Official: #939f91 (grey1)\n\n // Color\n primary: { l: 0.6697, c: 0.156, h: 118.23 }, // Official: #8da101 (green)\n primaryForeground: { l: 0.98, c: 0.01, h: 140 },\n secondary: { l: 0.7466, c: 0.1545, h: 80.27 }, // Official: #dfa000 (yellow)\n secondaryForeground: { l: 0.15, c: 0.01, h: 60 },\n accent: { l: 0.7147, c: 0.1729, h: 50.75 }, // Official: #f57d26 (orange)\n accentForeground: { l: 0.15, c: 0.01, h: 30 },\n destructive: { l: 0.6707, c: 0.1996, h: 25.2 }, // Official: #f85552 (red)\n destructiveForeground: { l: 0.98, c: 0.01, h: 20 },\n },\n \"light\",\n);\n\nexport const nord = generateTheme(\"Nord\", {\n // Base - Official: nordtheme.com\n base: { l: 0.3244, c: 0.0229, h: 264.18 }, // Official: #2e3440 (nord0 - Polar Night)\n text: { l: 0.9513, c: 0.0074, h: 260.73 }, // Official: #eceff4 (nord6 - Snow Storm)\n body: { l: 0.8993, c: 0.0164, h: 262.75 }, // Official: #d8dee9 (nord4 - Snow Storm)\n muted: { l: 0.3792, c: 0.029, h: 266.47 }, // Surface/Card bg - Official: #3b4252 (nord1)\n mutedForeground: { l: 0.4523, c: 0.0352, h: 264.13 }, // Official: #4c566a (nord3)\n\n // Color\n primary: { l: 0.7746, c: 0.0622, h: 217.47 }, // Official: #88c0d0 (nord8 - Frost)\n primaryForeground: { l: 0.15, c: 0.01, h: 210 },\n secondary: { l: 0.7629, c: 0.0477, h: 194.49 }, // Official: #8fbcbb (nord7 - Frost)\n secondaryForeground: { l: 0.15, c: 0.01, h: 190 },\n accent: { l: 0.6921, c: 0.0625, h: 332.66 }, // Official: #b48ead (nord15 - Aurora)\n accentForeground: { l: 0.15, c: 0.01, h: 250 },\n destructive: { l: 0.6061, c: 0.1206, h: 15.34 }, // Official: #bf616a (nord11 - Aurora)\n destructiveForeground: { l: 0.98, c: 0.01, h: 25 },\n});\n\nexport const catppuccinMocha = generateTheme(\"Catppuccin Mocha\", {\n // Base - Official: catppuccin.com/palette (Mocha variant)\n base: { l: 0.2429, c: 0.0304, h: 283.91 }, // Official: #1e1e2e (Base)\n text: { l: 0.8787, c: 0.0426, h: 272.28 }, // Official: #cdd6f4 (Text)\n body: { l: 0.8168, c: 0.0403, h: 272.86 }, // Official: #bac2de (Subtext 1)\n muted: { l: 0.2155, c: 0.0254, h: 284.06 }, // Surface/Card bg - Official: #181825 (Mantle)\n mutedForeground: { l: 0.751, c: 0.0396, h: 273.93 }, // Official: #a6adc8 (Subtext 0)\n\n // Color\n primary: { l: 0.7664, c: 0.1113, h: 259.88 }, // Official: #89b4fa (Blue)\n primaryForeground: { l: 0.15, c: 0.01, h: 255 },\n secondary: { l: 0.7871, c: 0.1187, h: 304.77 }, // Official: #cba6f7 (Mauve)\n secondaryForeground: { l: 0.15, c: 0.01, h: 294 },\n accent: { l: 0.9193, c: 0.0704, h: 86.53 }, // Official: #f9e2af (Yellow)\n accentForeground: { l: 0.15, c: 0.01, h: 72 },\n destructive: { l: 0.7556, c: 0.1297, h: 2.76 }, // Official: #f38ba8 (Red)\n destructiveForeground: { l: 0.15, c: 0.01, h: 22 },\n});\n\n// --------------------------------------------------------------------\n// Combined Themes\n// --------------------------------------------------------------------\n\nexport const nordifiedCatppuccin = generateTheme(\"Nordified Catppuccin\", {\n // Base - Custom hybrid: Nord backgrounds + Catppuccin accents\n base: parseOklch(nord.config.background),\n text: parseOklch(nord.config.foreground),\n body: parseOklch(nord.config.body),\n muted: parseOklch(nord.config.muted),\n mutedForeground: parseOklch(nord.config.muted_foreground),\n\n // Color - Catppuccin accent colors\n primary: parseOklch(catppuccinMocha.config.primary),\n primaryForeground: parseOklch(catppuccinMocha.config.primary_foreground),\n secondary: parseOklch(catppuccinMocha.config.secondary),\n secondaryForeground: parseOklch(catppuccinMocha.config.secondary_foreground),\n accent: parseOklch(catppuccinMocha.config.accent),\n accentForeground: parseOklch(catppuccinMocha.config.accent_foreground),\n destructive: parseOklch(catppuccinMocha.config.destructive),\n destructiveForeground: parseOklch(\n catppuccinMocha.config.destructive_foreground,\n ),\n});\n\n// --------------------------------------------------------------------\n// Custom Themes\n// --------------------------------------------------------------------\n\nexport const christmas = generateTheme(\"Christmas\", {\n // Base - Custom holiday theme\n base: { l: 0.22, c: 0.04, h: 150 }, // Dark forest green\n text: { l: 0.95, c: 0.02, h: 100 }, // Snow white\n body: { l: 0.85, c: 0.02, h: 100 }, // Body text\n muted: { l: 0.15, c: 0.04, h: 150 }, // Surface/Card bg - Darker green\n mutedForeground: { l: 0.65, c: 0.02, h: 100 }, // Muted snow\n\n // Color\n primary: { l: 0.6, c: 0.15, h: 30 }, // Christmas red\n primaryForeground: { l: 0.98, c: 0.01, h: 30 },\n secondary: { l: 0.7, c: 0.12, h: 140 }, // Bright holiday green\n secondaryForeground: { l: 0.15, c: 0.01, h: 140 },\n accent: { l: 0.85, c: 0.12, h: 90 }, // Warm gold highlight\n accentForeground: { l: 0.15, c: 0.01, h: 90 },\n destructive: { l: 0.55, c: 0.18, h: 25 }, // Stronger red\n destructiveForeground: { l: 0.98, c: 0.01, h: 25 },\n});\n\nexport const pastel = generateTheme(\"Pastel\", {\n // Base - Custom soft pastel theme\n base: { l: 0.95, c: 0.03, h: 210 }, // Soft light blue-tinted base\n text: { l: 0.25, c: 0.03, h: 210 }, // Soft dark text\n body: { l: 0.35, c: 0.03, h: 210 }, // Body text\n muted: { l: 0.89, c: 0.03, h: 210 }, // Surface/Card bg - Slightly darker\n mutedForeground: { l: 0.5, c: 0.03, h: 210 }, // Muted foreground\n\n // Color\n primary: { l: 0.55, c: 0.12, h: 200 }, // Pastel blue\n primaryForeground: { l: 0.98, c: 0.01, h: 200 },\n secondary: { l: 0.55, c: 0.12, h: 320 }, // Pastel pink\n secondaryForeground: { l: 0.98, c: 0.01, h: 320 },\n accent: { l: 0.6, c: 0.13, h: 80 }, // Pastel yellow\n accentForeground: { l: 0.98, c: 0.01, h: 80 },\n destructive: { l: 0.5, c: 0.15, h: 25 }, // Pastel red\n destructiveForeground: { l: 0.98, c: 0.01, h: 25 },\n});\n\nexport const neon = generateTheme(\"Neon\", {\n // Base - Custom vibrant neon theme\n base: { l: 0.1, c: 0.03, h: 260 }, // Deep dark purple-tinted base\n text: { l: 0.9, c: 0.05, h: 260 }, // Bright neon text\n body: { l: 0.8, c: 0.04, h: 260 }, // Body text\n muted: { l: 0.18, c: 0.02, h: 260 }, // Surface/Card bg - Slightly lighter\n mutedForeground: { l: 0.55, c: 0.04, h: 260 }, // Muted foreground\n\n // Color - High saturation neon accents\n primary: { l: 0.6, c: 0.2, h: 180 }, // Neon cyan\n primaryForeground: { l: 0.1, c: 0.01, h: 180 },\n secondary: { l: 0.6, c: 0.2, h: 300 }, // Neon magenta\n secondaryForeground: { l: 0.1, c: 0.01, h: 300 },\n accent: { l: 0.55, c: 0.2, h: 90 }, // Neon green\n accentForeground: { l: 0.1, c: 0.01, h: 90 },\n destructive: { l: 0.55, c: 0.22, h: 20 }, // Neon red\n destructiveForeground: { l: 0.1, c: 0.01, h: 20 },\n});\n\nexport const highContrast = generateTheme(\"High Contrast\", {\n // Base - Custom accessibility theme (max contrast)\n base: { l: 0.0, c: 0.0, h: 0 }, // Pure black #000000\n text: { l: 1.0, c: 0.0, h: 0 }, // Pure white #ffffff\n body: { l: 0.9, c: 0.0, h: 0 }, // Body text\n muted: { l: 0.12, c: 0.0, h: 0 }, // Surface/Card bg - Near black\n mutedForeground: { l: 0.6, c: 0.0, h: 0 }, // Muted gray\n\n // Color - Maximum saturation for visibility\n primary: { l: 0.5, c: 0.25, h: 260 }, // Saturated blue\n primaryForeground: { l: 1.0, c: 0.0, h: 0 },\n secondary: { l: 0.5, c: 0.25, h: 120 }, // Saturated green\n secondaryForeground: { l: 1.0, c: 0.0, h: 0 },\n accent: { l: 0.5, c: 0.25, h: 60 }, // Saturated yellow\n accentForeground: { l: 0.0, c: 0.0, h: 0 },\n destructive: { l: 0.5, c: 0.25, h: 0 }, // Saturated red\n destructiveForeground: { l: 1.0, c: 0.0, h: 0 },\n});\n\nexport const ocean = generateTheme(\n \"Ocean\",\n {\n // Base - Custom blue ocean theme\n base: { l: 0.25, c: 0.03, h: 220 }, // Deep ocean blue\n text: { l: 0.85, c: 0.02, h: 220 }, // Light seafoam text\n body: { l: 0.75, c: 0.02, h: 220 }, // Body text\n muted: { l: 0.33, c: 0.02, h: 220 }, // Surface/Card bg - Lighter ocean\n mutedForeground: { l: 0.55, c: 0.02, h: 220 }, // Muted foreground\n\n // Color\n primary: { l: 0.65, c: 0.12, h: 200 }, // Ocean blue\n primaryForeground: { l: 0.15, c: 0.01, h: 200 },\n secondary: { l: 0.7, c: 0.1, h: 180 }, // Teal\n secondaryForeground: { l: 0.15, c: 0.01, h: 180 },\n accent: { l: 0.75, c: 0.08, h: 160 }, // Aqua\n accentForeground: { l: 0.15, c: 0.01, h: 160 },\n destructive: { l: 0.6, c: 0.14, h: 25 }, // Coral red\n destructiveForeground: { l: 0.98, c: 0.01, h: 25 },\n },\n \"light\",\n);\n\nexport const forest = generateTheme(\n \"Forest\",\n {\n // Base - Custom nature green theme\n base: { l: 0.28, c: 0.04, h: 140 }, // Deep forest green\n text: { l: 0.88, c: 0.03, h: 100 }, // Light cream text\n body: { l: 0.78, c: 0.03, h: 100 }, // Body text\n muted: { l: 0.36, c: 0.03, h: 140 }, // Surface/Card bg - Lighter forest\n mutedForeground: { l: 0.58, c: 0.03, h: 100 }, // Muted foreground\n\n // Color\n primary: { l: 0.65, c: 0.12, h: 145 }, // Forest green\n primaryForeground: { l: 0.15, c: 0.01, h: 145 },\n secondary: { l: 0.7, c: 0.1, h: 80 }, // Olive\n secondaryForeground: { l: 0.15, c: 0.01, h: 80 },\n accent: { l: 0.8, c: 0.1, h: 60 }, // Golden\n accentForeground: { l: 0.15, c: 0.01, h: 60 },\n destructive: { l: 0.6, c: 0.14, h: 30 }, // Burnt orange\n destructiveForeground: { l: 0.98, c: 0.01, h: 30 },\n },\n \"light\",\n);\n\nexport const sunset = generateTheme(\n \"Sunset\",\n {\n // Base - Custom warm sunset theme\n base: { l: 0.26, c: 0.04, h: 30 }, // Deep warm brown\n text: { l: 0.9, c: 0.03, h: 60 }, // Warm cream text\n body: { l: 0.8, c: 0.03, h: 60 }, // Body text\n muted: { l: 0.34, c: 0.03, h: 30 }, // Surface/Card bg - Lighter warm brown\n mutedForeground: { l: 0.58, c: 0.03, h: 60 }, // Muted foreground\n\n // Color\n primary: { l: 0.7, c: 0.15, h: 25 }, // Warm orange\n primaryForeground: { l: 0.15, c: 0.01, h: 25 },\n secondary: { l: 0.68, c: 0.16, h: 350 }, // Pink\n secondaryForeground: { l: 0.15, c: 0.01, h: 350 },\n accent: { l: 0.75, c: 0.14, h: 50 }, // Yellow-orange\n accentForeground: { l: 0.15, c: 0.01, h: 50 },\n destructive: { l: 0.6, c: 0.18, h: 20 }, // Red\n destructiveForeground: { l: 0.98, c: 0.01, h: 20 },\n },\n \"light\",\n);\n\nexport const defaultTheme = generateTheme(\n \"Default\",\n DEFAULT_CORE_COLORS,\n \"light\",\n);\n\nexport const BUILT_IN_THEMES = {\n Default: defaultTheme,\n Dracula: dracula,\n Solarized: solarized,\n Gruvbox: gruvbox,\n Monokai: monokai,\n \"Tokyo Night\": tokyoNight,\n \"Rose Pine\": rosePine,\n Everforest: everforest,\n Nord: nord,\n \"Catppuccin Mocha\": catppuccinMocha,\n \"Nordified Catppuccin\": nordifiedCatppuccin,\n Christmas: christmas,\n Pastel: pastel,\n Neon: neon,\n \"High Contrast\": highContrast,\n Ocean: ocean,\n Forest: forest,\n Sunset: sunset,\n};\n\n// Legacy alias for backwards compatibility\nexport const allThemes = BUILT_IN_THEMES;\n"]}
|