@kilivi/payloadcms-theme-management 0.2.11 → 0.2.12

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.
@@ -0,0 +1,12 @@
1
+ import type { SelectFieldClientComponent } from 'payload';
2
+ /**
3
+ * Extended Theme Field with Auto-Population
4
+ *
5
+ * This component:
6
+ * 1. Shows color swatches for each theme option
7
+ * 2. Auto-populates ALL color fields when a theme is selected
8
+ * 3. Fills in ALL light mode and dark mode colors with preset defaults
9
+ */
10
+ declare const ExtendedThemeAutoPopulateField: SelectFieldClientComponent;
11
+ export default ExtendedThemeAutoPopulateField;
12
+ //# sourceMappingURL=ExtendedThemeAutoPopulateField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtendedThemeAutoPopulateField.d.ts","sourceRoot":"","sources":["../../src/fields/ExtendedThemeAutoPopulateField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAIzD;;;;;;;GAOG;AACH,QAAA,MAAM,8BAA8B,EAAE,0BAsLrC,CAAA;AAED,eAAe,8BAA8B,CAAA"}
@@ -0,0 +1,176 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useField, useForm } from '@payloadcms/ui';
4
+ import { useCallback, useEffect, useRef } from 'react';
5
+ import { allExtendedThemePresets } from '../extended-presets.js';
6
+ /**
7
+ * Extended Theme Field with Auto-Population
8
+ *
9
+ * This component:
10
+ * 1. Shows color swatches for each theme option
11
+ * 2. Auto-populates ALL color fields when a theme is selected
12
+ * 3. Fills in ALL light mode and dark mode colors with preset defaults
13
+ */ const ExtendedThemeAutoPopulateField = ({ field, path })=>{
14
+ const { value, setValue } = useField({
15
+ path
16
+ });
17
+ const { dispatchFields } = useForm();
18
+ const hasInitializedRef = useRef(false);
19
+ const options = field.options || [];
20
+ const selectedOption = options.find((opt)=>opt.value === value);
21
+ // Auto-populate colors when theme is selected
22
+ const applyThemePreset = useCallback((presetKey)=>{
23
+ const preset = allExtendedThemePresets[presetKey];
24
+ if (!preset) return;
25
+ // Apply all light mode colors
26
+ Object.entries(preset.styles.light).forEach(([key, colorValue])=>{
27
+ dispatchFields({
28
+ type: 'UPDATE',
29
+ path: `themeConfiguration.extendedLightMode.${key}`,
30
+ value: colorValue
31
+ });
32
+ });
33
+ // Apply all dark mode colors
34
+ Object.entries(preset.styles.dark).forEach(([key, colorValue])=>{
35
+ dispatchFields({
36
+ type: 'UPDATE',
37
+ path: `themeConfiguration.extendedDarkMode.${key}`,
38
+ value: colorValue
39
+ });
40
+ });
41
+ }, [
42
+ dispatchFields
43
+ ]);
44
+ const handleChange = useCallback((newValue)=>{
45
+ setValue(newValue);
46
+ if (newValue) {
47
+ applyThemePreset(newValue);
48
+ }
49
+ }, [
50
+ setValue,
51
+ applyThemePreset
52
+ ]);
53
+ // Auto-populate on initial load if value exists
54
+ useEffect(()=>{
55
+ if (!hasInitializedRef.current && value) {
56
+ applyThemePreset(value);
57
+ hasInitializedRef.current = true;
58
+ }
59
+ }, [
60
+ value,
61
+ applyThemePreset
62
+ ]);
63
+ // Get color swatches for a preset
64
+ const getPresetColors = (presetValue)=>{
65
+ const preset = allExtendedThemePresets[presetValue];
66
+ if (!preset) return [];
67
+ const colors = [
68
+ preset.styles.light.primary,
69
+ preset.styles.light.secondary,
70
+ preset.styles.light.accent,
71
+ preset.styles.light.background,
72
+ preset.styles.light.foreground
73
+ ].filter(Boolean);
74
+ return colors.slice(0, 5);
75
+ };
76
+ const label = typeof field.label === 'string' ? field.label : field.label?.en || field.label?.cs || 'Theme Preset';
77
+ const description = typeof field.admin?.description === 'string' ? field.admin.description : field.admin?.description?.en || field.admin?.description?.cs;
78
+ return /*#__PURE__*/ _jsxs("div", {
79
+ style: {
80
+ marginBottom: '16px'
81
+ },
82
+ children: [
83
+ /*#__PURE__*/ _jsx("label", {
84
+ style: {
85
+ display: 'block',
86
+ marginBottom: '6px',
87
+ fontSize: '13px',
88
+ fontWeight: 600,
89
+ color: 'var(--theme-elevation-800)'
90
+ },
91
+ children: label
92
+ }),
93
+ description && /*#__PURE__*/ _jsx("div", {
94
+ style: {
95
+ fontSize: '12px',
96
+ color: 'var(--theme-elevation-500)',
97
+ marginBottom: '8px'
98
+ },
99
+ children: description
100
+ }),
101
+ /*#__PURE__*/ _jsxs("select", {
102
+ value: value || '',
103
+ onChange: (e)=>handleChange(e.target.value),
104
+ style: {
105
+ width: '100%',
106
+ padding: '10px 12px',
107
+ borderRadius: '6px',
108
+ border: '1px solid var(--theme-elevation-200)',
109
+ backgroundColor: 'var(--theme-input-bg)',
110
+ color: 'var(--theme-elevation-800)',
111
+ fontSize: '14px',
112
+ cursor: 'pointer'
113
+ },
114
+ children: [
115
+ /*#__PURE__*/ _jsx("option", {
116
+ value: "",
117
+ children: "Select a theme..."
118
+ }),
119
+ options.map((option)=>/*#__PURE__*/ _jsx("option", {
120
+ value: option.value,
121
+ children: option.label
122
+ }, option.value))
123
+ ]
124
+ }),
125
+ selectedOption && /*#__PURE__*/ _jsxs("div", {
126
+ style: {
127
+ marginTop: '12px',
128
+ padding: '12px',
129
+ borderRadius: '8px',
130
+ backgroundColor: 'var(--theme-elevation-50)',
131
+ border: '1px solid var(--theme-elevation-200)'
132
+ },
133
+ children: [
134
+ /*#__PURE__*/ _jsx("div", {
135
+ style: {
136
+ fontSize: '12px',
137
+ fontWeight: 600,
138
+ marginBottom: '8px',
139
+ color: 'var(--theme-elevation-700)'
140
+ },
141
+ children: selectedOption.label
142
+ }),
143
+ /*#__PURE__*/ _jsx("div", {
144
+ style: {
145
+ display: 'flex',
146
+ gap: '8px',
147
+ alignItems: 'center'
148
+ },
149
+ children: getPresetColors(selectedOption.value).map((color, index)=>/*#__PURE__*/ _jsx("div", {
150
+ style: {
151
+ width: '32px',
152
+ height: '32px',
153
+ borderRadius: '6px',
154
+ backgroundColor: color,
155
+ border: '1px solid rgba(0, 0, 0, 0.1)',
156
+ boxShadow: '0 2px 4px rgba(0, 0, 0, 0.05)'
157
+ },
158
+ title: color
159
+ }, `${selectedOption.value}-${index}`))
160
+ }),
161
+ /*#__PURE__*/ _jsx("div", {
162
+ style: {
163
+ marginTop: '8px',
164
+ fontSize: '11px',
165
+ color: 'var(--theme-elevation-500)'
166
+ },
167
+ children: "✅ All colors auto-populated from this theme"
168
+ })
169
+ ]
170
+ })
171
+ ]
172
+ });
173
+ };
174
+ export default ExtendedThemeAutoPopulateField;
175
+
176
+ //# sourceMappingURL=ExtendedThemeAutoPopulateField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/fields/ExtendedThemeAutoPopulateField.tsx"],"sourcesContent":["'use client'\n\nimport { useField, useForm } from '@payloadcms/ui'\nimport type { SelectFieldClientComponent } from 'payload'\nimport { useCallback, useEffect, useRef } from 'react'\nimport { allExtendedThemePresets } from '../extended-presets.js'\n\n/**\n * Extended Theme Field with Auto-Population\n *\n * This component:\n * 1. Shows color swatches for each theme option\n * 2. Auto-populates ALL color fields when a theme is selected\n * 3. Fills in ALL light mode and dark mode colors with preset defaults\n */\nconst ExtendedThemeAutoPopulateField: SelectFieldClientComponent = ({ field, path }) => {\n const { value, setValue } = useField<string>({ path })\n const { dispatchFields } = useForm()\n const hasInitializedRef = useRef(false)\n\n const options = (field.options as Array<{ label: string; value: string }>) || []\n const selectedOption = options.find((opt) => opt.value === value)\n\n // Auto-populate colors when theme is selected\n const applyThemePreset = useCallback(\n (presetKey: string) => {\n const preset = allExtendedThemePresets[presetKey as keyof typeof allExtendedThemePresets]\n if (!preset) return\n\n // Apply all light mode colors\n Object.entries(preset.styles.light).forEach(([key, colorValue]) => {\n dispatchFields({\n type: 'UPDATE',\n path: `themeConfiguration.extendedLightMode.${key}`,\n value: colorValue,\n })\n })\n\n // Apply all dark mode colors\n Object.entries(preset.styles.dark).forEach(([key, colorValue]) => {\n dispatchFields({\n type: 'UPDATE',\n path: `themeConfiguration.extendedDarkMode.${key}`,\n value: colorValue,\n })\n })\n },\n [dispatchFields],\n )\n\n const handleChange = useCallback(\n (newValue: string) => {\n setValue(newValue)\n if (newValue) {\n applyThemePreset(newValue)\n }\n },\n [setValue, applyThemePreset],\n )\n\n // Auto-populate on initial load if value exists\n useEffect(() => {\n if (!hasInitializedRef.current && value) {\n applyThemePreset(value)\n hasInitializedRef.current = true\n }\n }, [value, applyThemePreset])\n\n // Get color swatches for a preset\n const getPresetColors = (presetValue: string) => {\n const preset = allExtendedThemePresets[presetValue as keyof typeof allExtendedThemePresets]\n if (!preset) return []\n\n const colors = [\n preset.styles.light.primary,\n preset.styles.light.secondary,\n preset.styles.light.accent,\n preset.styles.light.background,\n preset.styles.light.foreground,\n ].filter(Boolean)\n\n return colors.slice(0, 5)\n }\n\n const label =\n typeof field.label === 'string'\n ? field.label\n : field.label?.en || field.label?.cs || 'Theme Preset'\n const description =\n typeof field.admin?.description === 'string'\n ? field.admin.description\n : field.admin?.description?.en || field.admin?.description?.cs\n\n return (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 600,\n color: 'var(--theme-elevation-800)',\n }}\n >\n {label}\n </label>\n\n {description && (\n <div\n style={{\n fontSize: '12px',\n color: 'var(--theme-elevation-500)',\n marginBottom: '8px',\n }}\n >\n {description}\n </div>\n )}\n\n <select\n value={value || ''}\n onChange={(e) => handleChange(e.target.value)}\n style={{\n width: '100%',\n padding: '10px 12px',\n borderRadius: '6px',\n border: '1px solid var(--theme-elevation-200)',\n backgroundColor: 'var(--theme-input-bg)',\n color: 'var(--theme-elevation-800)',\n fontSize: '14px',\n cursor: 'pointer',\n }}\n >\n <option value=\"\">Select a theme...</option>\n {options.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n\n {/* Show color swatches for selected theme */}\n {selectedOption && (\n <div\n style={{\n marginTop: '12px',\n padding: '12px',\n borderRadius: '8px',\n backgroundColor: 'var(--theme-elevation-50)',\n border: '1px solid var(--theme-elevation-200)',\n }}\n >\n <div\n style={{\n fontSize: '12px',\n fontWeight: 600,\n marginBottom: '8px',\n color: 'var(--theme-elevation-700)',\n }}\n >\n {selectedOption.label}\n </div>\n <div\n style={{\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n }}\n >\n {getPresetColors(selectedOption.value).map((color, index) => (\n <div\n key={`${selectedOption.value}-${index}`}\n style={{\n width: '32px',\n height: '32px',\n borderRadius: '6px',\n backgroundColor: color,\n border: '1px solid rgba(0, 0, 0, 0.1)',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.05)',\n }}\n title={color}\n />\n ))}\n </div>\n <div\n style={{\n marginTop: '8px',\n fontSize: '11px',\n color: 'var(--theme-elevation-500)',\n }}\n >\n ✅ All colors auto-populated from this theme\n </div>\n </div>\n )}\n </div>\n )\n}\n\nexport default ExtendedThemeAutoPopulateField\n"],"names":["useField","useForm","useCallback","useEffect","useRef","allExtendedThemePresets","ExtendedThemeAutoPopulateField","field","path","value","setValue","dispatchFields","hasInitializedRef","options","selectedOption","find","opt","applyThemePreset","presetKey","preset","Object","entries","styles","light","forEach","key","colorValue","type","dark","handleChange","newValue","current","getPresetColors","presetValue","colors","primary","secondary","accent","background","foreground","filter","Boolean","slice","label","en","cs","description","admin","div","style","marginBottom","display","fontSize","fontWeight","color","select","onChange","e","target","width","padding","borderRadius","border","backgroundColor","cursor","option","map","marginTop","gap","alignItems","index","height","boxShadow","title"],"mappings":"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"}
@@ -28,7 +28,8 @@ export declare const advancedTypographyFields: Field[];
28
28
  */
29
29
  export declare const designSystemFields: Field[];
30
30
  /**
31
- * Extended Theme Selection Field with Visual Preview
31
+ * Extended Theme Selection Field with Visual Preview and Auto-Population
32
+ * Automatically fills all color fields when a theme is selected
32
33
  */
33
34
  export declare const extendedThemeSelectionField: Field;
34
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"extendedThemeFields.d.ts","sourceRoot":"","sources":["../../src/fields/extendedThemeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAsEpC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,EAgGlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EA0BnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,EA0B/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAiBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,EAS3C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAKrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAkBzC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAoBlC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAoBjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAoBrC,CAAA;AAID,eAAO,MAAM,sBAAsB;;;;;kBAO8thB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGAPn0C,CAAA;AAC1D,eAAO,MAAM,qBAAqB;;;;;kBAM+thB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGANr0C,CAAA;AACxD,eAAO,MAAM,gBAAgB,EAIxB,KAAK,CAAA"}
1
+ {"version":3,"file":"extendedThemeFields.d.ts","sourceRoot":"","sources":["../../src/fields/extendedThemeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAsEpC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,EAgGlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EA0BnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,EA0B/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAiBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,EAS3C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAKrC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAkBzC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAoBlC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAoBjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAoBrC,CAAA;AAID,eAAO,MAAM,sBAAsB;;;;;kBAOkjhB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGAPvpC,CAAA;AAC1D,eAAO,MAAM,qBAAqB;;;;;kBAMmjhB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGANzpC,CAAA;AACxD,eAAO,MAAM,gBAAgB,EAIxB,KAAK,CAAA"}
@@ -330,7 +330,8 @@ import { allExtendedThemePresets } from '../extended-presets.js';
330
330
  })
331
331
  ];
332
332
  /**
333
- * Extended Theme Selection Field with Visual Preview
333
+ * Extended Theme Selection Field with Visual Preview and Auto-Population
334
+ * Automatically fills all color fields when a theme is selected
334
335
  */ export const extendedThemeSelectionField = {
335
336
  name: 'extendedTheme',
336
337
  type: 'select',
@@ -342,11 +343,11 @@ import { allExtendedThemePresets } from '../extended-presets.js';
342
343
  options: extendedThemeOptions,
343
344
  admin: {
344
345
  description: {
345
- en: 'Select a professional theme with full OKLCH color support (TweakCN compatible)',
346
- cs: 'Vyberte profesionální téma s plnou podporou OKLCH barev (kompatibilní s TweakCN)'
346
+ en: 'Select a professional theme with full OKLCH color support (TweakCN compatible). All colors will be auto-populated.',
347
+ cs: 'Vyberte profesionální téma s plnou podporou OKLCH barev (kompatibilní s TweakCN). Všechny barvy budou automaticky vyplněny.'
347
348
  },
348
349
  components: {
349
- Field: '@/fields/ThemePresetSelectField#default'
350
+ Field: '@/fields/ExtendedThemeAutoPopulateField#default'
350
351
  }
351
352
  }
352
353
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/extendedThemeFields.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport { allExtendedThemePresets } from '../extended-presets.js'\n\n/**\n * Extended Theme Configuration Fields\n * Full TweakCN-compatible theme system with:\n * - All shadcn/ui color tokens (19 base + 5 chart = 24 color tokens)\n * - Shadow controls (6 properties)\n * - Font families (3 families: sans, serif, mono)\n * - Advanced typography (letter-spacing, global spacing)\n * - Professional color picker with live preview\n */\n\nconst extendedThemeOptions = Object.values(allExtendedThemePresets).map((preset) => {\n const primaryColor = preset.styles.light.primary\n const bgColor = preset.styles.light.background\n\n return {\n label: preset.label,\n value: preset.value,\n // Add visual preview in the dropdown\n __meta: {\n primary: primaryColor,\n background: bgColor,\n },\n }\n})\n\n/**\n * Creates professional OKLCH color field with enhanced UI\n */\nfunction createColorField(\n name: string,\n label: { en: string; cs: string },\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder: 'oklch(0.5 0.2 250) or #rgb or hsl(...)',\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemeColorPickerField',\n },\n },\n }\n}\n\n/**\n * Creates text field for non-color values (fonts, shadows, etc.)\n */\nfunction createTextField(\n name: string,\n label: { en: string; cs: string },\n placeholder: string,\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder,\n },\n }\n}\n\n/**\n * Base Color Tokens (19 tokens)\n * Required for all themes\n */\nexport const baseColorFields: Field[] = [\n createColorField(\n 'background',\n { en: 'Background', cs: 'Pozadí' },\n { en: 'Main page background', cs: 'Hlavní pozadí stránky' },\n ),\n createColorField(\n 'foreground',\n { en: 'Foreground', cs: 'Popředí' },\n { en: 'Primary text color', cs: 'Primární barva textu' },\n ),\n createColorField(\n 'card',\n { en: 'Card', cs: 'Karta' },\n { en: 'Card background', cs: 'Pozadí karty' },\n ),\n createColorField(\n 'cardForeground',\n { en: 'Card Foreground', cs: 'Popředí karty' },\n { en: 'Text on cards', cs: 'Text na kartách' },\n ),\n createColorField(\n 'popover',\n { en: 'Popover', cs: 'Vyskakovací okno' },\n { en: 'Popover/dropdown background', cs: 'Pozadí vyskakovacích oken' },\n ),\n createColorField(\n 'popoverForeground',\n { en: 'Popover Foreground', cs: 'Popředí vyskakovacího okna' },\n { en: 'Text in popovers', cs: 'Text ve vyskakovacích oknech' },\n ),\n createColorField(\n 'primary',\n { en: 'Primary', cs: 'Primární' },\n { en: 'Primary brand color', cs: 'Primární značková barva' },\n ),\n createColorField(\n 'primaryForeground',\n { en: 'Primary Foreground', cs: 'Popředí primární' },\n { en: 'Text on primary', cs: 'Text na primární barvě' },\n ),\n createColorField(\n 'secondary',\n { en: 'Secondary', cs: 'Sekundární' },\n { en: 'Secondary accent', cs: 'Sekundární akcent' },\n ),\n createColorField(\n 'secondaryForeground',\n { en: 'Secondary Foreground', cs: 'Popředí sekundární' },\n { en: 'Text on secondary', cs: 'Text na sekundární' },\n ),\n createColorField(\n 'muted',\n { en: 'Muted', cs: 'Tlumená' },\n { en: 'Muted background', cs: 'Tlumené pozadí' },\n ),\n createColorField(\n 'mutedForeground',\n { en: 'Muted Foreground', cs: 'Popředí tlumené' },\n { en: 'Muted text', cs: 'Tlumený text' },\n ),\n createColorField(\n 'accent',\n { en: 'Accent', cs: 'Akcentová' },\n { en: 'Accent/hover color', cs: 'Akcentová/hover barva' },\n ),\n createColorField(\n 'accentForeground',\n { en: 'Accent Foreground', cs: 'Popředí akcentové' },\n { en: 'Text on accent', cs: 'Text na akcentové' },\n ),\n createColorField(\n 'destructive',\n { en: 'Destructive', cs: 'Destruktivní' },\n { en: 'Error/danger color', cs: 'Barva chyby/nebezpečí' },\n ),\n createColorField(\n 'destructiveForeground',\n { en: 'Destructive Foreground', cs: 'Popředí destruktivní' },\n { en: 'Text on destructive', cs: 'Text na destruktivní' },\n ),\n createColorField(\n 'border',\n { en: 'Border', cs: 'Okraj' },\n { en: 'Default border color', cs: 'Výchozí barva okraje' },\n ),\n createColorField(\n 'input',\n { en: 'Input', cs: 'Vstupní pole' },\n { en: 'Input border color', cs: 'Barva okraje vstupu' },\n ),\n createColorField(\n 'ring',\n { en: 'Ring', cs: 'Zvýraznění' },\n { en: 'Focus ring color', cs: 'Barva zvýraznění focus' },\n ),\n]\n\n/**\n * Chart Colors (5 tokens)\n * For data visualization\n */\nexport const chartColorFields: Field[] = [\n createColorField(\n 'chart1',\n { en: 'Chart 1', cs: 'Graf 1' },\n { en: 'First chart color', cs: 'První barva grafu' },\n ),\n createColorField(\n 'chart2',\n { en: 'Chart 2', cs: 'Graf 2' },\n { en: 'Second chart color', cs: 'Druhá barva grafu' },\n ),\n createColorField(\n 'chart3',\n { en: 'Chart 3', cs: 'Graf 3' },\n { en: 'Third chart color', cs: 'Třetí barva grafu' },\n ),\n createColorField(\n 'chart4',\n { en: 'Chart 4', cs: 'Graf 4' },\n { en: 'Fourth chart color', cs: 'Čtvrtá barva grafu' },\n ),\n createColorField(\n 'chart5',\n { en: 'Chart 5', cs: 'Graf 5' },\n { en: 'Fifth chart color', cs: 'Pátá barva grafu' },\n ),\n]\n\n/**\n * Shadow Controls (6 properties)\n * TweakCN essential feature\n */\nexport const shadowFields: Field[] = [\n createColorField(\n 'shadowColor',\n { en: 'Shadow Color', cs: 'Barva stínu' },\n { en: 'Base shadow color', cs: 'Základní barva stínu' },\n ),\n createTextField('shadowOpacity', { en: 'Shadow Opacity', cs: 'Průhlednost stínu' }, '0.18', {\n en: 'Shadow opacity (0-1)',\n cs: 'Průhlednost stínu (0-1)',\n }),\n createTextField('shadowBlur', { en: 'Shadow Blur', cs: 'Rozmazání stínu' }, '2px', {\n en: 'Blur radius',\n cs: 'Poloměr rozmazání',\n }),\n createTextField('shadowSpread', { en: 'Shadow Spread', cs: 'Rozprostření stínu' }, '0px', {\n en: 'Spread radius',\n cs: 'Poloměr rozprostření',\n }),\n createTextField('shadowOffsetX', { en: 'Shadow Offset X', cs: 'Posun stínu X' }, '0px', {\n en: 'Horizontal offset',\n cs: 'Horizontální posun',\n }),\n createTextField('shadowOffsetY', { en: 'Shadow Offset Y', cs: 'Posun stínu Y' }, '1px', {\n en: 'Vertical offset',\n cs: 'Vertikální posun',\n }),\n]\n\n/**\n * Font Family Configuration (3 families)\n * TweakCN essential feature\n */\nexport const fontFamilyFields: Field[] = [\n createTextField(\n 'fontSans',\n { en: 'Sans-Serif Font', cs: 'Bezpatkové písmo' },\n 'Inter, system-ui, sans-serif',\n { en: 'Primary sans-serif font stack', cs: 'Primární bezpatkové písmo' },\n ),\n createTextField('fontSerif', { en: 'Serif Font', cs: 'Patkové písmo' }, 'Georgia, serif', {\n en: 'Serif font stack',\n cs: 'Patkové písmo',\n }),\n createTextField(\n 'fontMono',\n { en: 'Monospace Font', cs: 'Monospace písmo' },\n 'JetBrains Mono, monospace',\n { en: 'Monospace font stack', cs: 'Monospace písmo' },\n ),\n]\n\n/**\n * Advanced Typography (2 properties)\n */\nexport const advancedTypographyFields: Field[] = [\n createTextField('letterSpacing', { en: 'Letter Spacing', cs: 'Rozestup písmen' }, '0em', {\n en: 'Global letter spacing',\n cs: 'Globální rozestup písmen',\n }),\n createTextField('spacing', { en: 'Spacing Scale', cs: 'Škála rozestupů' }, '0.25rem', {\n en: 'Base spacing unit',\n cs: 'Základní jednotka rozestupu',\n }),\n]\n\n/**\n * Border Radius Configuration\n */\nexport const designSystemFields: Field[] = [\n createTextField('radius', { en: 'Border Radius', cs: 'Zaoblení rohů' }, '0.5rem', {\n en: 'Default border radius',\n cs: 'Výchozí zaoblení rohů',\n }),\n]\n\n/**\n * Extended Theme Selection Field with Visual Preview\n */\nexport const extendedThemeSelectionField: Field = {\n name: 'extendedTheme',\n type: 'select',\n label: {\n en: '🎨 Theme Preset',\n cs: '🎨 Přednastavené téma',\n },\n defaultValue: 'cool-extended',\n options: extendedThemeOptions,\n admin: {\n description: {\n en: 'Select a professional theme with full OKLCH color support (TweakCN compatible)',\n cs: 'Vyberte profesionální téma s plnou podporou OKLCH barev (kompatibilní s TweakCN)',\n },\n components: {\n Field: '@/fields/ThemePresetSelectField#default',\n },\n },\n}\n\n/**\n * Unified Light Mode Configuration\n * Combines all color tokens in one place\n */\nexport const lightModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '☀️ Light Mode Colors',\n cs: '☀️ Barvy světlého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for light mode',\n cs: 'Kompletní konfigurace barev pro světlý režim',\n },\n },\n fields: [\n {\n name: 'extendedLightMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Unified Dark Mode Configuration\n */\nexport const darkModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '🌙 Dark Mode Colors',\n cs: '🌙 Barvy tmavého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for dark mode',\n cs: 'Kompletní konfigurace barev pro tmavý režim',\n },\n },\n fields: [\n {\n name: 'extendedDarkMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Shadow Configuration Section\n */\nexport const shadowConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '🌓 Shadows & Elevation',\n cs: '🌓 Stíny a výška',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Configure shadow system for depth and elevation',\n cs: 'Nakonfigurujte systém stínů pro hloubku a výšku',\n },\n },\n fields: [\n {\n name: 'shadows',\n type: 'group',\n fields: shadowFields,\n },\n ],\n}\n\n/**\n * Typography Configuration Section\n */\nexport const typographyConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '� Typography',\n cs: '� Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Font families and advanced typography settings',\n cs: 'Rodiny písem a pokročilá nastavení typografie',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [...fontFamilyFields, ...advancedTypographyFields],\n },\n ],\n}\n\n/**\n * Design System Configuration\n */\nexport const designSystemConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '⚙️ Design System',\n cs: '⚙️ Designový systém',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Global design tokens (radius, spacing, etc.)',\n cs: 'Globální design tokeny (zaoblení, rozestupy, atd.)',\n },\n },\n fields: [\n {\n name: 'designSystem',\n type: 'group',\n fields: designSystemFields,\n },\n ],\n}\n\n// DEPRECATED: Old fields kept for backwards compatibility\n// TODO: Remove in v1.0.0\nexport const extendedLightModeField = lightModeColorsField\nexport const extendedDarkModeField = darkModeColorsField\nexport const chartColorsField = {\n type: 'group',\n name: 'chartColors',\n fields: chartColorFields,\n} as Field\n"],"names":["allExtendedThemePresets","extendedThemeOptions","Object","values","map","preset","primaryColor","styles","light","primary","bgColor","background","label","value","__meta","createColorField","name","description","type","admin","placeholder","components","Field","createTextField","baseColorFields","en","cs","chartColorFields","shadowFields","fontFamilyFields","advancedTypographyFields","designSystemFields","extendedThemeSelectionField","defaultValue","options","lightModeColorsField","initCollapsed","fields","darkModeColorsField","shadowConfigField","typographyConfigField","designSystemConfigField","extendedLightModeField","extendedDarkModeField","chartColorsField"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/extendedThemeFields.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport { allExtendedThemePresets } from '../extended-presets.js'\n\n/**\n * Extended Theme Configuration Fields\n * Full TweakCN-compatible theme system with:\n * - All shadcn/ui color tokens (19 base + 5 chart = 24 color tokens)\n * - Shadow controls (6 properties)\n * - Font families (3 families: sans, serif, mono)\n * - Advanced typography (letter-spacing, global spacing)\n * - Professional color picker with live preview\n */\n\nconst extendedThemeOptions = Object.values(allExtendedThemePresets).map((preset) => {\n const primaryColor = preset.styles.light.primary\n const bgColor = preset.styles.light.background\n\n return {\n label: preset.label,\n value: preset.value,\n // Add visual preview in the dropdown\n __meta: {\n primary: primaryColor,\n background: bgColor,\n },\n }\n})\n\n/**\n * Creates professional OKLCH color field with enhanced UI\n */\nfunction createColorField(\n name: string,\n label: { en: string; cs: string },\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder: 'oklch(0.5 0.2 250) or #rgb or hsl(...)',\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemeColorPickerField',\n },\n },\n }\n}\n\n/**\n * Creates text field for non-color values (fonts, shadows, etc.)\n */\nfunction createTextField(\n name: string,\n label: { en: string; cs: string },\n placeholder: string,\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder,\n },\n }\n}\n\n/**\n * Base Color Tokens (19 tokens)\n * Required for all themes\n */\nexport const baseColorFields: Field[] = [\n createColorField(\n 'background',\n { en: 'Background', cs: 'Pozadí' },\n { en: 'Main page background', cs: 'Hlavní pozadí stránky' },\n ),\n createColorField(\n 'foreground',\n { en: 'Foreground', cs: 'Popředí' },\n { en: 'Primary text color', cs: 'Primární barva textu' },\n ),\n createColorField(\n 'card',\n { en: 'Card', cs: 'Karta' },\n { en: 'Card background', cs: 'Pozadí karty' },\n ),\n createColorField(\n 'cardForeground',\n { en: 'Card Foreground', cs: 'Popředí karty' },\n { en: 'Text on cards', cs: 'Text na kartách' },\n ),\n createColorField(\n 'popover',\n { en: 'Popover', cs: 'Vyskakovací okno' },\n { en: 'Popover/dropdown background', cs: 'Pozadí vyskakovacích oken' },\n ),\n createColorField(\n 'popoverForeground',\n { en: 'Popover Foreground', cs: 'Popředí vyskakovacího okna' },\n { en: 'Text in popovers', cs: 'Text ve vyskakovacích oknech' },\n ),\n createColorField(\n 'primary',\n { en: 'Primary', cs: 'Primární' },\n { en: 'Primary brand color', cs: 'Primární značková barva' },\n ),\n createColorField(\n 'primaryForeground',\n { en: 'Primary Foreground', cs: 'Popředí primární' },\n { en: 'Text on primary', cs: 'Text na primární barvě' },\n ),\n createColorField(\n 'secondary',\n { en: 'Secondary', cs: 'Sekundární' },\n { en: 'Secondary accent', cs: 'Sekundární akcent' },\n ),\n createColorField(\n 'secondaryForeground',\n { en: 'Secondary Foreground', cs: 'Popředí sekundární' },\n { en: 'Text on secondary', cs: 'Text na sekundární' },\n ),\n createColorField(\n 'muted',\n { en: 'Muted', cs: 'Tlumená' },\n { en: 'Muted background', cs: 'Tlumené pozadí' },\n ),\n createColorField(\n 'mutedForeground',\n { en: 'Muted Foreground', cs: 'Popředí tlumené' },\n { en: 'Muted text', cs: 'Tlumený text' },\n ),\n createColorField(\n 'accent',\n { en: 'Accent', cs: 'Akcentová' },\n { en: 'Accent/hover color', cs: 'Akcentová/hover barva' },\n ),\n createColorField(\n 'accentForeground',\n { en: 'Accent Foreground', cs: 'Popředí akcentové' },\n { en: 'Text on accent', cs: 'Text na akcentové' },\n ),\n createColorField(\n 'destructive',\n { en: 'Destructive', cs: 'Destruktivní' },\n { en: 'Error/danger color', cs: 'Barva chyby/nebezpečí' },\n ),\n createColorField(\n 'destructiveForeground',\n { en: 'Destructive Foreground', cs: 'Popředí destruktivní' },\n { en: 'Text on destructive', cs: 'Text na destruktivní' },\n ),\n createColorField(\n 'border',\n { en: 'Border', cs: 'Okraj' },\n { en: 'Default border color', cs: 'Výchozí barva okraje' },\n ),\n createColorField(\n 'input',\n { en: 'Input', cs: 'Vstupní pole' },\n { en: 'Input border color', cs: 'Barva okraje vstupu' },\n ),\n createColorField(\n 'ring',\n { en: 'Ring', cs: 'Zvýraznění' },\n { en: 'Focus ring color', cs: 'Barva zvýraznění focus' },\n ),\n]\n\n/**\n * Chart Colors (5 tokens)\n * For data visualization\n */\nexport const chartColorFields: Field[] = [\n createColorField(\n 'chart1',\n { en: 'Chart 1', cs: 'Graf 1' },\n { en: 'First chart color', cs: 'První barva grafu' },\n ),\n createColorField(\n 'chart2',\n { en: 'Chart 2', cs: 'Graf 2' },\n { en: 'Second chart color', cs: 'Druhá barva grafu' },\n ),\n createColorField(\n 'chart3',\n { en: 'Chart 3', cs: 'Graf 3' },\n { en: 'Third chart color', cs: 'Třetí barva grafu' },\n ),\n createColorField(\n 'chart4',\n { en: 'Chart 4', cs: 'Graf 4' },\n { en: 'Fourth chart color', cs: 'Čtvrtá barva grafu' },\n ),\n createColorField(\n 'chart5',\n { en: 'Chart 5', cs: 'Graf 5' },\n { en: 'Fifth chart color', cs: 'Pátá barva grafu' },\n ),\n]\n\n/**\n * Shadow Controls (6 properties)\n * TweakCN essential feature\n */\nexport const shadowFields: Field[] = [\n createColorField(\n 'shadowColor',\n { en: 'Shadow Color', cs: 'Barva stínu' },\n { en: 'Base shadow color', cs: 'Základní barva stínu' },\n ),\n createTextField('shadowOpacity', { en: 'Shadow Opacity', cs: 'Průhlednost stínu' }, '0.18', {\n en: 'Shadow opacity (0-1)',\n cs: 'Průhlednost stínu (0-1)',\n }),\n createTextField('shadowBlur', { en: 'Shadow Blur', cs: 'Rozmazání stínu' }, '2px', {\n en: 'Blur radius',\n cs: 'Poloměr rozmazání',\n }),\n createTextField('shadowSpread', { en: 'Shadow Spread', cs: 'Rozprostření stínu' }, '0px', {\n en: 'Spread radius',\n cs: 'Poloměr rozprostření',\n }),\n createTextField('shadowOffsetX', { en: 'Shadow Offset X', cs: 'Posun stínu X' }, '0px', {\n en: 'Horizontal offset',\n cs: 'Horizontální posun',\n }),\n createTextField('shadowOffsetY', { en: 'Shadow Offset Y', cs: 'Posun stínu Y' }, '1px', {\n en: 'Vertical offset',\n cs: 'Vertikální posun',\n }),\n]\n\n/**\n * Font Family Configuration (3 families)\n * TweakCN essential feature\n */\nexport const fontFamilyFields: Field[] = [\n createTextField(\n 'fontSans',\n { en: 'Sans-Serif Font', cs: 'Bezpatkové písmo' },\n 'Inter, system-ui, sans-serif',\n { en: 'Primary sans-serif font stack', cs: 'Primární bezpatkové písmo' },\n ),\n createTextField('fontSerif', { en: 'Serif Font', cs: 'Patkové písmo' }, 'Georgia, serif', {\n en: 'Serif font stack',\n cs: 'Patkové písmo',\n }),\n createTextField(\n 'fontMono',\n { en: 'Monospace Font', cs: 'Monospace písmo' },\n 'JetBrains Mono, monospace',\n { en: 'Monospace font stack', cs: 'Monospace písmo' },\n ),\n]\n\n/**\n * Advanced Typography (2 properties)\n */\nexport const advancedTypographyFields: Field[] = [\n createTextField('letterSpacing', { en: 'Letter Spacing', cs: 'Rozestup písmen' }, '0em', {\n en: 'Global letter spacing',\n cs: 'Globální rozestup písmen',\n }),\n createTextField('spacing', { en: 'Spacing Scale', cs: 'Škála rozestupů' }, '0.25rem', {\n en: 'Base spacing unit',\n cs: 'Základní jednotka rozestupu',\n }),\n]\n\n/**\n * Border Radius Configuration\n */\nexport const designSystemFields: Field[] = [\n createTextField('radius', { en: 'Border Radius', cs: 'Zaoblení rohů' }, '0.5rem', {\n en: 'Default border radius',\n cs: 'Výchozí zaoblení rohů',\n }),\n]\n\n/**\n * Extended Theme Selection Field with Visual Preview and Auto-Population\n * Automatically fills all color fields when a theme is selected\n */\nexport const extendedThemeSelectionField: Field = {\n name: 'extendedTheme',\n type: 'select',\n label: {\n en: '🎨 Theme Preset',\n cs: '🎨 Přednastavené téma',\n },\n defaultValue: 'cool-extended',\n options: extendedThemeOptions,\n admin: {\n description: {\n en: 'Select a professional theme with full OKLCH color support (TweakCN compatible). All colors will be auto-populated.',\n cs: 'Vyberte profesionální téma s plnou podporou OKLCH barev (kompatibilní s TweakCN). Všechny barvy budou automaticky vyplněny.',\n },\n components: {\n Field: '@/fields/ExtendedThemeAutoPopulateField#default',\n },\n },\n}\n\n/**\n * Unified Light Mode Configuration\n * Combines all color tokens in one place\n */\nexport const lightModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '☀️ Light Mode Colors',\n cs: '☀️ Barvy světlého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for light mode',\n cs: 'Kompletní konfigurace barev pro světlý režim',\n },\n },\n fields: [\n {\n name: 'extendedLightMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Unified Dark Mode Configuration\n */\nexport const darkModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '🌙 Dark Mode Colors',\n cs: '🌙 Barvy tmavého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for dark mode',\n cs: 'Kompletní konfigurace barev pro tmavý režim',\n },\n },\n fields: [\n {\n name: 'extendedDarkMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Shadow Configuration Section\n */\nexport const shadowConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '🌓 Shadows & Elevation',\n cs: '🌓 Stíny a výška',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Configure shadow system for depth and elevation',\n cs: 'Nakonfigurujte systém stínů pro hloubku a výšku',\n },\n },\n fields: [\n {\n name: 'shadows',\n type: 'group',\n fields: shadowFields,\n },\n ],\n}\n\n/**\n * Typography Configuration Section\n */\nexport const typographyConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '� Typography',\n cs: '� Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Font families and advanced typography settings',\n cs: 'Rodiny písem a pokročilá nastavení typografie',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [...fontFamilyFields, ...advancedTypographyFields],\n },\n ],\n}\n\n/**\n * Design System Configuration\n */\nexport const designSystemConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '⚙️ Design System',\n cs: '⚙️ Designový systém',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Global design tokens (radius, spacing, etc.)',\n cs: 'Globální design tokeny (zaoblení, rozestupy, atd.)',\n },\n },\n fields: [\n {\n name: 'designSystem',\n type: 'group',\n fields: designSystemFields,\n },\n ],\n}\n\n// DEPRECATED: Old fields kept for backwards compatibility\n// TODO: Remove in v1.0.0\nexport const extendedLightModeField = lightModeColorsField\nexport const extendedDarkModeField = darkModeColorsField\nexport const chartColorsField = {\n type: 'group',\n name: 'chartColors',\n fields: chartColorFields,\n} as Field\n"],"names":["allExtendedThemePresets","extendedThemeOptions","Object","values","map","preset","primaryColor","styles","light","primary","bgColor","background","label","value","__meta","createColorField","name","description","type","admin","placeholder","components","Field","createTextField","baseColorFields","en","cs","chartColorFields","shadowFields","fontFamilyFields","advancedTypographyFields","designSystemFields","extendedThemeSelectionField","defaultValue","options","lightModeColorsField","initCollapsed","fields","darkModeColorsField","shadowConfigField","typographyConfigField","designSystemConfigField","extendedLightModeField","extendedDarkModeField","chartColorsField"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeConfigurationField.d.ts","sourceRoot":"","sources":["../../src/fields/themeConfigurationField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAW9C,UAAU,8BAA8B;IACtC,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG;IACtF,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CAmbA"}
1
+ {"version":3,"file":"themeConfigurationField.d.ts","sourceRoot":"","sources":["../../src/fields/themeConfigurationField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAW9C,UAAU,8BAA8B;IACtC,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG;IACtF,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CA+aA"}
@@ -173,10 +173,8 @@ import { darkModeColorsField, designSystemConfigField, extendedThemeSelectionFie
173
173
  cs: 'Písmo pro text'
174
174
  },
175
175
  defaultValue: 'preset',
176
- options: BODY_FONT_OPTIONS.map((option)=>({
177
- label: option.label,
178
- value: option.value
179
- })),
176
+ // @ts-expect-error - Pass full objects including fontFamily for custom rendering
177
+ options: BODY_FONT_OPTIONS,
180
178
  admin: {
181
179
  width: '50%',
182
180
  components: {
@@ -192,10 +190,8 @@ import { darkModeColorsField, designSystemConfigField, extendedThemeSelectionFie
192
190
  cs: 'Písmo pro nadpisy'
193
191
  },
194
192
  defaultValue: 'preset',
195
- options: HEADING_FONT_OPTIONS.map((option)=>({
196
- label: option.label,
197
- value: option.value
198
- })),
193
+ // @ts-expect-error - Pass full objects including fontFamily for custom rendering
194
+ options: HEADING_FONT_OPTIONS,
199
195
  admin: {
200
196
  width: '50%',
201
197
  components: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/themeConfigurationField.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport {\n BASE_FONT_SIZE_OPTIONS,\n BODY_FONT_OPTIONS,\n HEADING_FONT_OPTIONS,\n LINE_HEIGHT_OPTIONS,\n} from '../constants/themeFonts.js'\nimport type { ThemePreset } from '../index.js'\nimport { darkModeField, lightModeField } from './colorModeFields.js'\nimport {\n darkModeColorsField,\n designSystemConfigField,\n extendedThemeSelectionField,\n lightModeColorsField,\n shadowConfigField,\n typographyConfigField,\n} from './extendedThemeFields.js'\n\ninterface ThemeConfigurationFieldOptions {\n themePresets: ThemePreset[]\n defaultTheme: string\n includeColorModeToggle: boolean\n includeCustomCSS: boolean\n includeBrandIdentity: boolean\n enableAdvancedFeatures?: boolean\n}\n\n/**\n * Theme Configuration Tab Configuration\n * Returns tab config that can be injected into existing tabs field\n */\nexport function createThemeConfigurationField(options: ThemeConfigurationFieldOptions): {\n name: string\n label: { en: string; cs: string }\n description: { en: string; cs: string }\n fields: Field[]\n} {\n const {\n themePresets,\n defaultTheme,\n includeColorModeToggle,\n includeCustomCSS,\n enableAdvancedFeatures = true,\n } = options\n\n const themeOptions = themePresets.map((preset) => {\n const previewColor = preset.preview?.colors.primary\n const label = previewColor ? `${preset.label} • ${previewColor}` : preset.label\n return {\n label,\n value: preset.name,\n }\n })\n\n const fields: Field[] = [\n {\n name: 'theme',\n type: 'select',\n required: true,\n defaultValue: defaultTheme,\n options: themeOptions,\n label: {\n en: '🎨 Theme Selection',\n cs: '🎨 Výběr tématu',\n },\n admin: {\n description: {\n en: 'Select a theme to auto-populate color values. You can customize colors after selection.',\n cs: 'Vyberte téma pro automatické předvyplnění barev. Po výběru můžete barvy upravit.',\n },\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemePreviewField',\n },\n },\n },\n extendedThemeSelectionField,\n ]\n\n // Extended Theme Configuration (OKLCH colors, shadcn/ui compatible)\n if (enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🎨 Extended Theme Configuration',\n cs: '🎨 Rozšířená konfigurace tématu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Professional theme system with TweakCN compatibility. Full OKLCH color support, shadows, typography, and more.',\n cs: 'Profesionální systém témat s kompatibilitou TweakCN. Plná podpora OKLCH barev, stíny, typografie a další.',\n },\n },\n fields: [\n lightModeColorsField,\n darkModeColorsField,\n shadowConfigField,\n typographyConfigField,\n designSystemConfigField,\n ],\n })\n }\n\n // Color Mode Settings (only when NOT using extended theme configuration)\n if (includeColorModeToggle && !enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🌗 Color Mode Settings',\n cs: '🌗 Nastavení barevného režimu',\n },\n admin: {\n initCollapsed: false,\n description: {\n en: 'Configure light and dark mode colors. Changes here override theme selection.',\n cs: 'Nakonfigurujte barvy světlého a tmavého režimu. Změny zde přepíší výběr tématu.',\n },\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'colorMode',\n type: 'select',\n label: {\n en: 'Default Color Mode',\n cs: 'Výchozí barevný režim',\n },\n defaultValue: 'auto',\n options: [\n {\n label: {\n en: 'Auto (System)',\n cs: 'Automaticky (Systém)',\n },\n value: 'auto',\n },\n {\n label: { en: 'Light', cs: 'Světlý' },\n value: 'light',\n },\n {\n label: { en: 'Dark', cs: 'Tmavý' },\n value: 'dark',\n },\n ],\n admin: {\n description: {\n en: 'Default color mode for visitors',\n cs: 'Výchozí barevný režim pro návštěvníky',\n },\n width: '50%',\n },\n },\n {\n name: 'allowColorModeToggle',\n type: 'checkbox',\n label: {\n en: 'Enable Mode Toggle',\n cs: 'Povolit přepínač režimu',\n },\n defaultValue: true,\n admin: {\n description: {\n en: 'Let visitors switch modes',\n cs: 'Umožnit návštěvníkům přepínat režimy',\n },\n width: '50%',\n },\n },\n ],\n },\n lightModeField,\n darkModeField,\n ],\n })\n }\n\n // Typography (only when NOT using extended theme configuration)\n if (!enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🅰️ Typography',\n cs: '🅰️ Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Choose font families and base typography settings. Leave fields on \"Use preset\" to inherit the theme defaults.',\n cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota \"Použít výchozí\" zachová nastavení motivu.',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFont',\n type: 'select',\n label: {\n en: 'Body font',\n cs: 'Písmo pro text',\n },\n defaultValue: 'preset',\n options: BODY_FONT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n components: {\n Field: '@/fields/FontSelectField#default',\n },\n },\n },\n {\n name: 'headingFont',\n type: 'select',\n label: {\n en: 'Heading font',\n cs: 'Písmo pro nadpisy',\n },\n defaultValue: 'preset',\n options: HEADING_FONT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n components: {\n Field: '@/fields/FontSelectField#default',\n },\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFontCustom',\n type: 'text',\n label: {\n en: 'Custom body font stack',\n cs: 'Vlastní písmo pro text',\n },\n admin: {\n width: '50%',\n placeholder: '\"IBM Plex Sans\", sans-serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom font.',\n cs: 'Při volbě vlastního písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.bodyFont === 'custom',\n },\n },\n {\n name: 'headingFontCustom',\n type: 'text',\n label: {\n en: 'Custom heading font stack',\n cs: 'Vlastní písmo pro nadpisy',\n },\n admin: {\n width: '50%',\n placeholder: '\"Cormorant Garamond\", serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom heading font.',\n cs: 'Při volbě vlastního nadpisového písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.headingFont === 'custom',\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'baseFontSize',\n type: 'select',\n label: {\n en: 'Base font size',\n cs: 'Základní velikost písma',\n },\n defaultValue: 'preset',\n options: BASE_FONT_SIZE_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n {\n name: 'lineHeight',\n type: 'select',\n label: {\n en: 'Line height',\n cs: 'Řádkování',\n },\n defaultValue: 'preset',\n options: LINE_HEIGHT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n ],\n },\n ],\n },\n ],\n })\n }\n\n // Design Customization (only when NOT using extended theme configuration)\n if (!enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '✨ Design Customization',\n cs: '✨ Přizpůsobení designu',\n },\n admin: {\n initCollapsed: true,\n },\n fields: [\n {\n name: 'borderRadius',\n type: 'select',\n label: {\n en: 'Border Radius',\n cs: 'Zaoblení rohů',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n { label: { en: 'Full', cs: 'Plné' }, value: 'xl' },\n ],\n admin: {\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/RadiusField',\n },\n width: '33%',\n },\n },\n {\n name: 'fontScale',\n type: 'select',\n label: {\n en: 'Font Scale',\n cs: 'Velikost písma',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n ],\n admin: {\n width: '33%',\n },\n },\n {\n name: 'spacing',\n type: 'select',\n label: {\n en: 'Spacing',\n cs: 'Mezery',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Compact', cs: 'Kompaktní' }, value: 'compact' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Spacious', cs: 'Prostorné' }, value: 'spacious' },\n ],\n admin: {\n width: '34%',\n },\n },\n ],\n })\n } // End of !enableAdvancedFeatures block\n\n // Advanced Settings (when using extended theme configuration)\n if (enableAdvancedFeatures) {\n const advancedFields: Field[] = [\n {\n name: 'animationLevel',\n type: 'select',\n label: {\n en: 'Animation Level',\n cs: 'Úroveň animací',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Reduced', cs: 'Snížené' }, value: 'reduced' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'High', cs: 'Vysoké' }, value: 'high' },\n ],\n admin: {\n description: {\n en: 'Control website animations and transitions',\n cs: 'Kontrola animací a přechodů na webu',\n },\n width: '50%',\n },\n },\n ]\n\n if (includeCustomCSS) {\n advancedFields.push({\n name: 'customCSS',\n type: 'code',\n label: {\n en: 'Custom CSS',\n cs: 'Vlastní CSS',\n },\n admin: {\n language: 'css',\n description: {\n en: 'Add custom CSS to override default styles',\n cs: 'Přidejte vlastní CSS pro přepsání výchozích stylů',\n },\n // placeholder:\n // ':root {\\n --primary: #your-color;\\n --border-radius: 8px;\\n --font-family: \"Your Font\";\\n}\\n\\n.custom-class {\\n /* Your custom styles */\\n}',\n // rows: 8,\n },\n })\n }\n\n fields.push({\n type: 'collapsible',\n label: {\n en: '⚙️ Advanced Settings',\n cs: '⚙️ Pokročilé nastavení',\n },\n admin: {\n initCollapsed: true,\n },\n fields: advancedFields,\n })\n }\n\n // Return just the tab configuration, not the full tabs field\n // The plugin will inject this into existing tabs or create a group field\n return {\n name: 'themeConfiguration',\n label: {\n en: '🎨 Appearance Settings',\n cs: '🎨 Nastavení vzhledu',\n },\n description: {\n en: 'Configure website appearance and styling',\n cs: 'Nakonfigurujte vzhled a stylování webu',\n },\n fields,\n }\n}\n"],"names":["BASE_FONT_SIZE_OPTIONS","BODY_FONT_OPTIONS","HEADING_FONT_OPTIONS","LINE_HEIGHT_OPTIONS","darkModeField","lightModeField","darkModeColorsField","designSystemConfigField","extendedThemeSelectionField","lightModeColorsField","shadowConfigField","typographyConfigField","createThemeConfigurationField","options","themePresets","defaultTheme","includeColorModeToggle","includeCustomCSS","enableAdvancedFeatures","themeOptions","map","preset","previewColor","preview","colors","primary","label","value","name","fields","type","required","defaultValue","en","cs","admin","description","components","Field","push","initCollapsed","width","option","placeholder","condition","_","siblingData","bodyFont","headingFont","advancedFields","language"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/themeConfigurationField.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport {\n BASE_FONT_SIZE_OPTIONS,\n BODY_FONT_OPTIONS,\n HEADING_FONT_OPTIONS,\n LINE_HEIGHT_OPTIONS,\n} from '../constants/themeFonts.js'\nimport type { ThemePreset } from '../index.js'\nimport { darkModeField, lightModeField } from './colorModeFields.js'\nimport {\n darkModeColorsField,\n designSystemConfigField,\n extendedThemeSelectionField,\n lightModeColorsField,\n shadowConfigField,\n typographyConfigField,\n} from './extendedThemeFields.js'\n\ninterface ThemeConfigurationFieldOptions {\n themePresets: ThemePreset[]\n defaultTheme: string\n includeColorModeToggle: boolean\n includeCustomCSS: boolean\n includeBrandIdentity: boolean\n enableAdvancedFeatures?: boolean\n}\n\n/**\n * Theme Configuration Tab Configuration\n * Returns tab config that can be injected into existing tabs field\n */\nexport function createThemeConfigurationField(options: ThemeConfigurationFieldOptions): {\n name: string\n label: { en: string; cs: string }\n description: { en: string; cs: string }\n fields: Field[]\n} {\n const {\n themePresets,\n defaultTheme,\n includeColorModeToggle,\n includeCustomCSS,\n enableAdvancedFeatures = true,\n } = options\n\n const themeOptions = themePresets.map((preset) => {\n const previewColor = preset.preview?.colors.primary\n const label = previewColor ? `${preset.label} • ${previewColor}` : preset.label\n return {\n label,\n value: preset.name,\n }\n })\n\n const fields: Field[] = [\n {\n name: 'theme',\n type: 'select',\n required: true,\n defaultValue: defaultTheme,\n options: themeOptions,\n label: {\n en: '🎨 Theme Selection',\n cs: '🎨 Výběr tématu',\n },\n admin: {\n description: {\n en: 'Select a theme to auto-populate color values. You can customize colors after selection.',\n cs: 'Vyberte téma pro automatické předvyplnění barev. Po výběru můžete barvy upravit.',\n },\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemePreviewField',\n },\n },\n },\n extendedThemeSelectionField,\n ]\n\n // Extended Theme Configuration (OKLCH colors, shadcn/ui compatible)\n if (enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🎨 Extended Theme Configuration',\n cs: '🎨 Rozšířená konfigurace tématu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Professional theme system with TweakCN compatibility. Full OKLCH color support, shadows, typography, and more.',\n cs: 'Profesionální systém témat s kompatibilitou TweakCN. Plná podpora OKLCH barev, stíny, typografie a další.',\n },\n },\n fields: [\n lightModeColorsField,\n darkModeColorsField,\n shadowConfigField,\n typographyConfigField,\n designSystemConfigField,\n ],\n })\n }\n\n // Color Mode Settings (only when NOT using extended theme configuration)\n if (includeColorModeToggle && !enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🌗 Color Mode Settings',\n cs: '🌗 Nastavení barevného režimu',\n },\n admin: {\n initCollapsed: false,\n description: {\n en: 'Configure light and dark mode colors. Changes here override theme selection.',\n cs: 'Nakonfigurujte barvy světlého a tmavého režimu. Změny zde přepíší výběr tématu.',\n },\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'colorMode',\n type: 'select',\n label: {\n en: 'Default Color Mode',\n cs: 'Výchozí barevný režim',\n },\n defaultValue: 'auto',\n options: [\n {\n label: {\n en: 'Auto (System)',\n cs: 'Automaticky (Systém)',\n },\n value: 'auto',\n },\n {\n label: { en: 'Light', cs: 'Světlý' },\n value: 'light',\n },\n {\n label: { en: 'Dark', cs: 'Tmavý' },\n value: 'dark',\n },\n ],\n admin: {\n description: {\n en: 'Default color mode for visitors',\n cs: 'Výchozí barevný režim pro návštěvníky',\n },\n width: '50%',\n },\n },\n {\n name: 'allowColorModeToggle',\n type: 'checkbox',\n label: {\n en: 'Enable Mode Toggle',\n cs: 'Povolit přepínač režimu',\n },\n defaultValue: true,\n admin: {\n description: {\n en: 'Let visitors switch modes',\n cs: 'Umožnit návštěvníkům přepínat režimy',\n },\n width: '50%',\n },\n },\n ],\n },\n lightModeField,\n darkModeField,\n ],\n })\n }\n\n // Typography (only when NOT using extended theme configuration)\n if (!enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🅰️ Typography',\n cs: '🅰️ Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Choose font families and base typography settings. Leave fields on \"Use preset\" to inherit the theme defaults.',\n cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota \"Použít výchozí\" zachová nastavení motivu.',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFont',\n type: 'select',\n label: {\n en: 'Body font',\n cs: 'Písmo pro text',\n },\n defaultValue: 'preset',\n // @ts-expect-error - Pass full objects including fontFamily for custom rendering\n options: BODY_FONT_OPTIONS,\n admin: {\n width: '50%',\n components: {\n Field: '@/fields/FontSelectField#default',\n },\n },\n },\n {\n name: 'headingFont',\n type: 'select',\n label: {\n en: 'Heading font',\n cs: 'Písmo pro nadpisy',\n },\n defaultValue: 'preset',\n // @ts-expect-error - Pass full objects including fontFamily for custom rendering\n options: HEADING_FONT_OPTIONS,\n admin: {\n width: '50%',\n components: {\n Field: '@/fields/FontSelectField#default',\n },\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFontCustom',\n type: 'text',\n label: {\n en: 'Custom body font stack',\n cs: 'Vlastní písmo pro text',\n },\n admin: {\n width: '50%',\n placeholder: '\"IBM Plex Sans\", sans-serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom font.',\n cs: 'Při volbě vlastního písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.bodyFont === 'custom',\n },\n },\n {\n name: 'headingFontCustom',\n type: 'text',\n label: {\n en: 'Custom heading font stack',\n cs: 'Vlastní písmo pro nadpisy',\n },\n admin: {\n width: '50%',\n placeholder: '\"Cormorant Garamond\", serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom heading font.',\n cs: 'Při volbě vlastního nadpisového písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.headingFont === 'custom',\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'baseFontSize',\n type: 'select',\n label: {\n en: 'Base font size',\n cs: 'Základní velikost písma',\n },\n defaultValue: 'preset',\n options: BASE_FONT_SIZE_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n {\n name: 'lineHeight',\n type: 'select',\n label: {\n en: 'Line height',\n cs: 'Řádkování',\n },\n defaultValue: 'preset',\n options: LINE_HEIGHT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n ],\n },\n ],\n },\n ],\n })\n }\n\n // Design Customization (only when NOT using extended theme configuration)\n if (!enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '✨ Design Customization',\n cs: '✨ Přizpůsobení designu',\n },\n admin: {\n initCollapsed: true,\n },\n fields: [\n {\n name: 'borderRadius',\n type: 'select',\n label: {\n en: 'Border Radius',\n cs: 'Zaoblení rohů',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n { label: { en: 'Full', cs: 'Plné' }, value: 'xl' },\n ],\n admin: {\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/RadiusField',\n },\n width: '33%',\n },\n },\n {\n name: 'fontScale',\n type: 'select',\n label: {\n en: 'Font Scale',\n cs: 'Velikost písma',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n ],\n admin: {\n width: '33%',\n },\n },\n {\n name: 'spacing',\n type: 'select',\n label: {\n en: 'Spacing',\n cs: 'Mezery',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Compact', cs: 'Kompaktní' }, value: 'compact' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Spacious', cs: 'Prostorné' }, value: 'spacious' },\n ],\n admin: {\n width: '34%',\n },\n },\n ],\n })\n } // End of !enableAdvancedFeatures block\n\n // Advanced Settings (when using extended theme configuration)\n if (enableAdvancedFeatures) {\n const advancedFields: Field[] = [\n {\n name: 'animationLevel',\n type: 'select',\n label: {\n en: 'Animation Level',\n cs: 'Úroveň animací',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Reduced', cs: 'Snížené' }, value: 'reduced' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'High', cs: 'Vysoké' }, value: 'high' },\n ],\n admin: {\n description: {\n en: 'Control website animations and transitions',\n cs: 'Kontrola animací a přechodů na webu',\n },\n width: '50%',\n },\n },\n ]\n\n if (includeCustomCSS) {\n advancedFields.push({\n name: 'customCSS',\n type: 'code',\n label: {\n en: 'Custom CSS',\n cs: 'Vlastní CSS',\n },\n admin: {\n language: 'css',\n description: {\n en: 'Add custom CSS to override default styles',\n cs: 'Přidejte vlastní CSS pro přepsání výchozích stylů',\n },\n // placeholder:\n // ':root {\\n --primary: #your-color;\\n --border-radius: 8px;\\n --font-family: \"Your Font\";\\n}\\n\\n.custom-class {\\n /* Your custom styles */\\n}',\n // rows: 8,\n },\n })\n }\n\n fields.push({\n type: 'collapsible',\n label: {\n en: '⚙️ Advanced Settings',\n cs: '⚙️ Pokročilé nastavení',\n },\n admin: {\n initCollapsed: true,\n },\n fields: advancedFields,\n })\n }\n\n // Return just the tab configuration, not the full tabs field\n // The plugin will inject this into existing tabs or create a group field\n return {\n name: 'themeConfiguration',\n label: {\n en: '🎨 Appearance Settings',\n cs: '🎨 Nastavení vzhledu',\n },\n description: {\n en: 'Configure website appearance and styling',\n cs: 'Nakonfigurujte vzhled a stylování webu',\n },\n fields,\n }\n}\n"],"names":["BASE_FONT_SIZE_OPTIONS","BODY_FONT_OPTIONS","HEADING_FONT_OPTIONS","LINE_HEIGHT_OPTIONS","darkModeField","lightModeField","darkModeColorsField","designSystemConfigField","extendedThemeSelectionField","lightModeColorsField","shadowConfigField","typographyConfigField","createThemeConfigurationField","options","themePresets","defaultTheme","includeColorModeToggle","includeCustomCSS","enableAdvancedFeatures","themeOptions","map","preset","previewColor","preview","colors","primary","label","value","name","fields","type","required","defaultValue","en","cs","admin","description","components","Field","push","initCollapsed","width","placeholder","condition","_","siblingData","bodyFont","headingFont","option","advancedFields","language"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export { generateThemeCSS, getThemeStyles } from './utils/themeUtils.js';
20
20
  export { getThemeHtmlAttributes } from './utils/themeHtmlAttributes.js';
21
21
  export type { Mode, ThemeDefaults } from './providers/Theme/types.js';
22
22
  export { ThemeProvider } from './providers/Theme/index.js';
23
+ export { getFontLoaderCode, getThemeFontFamilies, ThemeFontProvider, useThemeFonts, FONT_IMPORT_MAP, } from './providers/font-loader.js';
23
24
  export { ThemeLivePreview } from './fields/ThemeLivePreview.js';
24
25
  export declare const ThemeManagementPlugin: (options?: ThemeManagementPluginOptions) => Plugin;
25
26
  /** @deprecated use {@link themeManagementPlugin} */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,SAAS,CAAA;AAEtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EACV,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,YAAY,CAAA;AAyFnB,eAAO,MAAM,qBAAqB,GAAI,UAAS,4BAAiC,KAAG,MA0FlF,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,GAAG,8BAA8B,CAAA;AAEhE,eAAO,MAAM,uBAAuB,GAClC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CA8CvC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,KAAG,WAAW,GAAG,IAEhE,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,WAAW,EAEtD,CAAA;AAID,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,iCAAiC,CAAA;AACxC,YAAY,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAC9F,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,eAAO,MAAM,qBAAqB,aA1La,4BAA4B,KAAQ,MA0LzB,CAAA;AAC1D,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,aA5LU,4BAA4B,KAAQ,MA4LtB,CAAA;AAE7D,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,SAAS,CAAA;AAEtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAuF9F,eAAO,MAAM,qBAAqB,GAAI,UAAS,4BAAiC,KAAG,MAwFlF,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,GAAG,8BAA8B,CAAA;AAEhE,eAAO,MAAM,uBAAuB,GAClC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CA2CvC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,KAAG,WAAW,GAAG,IAEhE,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,WAAW,EAEtD,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,iCAAiC,CAAA;AACxC,YAAY,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAC9F,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,eAAO,MAAM,qBAAqB,aA5La,4BAA4B,KAAQ,MA4LzB,CAAA;AAC1D,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,aA9LU,4BAA4B,KAAQ,MA8LtB,CAAA;AAE7D,eAAe,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -165,6 +165,8 @@ export { generateThemeColorsCss, hexToHsl } from './utils/themeColors.js';
165
165
  export { generateThemeCSS, getThemeStyles } from './utils/themeUtils.js';
166
166
  export { getThemeHtmlAttributes } from './utils/themeHtmlAttributes.js';
167
167
  export { ThemeProvider } from './providers/Theme/index.js';
168
+ // Font loading utilities for Next.js integration
169
+ export { getFontLoaderCode, getThemeFontFamilies, ThemeFontProvider, useThemeFonts, FONT_IMPORT_MAP } from './providers/font-loader.js';
168
170
  // Components
169
171
  export { ThemeLivePreview } from './fields/ThemeLivePreview.js';
170
172
  export const ThemeManagementPlugin = themeManagementPlugin;