@kilivi/payloadcms-theme-management 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +97 -0
  2. package/dist/components/ServerThemeInjector.d.ts +11 -0
  3. package/dist/components/ServerThemeInjector.d.ts.map +1 -0
  4. package/dist/components/ServerThemeInjector.js +73 -0
  5. package/dist/components/ServerThemeInjector.js.map +1 -0
  6. package/dist/components/ThemePreview.d.ts +2 -0
  7. package/dist/components/ThemePreview.d.ts.map +1 -0
  8. package/dist/components/ThemePreview.js +153 -0
  9. package/dist/components/ThemePreview.js.map +1 -0
  10. package/dist/components/typographyPreviewUtils.d.ts +18 -0
  11. package/dist/components/typographyPreviewUtils.d.ts.map +1 -0
  12. package/dist/components/typographyPreviewUtils.js +80 -0
  13. package/dist/components/typographyPreviewUtils.js.map +1 -0
  14. package/dist/constants/themeFonts.d.ts +75 -0
  15. package/dist/constants/themeFonts.d.ts.map +1 -0
  16. package/dist/constants/themeFonts.js +45 -0
  17. package/dist/constants/themeFonts.js.map +1 -0
  18. package/dist/fields/ColorPickerField.d.ts +3 -0
  19. package/dist/fields/ColorPickerField.d.ts.map +1 -0
  20. package/dist/fields/ColorPickerField.js +153 -0
  21. package/dist/fields/ColorPickerField.js.map +1 -0
  22. package/dist/fields/RadiusField.d.ts +3 -0
  23. package/dist/fields/RadiusField.d.ts.map +1 -0
  24. package/dist/fields/RadiusField.js +91 -0
  25. package/dist/fields/RadiusField.js.map +1 -0
  26. package/dist/fields/ThemeColorPickerField.d.ts +5 -0
  27. package/dist/fields/ThemeColorPickerField.d.ts.map +1 -0
  28. package/dist/fields/ThemeColorPickerField.js +84 -0
  29. package/dist/fields/ThemeColorPickerField.js.map +1 -0
  30. package/dist/fields/ThemePreviewField.d.ts +3 -0
  31. package/dist/fields/ThemePreviewField.d.ts.map +1 -0
  32. package/dist/fields/ThemePreviewField.js +336 -0
  33. package/dist/fields/ThemePreviewField.js.map +1 -0
  34. package/dist/fields/ThemeTokenSelectField.d.ts +3 -0
  35. package/dist/fields/ThemeTokenSelectField.d.ts.map +1 -0
  36. package/dist/fields/ThemeTokenSelectField.js +128 -0
  37. package/dist/fields/ThemeTokenSelectField.js.map +1 -0
  38. package/dist/fields/colorModeFields.d.ts +10 -0
  39. package/dist/fields/colorModeFields.d.ts.map +1 -0
  40. package/dist/fields/colorModeFields.js +241 -0
  41. package/dist/fields/colorModeFields.js.map +1 -0
  42. package/dist/fields/themeConfigurationField.d.ts +17 -0
  43. package/dist/fields/themeConfigurationField.d.ts.map +1 -0
  44. package/dist/fields/themeConfigurationField.js +389 -0
  45. package/dist/fields/themeConfigurationField.js.map +1 -0
  46. package/dist/index.d.ts +20 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +109 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/payload-types.d.ts +83 -0
  51. package/dist/payload-types.d.ts.map +1 -0
  52. package/dist/payload-types.js +6 -0
  53. package/dist/payload-types.js.map +1 -0
  54. package/dist/plugin.d.ts +3 -0
  55. package/dist/plugin.d.ts.map +1 -0
  56. package/dist/plugin.js +2 -0
  57. package/dist/plugin.js.map +1 -0
  58. package/dist/presets.d.ts +43 -0
  59. package/dist/presets.d.ts.map +1 -0
  60. package/dist/presets.js +580 -0
  61. package/dist/presets.js.map +1 -0
  62. package/dist/providers/Theme/themeConfig.d.ts +4 -0
  63. package/dist/providers/Theme/themeConfig.d.ts.map +1 -0
  64. package/dist/providers/Theme/themeConfig.js +66 -0
  65. package/dist/providers/Theme/themeConfig.js.map +1 -0
  66. package/dist/providers/Theme/types.d.ts +16 -0
  67. package/dist/providers/Theme/types.d.ts.map +1 -0
  68. package/dist/providers/Theme/types.js +14 -0
  69. package/dist/providers/Theme/types.js.map +1 -0
  70. package/dist/server.d.ts +3 -0
  71. package/dist/server.d.ts.map +1 -0
  72. package/dist/server.js +3 -0
  73. package/dist/server.js.map +1 -0
  74. package/dist/types.d.ts +36 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +2 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/utils/resolveThemeConfiguration.d.ts +40 -0
  79. package/dist/utils/resolveThemeConfiguration.d.ts.map +1 -0
  80. package/dist/utils/resolveThemeConfiguration.js +148 -0
  81. package/dist/utils/resolveThemeConfiguration.js.map +1 -0
  82. package/dist/utils/themeAssets.d.ts +6 -0
  83. package/dist/utils/themeAssets.d.ts.map +1 -0
  84. package/dist/utils/themeAssets.js +67 -0
  85. package/dist/utils/themeAssets.js.map +1 -0
  86. package/dist/utils/themeColors.d.ts +36 -0
  87. package/dist/utils/themeColors.d.ts.map +1 -0
  88. package/dist/utils/themeColors.js +111 -0
  89. package/dist/utils/themeColors.js.map +1 -0
  90. package/dist/utils/themeUtils.d.ts +16 -0
  91. package/dist/utils/themeUtils.d.ts.map +1 -0
  92. package/dist/utils/themeUtils.js +260 -0
  93. package/dist/utils/themeUtils.js.map +1 -0
  94. package/package.json +68 -0
@@ -0,0 +1,241 @@
1
+ const themeColorPickerComponentPath = '@payloadcms-plugins/theme-management/fields/ThemeColorPickerField';
2
+ const colorFieldKeys = [
3
+ 'background',
4
+ 'foreground',
5
+ 'primary',
6
+ 'primaryForeground',
7
+ 'card',
8
+ 'cardForeground',
9
+ 'popover',
10
+ 'popoverForeground',
11
+ 'secondary',
12
+ 'secondaryForeground',
13
+ 'muted',
14
+ 'mutedForeground',
15
+ 'accent',
16
+ 'accentForeground',
17
+ 'destructive',
18
+ 'destructiveForeground',
19
+ 'border',
20
+ 'input',
21
+ 'ring',
22
+ ];
23
+ const colorFieldDefinitions = [
24
+ {
25
+ name: 'background',
26
+ label: { en: 'Background', cs: 'Pozadí' },
27
+ description: { en: 'Main background color', cs: 'Hlavní barva pozadí' },
28
+ },
29
+ {
30
+ name: 'foreground',
31
+ label: { en: 'Foreground', cs: 'Popředí' },
32
+ description: { en: 'Main text color', cs: 'Hlavní barva textu' },
33
+ },
34
+ {
35
+ name: 'primary',
36
+ label: { en: 'Primary', cs: 'Primární' },
37
+ description: {
38
+ en: 'Primary brand color for buttons, links',
39
+ cs: 'Primární barva značky pro tlačítka, odkazy',
40
+ },
41
+ },
42
+ {
43
+ name: 'primaryForeground',
44
+ label: { en: 'Primary Foreground', cs: 'Primární popředí' },
45
+ description: {
46
+ en: 'Text color on primary background',
47
+ cs: 'Barva textu na primárním pozadí',
48
+ },
49
+ },
50
+ {
51
+ name: 'card',
52
+ label: { en: 'Card', cs: 'Karta' },
53
+ description: { en: 'Card background color', cs: 'Barva pozadí karty' },
54
+ },
55
+ {
56
+ name: 'cardForeground',
57
+ label: { en: 'Card Foreground', cs: 'Karta popředí' },
58
+ description: {
59
+ en: 'Text color on card background',
60
+ cs: 'Barva textu na pozadí karty',
61
+ },
62
+ },
63
+ {
64
+ name: 'popover',
65
+ label: { en: 'Popover', cs: 'Popover' },
66
+ description: { en: 'Popover background color', cs: 'Barva pozadí popoveru' },
67
+ },
68
+ {
69
+ name: 'popoverForeground',
70
+ label: { en: 'Popover Foreground', cs: 'Popover popředí' },
71
+ description: {
72
+ en: 'Text color on popover background',
73
+ cs: 'Barva textu na pozadí popoveru',
74
+ },
75
+ },
76
+ {
77
+ name: 'secondary',
78
+ label: { en: 'Secondary', cs: 'Sekundární' },
79
+ description: { en: 'Secondary UI elements', cs: 'Sekundární UI prvky' },
80
+ },
81
+ {
82
+ name: 'secondaryForeground',
83
+ label: { en: 'Secondary Foreground', cs: 'Sekundární popředí' },
84
+ description: {
85
+ en: 'Text color on secondary background',
86
+ cs: 'Barva textu na sekundárním pozadí',
87
+ },
88
+ },
89
+ {
90
+ name: 'muted',
91
+ label: { en: 'Muted', cs: 'Ztlumený' },
92
+ description: { en: 'Muted backgrounds', cs: 'Ztlumená pozadí' },
93
+ },
94
+ {
95
+ name: 'mutedForeground',
96
+ label: { en: 'Muted Foreground', cs: 'Ztlumené popředí' },
97
+ description: { en: 'Muted text color', cs: 'Ztlumená barva textu' },
98
+ },
99
+ {
100
+ name: 'accent',
101
+ label: { en: 'Accent', cs: 'Akcent' },
102
+ description: { en: 'Accent color for highlights', cs: 'Akcentová barva pro zvýraznění' },
103
+ },
104
+ {
105
+ name: 'accentForeground',
106
+ label: { en: 'Accent Foreground', cs: 'Akcent popředí' },
107
+ description: {
108
+ en: 'Text color on accent background',
109
+ cs: 'Barva textu na akcentovém pozadí',
110
+ },
111
+ },
112
+ {
113
+ name: 'destructive',
114
+ label: { en: 'Destructive', cs: 'Destruktivní' },
115
+ description: { en: 'Error and destructive actions', cs: 'Chyby a destruktivní akce' },
116
+ },
117
+ {
118
+ name: 'destructiveForeground',
119
+ label: { en: 'Destructive Foreground', cs: 'Destruktivní popředí' },
120
+ description: {
121
+ en: 'Text color on destructive background',
122
+ cs: 'Barva textu na destruktivním pozadí',
123
+ },
124
+ },
125
+ {
126
+ name: 'border',
127
+ label: { en: 'Border', cs: 'Okraj' },
128
+ description: { en: 'Border color', cs: 'Barva okraje' },
129
+ },
130
+ {
131
+ name: 'input',
132
+ label: { en: 'Input', cs: 'Vstup' },
133
+ description: { en: 'Input border color', cs: 'Barva okraje vstupů' },
134
+ },
135
+ {
136
+ name: 'ring',
137
+ label: { en: 'Ring', cs: 'Prstenec' },
138
+ description: { en: 'Focus ring color', cs: 'Barva focus prstence' },
139
+ },
140
+ ];
141
+ // Light Mode Default Colors (Shadcn UI inspired defaults)
142
+ export const lightModeDefaults = {
143
+ background: '#ffffff',
144
+ foreground: '#0a0a0a',
145
+ card: '#ffffff',
146
+ cardForeground: '#0a0a0a',
147
+ popover: '#ffffff',
148
+ popoverForeground: '#0a0a0a',
149
+ primary: '#9372f7',
150
+ primaryForeground: '#fafafa',
151
+ secondary: '#f4f4f5',
152
+ secondaryForeground: '#18181b',
153
+ muted: '#f4f4f5',
154
+ mutedForeground: '#71717a',
155
+ accent: '#f4f4f5',
156
+ accentForeground: '#18181b',
157
+ destructive: '#ef4444',
158
+ destructiveForeground: '#fafafa',
159
+ border: '#e4e4e7',
160
+ input: '#e4e4e7',
161
+ ring: '#18181b',
162
+ };
163
+ // Dark Mode Default Colors (Shadcn UI inspired defaults)
164
+ export const darkModeDefaults = {
165
+ background: '#0a0a0a',
166
+ foreground: '#fafafa',
167
+ card: '#09090b',
168
+ cardForeground: '#fafafa',
169
+ popover: '#09090b',
170
+ popoverForeground: '#fafafa',
171
+ primary: '#9372f7',
172
+ primaryForeground: '#09090b',
173
+ secondary: '#27272a',
174
+ secondaryForeground: '#fafafa',
175
+ muted: '#27272a',
176
+ mutedForeground: '#a1a1aa',
177
+ accent: '#27272a',
178
+ accentForeground: '#fafafa',
179
+ destructive: '#7f1d1d',
180
+ destructiveForeground: '#fafafa',
181
+ border: '#27272a',
182
+ input: '#27272a',
183
+ ring: '#d4d4d8',
184
+ };
185
+ function createColorFields(defaults) {
186
+ return colorFieldDefinitions.map(({ name, label, description }) => ({
187
+ name,
188
+ type: 'text',
189
+ label,
190
+ defaultValue: defaults[name],
191
+ admin: {
192
+ components: {
193
+ Field: themeColorPickerComponentPath,
194
+ },
195
+ description,
196
+ },
197
+ }));
198
+ }
199
+ export const lightModeField = {
200
+ type: 'collapsible',
201
+ label: {
202
+ en: '☀️ Light Mode Colors',
203
+ cs: '☀️ Barvy světlého režimu',
204
+ },
205
+ admin: {
206
+ initCollapsed: true,
207
+ description: {
208
+ en: 'Configure colors for light mode',
209
+ cs: 'Nakonfigurujte barvy pro světlý režim',
210
+ },
211
+ },
212
+ fields: [
213
+ {
214
+ name: 'lightMode',
215
+ type: 'group',
216
+ fields: createColorFields(lightModeDefaults),
217
+ },
218
+ ],
219
+ };
220
+ export const darkModeField = {
221
+ type: 'collapsible',
222
+ label: {
223
+ en: '🌙 Dark Mode Colors',
224
+ cs: '🌙 Barvy tmavého režimu',
225
+ },
226
+ admin: {
227
+ initCollapsed: true,
228
+ description: {
229
+ en: 'Configure colors for dark mode',
230
+ cs: 'Nakonfigurujte barvy pro tmavý režim',
231
+ },
232
+ },
233
+ fields: [
234
+ {
235
+ name: 'darkMode',
236
+ type: 'group',
237
+ fields: createColorFields(darkModeDefaults),
238
+ },
239
+ ],
240
+ };
241
+ //# sourceMappingURL=colorModeFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorModeFields.js","sourceRoot":"","sources":["../../src/fields/colorModeFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Field } from 'payload';
2
+ import type { ThemePreset } from '../index';
3
+ interface ThemeConfigurationFieldOptions {
4
+ themePresets: ThemePreset[];
5
+ defaultTheme: string;
6
+ includeColorModeToggle: boolean;
7
+ includeCustomCSS: boolean;
8
+ includeBrandIdentity: boolean;
9
+ enableAdvancedFeatures?: boolean;
10
+ }
11
+ /**
12
+ * Theme Configuration Field with Theme Selection as default value setter
13
+ * Theme Selection populates lightMode/darkMode colors automatically
14
+ */
15
+ export declare function createThemeConfigurationField(options: ThemeConfigurationFieldOptions): Field;
16
+ export {};
17
+ //# sourceMappingURL=themeConfigurationField.d.ts.map
@@ -0,0 +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,UAAU,CAAA;AAG3C,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,KAAK,CA4Y5F"}
@@ -0,0 +1,389 @@
1
+ import { BASE_FONT_SIZE_OPTIONS, BODY_FONT_OPTIONS, HEADING_FONT_OPTIONS, LINE_HEIGHT_OPTIONS, } from '@/constants/themeFonts';
2
+ import { darkModeField, lightModeField } from './colorModeFields';
3
+ /**
4
+ * Theme Configuration Field with Theme Selection as default value setter
5
+ * Theme Selection populates lightMode/darkMode colors automatically
6
+ */
7
+ export function createThemeConfigurationField(options) {
8
+ const { themePresets, defaultTheme, includeColorModeToggle, includeCustomCSS, enableAdvancedFeatures = true, } = options;
9
+ const themeOptions = themePresets.map((preset) => {
10
+ const previewColor = preset.preview?.colors.primary;
11
+ const label = previewColor ? `${preset.label} • ${previewColor}` : preset.label;
12
+ return {
13
+ label,
14
+ value: preset.name,
15
+ };
16
+ });
17
+ const fields = [
18
+ {
19
+ name: 'theme',
20
+ type: 'select',
21
+ required: true,
22
+ defaultValue: defaultTheme,
23
+ options: themeOptions,
24
+ label: {
25
+ en: '🎨 Theme Selection',
26
+ cs: '🎨 Výběr tématu',
27
+ },
28
+ admin: {
29
+ description: {
30
+ en: 'Select a theme to auto-populate color values. You can customize colors after selection.',
31
+ cs: 'Vyberte téma pro automatické předvyplnění barev. Po výběru můžete barvy upravit.',
32
+ },
33
+ components: {
34
+ Field: '@payloadcms-plugins/theme-management/fields/ThemePreviewField',
35
+ },
36
+ },
37
+ },
38
+ ];
39
+ // Color Mode Settings
40
+ if (includeColorModeToggle) {
41
+ fields.push({
42
+ type: 'collapsible',
43
+ label: {
44
+ en: '🌗 Color Mode Settings',
45
+ cs: '🌗 Nastavení barevného režimu',
46
+ },
47
+ admin: {
48
+ initCollapsed: false,
49
+ description: {
50
+ en: 'Configure light and dark mode colors. Changes here override theme selection.',
51
+ cs: 'Nakonfigurujte barvy světlého a tmavého režimu. Změny zde přepíší výběr tématu.',
52
+ },
53
+ },
54
+ fields: [
55
+ {
56
+ type: 'row',
57
+ fields: [
58
+ {
59
+ name: 'colorMode',
60
+ type: 'select',
61
+ label: {
62
+ en: 'Default Color Mode',
63
+ cs: 'Výchozí barevný režim',
64
+ },
65
+ defaultValue: 'auto',
66
+ options: [
67
+ {
68
+ label: {
69
+ en: 'Auto (System)',
70
+ cs: 'Automaticky (Systém)',
71
+ },
72
+ value: 'auto',
73
+ },
74
+ {
75
+ label: { en: 'Light', cs: 'Světlý' },
76
+ value: 'light',
77
+ },
78
+ {
79
+ label: { en: 'Dark', cs: 'Tmavý' },
80
+ value: 'dark',
81
+ },
82
+ ],
83
+ admin: {
84
+ description: {
85
+ en: 'Default color mode for visitors',
86
+ cs: 'Výchozí barevný režim pro návštěvníky',
87
+ },
88
+ width: '50%',
89
+ },
90
+ },
91
+ {
92
+ name: 'allowColorModeToggle',
93
+ type: 'checkbox',
94
+ label: {
95
+ en: 'Enable Mode Toggle',
96
+ cs: 'Povolit přepínač režimu',
97
+ },
98
+ defaultValue: true,
99
+ admin: {
100
+ description: {
101
+ en: 'Let visitors switch modes',
102
+ cs: 'Umožnit návštěvníkům přepínat režimy',
103
+ },
104
+ width: '50%',
105
+ },
106
+ },
107
+ ],
108
+ },
109
+ lightModeField,
110
+ darkModeField,
111
+ ],
112
+ });
113
+ }
114
+ fields.push({
115
+ type: 'collapsible',
116
+ label: {
117
+ en: '🅰️ Typography',
118
+ cs: '🅰️ Typografie',
119
+ },
120
+ admin: {
121
+ initCollapsed: true,
122
+ description: {
123
+ en: 'Choose font families and base typography settings. Leave fields on "Use preset" to inherit the theme defaults.',
124
+ cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota "Použít výchozí" zachová nastavení motivu.',
125
+ },
126
+ },
127
+ fields: [
128
+ {
129
+ name: 'typography',
130
+ type: 'group',
131
+ fields: [
132
+ {
133
+ type: 'row',
134
+ fields: [
135
+ {
136
+ name: 'bodyFont',
137
+ type: 'select',
138
+ label: {
139
+ en: 'Body font',
140
+ cs: 'Písmo pro text',
141
+ },
142
+ defaultValue: 'preset',
143
+ options: BODY_FONT_OPTIONS.map((option) => ({
144
+ label: option.label,
145
+ value: option.value,
146
+ })),
147
+ admin: {
148
+ width: '50%',
149
+ },
150
+ },
151
+ {
152
+ name: 'headingFont',
153
+ type: 'select',
154
+ label: {
155
+ en: 'Heading font',
156
+ cs: 'Písmo pro nadpisy',
157
+ },
158
+ defaultValue: 'preset',
159
+ options: HEADING_FONT_OPTIONS.map((option) => ({
160
+ label: option.label,
161
+ value: option.value,
162
+ })),
163
+ admin: {
164
+ width: '50%',
165
+ },
166
+ },
167
+ ],
168
+ },
169
+ {
170
+ type: 'row',
171
+ fields: [
172
+ {
173
+ name: 'bodyFontCustom',
174
+ type: 'text',
175
+ label: {
176
+ en: 'Custom body font stack',
177
+ cs: 'Vlastní písmo pro text',
178
+ },
179
+ admin: {
180
+ width: '50%',
181
+ placeholder: '"IBM Plex Sans", sans-serif',
182
+ description: {
183
+ en: 'Provide full CSS font-family stack when using a custom font.',
184
+ cs: 'Při volbě vlastního písma zadejte celý CSS zápis font-family.',
185
+ },
186
+ condition: (_, siblingData) => siblingData?.bodyFont === 'custom',
187
+ },
188
+ },
189
+ {
190
+ name: 'headingFontCustom',
191
+ type: 'text',
192
+ label: {
193
+ en: 'Custom heading font stack',
194
+ cs: 'Vlastní písmo pro nadpisy',
195
+ },
196
+ admin: {
197
+ width: '50%',
198
+ placeholder: '"Cormorant Garamond", serif',
199
+ description: {
200
+ en: 'Provide full CSS font-family stack when using a custom heading font.',
201
+ cs: 'Při volbě vlastního nadpisového písma zadejte celý CSS zápis font-family.',
202
+ },
203
+ condition: (_, siblingData) => siblingData?.headingFont === 'custom',
204
+ },
205
+ },
206
+ ],
207
+ },
208
+ {
209
+ type: 'row',
210
+ fields: [
211
+ {
212
+ name: 'baseFontSize',
213
+ type: 'select',
214
+ label: {
215
+ en: 'Base font size',
216
+ cs: 'Základní velikost písma',
217
+ },
218
+ defaultValue: 'preset',
219
+ options: BASE_FONT_SIZE_OPTIONS.map((option) => ({
220
+ label: option.label,
221
+ value: option.value,
222
+ })),
223
+ admin: {
224
+ width: '50%',
225
+ },
226
+ },
227
+ {
228
+ name: 'lineHeight',
229
+ type: 'select',
230
+ label: {
231
+ en: 'Line height',
232
+ cs: 'Řádkování',
233
+ },
234
+ defaultValue: 'preset',
235
+ options: LINE_HEIGHT_OPTIONS.map((option) => ({
236
+ label: option.label,
237
+ value: option.value,
238
+ })),
239
+ admin: {
240
+ width: '50%',
241
+ },
242
+ },
243
+ ],
244
+ },
245
+ ],
246
+ },
247
+ ],
248
+ });
249
+ // Design Customization
250
+ fields.push({
251
+ type: 'collapsible',
252
+ label: {
253
+ en: '✨ Design Customization',
254
+ cs: '✨ Přizpůsobení designu',
255
+ },
256
+ admin: {
257
+ initCollapsed: true,
258
+ },
259
+ fields: [
260
+ {
261
+ name: 'borderRadius',
262
+ type: 'select',
263
+ label: {
264
+ en: 'Border Radius',
265
+ cs: 'Zaoblení rohů',
266
+ },
267
+ defaultValue: 'medium',
268
+ options: [
269
+ { label: { en: 'None', cs: 'Žádné' }, value: 'none' },
270
+ { label: { en: 'Small', cs: 'Malé' }, value: 'small' },
271
+ { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },
272
+ { label: { en: 'Large', cs: 'Velké' }, value: 'large' },
273
+ { label: { en: 'Full', cs: 'Plné' }, value: 'xl' },
274
+ ],
275
+ admin: {
276
+ components: {
277
+ Field: '@payloadcms-plugins/theme-management/fields/RadiusField',
278
+ },
279
+ width: '33%',
280
+ },
281
+ },
282
+ {
283
+ name: 'fontScale',
284
+ type: 'select',
285
+ label: {
286
+ en: 'Font Scale',
287
+ cs: 'Velikost písma',
288
+ },
289
+ defaultValue: 'medium',
290
+ options: [
291
+ { label: { en: 'Small', cs: 'Malé' }, value: 'small' },
292
+ { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },
293
+ { label: { en: 'Large', cs: 'Velké' }, value: 'large' },
294
+ ],
295
+ admin: {
296
+ width: '33%',
297
+ },
298
+ },
299
+ {
300
+ name: 'spacing',
301
+ type: 'select',
302
+ label: {
303
+ en: 'Spacing',
304
+ cs: 'Mezery',
305
+ },
306
+ defaultValue: 'medium',
307
+ options: [
308
+ { label: { en: 'Compact', cs: 'Kompaktní' }, value: 'compact' },
309
+ { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },
310
+ { label: { en: 'Spacious', cs: 'Prostorné' }, value: 'spacious' },
311
+ ],
312
+ admin: {
313
+ width: '34%',
314
+ },
315
+ },
316
+ ],
317
+ });
318
+ // Advanced Settings
319
+ if (enableAdvancedFeatures) {
320
+ const advancedFields = [
321
+ {
322
+ name: 'animationLevel',
323
+ type: 'select',
324
+ label: {
325
+ en: 'Animation Level',
326
+ cs: 'Úroveň animací',
327
+ },
328
+ defaultValue: 'medium',
329
+ options: [
330
+ { label: { en: 'None', cs: 'Žádné' }, value: 'none' },
331
+ { label: { en: 'Reduced', cs: 'Snížené' }, value: 'reduced' },
332
+ { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },
333
+ { label: { en: 'Full', cs: 'Plné' }, value: 'full' },
334
+ ],
335
+ admin: {
336
+ description: {
337
+ en: 'Control website animations and transitions',
338
+ cs: 'Kontrola animací a přechodů na webu',
339
+ },
340
+ width: '50%',
341
+ },
342
+ },
343
+ ];
344
+ if (includeCustomCSS) {
345
+ advancedFields.push({
346
+ name: 'customCSS',
347
+ type: 'code',
348
+ label: {
349
+ en: 'Custom CSS',
350
+ cs: 'Vlastní CSS',
351
+ },
352
+ admin: {
353
+ language: 'css',
354
+ description: {
355
+ en: 'Add custom CSS to override default styles',
356
+ cs: 'Přidejte vlastní CSS pro přepsání výchozích stylů',
357
+ },
358
+ // placeholder:
359
+ // ':root {\n --primary: #your-color;\n --border-radius: 8px;\n --font-family: "Your Font";\n}\n\n.custom-class {\n /* Your custom styles */\n}',
360
+ // rows: 8,
361
+ },
362
+ });
363
+ }
364
+ fields.push({
365
+ type: 'collapsible',
366
+ label: {
367
+ en: '⚙️ Advanced Settings',
368
+ cs: '⚙️ Pokročilé nastavení',
369
+ },
370
+ admin: {
371
+ initCollapsed: true,
372
+ },
373
+ fields: advancedFields,
374
+ });
375
+ }
376
+ return {
377
+ name: 'themeConfiguration',
378
+ type: 'group',
379
+ label: false,
380
+ admin: {
381
+ description: {
382
+ en: 'Configure website appearance and styling',
383
+ cs: 'Nakonfigurujte vzhled a stylování webu',
384
+ },
385
+ },
386
+ fields,
387
+ };
388
+ }
389
+ //# sourceMappingURL=themeConfigurationField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeConfigurationField.js","sourceRoot":"","sources":["../../src/fields/themeConfigurationField.ts"],"names":[],"mappings":"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"}