@kilivi/payloadcms-theme-management 0.5.3 → 0.5.4

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.
@@ -1,5 +1,7 @@
1
1
  /**
2
- * Converts TweakCN theme presets to standard ThemePreset format
2
+ * Converts TweakCN theme presets to sta // Extract lightness from oklch(L C H) or oklch(L C H / A)
3
+ const match = color.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*[\d.]+%?)?\)/)
4
+ if (!match) return 'hsl(217, 91%, 60%)' // fallback bluerd ThemePreset format
3
5
  */
4
6
  import type { ExtendedThemePreset } from '../extended-presets.js';
5
7
  import type { ThemePreset } from '../presets.js';
@@ -1 +1 @@
1
- {"version":3,"file":"tweakcnConverter.d.ts","sourceRoot":"","sources":["../../src/utils/tweakcnConverter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAiFhD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAwG/E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,EAAE,CAEpD"}
1
+ {"version":3,"file":"tweakcnConverter.d.ts","sourceRoot":"","sources":["../../src/utils/tweakcnConverter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA6OhD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAwG/E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,EAAE,CAEpD"}
@@ -1,12 +1,47 @@
1
1
  /**
2
- * Converts TweakCN theme presets to standard ThemePreset format
2
+ * Converts TweakCN theme presets to sta // Extract lightness from oklch(L C H) or oklch(L C H / A)
3
+ const match = color.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*[\d.]+%?)?\)/)
4
+ if (!match) return 'hsl(217, 91%, 60%)' // fallback bluerd ThemePreset format
3
5
  */ import { tweakcnThemePresets } from '../tweakcn-presets.js';
4
6
  /**
5
7
  * Converts OKLCH color to HSL for preview
6
- * Simple extraction - takes the lightness value
7
- */ function oklchToPreviewColor(oklch) {
8
+ * Handles CSS variables by using fallback values
9
+ */ function oklchToPreviewColor(color) {
10
+ // Handle CSS variables - convert to HSL approximation
11
+ if (color.startsWith('var(')) {
12
+ const hexFallback = colorVarFallbacks[color];
13
+ if (hexFallback) {
14
+ // Convert HEX to HSL for preview
15
+ const r = parseInt(hexFallback.slice(1, 3), 16) / 255;
16
+ const g = parseInt(hexFallback.slice(3, 5), 16) / 255;
17
+ const b = parseInt(hexFallback.slice(5, 7), 16) / 255;
18
+ const max = Math.max(r, g, b);
19
+ const min = Math.min(r, g, b);
20
+ const l = (max + min) / 2;
21
+ let h = 0;
22
+ let s = 0;
23
+ if (max !== min) {
24
+ const d = max - min;
25
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
26
+ switch(max){
27
+ case r:
28
+ h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
29
+ break;
30
+ case g:
31
+ h = ((b - r) / d + 2) / 6;
32
+ break;
33
+ case b:
34
+ h = ((r - g) / d + 4) / 6;
35
+ break;
36
+ }
37
+ }
38
+ return `hsl(${Math.round(h * 360)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`;
39
+ }
40
+ return 'hsl(217, 91%, 60%)' // fallback blue
41
+ ;
42
+ }
8
43
  // Extract lightness from oklch(L C H)
9
- const match = oklch.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)\)/);
44
+ const match = color.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)\)/);
10
45
  if (!match) return '#3b82f6' // fallback blue
11
46
  ;
12
47
  const [, l, c, h] = match;
@@ -17,14 +52,131 @@
17
52
  const saturation = Math.min(100, Math.round(chroma * 100));
18
53
  return `hsl(${hue}, ${saturation}%, ${lightness}%)`;
19
54
  }
55
+ /**
56
+ * Common CSS color variable fallbacks
57
+ * Maps var(--color-X-Y) to approximate HEX values
58
+ */ const colorVarFallbacks = {
59
+ // Blue
60
+ 'var(--color-blue-50)': '#eff6ff',
61
+ 'var(--color-blue-100)': '#dbeafe',
62
+ 'var(--color-blue-200)': '#bfdbfe',
63
+ 'var(--color-blue-300)': '#93c5fd',
64
+ 'var(--color-blue-400)': '#60a5fa',
65
+ 'var(--color-blue-500)': '#3b82f6',
66
+ 'var(--color-blue-600)': '#2563eb',
67
+ 'var(--color-blue-700)': '#1d4ed8',
68
+ 'var(--color-blue-800)': '#1e40af',
69
+ 'var(--color-blue-900)': '#1e3a8a',
70
+ // Violet
71
+ 'var(--color-violet-50)': '#f5f3ff',
72
+ 'var(--color-violet-100)': '#ede9fe',
73
+ 'var(--color-violet-200)': '#ddd6fe',
74
+ 'var(--color-violet-300)': '#c4b5fd',
75
+ 'var(--color-violet-400)': '#a78bfa',
76
+ 'var(--color-violet-500)': '#8b5cf6',
77
+ 'var(--color-violet-600)': '#7c3aed',
78
+ 'var(--color-violet-700)': '#6d28d9',
79
+ 'var(--color-violet-800)': '#5b21b6',
80
+ 'var(--color-violet-900)': '#4c1d95',
81
+ // Green
82
+ 'var(--color-green-50)': '#f0fdf4',
83
+ 'var(--color-green-100)': '#dcfce7',
84
+ 'var(--color-green-200)': '#bbf7d0',
85
+ 'var(--color-green-300)': '#86efac',
86
+ 'var(--color-green-400)': '#4ade80',
87
+ 'var(--color-green-500)': '#22c55e',
88
+ 'var(--color-green-600)': '#16a34a',
89
+ 'var(--color-green-700)': '#15803d',
90
+ 'var(--color-green-800)': '#166534',
91
+ 'var(--color-green-900)': '#14532d',
92
+ // Red
93
+ 'var(--color-red-50)': '#fef2f2',
94
+ 'var(--color-red-100)': '#fee2e2',
95
+ 'var(--color-red-200)': '#fecaca',
96
+ 'var(--color-red-300)': '#fca5a5',
97
+ 'var(--color-red-400)': '#f87171',
98
+ 'var(--color-red-500)': '#ef4444',
99
+ 'var(--color-red-600)': '#dc2626',
100
+ 'var(--color-red-700)': '#b91c1c',
101
+ 'var(--color-red-800)': '#991b1b',
102
+ 'var(--color-red-900)': '#7f1d1d',
103
+ // Yellow
104
+ 'var(--color-yellow-50)': '#fefce8',
105
+ 'var(--color-yellow-100)': '#fef9c3',
106
+ 'var(--color-yellow-200)': '#fef08a',
107
+ 'var(--color-yellow-300)': '#fde047',
108
+ 'var(--color-yellow-400)': '#facc15',
109
+ 'var(--color-yellow-500)': '#eab308',
110
+ 'var(--color-yellow-600)': '#ca8a04',
111
+ 'var(--color-yellow-700)': '#a16207',
112
+ 'var(--color-yellow-800)': '#854d0e',
113
+ 'var(--color-yellow-900)': '#713f12',
114
+ // Lime
115
+ 'var(--color-lime-50)': '#f7fee7',
116
+ 'var(--color-lime-100)': '#ecfccb',
117
+ 'var(--color-lime-200)': '#d9f99d',
118
+ 'var(--color-lime-300)': '#bef264',
119
+ 'var(--color-lime-400)': '#a3e635',
120
+ 'var(--color-lime-500)': '#84cc16',
121
+ 'var(--color-lime-600)': '#65a30d',
122
+ 'var(--color-lime-700)': '#4d7c0f',
123
+ 'var(--color-lime-800)': '#3f6212',
124
+ 'var(--color-lime-900)': '#365314',
125
+ // Orange
126
+ 'var(--color-orange-50)': '#fff7ed',
127
+ 'var(--color-orange-100)': '#ffedd5',
128
+ 'var(--color-orange-200)': '#fed7aa',
129
+ 'var(--color-orange-300)': '#fdba74',
130
+ 'var(--color-orange-400)': '#fb923c',
131
+ 'var(--color-orange-500)': '#f97316',
132
+ 'var(--color-orange-600)': '#ea580c',
133
+ 'var(--color-orange-700)': '#c2410c',
134
+ 'var(--color-orange-800)': '#9a3412',
135
+ 'var(--color-orange-900)': '#7c2d12',
136
+ // Rose
137
+ 'var(--color-rose-50)': '#fff1f2',
138
+ 'var(--color-rose-100)': '#ffe4e6',
139
+ 'var(--color-rose-200)': '#fecdd3',
140
+ 'var(--color-rose-300)': '#fda4af',
141
+ 'var(--color-rose-400)': '#fb7185',
142
+ 'var(--color-rose-500)': '#f43f5e',
143
+ 'var(--color-rose-600)': '#e11d48',
144
+ 'var(--color-rose-700)': '#be123c',
145
+ 'var(--color-rose-800)': '#9f1239',
146
+ 'var(--color-rose-900)': '#881337',
147
+ // Zinc (neutral grays)
148
+ 'var(--color-zinc-50)': '#fafafa',
149
+ 'var(--color-zinc-100)': '#f4f4f5',
150
+ 'var(--color-zinc-200)': '#e4e4e7',
151
+ 'var(--color-zinc-300)': '#d4d4d8',
152
+ 'var(--color-zinc-400)': '#a1a1aa',
153
+ 'var(--color-zinc-500)': '#71717a',
154
+ 'var(--color-zinc-600)': '#52525b',
155
+ 'var(--color-zinc-700)': '#3f3f46',
156
+ 'var(--color-zinc-800)': '#27272a',
157
+ 'var(--color-zinc-900)': '#18181b'
158
+ };
20
159
  /**
21
160
  * Maps OKLCH color to HEX for Payload compatibility
22
- * Converts OKLCH to RGB then to HEX
23
- */ function convertOklchColor(oklch) {
24
- // Extract values from oklch(L C H)
25
- const match = oklch.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)\)/);
26
- if (!match) return '#3b82f6' // fallback blue
27
- ;
161
+ * Converts OKLCH to RGB then to HEX, or uses fallback for CSS variables
162
+ */ function convertOklchColor(color) {
163
+ // Handle CSS variables
164
+ if (color.startsWith('var(')) {
165
+ const fallback = colorVarFallbacks[color];
166
+ if (fallback) {
167
+ return fallback;
168
+ }
169
+ console.warn(`No fallback found for CSS variable: ${color}`);
170
+ return '#3b82f6' // fallback blue
171
+ ;
172
+ }
173
+ // Extract values from oklch(L C H) or oklch(L C H / A)
174
+ const match = color.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*[\d.]+%?)?\)/);
175
+ if (!match) {
176
+ console.warn(`Invalid OKLCH format: ${color}`);
177
+ return '#3b82f6' // fallback blue
178
+ ;
179
+ }
28
180
  const [, l, c, h] = match;
29
181
  const lightness = parseFloat(l);
30
182
  const chroma = parseFloat(c);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/tweakcnConverter.ts"],"sourcesContent":["/**\n * Converts TweakCN theme presets to standard ThemePreset format\n */\n\nimport type { ExtendedThemePreset } from '../extended-presets.js'\nimport type { ThemePreset } from '../presets.js'\nimport { tweakcnThemePresets } from '../tweakcn-presets.js'\n\n/**\n * Converts OKLCH color to HSL for preview\n * Simple extraction - takes the lightness value\n */\nfunction oklchToPreviewColor(oklch: string): string {\n // Extract lightness from oklch(L C H)\n const match = oklch.match(/oklch\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)\\)/)\n if (!match) return '#3b82f6' // fallback blue\n\n const [, l, c, h] = match\n const lightness = Math.round(parseFloat(l) * 100)\n const chroma = parseFloat(c)\n const hue = parseFloat(h)\n\n // Convert to HSL approximation for preview\n const saturation = Math.min(100, Math.round(chroma * 100))\n\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`\n}\n\n/**\n * Maps OKLCH color to HEX for Payload compatibility\n * Converts OKLCH to RGB then to HEX\n */\nfunction convertOklchColor(oklch: string): string {\n // Extract values from oklch(L C H)\n const match = oklch.match(/oklch\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)\\)/)\n if (!match) return '#3b82f6' // fallback blue\n\n const [, l, c, h] = match\n const lightness = parseFloat(l)\n const chroma = parseFloat(c)\n const hue = parseFloat(h)\n\n // Convert OKLCH to linear RGB\n // This is a simplified conversion - OKLCH->OKLab->Linear RGB->sRGB\n const hueRad = (hue * Math.PI) / 180\n\n // OKLab coordinates\n const a = chroma * Math.cos(hueRad)\n const b = chroma * Math.sin(hueRad)\n\n // OKLab to linear RGB (simplified matrix multiplication)\n const l_ = lightness + 0.3963377774 * a + 0.2158037573 * b\n const m_ = lightness - 0.1055613458 * a - 0.0638541728 * b\n const s_ = lightness - 0.0894841775 * a - 1.291485548 * b\n\n const l3 = l_ * l_ * l_\n const m3 = m_ * m_ * m_\n const s3 = s_ * s_ * s_\n\n let r = +4.0767416621 * l3 - 3.3077115913 * m3 + 0.2309699292 * s3\n let g = -1.2684380046 * l3 + 2.6097574011 * m3 - 0.3413193965 * s3\n let bl = -0.0041960863 * l3 - 0.7034186147 * m3 + 1.707614701 * s3\n\n // Clamp to [0, 1]\n r = Math.max(0, Math.min(1, r))\n g = Math.max(0, Math.min(1, g))\n bl = Math.max(0, Math.min(1, bl))\n\n // Convert to sRGB (gamma correction)\n const toSRGB = (c: number) => {\n return c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055\n }\n\n r = toSRGB(r)\n g = toSRGB(g)\n bl = toSRGB(bl)\n\n // Convert to HEX\n const toHex = (c: number) => {\n const hex = Math.round(c * 255).toString(16)\n return hex.length === 1 ? '0' + hex : hex\n }\n\n return `#${toHex(r)}${toHex(g)}${toHex(bl)}`\n}\n\n/**\n * Converts ExtendedThemePreset to ThemePreset\n */\nexport function convertTweakCNPreset(extended: ExtendedThemePreset): ThemePreset {\n const { label, value, styles } = extended\n const { light, dark } = styles\n\n // Extract border radius\n const radiusValue = light.radius ?? '0.5rem'\n let borderRadius: ThemePreset['borderRadius']\n\n if (radiusValue === '0' || radiusValue === '0px' || radiusValue === '0rem') {\n borderRadius = 'none'\n } else if (parseFloat(radiusValue) <= 0.25) {\n borderRadius = 'small'\n } else if (parseFloat(radiusValue) <= 0.5) {\n borderRadius = 'medium'\n } else if (parseFloat(radiusValue) <= 0.75) {\n borderRadius = 'large'\n } else {\n borderRadius = 'xl'\n }\n\n // Convert light mode colors\n const lightMode: Record<string, string> = {\n background: convertOklchColor(light.background),\n foreground: convertOklchColor(light.foreground),\n card: convertOklchColor(light.card),\n cardForeground: convertOklchColor(light['card-foreground']),\n popover: convertOklchColor(light.popover),\n popoverForeground: convertOklchColor(light['popover-foreground']),\n primary: convertOklchColor(light.primary),\n primaryForeground: convertOklchColor(light['primary-foreground']),\n secondary: convertOklchColor(light.secondary),\n secondaryForeground: convertOklchColor(light['secondary-foreground']),\n muted: convertOklchColor(light.muted),\n mutedForeground: convertOklchColor(light['muted-foreground']),\n accent: convertOklchColor(light.accent),\n accentForeground: convertOklchColor(light['accent-foreground']),\n destructive: convertOklchColor(light.destructive),\n destructiveForeground: convertOklchColor(light['destructive-foreground']),\n border: convertOklchColor(light.border),\n input: convertOklchColor(light.input),\n ring: convertOklchColor(light.ring),\n }\n\n // Convert dark mode colors\n const darkMode: Record<string, string> = {\n background: convertOklchColor(dark.background),\n foreground: convertOklchColor(dark.foreground),\n card: convertOklchColor(dark.card),\n cardForeground: convertOklchColor(dark['card-foreground']),\n popover: convertOklchColor(dark.popover),\n popoverForeground: convertOklchColor(dark['popover-foreground']),\n primary: convertOklchColor(dark.primary),\n primaryForeground: convertOklchColor(dark['primary-foreground']),\n secondary: convertOklchColor(dark.secondary),\n secondaryForeground: convertOklchColor(dark['secondary-foreground']),\n muted: convertOklchColor(dark.muted),\n mutedForeground: convertOklchColor(dark['muted-foreground']),\n accent: convertOklchColor(dark.accent),\n accentForeground: convertOklchColor(dark['accent-foreground']),\n destructive: convertOklchColor(dark.destructive),\n destructiveForeground: convertOklchColor(dark['destructive-foreground']),\n border: convertOklchColor(dark.border),\n input: convertOklchColor(dark.input),\n ring: convertOklchColor(dark.ring),\n }\n\n // Generate preview colors\n const preview = {\n colors: {\n primary: oklchToPreviewColor(light.primary),\n background: oklchToPreviewColor(light.background),\n accent: oklchToPreviewColor(light.accent),\n },\n }\n\n // Typography configuration\n const typography = light['font-sans']\n ? {\n fontFamily: light['font-sans'],\n headingFamily: light['font-sans'],\n baseFontSize: '16px',\n lineHeight: '1.6',\n fontWeights: {\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n letterSpacing: {\n normal: '0',\n wide: '0.025em',\n },\n }\n : undefined\n\n return {\n name: `tweakcn-${value}`,\n label: `${label} (TweakCN)`,\n borderRadius,\n preview,\n lightMode,\n darkMode,\n typography,\n }\n}\n\n/**\n * Converts all TweakCN presets to ThemePreset format\n */\nexport function getAllTweakCNPresets(): ThemePreset[] {\n return Object.values(tweakcnThemePresets).map(convertTweakCNPreset)\n}\n"],"names":["tweakcnThemePresets","oklchToPreviewColor","oklch","match","l","c","h","lightness","Math","round","parseFloat","chroma","hue","saturation","min","convertOklchColor","hueRad","PI","a","cos","b","sin","l_","m_","s_","l3","m3","s3","r","g","bl","max","toSRGB","pow","toHex","hex","toString","length","convertTweakCNPreset","extended","label","value","styles","light","dark","radiusValue","radius","borderRadius","lightMode","background","foreground","card","cardForeground","popover","popoverForeground","primary","primaryForeground","secondary","secondaryForeground","muted","mutedForeground","accent","accentForeground","destructive","destructiveForeground","border","input","ring","darkMode","preview","colors","typography","fontFamily","headingFamily","baseFontSize","lineHeight","fontWeights","normal","medium","semibold","bold","letterSpacing","wide","undefined","name","getAllTweakCNPresets","Object","values","map"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/tweakcnConverter.ts"],"sourcesContent":["/**\n * Converts TweakCN theme presets to sta // Extract lightness from oklch(L C H) or oklch(L C H / A)\n const match = color.match(/oklch\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*[\\d.]+%?)?\\)/)\n if (!match) return 'hsl(217, 91%, 60%)' // fallback bluerd ThemePreset format\n */\n\nimport type { ExtendedThemePreset } from '../extended-presets.js'\nimport type { ThemePreset } from '../presets.js'\nimport { tweakcnThemePresets } from '../tweakcn-presets.js'\n\n/**\n * Converts OKLCH color to HSL for preview\n * Handles CSS variables by using fallback values\n */\nfunction oklchToPreviewColor(color: string): string {\n // Handle CSS variables - convert to HSL approximation\n if (color.startsWith('var(')) {\n const hexFallback = colorVarFallbacks[color]\n if (hexFallback) {\n // Convert HEX to HSL for preview\n const r = parseInt(hexFallback.slice(1, 3), 16) / 255\n const g = parseInt(hexFallback.slice(3, 5), 16) / 255\n const b = parseInt(hexFallback.slice(5, 7), 16) / 255\n\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n const l = (max + min) / 2\n let h = 0\n let s = 0\n\n if (max !== min) {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\n switch (max) {\n case r:\n h = ((g - b) / d + (g < b ? 6 : 0)) / 6\n break\n case g:\n h = ((b - r) / d + 2) / 6\n break\n case b:\n h = ((r - g) / d + 4) / 6\n break\n }\n }\n\n return `hsl(${Math.round(h * 360)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`\n }\n return 'hsl(217, 91%, 60%)' // fallback blue\n }\n\n // Extract lightness from oklch(L C H)\n const match = color.match(/oklch\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)\\)/)\n if (!match) return '#3b82f6' // fallback blue\n\n const [, l, c, h] = match\n const lightness = Math.round(parseFloat(l) * 100)\n const chroma = parseFloat(c)\n const hue = parseFloat(h)\n\n // Convert to HSL approximation for preview\n const saturation = Math.min(100, Math.round(chroma * 100))\n\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`\n}\n\n/**\n * Common CSS color variable fallbacks\n * Maps var(--color-X-Y) to approximate HEX values\n */\nconst colorVarFallbacks: Record<string, string> = {\n // Blue\n 'var(--color-blue-50)': '#eff6ff',\n 'var(--color-blue-100)': '#dbeafe',\n 'var(--color-blue-200)': '#bfdbfe',\n 'var(--color-blue-300)': '#93c5fd',\n 'var(--color-blue-400)': '#60a5fa',\n 'var(--color-blue-500)': '#3b82f6',\n 'var(--color-blue-600)': '#2563eb',\n 'var(--color-blue-700)': '#1d4ed8',\n 'var(--color-blue-800)': '#1e40af',\n 'var(--color-blue-900)': '#1e3a8a',\n // Violet\n 'var(--color-violet-50)': '#f5f3ff',\n 'var(--color-violet-100)': '#ede9fe',\n 'var(--color-violet-200)': '#ddd6fe',\n 'var(--color-violet-300)': '#c4b5fd',\n 'var(--color-violet-400)': '#a78bfa',\n 'var(--color-violet-500)': '#8b5cf6',\n 'var(--color-violet-600)': '#7c3aed',\n 'var(--color-violet-700)': '#6d28d9',\n 'var(--color-violet-800)': '#5b21b6',\n 'var(--color-violet-900)': '#4c1d95',\n // Green\n 'var(--color-green-50)': '#f0fdf4',\n 'var(--color-green-100)': '#dcfce7',\n 'var(--color-green-200)': '#bbf7d0',\n 'var(--color-green-300)': '#86efac',\n 'var(--color-green-400)': '#4ade80',\n 'var(--color-green-500)': '#22c55e',\n 'var(--color-green-600)': '#16a34a',\n 'var(--color-green-700)': '#15803d',\n 'var(--color-green-800)': '#166534',\n 'var(--color-green-900)': '#14532d',\n // Red\n 'var(--color-red-50)': '#fef2f2',\n 'var(--color-red-100)': '#fee2e2',\n 'var(--color-red-200)': '#fecaca',\n 'var(--color-red-300)': '#fca5a5',\n 'var(--color-red-400)': '#f87171',\n 'var(--color-red-500)': '#ef4444',\n 'var(--color-red-600)': '#dc2626',\n 'var(--color-red-700)': '#b91c1c',\n 'var(--color-red-800)': '#991b1b',\n 'var(--color-red-900)': '#7f1d1d',\n // Yellow\n 'var(--color-yellow-50)': '#fefce8',\n 'var(--color-yellow-100)': '#fef9c3',\n 'var(--color-yellow-200)': '#fef08a',\n 'var(--color-yellow-300)': '#fde047',\n 'var(--color-yellow-400)': '#facc15',\n 'var(--color-yellow-500)': '#eab308',\n 'var(--color-yellow-600)': '#ca8a04',\n 'var(--color-yellow-700)': '#a16207',\n 'var(--color-yellow-800)': '#854d0e',\n 'var(--color-yellow-900)': '#713f12',\n // Lime\n 'var(--color-lime-50)': '#f7fee7',\n 'var(--color-lime-100)': '#ecfccb',\n 'var(--color-lime-200)': '#d9f99d',\n 'var(--color-lime-300)': '#bef264',\n 'var(--color-lime-400)': '#a3e635',\n 'var(--color-lime-500)': '#84cc16',\n 'var(--color-lime-600)': '#65a30d',\n 'var(--color-lime-700)': '#4d7c0f',\n 'var(--color-lime-800)': '#3f6212',\n 'var(--color-lime-900)': '#365314',\n // Orange\n 'var(--color-orange-50)': '#fff7ed',\n 'var(--color-orange-100)': '#ffedd5',\n 'var(--color-orange-200)': '#fed7aa',\n 'var(--color-orange-300)': '#fdba74',\n 'var(--color-orange-400)': '#fb923c',\n 'var(--color-orange-500)': '#f97316',\n 'var(--color-orange-600)': '#ea580c',\n 'var(--color-orange-700)': '#c2410c',\n 'var(--color-orange-800)': '#9a3412',\n 'var(--color-orange-900)': '#7c2d12',\n // Rose\n 'var(--color-rose-50)': '#fff1f2',\n 'var(--color-rose-100)': '#ffe4e6',\n 'var(--color-rose-200)': '#fecdd3',\n 'var(--color-rose-300)': '#fda4af',\n 'var(--color-rose-400)': '#fb7185',\n 'var(--color-rose-500)': '#f43f5e',\n 'var(--color-rose-600)': '#e11d48',\n 'var(--color-rose-700)': '#be123c',\n 'var(--color-rose-800)': '#9f1239',\n 'var(--color-rose-900)': '#881337',\n // Zinc (neutral grays)\n 'var(--color-zinc-50)': '#fafafa',\n 'var(--color-zinc-100)': '#f4f4f5',\n 'var(--color-zinc-200)': '#e4e4e7',\n 'var(--color-zinc-300)': '#d4d4d8',\n 'var(--color-zinc-400)': '#a1a1aa',\n 'var(--color-zinc-500)': '#71717a',\n 'var(--color-zinc-600)': '#52525b',\n 'var(--color-zinc-700)': '#3f3f46',\n 'var(--color-zinc-800)': '#27272a',\n 'var(--color-zinc-900)': '#18181b',\n}\n\n/**\n * Maps OKLCH color to HEX for Payload compatibility\n * Converts OKLCH to RGB then to HEX, or uses fallback for CSS variables\n */\nfunction convertOklchColor(color: string): string {\n // Handle CSS variables\n if (color.startsWith('var(')) {\n const fallback = colorVarFallbacks[color]\n if (fallback) {\n return fallback\n }\n console.warn(`No fallback found for CSS variable: ${color}`)\n return '#3b82f6' // fallback blue\n }\n\n // Extract values from oklch(L C H) or oklch(L C H / A)\n const match = color.match(/oklch\\(([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*[\\d.]+%?)?\\)/)\n if (!match) {\n console.warn(`Invalid OKLCH format: ${color}`)\n return '#3b82f6' // fallback blue\n }\n\n const [, l, c, h] = match\n const lightness = parseFloat(l)\n const chroma = parseFloat(c)\n const hue = parseFloat(h)\n\n // Convert OKLCH to linear RGB\n // This is a simplified conversion - OKLCH->OKLab->Linear RGB->sRGB\n const hueRad = (hue * Math.PI) / 180\n\n // OKLab coordinates\n const a = chroma * Math.cos(hueRad)\n const b = chroma * Math.sin(hueRad)\n\n // OKLab to linear RGB (simplified matrix multiplication)\n const l_ = lightness + 0.3963377774 * a + 0.2158037573 * b\n const m_ = lightness - 0.1055613458 * a - 0.0638541728 * b\n const s_ = lightness - 0.0894841775 * a - 1.291485548 * b\n\n const l3 = l_ * l_ * l_\n const m3 = m_ * m_ * m_\n const s3 = s_ * s_ * s_\n\n let r = +4.0767416621 * l3 - 3.3077115913 * m3 + 0.2309699292 * s3\n let g = -1.2684380046 * l3 + 2.6097574011 * m3 - 0.3413193965 * s3\n let bl = -0.0041960863 * l3 - 0.7034186147 * m3 + 1.707614701 * s3\n\n // Clamp to [0, 1]\n r = Math.max(0, Math.min(1, r))\n g = Math.max(0, Math.min(1, g))\n bl = Math.max(0, Math.min(1, bl))\n\n // Convert to sRGB (gamma correction)\n const toSRGB = (c: number) => {\n return c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055\n }\n\n r = toSRGB(r)\n g = toSRGB(g)\n bl = toSRGB(bl)\n\n // Convert to HEX\n const toHex = (c: number) => {\n const hex = Math.round(c * 255).toString(16)\n return hex.length === 1 ? '0' + hex : hex\n }\n\n return `#${toHex(r)}${toHex(g)}${toHex(bl)}`\n}\n\n/**\n * Converts ExtendedThemePreset to ThemePreset\n */\nexport function convertTweakCNPreset(extended: ExtendedThemePreset): ThemePreset {\n const { label, value, styles } = extended\n const { light, dark } = styles\n\n // Extract border radius\n const radiusValue = light.radius ?? '0.5rem'\n let borderRadius: ThemePreset['borderRadius']\n\n if (radiusValue === '0' || radiusValue === '0px' || radiusValue === '0rem') {\n borderRadius = 'none'\n } else if (parseFloat(radiusValue) <= 0.25) {\n borderRadius = 'small'\n } else if (parseFloat(radiusValue) <= 0.5) {\n borderRadius = 'medium'\n } else if (parseFloat(radiusValue) <= 0.75) {\n borderRadius = 'large'\n } else {\n borderRadius = 'xl'\n }\n\n // Convert light mode colors\n const lightMode: Record<string, string> = {\n background: convertOklchColor(light.background),\n foreground: convertOklchColor(light.foreground),\n card: convertOklchColor(light.card),\n cardForeground: convertOklchColor(light['card-foreground']),\n popover: convertOklchColor(light.popover),\n popoverForeground: convertOklchColor(light['popover-foreground']),\n primary: convertOklchColor(light.primary),\n primaryForeground: convertOklchColor(light['primary-foreground']),\n secondary: convertOklchColor(light.secondary),\n secondaryForeground: convertOklchColor(light['secondary-foreground']),\n muted: convertOklchColor(light.muted),\n mutedForeground: convertOklchColor(light['muted-foreground']),\n accent: convertOklchColor(light.accent),\n accentForeground: convertOklchColor(light['accent-foreground']),\n destructive: convertOklchColor(light.destructive),\n destructiveForeground: convertOklchColor(light['destructive-foreground']),\n border: convertOklchColor(light.border),\n input: convertOklchColor(light.input),\n ring: convertOklchColor(light.ring),\n }\n\n // Convert dark mode colors\n const darkMode: Record<string, string> = {\n background: convertOklchColor(dark.background),\n foreground: convertOklchColor(dark.foreground),\n card: convertOklchColor(dark.card),\n cardForeground: convertOklchColor(dark['card-foreground']),\n popover: convertOklchColor(dark.popover),\n popoverForeground: convertOklchColor(dark['popover-foreground']),\n primary: convertOklchColor(dark.primary),\n primaryForeground: convertOklchColor(dark['primary-foreground']),\n secondary: convertOklchColor(dark.secondary),\n secondaryForeground: convertOklchColor(dark['secondary-foreground']),\n muted: convertOklchColor(dark.muted),\n mutedForeground: convertOklchColor(dark['muted-foreground']),\n accent: convertOklchColor(dark.accent),\n accentForeground: convertOklchColor(dark['accent-foreground']),\n destructive: convertOklchColor(dark.destructive),\n destructiveForeground: convertOklchColor(dark['destructive-foreground']),\n border: convertOklchColor(dark.border),\n input: convertOklchColor(dark.input),\n ring: convertOklchColor(dark.ring),\n }\n\n // Generate preview colors\n const preview = {\n colors: {\n primary: oklchToPreviewColor(light.primary),\n background: oklchToPreviewColor(light.background),\n accent: oklchToPreviewColor(light.accent),\n },\n }\n\n // Typography configuration\n const typography = light['font-sans']\n ? {\n fontFamily: light['font-sans'],\n headingFamily: light['font-sans'],\n baseFontSize: '16px',\n lineHeight: '1.6',\n fontWeights: {\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n },\n letterSpacing: {\n normal: '0',\n wide: '0.025em',\n },\n }\n : undefined\n\n return {\n name: `tweakcn-${value}`,\n label: `${label} (TweakCN)`,\n borderRadius,\n preview,\n lightMode,\n darkMode,\n typography,\n }\n}\n\n/**\n * Converts all TweakCN presets to ThemePreset format\n */\nexport function getAllTweakCNPresets(): ThemePreset[] {\n return Object.values(tweakcnThemePresets).map(convertTweakCNPreset)\n}\n"],"names":["tweakcnThemePresets","oklchToPreviewColor","color","startsWith","hexFallback","colorVarFallbacks","r","parseInt","slice","g","b","max","Math","min","l","h","s","d","round","match","c","lightness","parseFloat","chroma","hue","saturation","convertOklchColor","fallback","console","warn","hueRad","PI","a","cos","sin","l_","m_","s_","l3","m3","s3","bl","toSRGB","pow","toHex","hex","toString","length","convertTweakCNPreset","extended","label","value","styles","light","dark","radiusValue","radius","borderRadius","lightMode","background","foreground","card","cardForeground","popover","popoverForeground","primary","primaryForeground","secondary","secondaryForeground","muted","mutedForeground","accent","accentForeground","destructive","destructiveForeground","border","input","ring","darkMode","preview","colors","typography","fontFamily","headingFamily","baseFontSize","lineHeight","fontWeights","normal","medium","semibold","bold","letterSpacing","wide","undefined","name","getAllTweakCNPresets","Object","values","map"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kilivi/payloadcms-theme-management",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Theme configuration plugin for Payload CMS v3 with 60+ professional themes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",