@kilivi/payloadcms-theme-management 1.1.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +318 -847
- package/dist/components/AppearanceSessionControls.d.ts +15 -0
- package/dist/components/AppearanceSessionControls.d.ts.map +1 -0
- package/dist/components/AppearanceSessionControls.js +152 -0
- package/dist/components/AppearanceSessionControls.js.map +1 -0
- package/dist/components/ColorModeToggle.css +42 -0
- package/dist/components/ColorModeToggle.d.ts +40 -0
- package/dist/components/ColorModeToggle.d.ts.map +1 -0
- package/dist/components/ColorModeToggle.js +111 -0
- package/dist/components/ColorModeToggle.js.map +1 -0
- package/dist/components/ServerThemeInjector.d.ts.map +1 -1
- package/dist/components/ServerThemeInjector.js +41 -14
- package/dist/components/ServerThemeInjector.js.map +1 -1
- package/dist/components/ThemeLivePreviewSync.d.ts +1 -0
- package/dist/components/ThemeLivePreviewSync.d.ts.map +1 -1
- package/dist/components/ThemeLivePreviewSync.js +1 -1
- package/dist/components/ThemeLivePreviewSync.js.map +1 -1
- package/dist/components/ThemeSwitcher.d.ts +36 -0
- package/dist/components/ThemeSwitcher.d.ts.map +1 -0
- package/dist/components/ThemeSwitcher.js +89 -0
- package/dist/components/ThemeSwitcher.js.map +1 -0
- package/dist/components/typographyPreviewUtils.d.ts.map +1 -1
- package/dist/components/typographyPreviewUtils.js +8 -1
- package/dist/components/typographyPreviewUtils.js.map +1 -1
- package/dist/constants/devicePreviews.d.ts +35 -0
- package/dist/constants/devicePreviews.d.ts.map +1 -0
- package/dist/constants/devicePreviews.js +43 -0
- package/dist/constants/devicePreviews.js.map +1 -0
- package/dist/constants/themeFonts.js +9 -9
- package/dist/constants/themeFonts.js.map +1 -1
- package/dist/extended-presets.d.ts +0 -4
- package/dist/extended-presets.d.ts.map +1 -1
- package/dist/extended-presets.js +1 -18
- package/dist/extended-presets.js.map +1 -1
- package/dist/extended-themes.d.ts.map +1 -1
- package/dist/extended-themes.js +428 -0
- package/dist/extended-themes.js.map +1 -1
- package/dist/fields/AccessibilityAuditField.d.ts +2 -0
- package/dist/fields/AccessibilityAuditField.d.ts.map +1 -0
- package/dist/fields/AccessibilityAuditField.js +303 -0
- package/dist/fields/AccessibilityAuditField.js.map +1 -0
- package/dist/fields/AppearancePreviewField.d.ts +2 -0
- package/dist/fields/AppearancePreviewField.d.ts.map +1 -0
- package/dist/fields/AppearancePreviewField.js +763 -0
- package/dist/fields/AppearancePreviewField.js.map +1 -0
- package/dist/fields/ColorPickerField.d.ts.map +1 -1
- package/dist/fields/ColorPickerField.js +89 -85
- package/dist/fields/ColorPickerField.js.map +1 -1
- package/dist/fields/FontSelectField.d.ts +6 -0
- package/dist/fields/FontSelectField.d.ts.map +1 -1
- package/dist/fields/FontSelectField.js +195 -122
- package/dist/fields/FontSelectField.js.map +1 -1
- package/dist/fields/PaletteGeneratorField.d.ts +7 -0
- package/dist/fields/PaletteGeneratorField.d.ts.map +1 -0
- package/dist/fields/PaletteGeneratorField.js +327 -0
- package/dist/fields/PaletteGeneratorField.js.map +1 -0
- package/dist/fields/StylePresetField.d.ts +3 -0
- package/dist/fields/StylePresetField.d.ts.map +1 -0
- package/dist/fields/StylePresetField.js +462 -0
- package/dist/fields/StylePresetField.js.map +1 -0
- package/dist/fields/ThemeColorPickerField.css +115 -35
- package/dist/fields/ThemeColorPickerField.d.ts.map +1 -1
- package/dist/fields/ThemeColorPickerField.js +204 -70
- package/dist/fields/ThemeColorPickerField.js.map +1 -1
- package/dist/fields/ThemeExportField.d.ts +6 -0
- package/dist/fields/ThemeExportField.d.ts.map +1 -0
- package/dist/fields/ThemeExportField.js +202 -0
- package/dist/fields/ThemeExportField.js.map +1 -0
- package/dist/fields/ThemePresetImportField.d.ts.map +1 -1
- package/dist/fields/ThemePresetImportField.js +56 -25
- package/dist/fields/ThemePresetImportField.js.map +1 -1
- package/dist/fields/ThemePreviewField.css +382 -5
- package/dist/fields/ThemePreviewField.d.ts.map +1 -1
- package/dist/fields/ThemePreviewField.js +268 -170
- package/dist/fields/ThemePreviewField.js.map +1 -1
- package/dist/fields/ThemeTokenSelectField.d.ts.map +1 -1
- package/dist/fields/ThemeTokenSelectField.js +278 -80
- package/dist/fields/ThemeTokenSelectField.js.map +1 -1
- package/dist/fields/colorFieldHelpers.d.ts +90 -0
- package/dist/fields/colorFieldHelpers.d.ts.map +1 -0
- package/dist/fields/colorFieldHelpers.js +133 -0
- package/dist/fields/colorFieldHelpers.js.map +1 -0
- package/dist/fields/colorModeFields.d.ts +1 -1
- package/dist/fields/colorModeFields.d.ts.map +1 -1
- package/dist/fields/colorModeFields.js +49 -7
- package/dist/fields/colorModeFields.js.map +1 -1
- package/dist/fields/themeConfigurationField.d.ts +8 -1
- package/dist/fields/themeConfigurationField.d.ts.map +1 -1
- package/dist/fields/themeConfigurationField.js +961 -29
- package/dist/fields/themeConfigurationField.js.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/FontPreview.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/FontPreview.js +8 -4
- package/dist/globals/ThemeSettings/FontPicker/FontPreview.js.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/index.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/index.js +81 -26
- package/dist/globals/ThemeSettings/FontPicker/index.js.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/styles.css +98 -41
- package/dist/globals/ThemeSettings/FontPicker/translations.d.ts +6 -0
- package/dist/globals/ThemeSettings/FontPicker/translations.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/FontPicker/translations.js +14 -2
- package/dist/globals/ThemeSettings/FontPicker/translations.js.map +1 -1
- package/dist/globals/ThemeSettings/config.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/config.js +76 -79
- package/dist/globals/ThemeSettings/config.js.map +1 -1
- package/dist/globals/ThemeSettings/fields/FontLoadingGuideField.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/fields/FontLoadingGuideField.js +63 -62
- package/dist/globals/ThemeSettings/fields/FontLoadingGuideField.js.map +1 -1
- package/dist/globals/ThemeSettings/fields/TypographyInfoField.d.ts.map +1 -1
- package/dist/globals/ThemeSettings/fields/TypographyInfoField.js +22 -25
- package/dist/globals/ThemeSettings/fields/TypographyInfoField.js.map +1 -1
- package/dist/hooks/useAppearanceSession.d.ts +50 -0
- package/dist/hooks/useAppearanceSession.d.ts.map +1 -0
- package/dist/hooks/useAppearanceSession.js +91 -0
- package/dist/hooks/useAppearanceSession.js.map +1 -0
- package/dist/hooks/useThemeTranslations.d.ts +13 -0
- package/dist/hooks/useThemeTranslations.d.ts.map +1 -0
- package/dist/hooks/useThemeTranslations.js +22 -0
- package/dist/hooks/useThemeTranslations.js.map +1 -0
- package/dist/i18n.d.ts +53 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +53 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +130 -32
- package/dist/index.js.map +1 -1
- package/dist/payload-types.d.ts +24 -0
- package/dist/payload-types.d.ts.map +1 -1
- package/dist/payload-types.js.map +1 -1
- package/dist/presets.d.ts +8 -0
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js.map +1 -1
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +75 -11
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/Theme/themeConfig.d.ts.map +1 -1
- package/dist/providers/Theme/themeConfig.js +104 -0
- package/dist/providers/Theme/themeConfig.js.map +1 -1
- package/dist/providers/Theme/types.d.ts +1 -1
- package/dist/providers/Theme/types.d.ts.map +1 -1
- package/dist/providers/Theme/types.js +10 -1
- package/dist/providers/Theme/types.js.map +1 -1
- package/dist/style-presets.d.ts +66 -0
- package/dist/style-presets.d.ts.map +1 -0
- package/dist/style-presets.js +556 -0
- package/dist/style-presets.js.map +1 -0
- package/dist/translations.d.ts +159 -1
- package/dist/translations.d.ts.map +1 -1
- package/dist/translations.js +310 -9
- package/dist/translations.js.map +1 -1
- package/dist/tweakcn-special-themes.d.ts.map +1 -1
- package/dist/tweakcn-special-themes.js +585 -9
- package/dist/tweakcn-special-themes.js.map +1 -1
- package/dist/types/css.d.js +3 -0
- package/dist/types/css.d.js.map +1 -0
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/getThemeSettings.d.ts.map +1 -1
- package/dist/utilities/getThemeSettings.js +2 -14
- package/dist/utilities/getThemeSettings.js.map +1 -1
- package/dist/utils/contrast.d.ts +63 -0
- package/dist/utils/contrast.d.ts.map +1 -0
- package/dist/utils/contrast.js +158 -0
- package/dist/utils/contrast.js.map +1 -0
- package/dist/utils/exportTokens.d.ts +30 -0
- package/dist/utils/exportTokens.d.ts.map +1 -0
- package/dist/utils/exportTokens.js +183 -0
- package/dist/utils/exportTokens.js.map +1 -0
- package/dist/utils/generatePalette.d.ts +46 -0
- package/dist/utils/generatePalette.d.ts.map +1 -0
- package/dist/utils/generatePalette.js +127 -0
- package/dist/utils/generatePalette.js.map +1 -0
- package/dist/utils/generateThemeCSS.d.ts.map +1 -1
- package/dist/utils/generateThemeCSS.js +2 -40
- package/dist/utils/generateThemeCSS.js.map +1 -1
- package/dist/utils/livePreviewThemeRuntime.d.ts +16 -2
- package/dist/utils/livePreviewThemeRuntime.d.ts.map +1 -1
- package/dist/utils/livePreviewThemeRuntime.js +37 -14
- package/dist/utils/livePreviewThemeRuntime.js.map +1 -1
- package/dist/utils/localizedText.d.ts +8 -0
- package/dist/utils/localizedText.d.ts.map +1 -0
- package/dist/utils/localizedText.js +21 -0
- package/dist/utils/localizedText.js.map +1 -0
- package/dist/utils/resolveThemeConfiguration.d.ts +45 -1
- package/dist/utils/resolveThemeConfiguration.d.ts.map +1 -1
- package/dist/utils/resolveThemeConfiguration.js +12 -5
- package/dist/utils/resolveThemeConfiguration.js.map +1 -1
- package/dist/utils/themeColors.d.ts +3 -0
- package/dist/utils/themeColors.d.ts.map +1 -1
- package/dist/utils/themeColors.js +30 -1
- package/dist/utils/themeColors.js.map +1 -1
- package/dist/utils/themeHtmlAttributes.d.ts +32 -12
- package/dist/utils/themeHtmlAttributes.d.ts.map +1 -1
- package/dist/utils/themeHtmlAttributes.js +38 -5
- package/dist/utils/themeHtmlAttributes.js.map +1 -1
- package/dist/utils/themeUtils.d.ts +3 -5
- package/dist/utils/themeUtils.d.ts.map +1 -1
- package/dist/utils/themeUtils.js +416 -6
- package/dist/utils/themeUtils.js.map +1 -1
- package/dist/utils/tweakcnConverter.d.ts +1 -3
- package/dist/utils/tweakcnConverter.d.ts.map +1 -1
- package/dist/utils/tweakcnConverter.js +1 -3
- package/dist/utils/tweakcnConverter.js.map +1 -1
- package/package.json +11 -5
- package/dist/components/ThemePreview.d.ts +0 -3
- package/dist/components/ThemePreview.d.ts.map +0 -1
- package/dist/components/ThemePreview.js +0 -321
- package/dist/components/ThemePreview.js.map +0 -1
- package/dist/plugin.d.ts +0 -2
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -3
- package/dist/plugin.js.map +0 -1
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import { BASE_FONT_SIZE_OPTIONS, BODY_FONT_OPTIONS, HEADING_FONT_OPTIONS, LINE_HEIGHT_OPTIONS } from '../constants/themeFonts.js';
|
|
2
|
+
import { getTranslations } from '../translations.js';
|
|
2
3
|
import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
3
4
|
/**
|
|
4
5
|
* Theme Configuration Field with Theme Selection as default value setter
|
|
5
6
|
* Theme Selection populates lightMode/darkMode colors automatically
|
|
6
7
|
*/ export function createThemeConfigurationField(options) {
|
|
7
|
-
const { themePresets, defaultTheme, includeColorModeToggle, includeCustomCSS, enableAdvancedFeatures = true, useThemePreviewField = true } = options;
|
|
8
|
+
const { themePresets, defaultTheme, includeColorModeToggle, includeCustomCSS, enableAdvancedFeatures = true, useThemePreviewField = true, customThemeConfigurationFields, customThemeConfigurationSections } = options;
|
|
8
9
|
const fields = [
|
|
10
|
+
// NOTE: the palette generator is rendered *inside* ThemePreviewField (in the
|
|
11
|
+
// preset column, above the preset list) — it is not a separate UI field.
|
|
9
12
|
{
|
|
10
13
|
name: 'theme',
|
|
11
14
|
type: 'text',
|
|
12
15
|
required: true,
|
|
13
16
|
defaultValue: defaultTheme,
|
|
14
17
|
label: {
|
|
15
|
-
en: '
|
|
16
|
-
cs: '
|
|
18
|
+
en: 'Theme Selection',
|
|
19
|
+
cs: 'Výběr motivu'
|
|
17
20
|
},
|
|
18
|
-
validate: (value)=>{
|
|
21
|
+
validate: (value, options)=>{
|
|
19
22
|
if (typeof value === 'string' && value.trim().length > 0) {
|
|
20
23
|
return true;
|
|
21
24
|
}
|
|
22
|
-
return
|
|
25
|
+
return getTranslations(options?.req?.i18n?.language ?? 'en').ui.selectThemeError;
|
|
23
26
|
},
|
|
24
27
|
admin: {
|
|
25
28
|
description: {
|
|
26
|
-
en: '
|
|
27
|
-
cs: 'Vyberte
|
|
29
|
+
en: 'Pick a theme to fill in the colours. You can fine-tune them afterwards.',
|
|
30
|
+
cs: 'Vyberte motiv a barvy se předvyplní. Potom je můžete dál upravovat.'
|
|
28
31
|
},
|
|
29
32
|
components: {
|
|
30
33
|
Field: '@kilivi/payloadcms-theme-management/fields/ThemePreviewField'
|
|
@@ -36,6 +39,50 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
];
|
|
42
|
+
// Live preview: colours, fonts and component styles in one place. On wide admins
|
|
43
|
+
// it occupies a sticky right-hand column spanning the whole tab (see
|
|
44
|
+
// ThemePreviewField.css, `.tm-appearance`); on narrow ones it follows the theme picker.
|
|
45
|
+
fields.push({
|
|
46
|
+
name: 'appearancePreview',
|
|
47
|
+
type: 'ui',
|
|
48
|
+
admin: {
|
|
49
|
+
components: {
|
|
50
|
+
Field: '@kilivi/payloadcms-theme-management/fields/AppearancePreviewField'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
// Style Preset - visual style selection independent of colors
|
|
55
|
+
fields.push({
|
|
56
|
+
type: 'collapsible',
|
|
57
|
+
label: {
|
|
58
|
+
en: 'Style Preset',
|
|
59
|
+
cs: 'Styl vzhledu'
|
|
60
|
+
},
|
|
61
|
+
admin: {
|
|
62
|
+
initCollapsed: true,
|
|
63
|
+
className: 'tm-section-style-preset',
|
|
64
|
+
description: {
|
|
65
|
+
en: 'Choose a visual style (Brutalism, Swiss, Glassmorphism …) without changing the colour palette.',
|
|
66
|
+
cs: 'Zvolte vizuální styl (Brutalismus, Švýcarský, Glassmorphism …) bez změny barevné palety.'
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
fields: [
|
|
70
|
+
{
|
|
71
|
+
name: 'stylePreset',
|
|
72
|
+
type: 'text',
|
|
73
|
+
label: {
|
|
74
|
+
en: 'Active Style Preset',
|
|
75
|
+
cs: 'Aktivní styl vzhledu'
|
|
76
|
+
},
|
|
77
|
+
defaultValue: '',
|
|
78
|
+
admin: {
|
|
79
|
+
components: {
|
|
80
|
+
Field: '@kilivi/payloadcms-theme-management/fields/StylePresetField'
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
});
|
|
39
86
|
// Border Radius Configuration - Always visible
|
|
40
87
|
fields.push({
|
|
41
88
|
type: 'row',
|
|
@@ -44,8 +91,8 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
44
91
|
name: 'borderRadius',
|
|
45
92
|
type: 'select',
|
|
46
93
|
label: {
|
|
47
|
-
en: '
|
|
48
|
-
cs: '
|
|
94
|
+
en: 'Border Radius',
|
|
95
|
+
cs: 'Zaoblení rohů'
|
|
49
96
|
},
|
|
50
97
|
defaultValue: 'medium',
|
|
51
98
|
options: [
|
|
@@ -98,8 +145,8 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
98
145
|
name: 'spacing',
|
|
99
146
|
type: 'select',
|
|
100
147
|
label: {
|
|
101
|
-
en: '
|
|
102
|
-
cs: '
|
|
148
|
+
en: 'Spacing Scale',
|
|
149
|
+
cs: 'Škála rozestupů'
|
|
103
150
|
},
|
|
104
151
|
defaultValue: 'medium',
|
|
105
152
|
options: [
|
|
@@ -141,14 +188,15 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
141
188
|
fields.push({
|
|
142
189
|
type: 'collapsible',
|
|
143
190
|
label: {
|
|
144
|
-
en: '
|
|
145
|
-
cs: '
|
|
191
|
+
en: 'Color Mode Settings',
|
|
192
|
+
cs: 'Nastavení barevného režimu'
|
|
146
193
|
},
|
|
147
194
|
admin: {
|
|
148
|
-
|
|
195
|
+
// Fine-tuning: collapsed by default so presets and the preview lead the tab.
|
|
196
|
+
initCollapsed: true,
|
|
149
197
|
description: {
|
|
150
|
-
en: '
|
|
151
|
-
cs: '
|
|
198
|
+
en: 'Individual light and dark mode colours. Edits here take precedence over the theme.',
|
|
199
|
+
cs: 'Jednotlivé barvy světlého a tmavého režimu. Úpravy zde mají přednost před motivem.'
|
|
152
200
|
}
|
|
153
201
|
},
|
|
154
202
|
fields: [
|
|
@@ -214,7 +262,25 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
214
262
|
]
|
|
215
263
|
},
|
|
216
264
|
lightModeField,
|
|
217
|
-
darkModeField
|
|
265
|
+
darkModeField,
|
|
266
|
+
{
|
|
267
|
+
name: 'accessibilityAudit',
|
|
268
|
+
type: 'ui',
|
|
269
|
+
admin: {
|
|
270
|
+
components: {
|
|
271
|
+
Field: '@kilivi/payloadcms-theme-management/fields/AccessibilityAuditField'
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: 'themeExport',
|
|
277
|
+
type: 'ui',
|
|
278
|
+
admin: {
|
|
279
|
+
components: {
|
|
280
|
+
Field: '@kilivi/payloadcms-theme-management/fields/ThemeExportField'
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
218
284
|
]
|
|
219
285
|
});
|
|
220
286
|
}
|
|
@@ -222,11 +288,12 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
222
288
|
fields.push({
|
|
223
289
|
type: 'collapsible',
|
|
224
290
|
label: {
|
|
225
|
-
en: '
|
|
226
|
-
cs: '
|
|
291
|
+
en: 'Typography',
|
|
292
|
+
cs: 'Typografie'
|
|
227
293
|
},
|
|
228
294
|
admin: {
|
|
229
295
|
initCollapsed: true,
|
|
296
|
+
className: 'tm-section-typography',
|
|
230
297
|
description: {
|
|
231
298
|
en: 'Choose font families and base typography settings. Leave fields on "Use preset" to inherit the theme defaults.',
|
|
232
299
|
cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota "Použít výchozí" zachová nastavení motivu.'
|
|
@@ -365,11 +432,12 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
365
432
|
const customPresetsField = {
|
|
366
433
|
type: 'collapsible',
|
|
367
434
|
label: {
|
|
368
|
-
en: '
|
|
369
|
-
cs: '
|
|
435
|
+
en: 'Custom Theme Presets',
|
|
436
|
+
cs: 'Vlastní motivy'
|
|
370
437
|
},
|
|
371
438
|
admin: {
|
|
372
439
|
initCollapsed: true,
|
|
440
|
+
className: 'tm-section-custom-presets',
|
|
373
441
|
description: {
|
|
374
442
|
en: 'Import additional theme presets via JSON to extend or override the defaults. These presets become available instantly in the Theme Selection above.',
|
|
375
443
|
cs: 'Importujte další motivy pomocí JSONu a rozšiřte nebo přepište výchozí nabídku. Motivy budou ihned k dispozici ve výběru výše.'
|
|
@@ -386,7 +454,7 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
386
454
|
admin: {
|
|
387
455
|
description: {
|
|
388
456
|
en: 'Paste or import an array (or object map) of theme presets. Each entry should include at least a unique "name" and "label" with optional lightMode/darkMode colors.',
|
|
389
|
-
cs: 'Vložte nebo importujte pole (či objekt) motivů. Každý motiv musí mít unikátní „name“ a „label“ a volitelně barvy pro
|
|
457
|
+
cs: 'Vložte nebo importujte pole (či objekt) motivů. Každý motiv musí mít unikátní „name“ a „label“ a volitelně barvy pro světlý a tmavý režim.'
|
|
390
458
|
},
|
|
391
459
|
components: {
|
|
392
460
|
Field: '@kilivi/payloadcms-theme-management/fields/ThemePresetImportField'
|
|
@@ -396,6 +464,868 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
396
464
|
]
|
|
397
465
|
};
|
|
398
466
|
fields.push(customPresetsField);
|
|
467
|
+
// Visual Effects — glassmorphism, shadows, border style
|
|
468
|
+
fields.push({
|
|
469
|
+
type: 'collapsible',
|
|
470
|
+
label: {
|
|
471
|
+
en: 'Visual Effects',
|
|
472
|
+
cs: 'Vizuální efekty'
|
|
473
|
+
},
|
|
474
|
+
admin: {
|
|
475
|
+
initCollapsed: true,
|
|
476
|
+
className: 'tm-section-effects',
|
|
477
|
+
description: {
|
|
478
|
+
en: 'Configure UI effect style, shadow intensity and border appearance.',
|
|
479
|
+
cs: 'Nastavte styl efektů UI, intenzitu stínů a vzhled okrajů.'
|
|
480
|
+
}
|
|
481
|
+
},
|
|
482
|
+
fields: [
|
|
483
|
+
{
|
|
484
|
+
name: 'visualEffects',
|
|
485
|
+
type: 'group',
|
|
486
|
+
fields: [
|
|
487
|
+
{
|
|
488
|
+
type: 'row',
|
|
489
|
+
fields: [
|
|
490
|
+
{
|
|
491
|
+
name: 'effectStyle',
|
|
492
|
+
type: 'select',
|
|
493
|
+
label: {
|
|
494
|
+
en: 'Effect Style',
|
|
495
|
+
cs: 'Styl efektů'
|
|
496
|
+
},
|
|
497
|
+
defaultValue: 'flat',
|
|
498
|
+
options: [
|
|
499
|
+
{
|
|
500
|
+
label: {
|
|
501
|
+
en: 'Flat',
|
|
502
|
+
cs: 'Plochý'
|
|
503
|
+
},
|
|
504
|
+
value: 'flat'
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
label: {
|
|
508
|
+
en: 'Elevated (Box shadows)',
|
|
509
|
+
cs: 'Vyvýšený (stíny)'
|
|
510
|
+
},
|
|
511
|
+
value: 'elevated'
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
label: {
|
|
515
|
+
en: 'Glassmorphism (Frosted glass)',
|
|
516
|
+
cs: 'Glassmorphism (mléčné sklo)'
|
|
517
|
+
},
|
|
518
|
+
value: 'glass'
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
label: {
|
|
522
|
+
en: 'Neumorphism (Soft UI)',
|
|
523
|
+
cs: 'Neumorphism (měkké UI)'
|
|
524
|
+
},
|
|
525
|
+
value: 'neumorphic'
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
label: {
|
|
529
|
+
en: 'Claymorphism (Clay-like)',
|
|
530
|
+
cs: 'Claymorphism (hlína)'
|
|
531
|
+
},
|
|
532
|
+
value: 'clay'
|
|
533
|
+
}
|
|
534
|
+
],
|
|
535
|
+
admin: {
|
|
536
|
+
description: {
|
|
537
|
+
en: 'Visual style applied to cards, panels and interactive elements.',
|
|
538
|
+
cs: 'Vizuální styl karet, panelů a interaktivních prvků.'
|
|
539
|
+
},
|
|
540
|
+
width: '50%'
|
|
541
|
+
},
|
|
542
|
+
dbName: 'effect_style'
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
name: 'shadowIntensity',
|
|
546
|
+
type: 'select',
|
|
547
|
+
label: {
|
|
548
|
+
en: 'Shadow Intensity',
|
|
549
|
+
cs: 'Intenzita stínů'
|
|
550
|
+
},
|
|
551
|
+
defaultValue: 'medium',
|
|
552
|
+
options: [
|
|
553
|
+
{
|
|
554
|
+
label: {
|
|
555
|
+
en: 'None',
|
|
556
|
+
cs: 'Žádné'
|
|
557
|
+
},
|
|
558
|
+
value: 'none'
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
label: {
|
|
562
|
+
en: 'Subtle',
|
|
563
|
+
cs: 'Jemné'
|
|
564
|
+
},
|
|
565
|
+
value: 'subtle'
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
label: {
|
|
569
|
+
en: 'Medium',
|
|
570
|
+
cs: 'Střední'
|
|
571
|
+
},
|
|
572
|
+
value: 'medium'
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
label: {
|
|
576
|
+
en: 'Strong',
|
|
577
|
+
cs: 'Silné'
|
|
578
|
+
},
|
|
579
|
+
value: 'strong'
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
label: {
|
|
583
|
+
en: 'Dramatic',
|
|
584
|
+
cs: 'Dramatické'
|
|
585
|
+
},
|
|
586
|
+
value: 'dramatic'
|
|
587
|
+
}
|
|
588
|
+
],
|
|
589
|
+
admin: {
|
|
590
|
+
description: {
|
|
591
|
+
en: 'Global shadow depth for elevated elements.',
|
|
592
|
+
cs: 'Globální hloubka stínů pro vyvýšené prvky.'
|
|
593
|
+
},
|
|
594
|
+
width: '50%'
|
|
595
|
+
},
|
|
596
|
+
dbName: 'shadow_intensity'
|
|
597
|
+
}
|
|
598
|
+
]
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
type: 'row',
|
|
602
|
+
fields: [
|
|
603
|
+
{
|
|
604
|
+
name: 'backdropBlur',
|
|
605
|
+
type: 'select',
|
|
606
|
+
label: {
|
|
607
|
+
en: 'Backdrop Blur',
|
|
608
|
+
cs: 'Rozmazání pozadí'
|
|
609
|
+
},
|
|
610
|
+
defaultValue: 'none',
|
|
611
|
+
options: [
|
|
612
|
+
{
|
|
613
|
+
label: {
|
|
614
|
+
en: 'None',
|
|
615
|
+
cs: 'Žádné'
|
|
616
|
+
},
|
|
617
|
+
value: 'none'
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
label: {
|
|
621
|
+
en: 'Slight (4px)',
|
|
622
|
+
cs: 'Jemné (4px)'
|
|
623
|
+
},
|
|
624
|
+
value: 'slight'
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
label: {
|
|
628
|
+
en: 'Medium (8px)',
|
|
629
|
+
cs: 'Střední (8px)'
|
|
630
|
+
},
|
|
631
|
+
value: 'medium'
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
label: {
|
|
635
|
+
en: 'Strong (16px)',
|
|
636
|
+
cs: 'Silné (16px)'
|
|
637
|
+
},
|
|
638
|
+
value: 'strong'
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
label: {
|
|
642
|
+
en: 'Heavy (24px)',
|
|
643
|
+
cs: 'Intenzivní (24px)'
|
|
644
|
+
},
|
|
645
|
+
value: 'heavy'
|
|
646
|
+
}
|
|
647
|
+
],
|
|
648
|
+
admin: {
|
|
649
|
+
description: {
|
|
650
|
+
en: 'Blur effect behind translucent elements (requires glass effect style).',
|
|
651
|
+
cs: 'Rozmazání za průhledné prvky (vyžaduje styl skla).'
|
|
652
|
+
},
|
|
653
|
+
width: '50%'
|
|
654
|
+
},
|
|
655
|
+
dbName: 'backdrop_blur'
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
name: 'borderStyle',
|
|
659
|
+
type: 'select',
|
|
660
|
+
label: {
|
|
661
|
+
en: 'Border Style',
|
|
662
|
+
cs: 'Styl okrajů'
|
|
663
|
+
},
|
|
664
|
+
defaultValue: 'solid',
|
|
665
|
+
options: [
|
|
666
|
+
{
|
|
667
|
+
label: {
|
|
668
|
+
en: 'None',
|
|
669
|
+
cs: 'Žádné'
|
|
670
|
+
},
|
|
671
|
+
value: 'none'
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
label: {
|
|
675
|
+
en: 'Solid',
|
|
676
|
+
cs: 'Plné'
|
|
677
|
+
},
|
|
678
|
+
value: 'solid'
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
label: {
|
|
682
|
+
en: 'Dashed',
|
|
683
|
+
cs: 'Čárkované'
|
|
684
|
+
},
|
|
685
|
+
value: 'dashed'
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
label: {
|
|
689
|
+
en: 'Dotted',
|
|
690
|
+
cs: 'Tečkované'
|
|
691
|
+
},
|
|
692
|
+
value: 'dotted'
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
label: {
|
|
696
|
+
en: 'Double',
|
|
697
|
+
cs: 'Dvojité'
|
|
698
|
+
},
|
|
699
|
+
value: 'double'
|
|
700
|
+
}
|
|
701
|
+
],
|
|
702
|
+
admin: {
|
|
703
|
+
description: {
|
|
704
|
+
en: 'Default border style for cards, inputs and dividers.',
|
|
705
|
+
cs: 'Výchozí styl okrajů pro karty, vstupy a oddělovače.'
|
|
706
|
+
},
|
|
707
|
+
width: '50%'
|
|
708
|
+
},
|
|
709
|
+
dbName: 'border_style'
|
|
710
|
+
}
|
|
711
|
+
]
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
type: 'row',
|
|
715
|
+
fields: [
|
|
716
|
+
{
|
|
717
|
+
name: 'borderWidth',
|
|
718
|
+
type: 'select',
|
|
719
|
+
label: {
|
|
720
|
+
en: 'Border Width',
|
|
721
|
+
cs: 'Tloušťka okraje'
|
|
722
|
+
},
|
|
723
|
+
defaultValue: '1px',
|
|
724
|
+
options: [
|
|
725
|
+
{
|
|
726
|
+
label: '0px',
|
|
727
|
+
value: '0px'
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
label: '1px',
|
|
731
|
+
value: '1px'
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
label: '2px',
|
|
735
|
+
value: '2px'
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
label: '3px',
|
|
739
|
+
value: '3px'
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
label: '4px',
|
|
743
|
+
value: '4px'
|
|
744
|
+
}
|
|
745
|
+
],
|
|
746
|
+
admin: {
|
|
747
|
+
width: '50%'
|
|
748
|
+
},
|
|
749
|
+
dbName: 'border_width'
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
name: 'glassOpacity',
|
|
753
|
+
type: 'number',
|
|
754
|
+
label: {
|
|
755
|
+
en: 'Glass Opacity (%)',
|
|
756
|
+
cs: 'Průhlednost skla (%)'
|
|
757
|
+
},
|
|
758
|
+
defaultValue: 60,
|
|
759
|
+
min: 0,
|
|
760
|
+
max: 100,
|
|
761
|
+
admin: {
|
|
762
|
+
description: {
|
|
763
|
+
en: 'Card/panel opacity when using glass effect (0 = fully transparent, 100 = opaque).',
|
|
764
|
+
cs: 'Průhlednost karet/panelů při skleněném efektu (0 = plně průhledné, 100 = neprůhledné).'
|
|
765
|
+
},
|
|
766
|
+
width: '50%',
|
|
767
|
+
condition: (_, siblingData)=>siblingData?.effectStyle === 'glass'
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
]
|
|
771
|
+
}
|
|
772
|
+
]
|
|
773
|
+
}
|
|
774
|
+
]
|
|
775
|
+
});
|
|
776
|
+
// Component Styles — buttons, cards, images, icons
|
|
777
|
+
fields.push({
|
|
778
|
+
type: 'collapsible',
|
|
779
|
+
label: {
|
|
780
|
+
en: 'Component Styles',
|
|
781
|
+
cs: 'Styly komponent'
|
|
782
|
+
},
|
|
783
|
+
admin: {
|
|
784
|
+
initCollapsed: true,
|
|
785
|
+
className: 'tm-section-components',
|
|
786
|
+
description: {
|
|
787
|
+
en: 'Customize button variant, card style and navbar appearance.',
|
|
788
|
+
cs: 'Přizpůsobte styl tlačítek, karet a navigační lišty.'
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
fields: [
|
|
792
|
+
{
|
|
793
|
+
name: 'componentStyles',
|
|
794
|
+
type: 'group',
|
|
795
|
+
fields: [
|
|
796
|
+
{
|
|
797
|
+
type: 'row',
|
|
798
|
+
fields: [
|
|
799
|
+
{
|
|
800
|
+
name: 'buttonVariant',
|
|
801
|
+
type: 'select',
|
|
802
|
+
label: {
|
|
803
|
+
en: 'Primary Button Style',
|
|
804
|
+
cs: 'Styl primárního tlačítka'
|
|
805
|
+
},
|
|
806
|
+
defaultValue: 'filled',
|
|
807
|
+
options: [
|
|
808
|
+
{
|
|
809
|
+
label: {
|
|
810
|
+
en: 'Filled (solid)',
|
|
811
|
+
cs: 'Plné (solid)'
|
|
812
|
+
},
|
|
813
|
+
value: 'filled'
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
label: {
|
|
817
|
+
en: 'Outlined',
|
|
818
|
+
cs: 'Ohraničené'
|
|
819
|
+
},
|
|
820
|
+
value: 'outlined'
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
label: {
|
|
824
|
+
en: 'Ghost (transparent)',
|
|
825
|
+
cs: 'Průhledné'
|
|
826
|
+
},
|
|
827
|
+
value: 'ghost'
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
label: {
|
|
831
|
+
en: 'Gradient',
|
|
832
|
+
cs: 'Přechodové'
|
|
833
|
+
},
|
|
834
|
+
value: 'gradient'
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
label: {
|
|
838
|
+
en: 'Pill (full rounded)',
|
|
839
|
+
cs: 'Pill (plné zaoblení)'
|
|
840
|
+
},
|
|
841
|
+
value: 'pill'
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
label: {
|
|
845
|
+
en: 'Brutalist (thick border)',
|
|
846
|
+
cs: 'Brutalistické (silný okraj)'
|
|
847
|
+
},
|
|
848
|
+
value: 'brutal'
|
|
849
|
+
}
|
|
850
|
+
],
|
|
851
|
+
admin: {
|
|
852
|
+
description: {
|
|
853
|
+
en: 'Default visual style of primary action buttons.',
|
|
854
|
+
cs: 'Výchozí vizuální styl primárních tlačítek.'
|
|
855
|
+
},
|
|
856
|
+
width: '50%'
|
|
857
|
+
},
|
|
858
|
+
dbName: 'button_variant'
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
name: 'buttonSize',
|
|
862
|
+
type: 'select',
|
|
863
|
+
label: {
|
|
864
|
+
en: 'Button Size',
|
|
865
|
+
cs: 'Velikost tlačítka'
|
|
866
|
+
},
|
|
867
|
+
defaultValue: 'medium',
|
|
868
|
+
options: [
|
|
869
|
+
{
|
|
870
|
+
label: {
|
|
871
|
+
en: 'Small',
|
|
872
|
+
cs: 'Malé'
|
|
873
|
+
},
|
|
874
|
+
value: 'small'
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
label: {
|
|
878
|
+
en: 'Medium',
|
|
879
|
+
cs: 'Střední'
|
|
880
|
+
},
|
|
881
|
+
value: 'medium'
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
label: {
|
|
885
|
+
en: 'Large',
|
|
886
|
+
cs: 'Velké'
|
|
887
|
+
},
|
|
888
|
+
value: 'large'
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
label: {
|
|
892
|
+
en: 'XL',
|
|
893
|
+
cs: 'XL'
|
|
894
|
+
},
|
|
895
|
+
value: 'xl'
|
|
896
|
+
}
|
|
897
|
+
],
|
|
898
|
+
admin: {
|
|
899
|
+
description: {
|
|
900
|
+
en: 'Default padding / font-size of buttons.',
|
|
901
|
+
cs: 'Výchozí odsazení a velikost písma tlačítek.'
|
|
902
|
+
},
|
|
903
|
+
width: '50%'
|
|
904
|
+
},
|
|
905
|
+
dbName: 'button_size'
|
|
906
|
+
}
|
|
907
|
+
]
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
type: 'row',
|
|
911
|
+
fields: [
|
|
912
|
+
{
|
|
913
|
+
name: 'cardStyle',
|
|
914
|
+
type: 'select',
|
|
915
|
+
label: {
|
|
916
|
+
en: 'Card Style',
|
|
917
|
+
cs: 'Styl karet'
|
|
918
|
+
},
|
|
919
|
+
defaultValue: 'elevated',
|
|
920
|
+
options: [
|
|
921
|
+
{
|
|
922
|
+
label: {
|
|
923
|
+
en: 'Elevated (shadow)',
|
|
924
|
+
cs: 'Vyvýšené (stín)'
|
|
925
|
+
},
|
|
926
|
+
value: 'elevated'
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
label: {
|
|
930
|
+
en: 'Flat (no shadow)',
|
|
931
|
+
cs: 'Ploché (bez stínu)'
|
|
932
|
+
},
|
|
933
|
+
value: 'flat'
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
label: {
|
|
937
|
+
en: 'Bordered',
|
|
938
|
+
cs: 'S okrajem'
|
|
939
|
+
},
|
|
940
|
+
value: 'bordered'
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
label: {
|
|
944
|
+
en: 'Glass',
|
|
945
|
+
cs: 'Skleněné'
|
|
946
|
+
},
|
|
947
|
+
value: 'glass'
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
label: {
|
|
951
|
+
en: 'Neumorphic',
|
|
952
|
+
cs: 'Neumorfní'
|
|
953
|
+
},
|
|
954
|
+
value: 'neumorphic'
|
|
955
|
+
},
|
|
956
|
+
{
|
|
957
|
+
label: {
|
|
958
|
+
en: 'Gradient border',
|
|
959
|
+
cs: 'Přechodový okraj'
|
|
960
|
+
},
|
|
961
|
+
value: 'gradient-border'
|
|
962
|
+
}
|
|
963
|
+
],
|
|
964
|
+
admin: {
|
|
965
|
+
description: {
|
|
966
|
+
en: 'Default card/panel visual style across the website.',
|
|
967
|
+
cs: 'Výchozí vizuální styl karet a panelů na webu.'
|
|
968
|
+
},
|
|
969
|
+
width: '50%'
|
|
970
|
+
},
|
|
971
|
+
dbName: 'card_style'
|
|
972
|
+
},
|
|
973
|
+
{
|
|
974
|
+
name: 'cardHoverEffect',
|
|
975
|
+
type: 'select',
|
|
976
|
+
label: {
|
|
977
|
+
en: 'Card Hover Effect',
|
|
978
|
+
cs: 'Efekt při najetí na kartu'
|
|
979
|
+
},
|
|
980
|
+
defaultValue: 'lift',
|
|
981
|
+
options: [
|
|
982
|
+
{
|
|
983
|
+
label: {
|
|
984
|
+
en: 'None',
|
|
985
|
+
cs: 'Žádný'
|
|
986
|
+
},
|
|
987
|
+
value: 'none'
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
label: {
|
|
991
|
+
en: 'Lift (translate up)',
|
|
992
|
+
cs: 'Zvednutí (posun nahoru)'
|
|
993
|
+
},
|
|
994
|
+
value: 'lift'
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
label: {
|
|
998
|
+
en: 'Scale up',
|
|
999
|
+
cs: 'Zvětšení'
|
|
1000
|
+
},
|
|
1001
|
+
value: 'scale'
|
|
1002
|
+
},
|
|
1003
|
+
{
|
|
1004
|
+
label: {
|
|
1005
|
+
en: 'Shadow grow',
|
|
1006
|
+
cs: 'Větší stín'
|
|
1007
|
+
},
|
|
1008
|
+
value: 'shadow'
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
label: {
|
|
1012
|
+
en: 'Border glow',
|
|
1013
|
+
cs: 'Zářící okraj'
|
|
1014
|
+
},
|
|
1015
|
+
value: 'glow'
|
|
1016
|
+
},
|
|
1017
|
+
{
|
|
1018
|
+
label: {
|
|
1019
|
+
en: 'Tilt 3D',
|
|
1020
|
+
cs: '3D náklon'
|
|
1021
|
+
},
|
|
1022
|
+
value: 'tilt'
|
|
1023
|
+
}
|
|
1024
|
+
],
|
|
1025
|
+
admin: {
|
|
1026
|
+
width: '50%'
|
|
1027
|
+
},
|
|
1028
|
+
dbName: 'card_hover_effect'
|
|
1029
|
+
}
|
|
1030
|
+
]
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
type: 'row',
|
|
1034
|
+
fields: [
|
|
1035
|
+
{
|
|
1036
|
+
name: 'navbarStyle',
|
|
1037
|
+
type: 'select',
|
|
1038
|
+
label: {
|
|
1039
|
+
en: 'Navbar Style',
|
|
1040
|
+
cs: 'Styl navigace'
|
|
1041
|
+
},
|
|
1042
|
+
defaultValue: 'solid',
|
|
1043
|
+
options: [
|
|
1044
|
+
{
|
|
1045
|
+
label: {
|
|
1046
|
+
en: 'Solid',
|
|
1047
|
+
cs: 'Plná'
|
|
1048
|
+
},
|
|
1049
|
+
value: 'solid'
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
label: {
|
|
1053
|
+
en: 'Transparent (on hero)',
|
|
1054
|
+
cs: 'Průhledná (nad hero)'
|
|
1055
|
+
},
|
|
1056
|
+
value: 'transparent'
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
label: {
|
|
1060
|
+
en: 'Blurred glass',
|
|
1061
|
+
cs: 'Rozmazané sklo'
|
|
1062
|
+
},
|
|
1063
|
+
value: 'blur'
|
|
1064
|
+
},
|
|
1065
|
+
{
|
|
1066
|
+
label: {
|
|
1067
|
+
en: 'Floating',
|
|
1068
|
+
cs: 'Plovoucí'
|
|
1069
|
+
},
|
|
1070
|
+
value: 'floating'
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
label: {
|
|
1074
|
+
en: 'Minimal (bottom border only)',
|
|
1075
|
+
cs: 'Minimalistická (jen spodní okraj)'
|
|
1076
|
+
},
|
|
1077
|
+
value: 'minimal'
|
|
1078
|
+
}
|
|
1079
|
+
],
|
|
1080
|
+
admin: {
|
|
1081
|
+
description: {
|
|
1082
|
+
en: 'Navigation bar visual style.',
|
|
1083
|
+
cs: 'Vizuální styl navigační lišty.'
|
|
1084
|
+
},
|
|
1085
|
+
width: '50%'
|
|
1086
|
+
},
|
|
1087
|
+
dbName: 'navbar_style'
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
name: 'footerStyle',
|
|
1091
|
+
type: 'select',
|
|
1092
|
+
label: {
|
|
1093
|
+
en: 'Footer Style',
|
|
1094
|
+
cs: 'Styl patičky'
|
|
1095
|
+
},
|
|
1096
|
+
defaultValue: 'standard',
|
|
1097
|
+
options: [
|
|
1098
|
+
{
|
|
1099
|
+
label: {
|
|
1100
|
+
en: 'Standard',
|
|
1101
|
+
cs: 'Standardní'
|
|
1102
|
+
},
|
|
1103
|
+
value: 'standard'
|
|
1104
|
+
},
|
|
1105
|
+
{
|
|
1106
|
+
label: {
|
|
1107
|
+
en: 'Minimal',
|
|
1108
|
+
cs: 'Minimalistická'
|
|
1109
|
+
},
|
|
1110
|
+
value: 'minimal'
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
label: {
|
|
1114
|
+
en: 'Dark',
|
|
1115
|
+
cs: 'Tmavá'
|
|
1116
|
+
},
|
|
1117
|
+
value: 'dark'
|
|
1118
|
+
},
|
|
1119
|
+
{
|
|
1120
|
+
label: {
|
|
1121
|
+
en: 'Gradient top edge',
|
|
1122
|
+
cs: 'Gradient horní hrana'
|
|
1123
|
+
},
|
|
1124
|
+
value: 'gradient-top'
|
|
1125
|
+
},
|
|
1126
|
+
{
|
|
1127
|
+
label: {
|
|
1128
|
+
en: 'Full colour',
|
|
1129
|
+
cs: 'Plná barva'
|
|
1130
|
+
},
|
|
1131
|
+
value: 'full-color'
|
|
1132
|
+
}
|
|
1133
|
+
],
|
|
1134
|
+
admin: {
|
|
1135
|
+
description: {
|
|
1136
|
+
en: 'Footer visual style.',
|
|
1137
|
+
cs: 'Vizuální styl patičky.'
|
|
1138
|
+
},
|
|
1139
|
+
width: '50%'
|
|
1140
|
+
},
|
|
1141
|
+
dbName: 'footer_style'
|
|
1142
|
+
}
|
|
1143
|
+
]
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
type: 'row',
|
|
1147
|
+
fields: [
|
|
1148
|
+
{
|
|
1149
|
+
name: 'imageStyle',
|
|
1150
|
+
type: 'select',
|
|
1151
|
+
label: {
|
|
1152
|
+
en: 'Image Style',
|
|
1153
|
+
cs: 'Styl obrázků'
|
|
1154
|
+
},
|
|
1155
|
+
defaultValue: 'default',
|
|
1156
|
+
options: [
|
|
1157
|
+
{
|
|
1158
|
+
label: {
|
|
1159
|
+
en: 'Default',
|
|
1160
|
+
cs: 'Výchozí'
|
|
1161
|
+
},
|
|
1162
|
+
value: 'default'
|
|
1163
|
+
},
|
|
1164
|
+
{
|
|
1165
|
+
label: {
|
|
1166
|
+
en: 'Rounded',
|
|
1167
|
+
cs: 'Zaoblené'
|
|
1168
|
+
},
|
|
1169
|
+
value: 'rounded'
|
|
1170
|
+
},
|
|
1171
|
+
{
|
|
1172
|
+
label: {
|
|
1173
|
+
en: 'Circle',
|
|
1174
|
+
cs: 'Kruhové'
|
|
1175
|
+
},
|
|
1176
|
+
value: 'circle'
|
|
1177
|
+
},
|
|
1178
|
+
{
|
|
1179
|
+
label: {
|
|
1180
|
+
en: 'Vignette',
|
|
1181
|
+
cs: 'Vinětace'
|
|
1182
|
+
},
|
|
1183
|
+
value: 'vignette'
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
label: {
|
|
1187
|
+
en: 'Grayscale',
|
|
1188
|
+
cs: 'Černobílé'
|
|
1189
|
+
},
|
|
1190
|
+
value: 'grayscale'
|
|
1191
|
+
},
|
|
1192
|
+
{
|
|
1193
|
+
label: {
|
|
1194
|
+
en: 'Duotone',
|
|
1195
|
+
cs: 'Duotón'
|
|
1196
|
+
},
|
|
1197
|
+
value: 'duotone'
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
label: {
|
|
1201
|
+
en: 'Polaroid',
|
|
1202
|
+
cs: 'Polaroid'
|
|
1203
|
+
},
|
|
1204
|
+
value: 'polaroid'
|
|
1205
|
+
}
|
|
1206
|
+
],
|
|
1207
|
+
admin: {
|
|
1208
|
+
description: {
|
|
1209
|
+
en: 'Default treatment for content images (applied via [data-img] / .themed-image).',
|
|
1210
|
+
cs: 'Výchozí úprava obsahových obrázků (přes [data-img] / .themed-image).'
|
|
1211
|
+
},
|
|
1212
|
+
width: '50%'
|
|
1213
|
+
},
|
|
1214
|
+
dbName: 'image_style'
|
|
1215
|
+
},
|
|
1216
|
+
{
|
|
1217
|
+
name: 'linkStyle',
|
|
1218
|
+
type: 'select',
|
|
1219
|
+
label: {
|
|
1220
|
+
en: 'Link Style',
|
|
1221
|
+
cs: 'Styl odkazů'
|
|
1222
|
+
},
|
|
1223
|
+
defaultValue: 'underline-hover',
|
|
1224
|
+
options: [
|
|
1225
|
+
{
|
|
1226
|
+
label: {
|
|
1227
|
+
en: 'Always underlined',
|
|
1228
|
+
cs: 'Vždy podtržené'
|
|
1229
|
+
},
|
|
1230
|
+
value: 'underline'
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
label: {
|
|
1234
|
+
en: 'Underline on hover',
|
|
1235
|
+
cs: 'Podtržení při najetí'
|
|
1236
|
+
},
|
|
1237
|
+
value: 'underline-hover'
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
label: {
|
|
1241
|
+
en: 'No underline',
|
|
1242
|
+
cs: 'Bez podtržení'
|
|
1243
|
+
},
|
|
1244
|
+
value: 'none'
|
|
1245
|
+
},
|
|
1246
|
+
{
|
|
1247
|
+
label: {
|
|
1248
|
+
en: 'Highlight',
|
|
1249
|
+
cs: 'Zvýraznění'
|
|
1250
|
+
},
|
|
1251
|
+
value: 'highlight'
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
label: {
|
|
1255
|
+
en: 'Animated underline',
|
|
1256
|
+
cs: 'Animované podtržení'
|
|
1257
|
+
},
|
|
1258
|
+
value: 'animated'
|
|
1259
|
+
}
|
|
1260
|
+
],
|
|
1261
|
+
admin: {
|
|
1262
|
+
description: {
|
|
1263
|
+
en: 'Default style for in-content links (applied via [data-link] / .themed-link).',
|
|
1264
|
+
cs: 'Výchozí styl odkazů v obsahu (přes [data-link] / .themed-link).'
|
|
1265
|
+
},
|
|
1266
|
+
width: '50%'
|
|
1267
|
+
},
|
|
1268
|
+
dbName: 'link_style'
|
|
1269
|
+
}
|
|
1270
|
+
]
|
|
1271
|
+
},
|
|
1272
|
+
{
|
|
1273
|
+
type: 'row',
|
|
1274
|
+
fields: [
|
|
1275
|
+
{
|
|
1276
|
+
name: 'enableScrollReveal',
|
|
1277
|
+
type: 'checkbox',
|
|
1278
|
+
label: {
|
|
1279
|
+
en: 'Scroll reveal animations',
|
|
1280
|
+
cs: 'Animace při scrollování'
|
|
1281
|
+
},
|
|
1282
|
+
defaultValue: true,
|
|
1283
|
+
admin: {
|
|
1284
|
+
description: {
|
|
1285
|
+
en: 'Reveal elements as they enter the viewport.',
|
|
1286
|
+
cs: 'Odhalovat prvky při vstupu do viewportu.'
|
|
1287
|
+
},
|
|
1288
|
+
width: '50%'
|
|
1289
|
+
}
|
|
1290
|
+
},
|
|
1291
|
+
{
|
|
1292
|
+
name: 'enableHoverAnimations',
|
|
1293
|
+
type: 'checkbox',
|
|
1294
|
+
label: {
|
|
1295
|
+
en: 'Hover micro-animations',
|
|
1296
|
+
cs: 'Hover mikro-animace'
|
|
1297
|
+
},
|
|
1298
|
+
defaultValue: true,
|
|
1299
|
+
admin: {
|
|
1300
|
+
description: {
|
|
1301
|
+
en: 'Subtle motion on interactive elements when hovered.',
|
|
1302
|
+
cs: 'Jemný pohyb interaktivních prvků při najetí.'
|
|
1303
|
+
},
|
|
1304
|
+
width: '50%'
|
|
1305
|
+
}
|
|
1306
|
+
}
|
|
1307
|
+
]
|
|
1308
|
+
}
|
|
1309
|
+
]
|
|
1310
|
+
}
|
|
1311
|
+
]
|
|
1312
|
+
});
|
|
1313
|
+
if (customThemeConfigurationFields?.length) {
|
|
1314
|
+
fields.push(...customThemeConfigurationFields);
|
|
1315
|
+
}
|
|
1316
|
+
if (customThemeConfigurationSections?.length) {
|
|
1317
|
+
customThemeConfigurationSections.forEach((section)=>{
|
|
1318
|
+
fields.push({
|
|
1319
|
+
type: 'collapsible',
|
|
1320
|
+
label: section.label,
|
|
1321
|
+
admin: {
|
|
1322
|
+
initCollapsed: section.initCollapsed ?? true,
|
|
1323
|
+
description: section.description
|
|
1324
|
+
},
|
|
1325
|
+
fields: section.fields
|
|
1326
|
+
});
|
|
1327
|
+
});
|
|
1328
|
+
}
|
|
399
1329
|
// Advanced Settings (when using extended theme configuration)
|
|
400
1330
|
if (enableAdvancedFeatures) {
|
|
401
1331
|
const advancedFields = [
|
|
@@ -467,11 +1397,12 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
467
1397
|
fields.push({
|
|
468
1398
|
type: 'collapsible',
|
|
469
1399
|
label: {
|
|
470
|
-
en: '
|
|
471
|
-
cs: '
|
|
1400
|
+
en: 'Advanced Settings',
|
|
1401
|
+
cs: 'Pokročilé nastavení'
|
|
472
1402
|
},
|
|
473
1403
|
admin: {
|
|
474
|
-
initCollapsed: true
|
|
1404
|
+
initCollapsed: true,
|
|
1405
|
+
className: 'tm-section-advanced'
|
|
475
1406
|
},
|
|
476
1407
|
fields: advancedFields
|
|
477
1408
|
});
|
|
@@ -479,17 +1410,18 @@ import { darkModeField, lightModeField } from './colorModeFields.js';
|
|
|
479
1410
|
// Return as tab configuration to be injected into tabs structure
|
|
480
1411
|
return {
|
|
481
1412
|
label: {
|
|
482
|
-
en: '
|
|
483
|
-
cs: '
|
|
1413
|
+
en: 'Appearance Settings',
|
|
1414
|
+
cs: 'Nastavení vzhledu'
|
|
484
1415
|
},
|
|
485
1416
|
fields: [
|
|
486
1417
|
{
|
|
487
1418
|
name: 'themeConfiguration',
|
|
488
1419
|
type: 'group',
|
|
489
1420
|
admin: {
|
|
1421
|
+
className: 'tm-appearance',
|
|
490
1422
|
description: {
|
|
491
|
-
en: '
|
|
492
|
-
cs: '
|
|
1423
|
+
en: 'Appearance and style of the whole website',
|
|
1424
|
+
cs: 'Vzhled a styl celého webu'
|
|
493
1425
|
}
|
|
494
1426
|
},
|
|
495
1427
|
fields
|