@kilivi/payloadcms-theme-management 2.0.0 → 2.2.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 +346 -845
- 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 +13 -1
- package/dist/components/ServerThemeInjector.d.ts.map +1 -1
- package/dist/components/ServerThemeInjector.js +65 -15
- package/dist/components/ServerThemeInjector.js.map +1 -1
- package/dist/components/ThemeLivePreviewSync.d.ts +4 -0
- package/dist/components/ThemeLivePreviewSync.d.ts.map +1 -1
- package/dist/components/ThemeLivePreviewSync.js +28 -4
- 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 +5 -0
- package/dist/components/typographyPreviewUtils.d.ts.map +1 -1
- package/dist/components/typographyPreviewUtils.js +24 -11
- 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.d.ts +94 -168
- package/dist/constants/themeFonts.d.ts.map +1 -1
- package/dist/constants/themeFonts.js +260 -140
- package/dist/constants/themeFonts.js.map +1 -1
- package/dist/endpoints/themeFonts.d.ts +5 -0
- package/dist/endpoints/themeFonts.d.ts.map +1 -0
- package/dist/endpoints/themeFonts.js +138 -0
- package/dist/endpoints/themeFonts.js.map +1 -0
- 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 +826 -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.css +155 -0
- package/dist/fields/FontSelectField.d.ts +8 -0
- package/dist/fields/FontSelectField.d.ts.map +1 -1
- package/dist/fields/FontSelectField.js +223 -188
- 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 +463 -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 +444 -5
- package/dist/fields/ThemePreviewField.d.ts.map +1 -1
- package/dist/fields/ThemePreviewField.js +265 -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 +1209 -228
- 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/useNativeLivePreview.d.ts +15 -0
- package/dist/hooks/useNativeLivePreview.d.ts.map +1 -0
- package/dist/hooks/useNativeLivePreview.js +18 -0
- package/dist/hooks/useNativeLivePreview.js.map +1 -0
- package/dist/hooks/useThemeFonts.d.ts +10 -0
- package/dist/hooks/useThemeFonts.d.ts.map +1 -0
- package/dist/hooks/useThemeFonts.js +36 -0
- package/dist/hooks/useThemeFonts.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 +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -29
- package/dist/index.js.map +1 -1
- package/dist/next-fonts.d.ts +3 -0
- package/dist/next-fonts.d.ts.map +1 -0
- package/dist/next-fonts.js +360 -0
- package/dist/next-fonts.js.map +1 -0
- package/dist/payload-types.d.ts +34 -6
- package/dist/payload-types.d.ts.map +1 -1
- package/dist/payload-types.js.map +1 -1
- package/dist/presets.d.ts +14 -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 +75 -0
- package/dist/style-presets.d.ts.map +1 -0
- package/dist/style-presets.js +738 -0
- package/dist/style-presets.js.map +1 -0
- package/dist/translations.d.ts +164 -1
- package/dist/translations.d.ts.map +1 -1
- package/dist/translations.js +320 -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 +26 -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 +22 -3
- package/dist/utils/livePreviewThemeRuntime.d.ts.map +1 -1
- package/dist/utils/livePreviewThemeRuntime.js +48 -15
- 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 +60 -1
- package/dist/utils/resolveThemeConfiguration.d.ts.map +1 -1
- package/dist/utils/resolveThemeConfiguration.js +53 -13
- 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 +474 -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 +15 -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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/style-presets.ts"],"sourcesContent":["/**\n * Style presets — define the visual style (type, rhythm, effects, component\n * styles) WITHOUT touching colour palettes.\n *\n * A user can combine any colour preset (ThemePreset) with any style preset\n * (StylePreset). Every value here must be a valid option of the matching admin\n * field (see `themeConfigurationField.ts` and `constants/themeFonts.ts`),\n * otherwise the document cannot be saved — `tests/unit/stylePresets.test.ts`\n * guards this.\n */\n\nexport interface StylePresetTypography {\n /** Body font: a FONT_CATALOG value (e.g. 'Inter', 'Lora'). */\n bodyFont?: string\n /** Heading font: a FONT_CATALOG value. */\n headingFont?: string\n /** Base font size in px, stored without unit. Legacy 'small' | 'medium' | 'large' are mapped. */\n baseFontSize?: '14' | '15' | '16' | '17' | '18' | '20' | 'small' | 'medium' | 'large'\n /** Legacy 'compact' | 'normal' | 'relaxed' are mapped. */\n lineHeight?: '1.4' | '1.5' | '1.6' | '1.7' | '1.8' | 'compact' | 'normal' | 'relaxed'\n /** Heading tracking. 'wider' also sets headings in capitals. */\n letterSpacing?: 'tight' | 'normal' | 'wide' | 'wider'\n headingWeight?: '300' | '400' | '500' | '600' | '700' | '800'\n}\n\nexport interface StylePreset {\n name: string\n label: { en: string; cs: string }\n description: { en: string; cs: string }\n category: 'classic' | 'effect'\n borderRadius?: 'none' | 'small' | 'medium' | 'large' | 'xl'\n animationLevel?: 'none' | 'reduced' | 'medium' | 'high'\n /** Spacing scale: 'compact' = tighter, 'medium' = default, 'comfortable' = generous whitespace ('spacious' is a legacy alias). */\n spacing?: 'compact' | 'medium' | 'comfortable' | 'spacious'\n typography?: StylePresetTypography\n visualEffects?: {\n effectStyle?: 'flat' | 'elevated' | 'glass' | 'neumorphic' | 'clay'\n shadowIntensity?: 'none' | 'subtle' | 'medium' | 'strong' | 'dramatic'\n backdropBlur?: 'none' | 'slight' | 'medium' | 'strong' | 'heavy'\n borderStyle?: 'none' | 'solid' | 'dashed' | 'dotted' | 'double'\n borderWidth?: '0px' | '1px' | '2px' | '3px' | '4px'\n glassOpacity?: number\n }\n componentStyles?: {\n buttonVariant?: 'filled' | 'outlined' | 'ghost' | 'gradient' | 'pill' | 'brutal'\n buttonSize?: 'small' | 'medium' | 'large' | 'xl'\n cardStyle?: 'elevated' | 'flat' | 'bordered' | 'glass' | 'neumorphic' | 'gradient-border'\n cardHoverEffect?: 'none' | 'lift' | 'scale' | 'shadow' | 'glow' | 'tilt'\n navbarStyle?: 'solid' | 'transparent' | 'blur' | 'floating' | 'minimal'\n footerStyle?: 'standard' | 'minimal' | 'dark' | 'gradient-top' | 'full-color'\n imageStyle?: 'default' | 'rounded' | 'circle' | 'vignette' | 'grayscale' | 'duotone' | 'polaroid'\n linkStyle?: 'underline' | 'underline-hover' | 'none' | 'highlight' | 'animated'\n }\n}\n\nconst LEGACY_STYLE_VALUES: Record<string, Record<string, string>> = {\n spacing: { spacious: 'comfortable' },\n 'typography.baseFontSize': { small: '15', medium: '16', large: '18' },\n 'typography.lineHeight': { compact: '1.4', normal: '1.6', relaxed: '1.8' },\n 'typography.bodyFont': { 'Source Sans Pro': 'Source Sans 3', 'Helvetica Neue': 'helvetica' },\n 'typography.headingFont': { 'Source Sans Pro': 'Source Sans 3', 'Helvetica Neue': 'helvetica' },\n}\n\n/** Maps values from older StylePreset definitions onto the current field options. */\nexport function normalizeStylePresetValue(path: string, value: unknown): unknown {\n return typeof value === 'string' ? (LEGACY_STYLE_VALUES[path]?.[value] ?? value) : value\n}\n\nexport const allStylePresets: StylePreset[] = [\n // ─── Classic styles ───────────────────────────────────────────────────────\n {\n name: 'swiss',\n label: { en: 'Swiss / Clean', cs: 'Švýcarský / čistý' },\n description: {\n en: 'Typographic clarity. Square corners, outlined buttons, strict grid, no decoration.',\n cs: 'Typografická jasnost. Ostré rohy, obrysová tlačítka, přísná mřížka, žádná dekorace.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'reduced',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'helvetica',\n headingFont: 'helvetica',\n baseFontSize: '16',\n lineHeight: '1.5',\n letterSpacing: 'tight',\n headingWeight: '700',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'outlined',\n buttonSize: 'medium',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'minimal',\n footerStyle: 'minimal',\n imageStyle: 'default',\n linkStyle: 'underline',\n },\n },\n {\n name: 'editorial',\n label: { en: 'Editorial / Magazine', cs: 'Redakční / časopis' },\n description: {\n en: 'Serif headings, generous line spacing, ink-on-paper feel. Typography is the hero.',\n cs: 'Patkové nadpisy, velké řádkování, pocit tisku na papíře. Hlavní roli hraje typografie.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'reduced',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'Lora',\n headingFont: 'Playfair Display',\n baseFontSize: '18',\n lineHeight: '1.8',\n letterSpacing: 'tight',\n headingWeight: '700',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'outlined',\n buttonSize: 'medium',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'minimal',\n footerStyle: 'minimal',\n imageStyle: 'default',\n linkStyle: 'underline',\n },\n },\n {\n name: 'luxury',\n label: { en: 'Luxury / Boutique', cs: 'Luxusní / butik' },\n description: {\n en: 'High-contrast display serif, light airy text, wide tracking and black-and-white imagery.',\n cs: 'Kontrastní výrazné patkové písmo, lehký vzdušný text, široké prostrkání a černobílé fotky.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'reduced',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'Manrope',\n headingFont: 'DM Serif Display',\n baseFontSize: '16',\n lineHeight: '1.8',\n letterSpacing: 'wide',\n headingWeight: '400',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'outlined',\n buttonSize: 'large',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'transparent',\n footerStyle: 'dark',\n imageStyle: 'grayscale',\n linkStyle: 'animated',\n },\n },\n {\n name: 'art-deco',\n label: { en: 'Art Deco', cs: 'Art deco' },\n description: {\n en: 'Capitalised serif headings, double rules and a strong vertical rhythm.',\n cs: 'Patkové nadpisy verzálkami, dvojité linky a silný vertikální rytmus.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'reduced',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'Libre Baskerville',\n headingFont: 'Cormorant Garamond',\n baseFontSize: '17',\n lineHeight: '1.7',\n letterSpacing: 'wider',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'double',\n borderWidth: '4px',\n },\n componentStyles: {\n buttonVariant: 'outlined',\n buttonSize: 'large',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'solid',\n footerStyle: 'dark',\n imageStyle: 'vignette',\n linkStyle: 'underline',\n },\n },\n {\n name: 'corporate',\n label: { en: 'Corporate / Professional', cs: 'Firemní / profesionální' },\n description: {\n en: 'Trustworthy and calm. Clean sans-serif, soft shadows, solid buttons.',\n cs: 'Důvěryhodný a klidný. Čisté bezpatkové písmo, jemné stíny, plná tlačítka.',\n },\n category: 'classic',\n borderRadius: 'small',\n animationLevel: 'reduced',\n spacing: 'medium',\n typography: {\n bodyFont: 'Source Sans 3',\n headingFont: 'Source Sans 3',\n baseFontSize: '16',\n lineHeight: '1.6',\n letterSpacing: 'normal',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'subtle',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n buttonSize: 'medium',\n cardStyle: 'elevated',\n cardHoverEffect: 'lift',\n navbarStyle: 'solid',\n footerStyle: 'standard',\n imageStyle: 'rounded',\n linkStyle: 'underline-hover',\n },\n },\n {\n name: 'material',\n label: { en: 'Material / Elevated', cs: 'Material / vyvýšený' },\n description: {\n en: 'Layered surfaces with clear shadows, medium rounding and lively motion.',\n cs: 'Vrstvené plochy s výraznými stíny, středním zaoblením a živým pohybem.',\n },\n category: 'classic',\n borderRadius: 'medium',\n animationLevel: 'high',\n spacing: 'medium',\n typography: {\n bodyFont: 'Roboto',\n headingFont: 'Roboto',\n baseFontSize: '16',\n lineHeight: '1.5',\n letterSpacing: 'normal',\n headingWeight: '500',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'medium',\n backdropBlur: 'none',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n buttonSize: 'medium',\n cardStyle: 'elevated',\n cardHoverEffect: 'lift',\n navbarStyle: 'solid',\n footerStyle: 'standard',\n imageStyle: 'rounded',\n linkStyle: 'underline-hover',\n },\n },\n {\n name: 'minimalism',\n label: { en: 'Minimalism', cs: 'Minimalismus' },\n description: {\n en: 'Maximum whitespace, thin headings, ghost buttons. Only what is necessary.',\n cs: 'Maximum volného prostoru, tenké nadpisy, průhledná tlačítka. Jen to nezbytné.',\n },\n category: 'classic',\n borderRadius: 'small',\n animationLevel: 'reduced',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'DM Sans',\n headingFont: 'DM Sans',\n baseFontSize: '17',\n lineHeight: '1.8',\n letterSpacing: 'wide',\n headingWeight: '300',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'ghost',\n buttonSize: 'small',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'minimal',\n footerStyle: 'minimal',\n imageStyle: 'default',\n linkStyle: 'underline',\n },\n },\n {\n name: 'tech',\n label: { en: 'Tech / Product', cs: 'Tech / produkt' },\n description: {\n en: 'Geometric grotesk, tight headings, hairline borders and a glow on hover.',\n cs: 'Geometrický grotesk, sevřené nadpisy, vlasové linky a záře při najetí.',\n },\n category: 'classic',\n borderRadius: 'small',\n animationLevel: 'medium',\n spacing: 'medium',\n typography: {\n bodyFont: 'Inter',\n headingFont: 'Space Grotesk',\n baseFontSize: '16',\n lineHeight: '1.6',\n letterSpacing: 'tight',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'medium',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n buttonSize: 'small',\n cardStyle: 'flat',\n cardHoverEffect: 'glow',\n navbarStyle: 'blur',\n footerStyle: 'minimal',\n imageStyle: 'rounded',\n linkStyle: 'animated',\n },\n },\n {\n name: 'poster',\n label: { en: 'Bold / Poster', cs: 'Výrazný / plakát' },\n description: {\n en: 'Huge expressive headings, extra-large buttons and a full-colour footer.',\n cs: 'Velké výrazné nadpisy, extra velká tlačítka a patička v plné barvě.',\n },\n category: 'classic',\n borderRadius: 'medium',\n animationLevel: 'medium',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'Archivo',\n headingFont: 'Syne',\n baseFontSize: '17',\n lineHeight: '1.6',\n letterSpacing: 'tight',\n headingWeight: '800',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n buttonSize: 'xl',\n cardStyle: 'flat',\n cardHoverEffect: 'lift',\n navbarStyle: 'solid',\n footerStyle: 'full-color',\n imageStyle: 'rounded',\n linkStyle: 'highlight',\n },\n },\n {\n name: 'playful',\n label: { en: 'Playful / Rounded', cs: 'Hravý / zaoblený' },\n description: {\n en: 'Bubbly corners, pill buttons, a floating navbar and friendly rounded type.',\n cs: 'Bublinkové rohy, oblá tlačítka, plovoucí navigace a přátelské zaoblené písmo.',\n },\n category: 'classic',\n borderRadius: 'xl',\n animationLevel: 'high',\n spacing: 'medium',\n typography: {\n bodyFont: 'Nunito',\n headingFont: 'Nunito',\n baseFontSize: '17',\n lineHeight: '1.7',\n letterSpacing: 'normal',\n headingWeight: '800',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'medium',\n backdropBlur: 'none',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'pill',\n buttonSize: 'large',\n cardStyle: 'elevated',\n cardHoverEffect: 'scale',\n navbarStyle: 'floating',\n footerStyle: 'full-color',\n imageStyle: 'rounded',\n linkStyle: 'highlight',\n },\n },\n {\n name: 'organic',\n label: { en: 'Organic / Nature', cs: 'Organický / příroda' },\n description: {\n en: 'Soft serif headings, warm spacing, large rounding and a transparent navbar.',\n cs: 'Měkké patkové nadpisy, vzdušné rozestupy, velké zaoblení a průhledná navigace.',\n },\n category: 'classic',\n borderRadius: 'large',\n animationLevel: 'medium',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'Work Sans',\n headingFont: 'Fraunces',\n baseFontSize: '18',\n lineHeight: '1.7',\n letterSpacing: 'tight',\n headingWeight: '500',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'subtle',\n backdropBlur: 'none',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'pill',\n buttonSize: 'medium',\n cardStyle: 'flat',\n cardHoverEffect: 'lift',\n navbarStyle: 'transparent',\n footerStyle: 'gradient-top',\n imageStyle: 'rounded',\n linkStyle: 'highlight',\n },\n },\n {\n name: 'brutalism',\n label: { en: 'Brutalism', cs: 'Brutalismus' },\n description: {\n en: 'Raw and loud. Thick borders, hard offset shadows, zero rounding.',\n cs: 'Surový a hlasitý. Silné okraje, tvrdé posunuté stíny, žádné zaoblení.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'none',\n spacing: 'comfortable',\n typography: {\n bodyFont: 'Space Grotesk',\n headingFont: 'Archivo Black',\n baseFontSize: '17',\n lineHeight: '1.5',\n letterSpacing: 'tight',\n headingWeight: '400',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '3px',\n },\n componentStyles: {\n buttonVariant: 'brutal',\n buttonSize: 'large',\n cardStyle: 'bordered',\n cardHoverEffect: 'shadow',\n navbarStyle: 'solid',\n footerStyle: 'dark',\n imageStyle: 'grayscale',\n linkStyle: 'highlight',\n },\n },\n {\n name: 'retro',\n label: { en: 'Retro / 90s', cs: 'Retro / 90. léta' },\n description: {\n en: 'Condensed capital headings, typewriter text, polaroid images and chunky outlines.',\n cs: 'Úzké nadpisy verzálkami, strojopisný text, fotky jako polaroid a silné obrysy.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'medium',\n spacing: 'compact',\n typography: {\n bodyFont: 'IBM Plex Mono',\n headingFont: 'Bebas Neue',\n baseFontSize: '16',\n lineHeight: '1.6',\n letterSpacing: 'wider',\n headingWeight: '400',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n componentStyles: {\n buttonVariant: 'brutal',\n buttonSize: 'medium',\n cardStyle: 'bordered',\n cardHoverEffect: 'shadow',\n navbarStyle: 'solid',\n footerStyle: 'full-color',\n imageStyle: 'polaroid',\n linkStyle: 'highlight',\n },\n },\n\n // ─── Visual effect styles ─────────────────────────────────────────────────\n {\n name: 'glassmorphism',\n label: { en: 'Glassmorphism', cs: 'Mléčné sklo' },\n description: {\n en: 'Frosted glass panels over colour — blur, translucency, soft edges. Best on a vivid background.',\n cs: 'Panely z mléčného skla nad barvou — rozostření, průsvitnost, jemné hrany. Nejlépe na sytém pozadí.',\n },\n category: 'effect',\n borderRadius: 'large',\n animationLevel: 'medium',\n spacing: 'medium',\n typography: {\n bodyFont: 'Inter',\n headingFont: 'Outfit',\n baseFontSize: '16',\n lineHeight: '1.6',\n letterSpacing: 'tight',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'glass',\n shadowIntensity: 'subtle',\n backdropBlur: 'strong',\n borderStyle: 'solid',\n borderWidth: '1px',\n glassOpacity: 55,\n },\n componentStyles: {\n buttonVariant: 'filled',\n buttonSize: 'medium',\n cardStyle: 'glass',\n cardHoverEffect: 'glow',\n navbarStyle: 'blur',\n footerStyle: 'minimal',\n imageStyle: 'rounded',\n linkStyle: 'animated',\n },\n },\n {\n name: 'neumorphism',\n label: { en: 'Soft UI', cs: 'Měkké UI' },\n description: {\n en: 'Elements look pressed out of the background with paired light and dark shadows.',\n cs: 'Prvky vypadají vytlačené z pozadí díky dvojici světlého a tmavého stínu.',\n },\n category: 'effect',\n borderRadius: 'large',\n animationLevel: 'medium',\n spacing: 'medium',\n typography: {\n bodyFont: 'DM Sans',\n headingFont: 'DM Sans',\n baseFontSize: '16',\n lineHeight: '1.6',\n letterSpacing: 'normal',\n headingWeight: '500',\n },\n visualEffects: {\n effectStyle: 'neumorphic',\n shadowIntensity: 'strong',\n backdropBlur: 'none',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n buttonSize: 'medium',\n cardStyle: 'neumorphic',\n cardHoverEffect: 'shadow',\n navbarStyle: 'solid',\n footerStyle: 'standard',\n imageStyle: 'rounded',\n linkStyle: 'underline-hover',\n },\n },\n {\n name: 'claymorphism',\n label: { en: 'Clay', cs: 'Plastelína' },\n description: {\n en: 'Soft, inflated 3D clay shapes with large rounding and chunky type.',\n cs: 'Měkké nafouklé 3D tvary jako z plastelíny, velké zaoblení a tučné písmo.',\n },\n category: 'effect',\n borderRadius: 'xl',\n animationLevel: 'high',\n spacing: 'medium',\n typography: {\n bodyFont: 'Nunito',\n headingFont: 'Nunito',\n baseFontSize: '18',\n lineHeight: '1.7',\n letterSpacing: 'normal',\n headingWeight: '800',\n },\n visualEffects: {\n effectStyle: 'clay',\n shadowIntensity: 'strong',\n backdropBlur: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'pill',\n buttonSize: 'large',\n cardStyle: 'elevated',\n cardHoverEffect: 'scale',\n navbarStyle: 'floating',\n footerStyle: 'full-color',\n imageStyle: 'rounded',\n linkStyle: 'highlight',\n },\n },\n {\n name: 'gradient-heavy',\n label: { en: 'Gradient', cs: 'Přechodový' },\n description: {\n en: 'The brand gradient leads: gradient buttons, gradient card borders and a glow.',\n cs: 'Hlavní roli hraje brandový přechod: přechodová tlačítka, okraje karet a záře.',\n },\n category: 'effect',\n borderRadius: 'medium',\n animationLevel: 'medium',\n spacing: 'medium',\n typography: {\n bodyFont: 'Inter',\n headingFont: 'Plus Jakarta Sans',\n baseFontSize: '16',\n lineHeight: '1.6',\n letterSpacing: 'tight',\n headingWeight: '800',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'medium',\n backdropBlur: 'medium',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'gradient',\n buttonSize: 'medium',\n cardStyle: 'gradient-border',\n cardHoverEffect: 'glow',\n navbarStyle: 'blur',\n footerStyle: 'gradient-top',\n imageStyle: 'rounded',\n linkStyle: 'animated',\n },\n },\n]\n\nexport const stylePresetCategories = [\n { name: 'classic', label: { en: 'Styles', cs: 'Styly' } },\n { name: 'effect', label: { en: 'Effect styles', cs: 'Styly s efekty' } },\n] as const\n"],"names":["LEGACY_STYLE_VALUES","spacing","spacious","small","medium","large","compact","normal","relaxed","normalizeStylePresetValue","path","value","allStylePresets","name","label","en","cs","description","category","borderRadius","animationLevel","typography","bodyFont","headingFont","baseFontSize","lineHeight","letterSpacing","headingWeight","visualEffects","effectStyle","shadowIntensity","backdropBlur","borderStyle","borderWidth","componentStyles","buttonVariant","buttonSize","cardStyle","cardHoverEffect","navbarStyle","footerStyle","imageStyle","linkStyle","glassOpacity","stylePresetCategories"],"mappings":"AAAA;;;;;;;;;CASC,GA8CD,MAAMA,sBAA8D;IAClEC,SAAS;QAAEC,UAAU;IAAc;IACnC,2BAA2B;QAAEC,OAAO;QAAMC,QAAQ;QAAMC,OAAO;IAAK;IACpE,yBAAyB;QAAEC,SAAS;QAAOC,QAAQ;QAAOC,SAAS;IAAM;IACzE,uBAAuB;QAAE,mBAAmB;QAAiB,kBAAkB;IAAY;IAC3F,0BAA0B;QAAE,mBAAmB;QAAiB,kBAAkB;IAAY;AAChG;AAEA,mFAAmF,GACnF,OAAO,SAASC,0BAA0BC,IAAY,EAAEC,KAAc;IACpE,OAAO,OAAOA,UAAU,WAAYX,mBAAmB,CAACU,KAAK,EAAE,CAACC,MAAM,IAAIA,QAASA;AACrF;AAEA,OAAO,MAAMC,kBAAiC;IAC5C,6EAA6E;IAC7E;QACEC,MAAM;QACNC,OAAO;YAAEC,IAAI;YAAiBC,IAAI;QAAoB;QACtDC,aAAa;YACXF,IAAI;YACJC,IAAI;QACN;QACAE,UAAU;QACVC,cAAc;QACdC,gBAAgB;QAChBnB,SAAS;QACToB,YAAY;YACVC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdC,YAAY;YACZC,eAAe;YACfC,eAAe;QACjB;QACAC,eAAe;YACbC,aAAa;YACbC,iBAAiB;YACjBC,cAAc;YACdC,aAAa;YACbC,aAAa;QACf;QACAC,iBAAiB;YACfC,eAAe;YACfC,YAAY;YACZC,WAAW;YACXC,iBAAiB;YACjBC,aAAa;YACbC,aAAa;YACbC,YAAY;YACZC,WAAW;QACb;IACF;IACA;QACE7B,MAAM;QACNC,OAAO;YAAEC,IAAI;YAAwBC,IAAI;QAAqB;QAC9DC,aAAa;YACXF,IAAI;YACJC,IAAI;QACN;QACAE,UAAU;QACVC,cAAc;QACdC,gBAAgB;QAChBnB,SAAS;QACToB,YAAY;YACVC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdC,YAAY;YACZC,eAAe;YACfC,eAAe;QACjB;QACAC,eAAe;YACbC,aAAa;YACbC,iBAAiB;YACjBC,cAAc;YACdC,aAAa;YACbC,aAAa;QACf;QACAC,iBAAiB;YACfC,eAAe;YACfC,YAAY;YACZC,WAAW;YACXC,iBAAiB;YACjBC,aAAa;YACbC,aAAa;YACbC,YAAY;YACZC,WAAW;QACb;IACF;IACA;QACE7B,MAAM;QACNC,OAAO;YAAEC,IAAI;YAAqBC,IAAI;QAAkB;QACxDC,aAAa;YACXF,IAAI;YACJC,IAAI;QACN;QACAE,UAAU;QACVC,cAAc;QACdC,gBAAgB;QAChBnB,SAAS;QACToB,YAAY;YACVC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdC,YAAY;YACZC,eAAe;YACfC,eAAe;QACjB;QACAC,eAAe;YACbC,aAAa;YACbC,iBAAiB;YACjBC,cAAc;YACdC,aAAa;YACbC,aAAa;QACf;QACAC,iBAAiB;YACfC,eAAe;YACfC,YAAY;YACZC,WAAW;YACXC,iBAAiB;YACjBC,aAAa;YACbC,aAAa;YACbC,YAAY;YACZC,WAAW;QACb;IACF;IACA;QACE7B,MAAM;QACNC,OAAO;YAAEC,IAAI;YAAYC,IAAI;QAAW;QACxCC,aAAa;YACXF,IAAI;YACJC,IAAI;QACN;QACAE,UAAU;QACVC,cAAc;QACdC,gBAAgB;QAChBnB,SAAS;QACToB,YAAY;YACVC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdC,YAAY;YACZC,eAAe;YACfC,eAAe;QACjB;QACAC,eAAe;YACbC,aAAa;YACbC,iBAAiB;YACjBC,cAAc;YACdC,aAAa;YACbC,aAAa;QACf;QACAC,iBAAiB;YACfC,eAAe;YACfC,YAAY;YACZC,WAAW;YACXC,iBAAiB;YACjBC,aAAa;YACbC,aAAa;YACbC,YAAY;YACZC,WAAW;QACb;IACF;IACA;QACE7B,MAAM;QACNC,OAAO;YAAEC,IAAI;YAA4BC,IAAI;QAA0B;QACvEC,aAAa;YACXF,IAAI;YACJC,IAAI;QACN;QACAE,UAAU;QACVC,cAAc;QACdC,gBAAgB;QAChBnB,SAAS;QACToB,YAAY;YACVC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdC,YAAY;YACZC,eAAe;YACfC,eAAe;QACjB;QACAC,eAAe;YACbC,aAAa;YACbC,iBAAiB;YACjBC,cAAc;YACdC,aAAa;YACbC,aAAa;QACf;QACAC,iB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"}
|
package/dist/translations.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export type Language = string;
|
|
2
|
+
/**
|
|
3
|
+
* i18n namespace under which all plugin translations are registered inside
|
|
4
|
+
* Payload's `config.i18n.translations`. Consumers can reference keys via
|
|
5
|
+
* `t('theme-management:...')` and override them by merging into the same namespace.
|
|
6
|
+
*/
|
|
7
|
+
export declare const THEME_MANAGEMENT_I18N_NAMESPACE: "theme-management";
|
|
2
8
|
export interface PluginTranslations {
|
|
3
9
|
tabLabel: string;
|
|
4
10
|
standaloneCollectionLabel: string;
|
|
@@ -15,6 +21,26 @@ export interface PluginTranslations {
|
|
|
15
21
|
usePreset: string;
|
|
16
22
|
specifyCustom: string;
|
|
17
23
|
sampleSentence: string;
|
|
24
|
+
showPreview: string;
|
|
25
|
+
hidePreview: string;
|
|
26
|
+
colorsAndTypography: string;
|
|
27
|
+
clearSelection: string;
|
|
28
|
+
selectedColor: string;
|
|
29
|
+
themePresets: string;
|
|
30
|
+
choosePreset: string;
|
|
31
|
+
presetCount: string;
|
|
32
|
+
mutedSample: string;
|
|
33
|
+
accentSample: string;
|
|
34
|
+
headingSample: string;
|
|
35
|
+
bodySample: string;
|
|
36
|
+
bodyFontLabel: string;
|
|
37
|
+
headingFontLabel: string;
|
|
38
|
+
baseSizeLabel: string;
|
|
39
|
+
lineHeightLabel: string;
|
|
40
|
+
selectThemeError: string;
|
|
41
|
+
};
|
|
42
|
+
stylePreset: {
|
|
43
|
+
description: string;
|
|
18
44
|
};
|
|
19
45
|
colors: {
|
|
20
46
|
primary: string;
|
|
@@ -40,10 +66,147 @@ export interface PluginTranslations {
|
|
|
40
66
|
customPalette: string;
|
|
41
67
|
footer: string;
|
|
42
68
|
};
|
|
69
|
+
paletteGenerator: {
|
|
70
|
+
title: string;
|
|
71
|
+
subtitle: string;
|
|
72
|
+
generate: string;
|
|
73
|
+
fromImage: string;
|
|
74
|
+
pick: string;
|
|
75
|
+
hint: string;
|
|
76
|
+
seedLabel: string;
|
|
77
|
+
useColor: string;
|
|
78
|
+
imageError: string;
|
|
79
|
+
};
|
|
80
|
+
accessibility: {
|
|
81
|
+
title: string;
|
|
82
|
+
subtitle: string;
|
|
83
|
+
fix: string;
|
|
84
|
+
allGood: string;
|
|
85
|
+
noData: string;
|
|
86
|
+
pairs: {
|
|
87
|
+
bodyText: string;
|
|
88
|
+
mutedText: string;
|
|
89
|
+
primaryButton: string;
|
|
90
|
+
secondaryButton: string;
|
|
91
|
+
accent: string;
|
|
92
|
+
cardText: string;
|
|
93
|
+
destructive: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
themeExport: {
|
|
97
|
+
title: string;
|
|
98
|
+
subtitle: string;
|
|
99
|
+
designTokens: string;
|
|
100
|
+
tailwindV4: string;
|
|
101
|
+
tailwindV3: string;
|
|
102
|
+
copyV4: string;
|
|
103
|
+
copied: string;
|
|
104
|
+
copyFailed: string;
|
|
105
|
+
};
|
|
106
|
+
colorPicker: {
|
|
107
|
+
openPicker: string;
|
|
108
|
+
close: string;
|
|
109
|
+
title: string;
|
|
110
|
+
quickColors: string;
|
|
111
|
+
placeholder: string;
|
|
112
|
+
contrast: string;
|
|
113
|
+
onWhite: string;
|
|
114
|
+
onBlack: string;
|
|
115
|
+
selectColor: string;
|
|
116
|
+
levelAA: string;
|
|
117
|
+
levelAALarge: string;
|
|
118
|
+
levelLow: string;
|
|
119
|
+
pairContrast: string;
|
|
120
|
+
pairContrastTitle: string;
|
|
121
|
+
presetsTitle: string;
|
|
122
|
+
themeColors: string;
|
|
123
|
+
commonColors: string;
|
|
124
|
+
neutralTones: string;
|
|
125
|
+
customColor: string;
|
|
126
|
+
formats: string;
|
|
127
|
+
currentColor: string;
|
|
128
|
+
};
|
|
129
|
+
appearance: {
|
|
130
|
+
locksLabel: string;
|
|
131
|
+
locksHint: string;
|
|
132
|
+
colors: string;
|
|
133
|
+
fonts: string;
|
|
134
|
+
style: string;
|
|
135
|
+
lockedState: string;
|
|
136
|
+
unlockedState: string;
|
|
137
|
+
applied: string;
|
|
138
|
+
undo: string;
|
|
139
|
+
undone: string;
|
|
140
|
+
dismiss: string;
|
|
141
|
+
colorsLocked: string;
|
|
142
|
+
styleLocked: string;
|
|
143
|
+
generatedPalette: string;
|
|
144
|
+
};
|
|
145
|
+
presetImport: {
|
|
146
|
+
none: string;
|
|
147
|
+
summary: string;
|
|
148
|
+
importButton: string;
|
|
149
|
+
clearButton: string;
|
|
150
|
+
drawerTitle: string;
|
|
151
|
+
drawerIntro: string;
|
|
152
|
+
uploadButton: string;
|
|
153
|
+
applyButton: string;
|
|
154
|
+
cleared: string;
|
|
155
|
+
imported: string;
|
|
156
|
+
invalid: string;
|
|
157
|
+
readError: string;
|
|
158
|
+
textareaLabel: string;
|
|
159
|
+
};
|
|
160
|
+
fontGuide: {
|
|
161
|
+
usageTitle: string;
|
|
162
|
+
usageIntro: string;
|
|
163
|
+
optionNextFont: string;
|
|
164
|
+
optionCssLink: string;
|
|
165
|
+
strategyTitle: string;
|
|
166
|
+
preImportedTitle: string;
|
|
167
|
+
preImportedCopy: string;
|
|
168
|
+
dynamicTitle: string;
|
|
169
|
+
dynamicCopy: string;
|
|
170
|
+
exampleTitle: string;
|
|
171
|
+
};
|
|
172
|
+
appearancePreview: {
|
|
173
|
+
title: string;
|
|
174
|
+
subtitle: string;
|
|
175
|
+
light: string;
|
|
176
|
+
dark: string;
|
|
177
|
+
heading: string;
|
|
178
|
+
body: string;
|
|
179
|
+
link: string;
|
|
180
|
+
cardTitle: string;
|
|
181
|
+
cardBody: string;
|
|
182
|
+
primary: string;
|
|
183
|
+
secondary: string;
|
|
184
|
+
footer: string;
|
|
185
|
+
viewport: string;
|
|
186
|
+
nativeTitle: string;
|
|
187
|
+
nativeBody: string;
|
|
188
|
+
nativeOpen: string;
|
|
189
|
+
chips: {
|
|
190
|
+
effect: string;
|
|
191
|
+
shadow: string;
|
|
192
|
+
card: string;
|
|
193
|
+
hover: string;
|
|
194
|
+
button: string;
|
|
195
|
+
navbar: string;
|
|
196
|
+
footer: string;
|
|
197
|
+
link: string;
|
|
198
|
+
image: string;
|
|
199
|
+
radius: string;
|
|
200
|
+
};
|
|
201
|
+
};
|
|
43
202
|
}
|
|
44
203
|
declare const translations: Record<Language, PluginTranslations>;
|
|
204
|
+
export type DeepPartial<T> = {
|
|
205
|
+
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
206
|
+
};
|
|
207
|
+
export declare function deepMerge<T extends object>(base: T, partial: DeepPartial<T>): T;
|
|
45
208
|
export declare function getTranslations(lang?: Language): PluginTranslations;
|
|
46
|
-
export declare function registerTranslations(newTranslations: Record<Language,
|
|
209
|
+
export declare function registerTranslations(newTranslations: Record<Language, DeepPartial<PluginTranslations>>): void;
|
|
47
210
|
export declare function availableLanguages(): string[];
|
|
48
211
|
export { translations };
|
|
49
212
|
//# sourceMappingURL=translations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../src/translations.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB,EAAE,MAAM,CAAA;IACjC,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,EAAE,EAAE;QACF,aAAa,EAAE,MAAM,CAAA;QACrB,eAAe,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,qBAAqB,EAAE,MAAM,CAAA;QAC7B,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../src/translations.ts"],"names":[],"mappings":"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"}
|
package/dist/translations.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n namespace under which all plugin translations are registered inside
|
|
3
|
+
* Payload's `config.i18n.translations`. Consumers can reference keys via
|
|
4
|
+
* `t('theme-management:...')` and override them by merging into the same namespace.
|
|
5
|
+
*/ export const THEME_MANAGEMENT_I18N_NAMESPACE = 'theme-management';
|
|
1
6
|
// Mutable translations object to allow runtime registration/extension
|
|
2
7
|
const translations = {
|
|
3
8
|
en: {
|
|
4
|
-
tabLabel: '
|
|
9
|
+
tabLabel: 'Appearance Settings',
|
|
5
10
|
standaloneCollectionLabel: 'Appearance Settings',
|
|
6
11
|
livePreview: {
|
|
7
|
-
smallTitle: '
|
|
8
|
-
largeTitle: '
|
|
12
|
+
smallTitle: 'Live Preview',
|
|
13
|
+
largeTitle: 'Live Theme Preview'
|
|
9
14
|
},
|
|
10
15
|
ui: {
|
|
11
16
|
primaryAction: 'Primary Action',
|
|
@@ -15,7 +20,27 @@ const translations = {
|
|
|
15
20
|
selectFontPlaceholder: 'Select font...',
|
|
16
21
|
usePreset: 'Use theme preset font',
|
|
17
22
|
specifyCustom: 'Specify custom font below',
|
|
18
|
-
sampleSentence: 'The quick brown fox jumps over the lazy dog'
|
|
23
|
+
sampleSentence: 'The quick brown fox jumps over the lazy dog',
|
|
24
|
+
showPreview: 'Preview',
|
|
25
|
+
hidePreview: 'Hide preview',
|
|
26
|
+
colorsAndTypography: 'Colours & typography',
|
|
27
|
+
clearSelection: 'Unselect style (settings stay as they are)',
|
|
28
|
+
selectedColor: 'Selected color:',
|
|
29
|
+
themePresets: 'Theme presets',
|
|
30
|
+
choosePreset: 'Choose a preset',
|
|
31
|
+
presetCount: 'presets',
|
|
32
|
+
mutedSample: 'Muted surface',
|
|
33
|
+
accentSample: 'Accent tag',
|
|
34
|
+
headingSample: 'Heading preview',
|
|
35
|
+
bodySample: 'Sphinx of black quartz, judge my vow. The quick brown fox jumps over the lazy dog.',
|
|
36
|
+
bodyFontLabel: 'Body',
|
|
37
|
+
headingFontLabel: 'Headings',
|
|
38
|
+
baseSizeLabel: 'Base size',
|
|
39
|
+
lineHeightLabel: 'Line height',
|
|
40
|
+
selectThemeError: 'Select a theme'
|
|
41
|
+
},
|
|
42
|
+
stylePreset: {
|
|
43
|
+
description: 'Pick a visual style — sets effects, shadows and component styles. Colours stay unchanged.'
|
|
19
44
|
},
|
|
20
45
|
colors: {
|
|
21
46
|
primary: 'Primary',
|
|
@@ -40,14 +65,147 @@ const translations = {
|
|
|
40
65
|
sampleCardTitle: 'Sample Card',
|
|
41
66
|
customPalette: 'Custom palette',
|
|
42
67
|
footer: '© 2025 Your Website. Powered by PayloadCMS.'
|
|
68
|
+
},
|
|
69
|
+
paletteGenerator: {
|
|
70
|
+
title: 'Palette generator',
|
|
71
|
+
subtitle: 'Builds a complete light & dark palette from one brand colour (or a logo).',
|
|
72
|
+
generate: 'Generate palette',
|
|
73
|
+
fromImage: 'Extract from image',
|
|
74
|
+
pick: 'Pick a colour from the logo, then click Generate palette:',
|
|
75
|
+
hint: 'Overwrites light & dark mode colours.',
|
|
76
|
+
seedLabel: 'Brand colour',
|
|
77
|
+
useColor: 'Use colour',
|
|
78
|
+
imageError: 'This image could not be read. Try a PNG, JPG or SVG file.'
|
|
79
|
+
},
|
|
80
|
+
accessibility: {
|
|
81
|
+
title: 'Accessibility (WCAG contrast)',
|
|
82
|
+
subtitle: 'Readability check of colour pairs in both modes. AA = 4.5:1.',
|
|
83
|
+
fix: 'Fix',
|
|
84
|
+
allGood: 'All pairs pass AA',
|
|
85
|
+
noData: 'No colours to evaluate.',
|
|
86
|
+
pairs: {
|
|
87
|
+
bodyText: 'Body text',
|
|
88
|
+
mutedText: 'Muted text',
|
|
89
|
+
primaryButton: 'Primary button',
|
|
90
|
+
secondaryButton: 'Secondary button',
|
|
91
|
+
accent: 'Accent',
|
|
92
|
+
cardText: 'Card text',
|
|
93
|
+
destructive: 'Destructive'
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
themeExport: {
|
|
97
|
+
title: 'Export theme',
|
|
98
|
+
subtitle: 'Download colours as design tokens or Tailwind config.',
|
|
99
|
+
designTokens: 'Design tokens (JSON)',
|
|
100
|
+
tailwindV4: 'Tailwind v4 (@theme)',
|
|
101
|
+
tailwindV3: 'Tailwind v3 config',
|
|
102
|
+
copyV4: 'Copy v4',
|
|
103
|
+
copied: 'Copied!',
|
|
104
|
+
copyFailed: 'Copy failed. Download the file instead.'
|
|
105
|
+
},
|
|
106
|
+
colorPicker: {
|
|
107
|
+
openPicker: 'Open colour picker',
|
|
108
|
+
close: 'Close colour picker',
|
|
109
|
+
title: 'Colour picker',
|
|
110
|
+
quickColors: 'Quick colours',
|
|
111
|
+
placeholder: 'oklch(…) or #hex',
|
|
112
|
+
contrast: 'WCAG contrast',
|
|
113
|
+
onWhite: 'on white',
|
|
114
|
+
onBlack: 'on black',
|
|
115
|
+
selectColor: 'Use colour',
|
|
116
|
+
levelAA: 'AA',
|
|
117
|
+
levelAALarge: 'AA large text',
|
|
118
|
+
levelLow: 'Low',
|
|
119
|
+
pairContrast: 'Text contrast',
|
|
120
|
+
pairContrastTitle: 'Contrast between {foreground} and {background}',
|
|
121
|
+
presetsTitle: 'Colour presets',
|
|
122
|
+
themeColors: 'Theme colours',
|
|
123
|
+
commonColors: 'Common colours',
|
|
124
|
+
neutralTones: 'Neutral tones',
|
|
125
|
+
customColor: 'Custom colour',
|
|
126
|
+
formats: 'Accepts HEX, RGB, HSL, OKLCH or a CSS variable.',
|
|
127
|
+
currentColor: 'Current colour'
|
|
128
|
+
},
|
|
129
|
+
appearance: {
|
|
130
|
+
locksLabel: 'Keep my',
|
|
131
|
+
locksHint: 'Locked parts stay as they are when you pick a theme, a style or generate a palette.',
|
|
132
|
+
colors: 'Colours',
|
|
133
|
+
fonts: 'Fonts',
|
|
134
|
+
style: 'Style',
|
|
135
|
+
lockedState: 'locked',
|
|
136
|
+
unlockedState: 'unlocked',
|
|
137
|
+
applied: 'Applied: {name}',
|
|
138
|
+
undo: 'Undo',
|
|
139
|
+
undone: 'Change reverted',
|
|
140
|
+
dismiss: 'Dismiss',
|
|
141
|
+
colorsLocked: 'Colours are locked. Unlock them to generate a palette.',
|
|
142
|
+
styleLocked: 'Style and fonts are locked. Unlock one of them to apply a style.',
|
|
143
|
+
generatedPalette: 'generated palette'
|
|
144
|
+
},
|
|
145
|
+
presetImport: {
|
|
146
|
+
none: 'No custom presets imported yet',
|
|
147
|
+
summary: 'Imported presets ({count}): {names}',
|
|
148
|
+
importButton: 'Import presets',
|
|
149
|
+
clearButton: 'Remove imported presets',
|
|
150
|
+
drawerTitle: 'Import theme presets',
|
|
151
|
+
drawerIntro: 'Paste JSON or upload a .json file with preset definitions. Imported presets appear in Theme selection straight away.',
|
|
152
|
+
uploadButton: 'Upload JSON file',
|
|
153
|
+
applyButton: 'Import',
|
|
154
|
+
cleared: 'Imported presets removed',
|
|
155
|
+
imported: 'Imported presets: {count}',
|
|
156
|
+
invalid: 'No valid presets found. Each entry needs at least a "name" and a "label".',
|
|
157
|
+
readError: 'The file could not be read: {message}',
|
|
158
|
+
textareaLabel: 'Preset JSON'
|
|
159
|
+
},
|
|
160
|
+
fontGuide: {
|
|
161
|
+
usageTitle: 'How to use the selected font',
|
|
162
|
+
usageIntro: 'After you pick a font, your website’s frontend has to load it. A developer can use either of these approaches:',
|
|
163
|
+
optionNextFont: 'Option 1: next/font/google (recommended)',
|
|
164
|
+
optionCssLink: 'Option 2: Google Fonts CSS link',
|
|
165
|
+
strategyTitle: 'Font loading strategy',
|
|
166
|
+
preImportedTitle: 'Pre-imported fonts (optimised)',
|
|
167
|
+
preImportedCopy: 'These 8 popular fonts are pre-optimised through next/font/google, so they load with no extra runtime request:',
|
|
168
|
+
dynamicTitle: 'Dynamic fonts (Google Fonts CSS)',
|
|
169
|
+
dynamicCopy: 'Any other font is loaded at runtime through a Google Fonts CSS link. This gives access to 1400+ fonts at the cost of an extra request.',
|
|
170
|
+
exampleTitle: 'Implementation example'
|
|
171
|
+
},
|
|
172
|
+
appearancePreview: {
|
|
173
|
+
title: 'Live preview',
|
|
174
|
+
subtitle: 'Colours, fonts and component styles together, updated as you edit.',
|
|
175
|
+
light: 'Light',
|
|
176
|
+
dark: 'Dark',
|
|
177
|
+
heading: 'Sample heading',
|
|
178
|
+
body: 'The quick brown fox jumps over the lazy dog. Here is an ',
|
|
179
|
+
link: 'inline link',
|
|
180
|
+
cardTitle: 'Card title',
|
|
181
|
+
cardBody: 'A short description that shows how body text reads inside a card.',
|
|
182
|
+
primary: 'Primary',
|
|
183
|
+
secondary: 'Secondary',
|
|
184
|
+
footer: 'Footer',
|
|
185
|
+
viewport: 'Device preview',
|
|
186
|
+
nativeTitle: 'Preview on your real website',
|
|
187
|
+
nativeBody: 'Live Preview shows every change on your own pages, with your content.',
|
|
188
|
+
nativeOpen: 'Open Live Preview',
|
|
189
|
+
chips: {
|
|
190
|
+
effect: 'Effect',
|
|
191
|
+
shadow: 'Shadow',
|
|
192
|
+
card: 'Card',
|
|
193
|
+
hover: 'Hover',
|
|
194
|
+
button: 'Button',
|
|
195
|
+
navbar: 'Navbar',
|
|
196
|
+
footer: 'Footer',
|
|
197
|
+
link: 'Links',
|
|
198
|
+
image: 'Images',
|
|
199
|
+
radius: 'Corners'
|
|
200
|
+
}
|
|
43
201
|
}
|
|
44
202
|
},
|
|
45
203
|
cs: {
|
|
46
|
-
tabLabel: '
|
|
204
|
+
tabLabel: 'Nastavení vzhledu',
|
|
47
205
|
standaloneCollectionLabel: 'Nastavení vzhledu',
|
|
48
206
|
livePreview: {
|
|
49
|
-
smallTitle: '
|
|
50
|
-
largeTitle: '
|
|
207
|
+
smallTitle: 'Náhled',
|
|
208
|
+
largeTitle: 'Náhled motivu'
|
|
51
209
|
},
|
|
52
210
|
ui: {
|
|
53
211
|
primaryAction: 'Primární akce',
|
|
@@ -57,7 +215,27 @@ const translations = {
|
|
|
57
215
|
selectFontPlaceholder: 'Vyberte písmo...',
|
|
58
216
|
usePreset: 'Použít písmo motivu',
|
|
59
217
|
specifyCustom: 'Zadejte vlastní písmo níže',
|
|
60
|
-
sampleSentence: 'Rychlá hnědá liška přeskočila líného psa'
|
|
218
|
+
sampleSentence: 'Rychlá hnědá liška přeskočila líného psa',
|
|
219
|
+
showPreview: 'Náhled',
|
|
220
|
+
hidePreview: 'Skrýt náhled',
|
|
221
|
+
colorsAndTypography: 'Barvy & typografie',
|
|
222
|
+
clearSelection: 'Zrušit výběr stylu (nastavení zůstane)',
|
|
223
|
+
selectedColor: 'Vybraná barva:',
|
|
224
|
+
themePresets: 'Motivy',
|
|
225
|
+
choosePreset: 'Vyberte motiv',
|
|
226
|
+
presetCount: 'motivů',
|
|
227
|
+
mutedSample: 'Tlumená plocha',
|
|
228
|
+
accentSample: 'Akcentový štítek',
|
|
229
|
+
headingSample: 'Ukázka nadpisu',
|
|
230
|
+
bodySample: 'Příliš žluťoučký kůň úpěl ďábelské ódy. Nechť již hříšné saxofony ďáblů rozezvučí síň.',
|
|
231
|
+
bodyFontLabel: 'Text',
|
|
232
|
+
headingFontLabel: 'Nadpisy',
|
|
233
|
+
baseSizeLabel: 'Základní velikost',
|
|
234
|
+
lineHeightLabel: 'Výška řádku',
|
|
235
|
+
selectThemeError: 'Vyberte motiv'
|
|
236
|
+
},
|
|
237
|
+
stylePreset: {
|
|
238
|
+
description: 'Vyberte vizuální styl. Nastaví efekty, stíny a styly komponent — barvy zůstanou nezměněny.'
|
|
61
239
|
},
|
|
62
240
|
colors: {
|
|
63
241
|
primary: 'Primární',
|
|
@@ -82,10 +260,143 @@ const translations = {
|
|
|
82
260
|
sampleCardTitle: 'Ukázková karta',
|
|
83
261
|
customPalette: 'Vlastní paleta',
|
|
84
262
|
footer: '© 2025 Váš web. Poháněno PayloadCMS.'
|
|
263
|
+
},
|
|
264
|
+
paletteGenerator: {
|
|
265
|
+
title: 'Generátor palety',
|
|
266
|
+
subtitle: 'Z jedné značkové barvy (nebo z loga) vytvoří kompletní světlou i tmavou paletu.',
|
|
267
|
+
generate: 'Vygenerovat paletu',
|
|
268
|
+
fromImage: 'Extrahovat z obrázku',
|
|
269
|
+
pick: 'Vyberte barvu z loga a pak klikněte na Vygenerovat paletu:',
|
|
270
|
+
hint: 'Přepíše barvy ve světlém i tmavém režimu.',
|
|
271
|
+
seedLabel: 'Barva značky',
|
|
272
|
+
useColor: 'Použít barvu',
|
|
273
|
+
imageError: 'Obrázek se nepodařilo načíst. Zkuste soubor PNG, JPG nebo SVG.'
|
|
274
|
+
},
|
|
275
|
+
accessibility: {
|
|
276
|
+
title: 'Přístupnost (WCAG kontrast)',
|
|
277
|
+
subtitle: 'Kontrola čitelnosti barevných párů v obou režimech. AA = 4.5:1.',
|
|
278
|
+
fix: 'Opravit',
|
|
279
|
+
allGood: 'Vše vyhovuje AA',
|
|
280
|
+
noData: 'Žádné barvy k vyhodnocení.',
|
|
281
|
+
pairs: {
|
|
282
|
+
bodyText: 'Tělo textu',
|
|
283
|
+
mutedText: 'Tlumený text',
|
|
284
|
+
primaryButton: 'Primární tlačítko',
|
|
285
|
+
secondaryButton: 'Sekundární tlačítko',
|
|
286
|
+
accent: 'Akcent',
|
|
287
|
+
cardText: 'Text karty',
|
|
288
|
+
destructive: 'Destruktivní'
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
themeExport: {
|
|
292
|
+
title: 'Export motivu',
|
|
293
|
+
subtitle: 'Stáhněte barvy jako design tokeny nebo konfiguraci pro Tailwind.',
|
|
294
|
+
designTokens: 'Design tokeny (JSON)',
|
|
295
|
+
tailwindV4: 'Tailwind v4 (@theme)',
|
|
296
|
+
tailwindV3: 'Tailwind v3 konfigurace',
|
|
297
|
+
copyV4: 'Kopírovat v4',
|
|
298
|
+
copied: 'Zkopírováno!',
|
|
299
|
+
copyFailed: 'Kopírování selhalo. Stáhněte si raději soubor.'
|
|
300
|
+
},
|
|
301
|
+
colorPicker: {
|
|
302
|
+
openPicker: 'Otevřít výběr barvy',
|
|
303
|
+
close: 'Zavřít výběr barvy',
|
|
304
|
+
title: 'Výběr barvy',
|
|
305
|
+
quickColors: 'Rychlé barvy',
|
|
306
|
+
placeholder: 'oklch(…) nebo #hex',
|
|
307
|
+
contrast: 'WCAG kontrast',
|
|
308
|
+
onWhite: 'na bílé',
|
|
309
|
+
onBlack: 'na černé',
|
|
310
|
+
selectColor: 'Použít barvu',
|
|
311
|
+
levelAA: 'AA',
|
|
312
|
+
levelAALarge: 'AA velký text',
|
|
313
|
+
levelLow: 'Nízký',
|
|
314
|
+
pairContrast: 'Kontrast textu',
|
|
315
|
+
pairContrastTitle: 'Kontrast mezi {foreground} a {background}',
|
|
316
|
+
presetsTitle: 'Předvolby barev',
|
|
317
|
+
themeColors: 'Barvy motivu',
|
|
318
|
+
commonColors: 'Běžné barvy',
|
|
319
|
+
neutralTones: 'Neutrální odstíny',
|
|
320
|
+
customColor: 'Vlastní barva',
|
|
321
|
+
formats: 'Přijímá HEX, RGB, HSL, OKLCH nebo CSS proměnnou.',
|
|
322
|
+
currentColor: 'Aktuální barva'
|
|
323
|
+
},
|
|
324
|
+
appearance: {
|
|
325
|
+
locksLabel: 'Ponechat moje',
|
|
326
|
+
locksHint: 'Zamčené části zůstanou beze změny, když vyberete motiv, styl nebo vygenerujete paletu.',
|
|
327
|
+
colors: 'Barvy',
|
|
328
|
+
fonts: 'Písma',
|
|
329
|
+
style: 'Styl',
|
|
330
|
+
lockedState: 'zamčeno',
|
|
331
|
+
unlockedState: 'odemčeno',
|
|
332
|
+
applied: 'Použito: {name}',
|
|
333
|
+
undo: 'Zpět',
|
|
334
|
+
undone: 'Změna vrácena',
|
|
335
|
+
dismiss: 'Zavřít',
|
|
336
|
+
colorsLocked: 'Barvy jsou zamčené. Pro vygenerování palety je odemkněte.',
|
|
337
|
+
styleLocked: 'Styl i písma jsou zamčené. Pro použití stylu jedno z nich odemkněte.',
|
|
338
|
+
generatedPalette: 'vygenerovaná paleta'
|
|
339
|
+
},
|
|
340
|
+
presetImport: {
|
|
341
|
+
none: 'Zatím nejsou importované žádné vlastní motivy',
|
|
342
|
+
summary: 'Importované motivy ({count}): {names}',
|
|
343
|
+
importButton: 'Importovat motivy',
|
|
344
|
+
clearButton: 'Odebrat importované motivy',
|
|
345
|
+
drawerTitle: 'Import motivů',
|
|
346
|
+
drawerIntro: 'Vložte JSON nebo nahrajte soubor .json s definicemi motivů. Importované motivy se hned objeví ve výběru motivu.',
|
|
347
|
+
uploadButton: 'Nahrát soubor JSON',
|
|
348
|
+
applyButton: 'Importovat',
|
|
349
|
+
cleared: 'Importované motivy odebrány',
|
|
350
|
+
imported: 'Importované motivy: {count}',
|
|
351
|
+
invalid: 'Nenašel se žádný platný motiv. Každá položka potřebuje alespoň „name“ a „label“.',
|
|
352
|
+
readError: 'Soubor se nepodařilo načíst: {message}',
|
|
353
|
+
textareaLabel: 'JSON s motivy'
|
|
354
|
+
},
|
|
355
|
+
fontGuide: {
|
|
356
|
+
usageTitle: 'Jak použít vybrané písmo',
|
|
357
|
+
usageIntro: 'Po výběru písma ho musí web ve frontendu načíst. Vývojář může použít jeden z těchto postupů:',
|
|
358
|
+
optionNextFont: 'Možnost 1: next/font/google (doporučeno)',
|
|
359
|
+
optionCssLink: 'Možnost 2: odkaz na CSS Google Fonts',
|
|
360
|
+
strategyTitle: 'Strategie načítání písem',
|
|
361
|
+
preImportedTitle: 'Předem importovaná písma (optimalizovaná)',
|
|
362
|
+
preImportedCopy: 'Těchto 8 oblíbených písem je předem optimalizovaných přes next/font/google, takže se načtou bez dalšího požadavku:',
|
|
363
|
+
dynamicTitle: 'Dynamická písma (Google Fonts CSS)',
|
|
364
|
+
dynamicCopy: 'Ostatní písma se načítají za běhu přes odkaz na CSS Google Fonts. Získáte tak přístup k více než 1400 písmům za cenu dalšího požadavku.',
|
|
365
|
+
exampleTitle: 'Ukázka implementace'
|
|
366
|
+
},
|
|
367
|
+
appearancePreview: {
|
|
368
|
+
title: 'Živý náhled',
|
|
369
|
+
subtitle: 'Barvy, písma a styly komponent pohromadě, mění se hned při úpravách.',
|
|
370
|
+
light: 'Světlý',
|
|
371
|
+
dark: 'Tmavý',
|
|
372
|
+
heading: 'Ukázkový nadpis',
|
|
373
|
+
body: 'Příliš žluťoučký kůň úpěl ďábelské ódy. Tady je ',
|
|
374
|
+
link: 'odkaz',
|
|
375
|
+
cardTitle: 'Nadpis karty',
|
|
376
|
+
cardBody: 'Krátký popis, na kterém je vidět, jak se čte text uvnitř karty.',
|
|
377
|
+
primary: 'Primární',
|
|
378
|
+
secondary: 'Sekundární',
|
|
379
|
+
footer: 'Patička',
|
|
380
|
+
viewport: 'Náhled zařízení',
|
|
381
|
+
nativeTitle: 'Náhled na vašem skutečném webu',
|
|
382
|
+
nativeBody: 'Živý náhled ukazuje každou změnu přímo na vašich stránkách s vaším obsahem.',
|
|
383
|
+
nativeOpen: 'Otevřít živý náhled',
|
|
384
|
+
chips: {
|
|
385
|
+
effect: 'Efekt',
|
|
386
|
+
shadow: 'Stín',
|
|
387
|
+
card: 'Karta',
|
|
388
|
+
hover: 'Hover',
|
|
389
|
+
button: 'Tlačítko',
|
|
390
|
+
navbar: 'Navigace',
|
|
391
|
+
footer: 'Patička',
|
|
392
|
+
link: 'Odkazy',
|
|
393
|
+
image: 'Obrázky',
|
|
394
|
+
radius: 'Rohy'
|
|
395
|
+
}
|
|
85
396
|
}
|
|
86
397
|
}
|
|
87
398
|
};
|
|
88
|
-
function deepMerge(base, partial) {
|
|
399
|
+
export function deepMerge(base, partial) {
|
|
89
400
|
const out = {
|
|
90
401
|
...base
|
|
91
402
|
};
|