@kilivi/payloadcms-theme-management 2.1.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 +37 -7
- package/dist/components/ServerThemeInjector.d.ts +13 -1
- package/dist/components/ServerThemeInjector.d.ts.map +1 -1
- package/dist/components/ServerThemeInjector.js +24 -1
- package/dist/components/ServerThemeInjector.js.map +1 -1
- package/dist/components/ThemeLivePreviewSync.d.ts +3 -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/typographyPreviewUtils.d.ts +5 -0
- package/dist/components/typographyPreviewUtils.d.ts.map +1 -1
- package/dist/components/typographyPreviewUtils.js +16 -10
- package/dist/components/typographyPreviewUtils.js.map +1 -1
- 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/fields/AppearancePreviewField.d.ts.map +1 -1
- package/dist/fields/AppearancePreviewField.js +196 -133
- package/dist/fields/AppearancePreviewField.js.map +1 -1
- package/dist/fields/FontSelectField.css +155 -0
- package/dist/fields/FontSelectField.d.ts +4 -2
- package/dist/fields/FontSelectField.d.ts.map +1 -1
- package/dist/fields/FontSelectField.js +80 -118
- package/dist/fields/FontSelectField.js.map +1 -1
- package/dist/fields/StylePresetField.d.ts.map +1 -1
- package/dist/fields/StylePresetField.js +31 -30
- package/dist/fields/StylePresetField.js.map +1 -1
- package/dist/fields/ThemePreviewField.css +63 -1
- package/dist/fields/ThemePreviewField.d.ts.map +1 -1
- package/dist/fields/ThemePreviewField.js +2 -5
- package/dist/fields/ThemePreviewField.js.map +1 -1
- package/dist/fields/themeConfigurationField.d.ts.map +1 -1
- package/dist/fields/themeConfigurationField.js +320 -271
- package/dist/fields/themeConfigurationField.js.map +1 -1
- 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/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- 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 +10 -6
- package/dist/payload-types.d.ts.map +1 -1
- package/dist/payload-types.js.map +1 -1
- package/dist/presets.d.ts +6 -0
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js.map +1 -1
- package/dist/style-presets.d.ts +27 -18
- package/dist/style-presets.d.ts.map +1 -1
- package/dist/style-presets.js +399 -217
- package/dist/style-presets.js.map +1 -1
- package/dist/translations.d.ts +5 -0
- package/dist/translations.d.ts.map +1 -1
- package/dist/translations.js +10 -0
- package/dist/translations.js.map +1 -1
- package/dist/utils/livePreviewThemeRuntime.d.ts +6 -1
- package/dist/utils/livePreviewThemeRuntime.d.ts.map +1 -1
- package/dist/utils/livePreviewThemeRuntime.js +11 -1
- package/dist/utils/livePreviewThemeRuntime.js.map +1 -1
- package/dist/utils/resolveThemeConfiguration.d.ts +15 -0
- package/dist/utils/resolveThemeConfiguration.d.ts.map +1 -1
- package/dist/utils/resolveThemeConfiguration.js +41 -8
- package/dist/utils/resolveThemeConfiguration.js.map +1 -1
- package/dist/utils/themeUtils.d.ts.map +1 -1
- package/dist/utils/themeUtils.js +60 -2
- package/dist/utils/themeUtils.js.map +1 -1
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/style-presets.ts"],"sourcesContent":["/**\n * Style presets — define visual style (effects, component defaults, layout)\n * WITHOUT touching color palettes.\n *\n * A user can combine any color preset (ThemePreset) with any style preset (StylePreset).\n */\n\nexport interface StylePresetTypography {\n /** Body / paragraph font family (CSS font-family value or Google Fonts name) */\n bodyFont?: string\n /** Heading font family */\n headingFont?: string\n /** Base font size token: 'small' | 'medium' | 'large' */\n baseFontSize?: 'small' | 'medium' | 'large'\n /** Line-height token: 'compact' | 'normal' | 'relaxed' */\n lineHeight?: 'compact' | 'normal' | 'relaxed'\n /** Letter-spacing character: 'tight' | 'normal' | 'wide' | 'wider' */\n letterSpacing?: 'tight' | 'normal' | 'wide' | 'wider'\n /** Heading weight: normal CSS font-weight string */\n headingWeight?: '300' | '400' | '500' | '600' | '700' | '800' | '900'\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 padding/gap, 'medium' = default, 'spacious' = generous whitespace */\n spacing?: 'compact' | 'medium' | '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 cardStyle?: 'elevated' | 'flat' | 'bordered' | 'glass' | 'neumorphic' | 'gradient-border'\n cardHoverEffect?: 'none' | 'lift' | 'scale' | 'shadow' | 'glow' | 'tilt'\n navbarStyle?: 'solid' | 'transparent' | 'blur' | 'floating' | 'minimal'\n }\n}\n\nexport const allStylePresets: StylePreset[] = [\n // ─── Classic styles ───────────────────────────────────────────────────────\n {\n name: 'brutalism',\n label: { en: 'Brutalism', cs: 'Brutalismus' },\n description: {\n en: 'Raw, anti-aesthetic design. Thick borders, harsh shadows, zero roundness.',\n cs: 'Surový, anti-estetický design. Silné okraje, tvrdé stíny, žádné zaoblení.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'none',\n spacing: 'spacious',\n typography: {\n bodyFont: 'Space Mono',\n headingFont: 'Space Mono',\n baseFontSize: 'medium',\n lineHeight: 'compact',\n letterSpacing: 'normal',\n headingWeight: '700',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'dramatic',\n borderStyle: 'solid',\n borderWidth: '3px',\n },\n componentStyles: {\n buttonVariant: 'brutal',\n cardStyle: 'bordered',\n cardHoverEffect: 'shadow',\n navbarStyle: 'solid',\n },\n },\n {\n name: 'swiss',\n label: { en: 'Swiss / Clean', cs: 'Švýcarský / čistý' },\n description: {\n en: 'Typographic clarity. No radius, outlined elements, strict grid, zero decoration.',\n cs: 'Typografická jasnost. Žádné zaoblení, obrysové prvky, přísný grid, nulová dekorace.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'reduced',\n spacing: 'spacious',\n typography: {\n bodyFont: 'Helvetica Neue, Arial, sans-serif',\n headingFont: 'Helvetica Neue, Arial, sans-serif',\n baseFontSize: 'medium',\n lineHeight: 'normal',\n letterSpacing: 'tight',\n headingWeight: '700',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'outlined',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'minimal',\n },\n },\n {\n name: 'flat-design',\n label: { en: 'Flat Design', cs: 'Plochý design' },\n description: {\n en: 'No shadows, no depth. Clean colours, simple icons, purely functional UI.',\n cs: 'Bez stínů, bez hloubky. Čisté barvy, jednoduché ikony, čistě funkční UI.',\n },\n category: 'classic',\n borderRadius: 'small',\n animationLevel: 'reduced',\n spacing: 'medium',\n typography: {\n bodyFont: 'Inter',\n headingFont: 'Inter',\n baseFontSize: 'medium',\n lineHeight: 'normal',\n letterSpacing: 'normal',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n cardStyle: 'flat',\n cardHoverEffect: 'scale',\n navbarStyle: 'solid',\n },\n },\n {\n name: 'material',\n label: { en: 'Material / Elevated', cs: 'Material / Vyvýšený' },\n description: {\n en: 'Google Material style — cards with shadows, layered surfaces, subtle depth.',\n cs: 'Google Material styl — karty se stíny, vrstvené povrchy, jemná hloubka.',\n },\n category: 'classic',\n borderRadius: 'medium',\n animationLevel: 'high',\n spacing: 'medium',\n typography: {\n bodyFont: 'Roboto',\n headingFont: 'Roboto',\n baseFontSize: 'medium',\n lineHeight: 'normal',\n letterSpacing: 'normal',\n headingWeight: '500',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'medium',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n cardStyle: 'elevated',\n cardHoverEffect: 'lift',\n navbarStyle: 'solid',\n },\n },\n {\n name: 'minimalism',\n label: { en: 'Minimalism', cs: 'Minimalismus' },\n description: {\n en: 'Maximum whitespace, near-invisible borders, thin type. Only what is necessary.',\n cs: 'Maximální bílý prostor, téměř neviditelné okraje, tenké písmo. Jen to nezbytné.',\n },\n category: 'classic',\n borderRadius: 'small',\n animationLevel: 'reduced',\n spacing: 'spacious',\n typography: {\n bodyFont: 'DM Sans',\n headingFont: 'DM Sans',\n baseFontSize: 'medium',\n lineHeight: 'relaxed',\n letterSpacing: 'wide',\n headingWeight: '300',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'ghost',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'minimal',\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. Bold typography as the hero.',\n cs: 'Serifové nadpisy, velké řádkování, pocit inkoustu na papíře. Typografie jako hrdina.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'reduced',\n spacing: 'spacious',\n typography: {\n bodyFont: 'Lora',\n headingFont: 'Playfair Display',\n baseFontSize: 'large',\n lineHeight: 'relaxed',\n letterSpacing: 'tight',\n headingWeight: '700',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'none',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'outlined',\n cardStyle: 'flat',\n cardHoverEffect: 'none',\n navbarStyle: 'minimal',\n },\n },\n {\n name: 'retro',\n label: { en: 'Retro / 90s', cs: 'Retro / 90. léta' },\n description: {\n en: 'Chunky type, bold outlines, pixel-inspired borders. Nostalgic web aesthetic.',\n cs: 'Tučné písmo, silné obrysy, pixelové hranice. Nostalgická webová estetika.',\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: 'large',\n lineHeight: 'compact',\n letterSpacing: 'wider',\n headingWeight: '400',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'dramatic',\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n componentStyles: {\n buttonVariant: 'brutal',\n cardStyle: 'bordered',\n cardHoverEffect: 'shadow',\n navbarStyle: 'solid',\n },\n },\n {\n name: 'art-deco',\n label: { en: 'Art Deco', cs: 'Art Deco' },\n description: {\n en: 'Geometric symmetry, ornate headings, gold accents and strong vertical rhythm.',\n cs: 'Geometrická symetrie, ozdobné nadpisy, zlaté akcenty a silný vertikální rytmus.',\n },\n category: 'classic',\n borderRadius: 'none',\n animationLevel: 'reduced',\n spacing: 'spacious',\n typography: {\n bodyFont: 'Cormorant Garamond',\n headingFont: 'Cormorant Garamond',\n baseFontSize: 'medium',\n lineHeight: 'relaxed',\n letterSpacing: 'wider',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'subtle',\n borderStyle: 'double',\n borderWidth: '3px',\n },\n componentStyles: {\n buttonVariant: 'outlined',\n cardStyle: 'bordered',\n cardHoverEffect: 'none',\n navbarStyle: 'solid',\n },\n },\n {\n name: 'corporate',\n label: { en: 'Corporate / Professional', cs: 'Korporátní / Profesionální' },\n description: {\n en: 'Trustworthy, conservative design. Clean sans-serif, ample whitespace, minimal decoration.',\n cs: 'Důvěryhodný, konzervativní design. Čisté sans-serif, dostatek prostoru, minimální dekorace.',\n },\n category: 'classic',\n borderRadius: 'small',\n animationLevel: 'reduced',\n spacing: 'medium',\n typography: {\n bodyFont: 'Source Sans Pro',\n headingFont: 'Source Sans Pro',\n baseFontSize: 'medium',\n lineHeight: 'normal',\n letterSpacing: 'normal',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'subtle',\n borderStyle: 'solid',\n borderWidth: '1px',\n },\n componentStyles: {\n buttonVariant: 'filled',\n cardStyle: 'elevated',\n cardHoverEffect: 'lift',\n navbarStyle: 'solid',\n },\n },\n {\n name: 'playful',\n label: { en: 'Playful / Rounded', cs: 'Hravý / Zaoblený' },\n description: {\n en: 'Bubbly rounded corners, bouncy animations, friendly typefaces. Fun and approachable.',\n cs: 'Bublinkové zaoblení, skákavé animace, přátelské písmo. Zábavné a přístupné.',\n },\n category: 'classic',\n borderRadius: 'xl',\n animationLevel: 'high',\n spacing: 'medium',\n typography: {\n bodyFont: 'Nunito',\n headingFont: 'Nunito',\n baseFontSize: 'medium',\n lineHeight: 'relaxed',\n letterSpacing: 'normal',\n headingWeight: '700',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'medium',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'pill',\n cardStyle: 'elevated',\n cardHoverEffect: 'scale',\n navbarStyle: 'floating',\n },\n },\n {\n name: 'organic',\n label: { en: 'Organic / Nature', cs: 'Organický / Příroda' },\n description: {\n en: 'Soft curves, earthy tones, hand-crafted feel. Asymmetric shapes and warm spacing.',\n cs: 'Jemné křivky, zemité tóny, ručně vyrobený pocit. Asymetrické tvary a teplé mezery.',\n },\n category: 'classic',\n borderRadius: 'large',\n animationLevel: 'medium',\n spacing: 'spacious',\n typography: {\n bodyFont: 'Crimson Pro',\n headingFont: 'Crimson Pro',\n baseFontSize: 'large',\n lineHeight: 'relaxed',\n letterSpacing: 'tight',\n headingWeight: '600',\n },\n visualEffects: {\n effectStyle: 'flat',\n shadowIntensity: 'subtle',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'pill',\n cardStyle: 'flat',\n cardHoverEffect: 'lift',\n navbarStyle: 'transparent',\n },\n },\n\n // ─── Visual effect styles ─────────────────────────────────────────────────\n {\n name: 'glassmorphism',\n label: { en: 'Glassmorphism', cs: 'Glassmorphism' },\n description: {\n en: 'Frosted glass — blurred backgrounds, transparency, soft borders.',\n cs: 'Mléčné sklo — rozmazané pozadí, průhlednost, jemné hranice.',\n },\n category: 'effect',\n borderRadius: 'large',\n animationLevel: 'medium',\n spacing: 'medium',\n typography: {\n bodyFont: 'Inter',\n headingFont: 'Inter',\n baseFontSize: 'medium',\n lineHeight: 'normal',\n letterSpacing: 'normal',\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: 'ghost',\n cardStyle: 'glass',\n cardHoverEffect: 'glow',\n navbarStyle: 'blur',\n },\n },\n {\n name: 'neumorphism',\n label: { en: 'Neumorphism', cs: 'Neumorphism' },\n description: {\n en: 'Soft UI — elements look extruded from the background using dual light/dark shadows.',\n cs: 'Měkké UI — prvky vypadají vytlačené z pozadí díky dvojitým stínům.',\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: 'medium',\n lineHeight: 'normal',\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 cardStyle: 'neumorphic',\n cardHoverEffect: 'shadow',\n navbarStyle: 'solid',\n },\n },\n {\n name: 'claymorphism',\n label: { en: 'Claymorphism', cs: 'Claymorphism' },\n description: {\n en: 'Soft, colourful 3D clay-like elements with large radius and inflated look.',\n cs: 'Měkké, barevné 3D „plastelínové\" prvky s velkým zaoblením a nafouklým vzhledem.',\n },\n category: 'effect',\n borderRadius: 'xl',\n animationLevel: 'high',\n spacing: 'medium',\n typography: {\n bodyFont: 'Nunito',\n headingFont: 'Nunito',\n baseFontSize: 'large',\n lineHeight: 'relaxed',\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 cardStyle: 'elevated',\n cardHoverEffect: 'scale',\n navbarStyle: 'floating',\n },\n },\n {\n name: 'gradient-heavy',\n label: { en: 'Gradient', cs: 'Gradientový' },\n description: {\n en: 'Gradient borders and glow effects as the primary visual accent.',\n cs: 'Gradientové okraje a záře jako hlavní vizuální akcent.',\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: 'medium',\n lineHeight: 'normal',\n letterSpacing: 'tight',\n headingWeight: '700',\n },\n visualEffects: {\n effectStyle: 'elevated',\n shadowIntensity: 'medium',\n borderStyle: 'none',\n borderWidth: '0px',\n },\n componentStyles: {\n buttonVariant: 'gradient',\n cardStyle: 'gradient-border',\n cardHoverEffect: 'glow',\n navbarStyle: 'blur',\n },\n },\n]\n\nexport const stylePresetCategories = [\n { name: 'classic', label: { en: 'Classic Styles', cs: 'Klasické styly' } },\n { name: 'effect', label: { en: 'Visual Effects', cs: 'Vizuální efekty' } },\n] as const\n"],"names":["allStylePresets","name","label","en","cs","description","category","borderRadius","animationLevel","spacing","typography","bodyFont","headingFont","baseFontSize","lineHeight","letterSpacing","headingWeight","visualEffects","effectStyle","shadowIntensity","borderStyle","borderWidth","componentStyles","buttonVariant","cardStyle","cardHoverEffect","navbarStyle","backdropBlur","glassOpacity","stylePresetCategories"],"mappings":"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"}
|
|
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
|
@@ -177,10 +177,15 @@ export interface PluginTranslations {
|
|
|
177
177
|
heading: string;
|
|
178
178
|
body: string;
|
|
179
179
|
link: string;
|
|
180
|
+
cardTitle: string;
|
|
181
|
+
cardBody: string;
|
|
180
182
|
primary: string;
|
|
181
183
|
secondary: string;
|
|
182
184
|
footer: string;
|
|
183
185
|
viewport: string;
|
|
186
|
+
nativeTitle: string;
|
|
187
|
+
nativeBody: string;
|
|
188
|
+
nativeOpen: string;
|
|
184
189
|
chips: {
|
|
185
190
|
effect: string;
|
|
186
191
|
shadow: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../src/translations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../src/translations.ts"],"names":[],"mappings":"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"}
|
package/dist/translations.js
CHANGED
|
@@ -177,10 +177,15 @@ const translations = {
|
|
|
177
177
|
heading: 'Sample heading',
|
|
178
178
|
body: 'The quick brown fox jumps over the lazy dog. Here is an ',
|
|
179
179
|
link: 'inline link',
|
|
180
|
+
cardTitle: 'Card title',
|
|
181
|
+
cardBody: 'A short description that shows how body text reads inside a card.',
|
|
180
182
|
primary: 'Primary',
|
|
181
183
|
secondary: 'Secondary',
|
|
182
184
|
footer: 'Footer',
|
|
183
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',
|
|
184
189
|
chips: {
|
|
185
190
|
effect: 'Effect',
|
|
186
191
|
shadow: 'Shadow',
|
|
@@ -367,10 +372,15 @@ const translations = {
|
|
|
367
372
|
heading: 'Ukázkový nadpis',
|
|
368
373
|
body: 'Příliš žluťoučký kůň úpěl ďábelské ódy. Tady je ',
|
|
369
374
|
link: 'odkaz',
|
|
375
|
+
cardTitle: 'Nadpis karty',
|
|
376
|
+
cardBody: 'Krátký popis, na kterém je vidět, jak se čte text uvnitř karty.',
|
|
370
377
|
primary: 'Primární',
|
|
371
378
|
secondary: 'Sekundární',
|
|
372
379
|
footer: 'Patička',
|
|
373
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',
|
|
374
384
|
chips: {
|
|
375
385
|
effect: 'Efekt',
|
|
376
386
|
shadow: 'Stín',
|
package/dist/translations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/translations.ts"],"sourcesContent":["export type Language = string\n\n/**\n * i18n namespace under which all plugin translations are registered inside\n * Payload's `config.i18n.translations`. Consumers can reference keys via\n * `t('theme-management:...')` and override them by merging into the same namespace.\n */\nexport const THEME_MANAGEMENT_I18N_NAMESPACE = 'theme-management' as const\n\nexport interface PluginTranslations {\n tabLabel: string\n standaloneCollectionLabel: string\n livePreview: {\n smallTitle: string\n largeTitle: string\n }\n ui: {\n primaryAction: string\n secondaryAction: string\n lightMode: string\n darkMode: string\n selectFontPlaceholder: string\n usePreset: string\n specifyCustom: string\n sampleSentence: string\n showPreview: string\n hidePreview: string\n colorsAndTypography: string\n clearSelection: string\n selectedColor: string\n themePresets: string\n choosePreset: string\n presetCount: string\n mutedSample: string\n accentSample: string\n headingSample: string\n bodySample: string\n bodyFontLabel: string\n headingFontLabel: string\n baseSizeLabel: string\n lineHeightLabel: string\n selectThemeError: string\n }\n stylePreset: {\n description: string\n }\n colors: {\n primary: string\n secondary: string\n accent: string\n background: string\n foreground: string\n muted: string\n card: string\n popover: string\n }\n preview: {\n siteTitle: string\n nav: {\n home: string\n about: string\n services: string\n contact: string\n }\n welcomeTitle: string\n welcomeCopy: string\n sampleCardTitle: string\n customPalette: string\n footer: string\n }\n paletteGenerator: {\n title: string\n subtitle: string\n generate: string\n fromImage: string\n pick: string\n hint: string\n seedLabel: string\n useColor: string\n imageError: string\n }\n accessibility: {\n title: string\n subtitle: string\n fix: string\n allGood: string\n noData: string\n pairs: {\n bodyText: string\n mutedText: string\n primaryButton: string\n secondaryButton: string\n accent: string\n cardText: string\n destructive: string\n }\n }\n themeExport: {\n title: string\n subtitle: string\n designTokens: string\n tailwindV4: string\n tailwindV3: string\n copyV4: string\n copied: string\n copyFailed: string\n }\n colorPicker: {\n openPicker: string\n close: string\n title: string\n quickColors: string\n placeholder: string\n contrast: string\n onWhite: string\n onBlack: string\n selectColor: string\n levelAA: string\n levelAALarge: string\n levelLow: string\n pairContrast: string\n pairContrastTitle: string\n presetsTitle: string\n themeColors: string\n commonColors: string\n neutralTones: string\n customColor: string\n formats: string\n currentColor: string\n }\n appearance: {\n locksLabel: string\n locksHint: string\n colors: string\n fonts: string\n style: string\n lockedState: string\n unlockedState: string\n applied: string\n undo: string\n undone: string\n dismiss: string\n colorsLocked: string\n styleLocked: string\n generatedPalette: string\n }\n presetImport: {\n none: string\n summary: string\n importButton: string\n clearButton: string\n drawerTitle: string\n drawerIntro: string\n uploadButton: string\n applyButton: string\n cleared: string\n imported: string\n invalid: string\n readError: string\n textareaLabel: string\n }\n fontGuide: {\n usageTitle: string\n usageIntro: string\n optionNextFont: string\n optionCssLink: string\n strategyTitle: string\n preImportedTitle: string\n preImportedCopy: string\n dynamicTitle: string\n dynamicCopy: string\n exampleTitle: string\n }\n appearancePreview: {\n title: string\n subtitle: string\n light: string\n dark: string\n heading: string\n body: string\n link: string\n primary: string\n secondary: string\n footer: string\n viewport: string\n chips: {\n effect: string\n shadow: string\n card: string\n hover: string\n button: string\n navbar: string\n footer: string\n link: string\n image: string\n radius: string\n }\n }\n}\n\n// Mutable translations object to allow runtime registration/extension\nconst translations: Record<Language, PluginTranslations> = {\n en: {\n tabLabel: 'Appearance Settings',\n standaloneCollectionLabel: 'Appearance Settings',\n livePreview: {\n smallTitle: 'Live Preview',\n largeTitle: 'Live Theme Preview',\n },\n ui: {\n primaryAction: 'Primary Action',\n secondaryAction: 'Secondary',\n lightMode: 'Light Mode',\n darkMode: 'Dark Mode',\n selectFontPlaceholder: 'Select font...',\n usePreset: 'Use theme preset font',\n specifyCustom: 'Specify custom font below',\n sampleSentence: 'The quick brown fox jumps over the lazy dog',\n showPreview: 'Preview',\n hidePreview: 'Hide preview',\n colorsAndTypography: 'Colours & typography',\n clearSelection: 'Unselect style (settings stay as they are)',\n selectedColor: 'Selected color:',\n themePresets: 'Theme presets',\n choosePreset: 'Choose a preset',\n presetCount: 'presets',\n mutedSample: 'Muted surface',\n accentSample: 'Accent tag',\n headingSample: 'Heading preview',\n bodySample: 'Sphinx of black quartz, judge my vow. The quick brown fox jumps over the lazy dog.',\n bodyFontLabel: 'Body',\n headingFontLabel: 'Headings',\n baseSizeLabel: 'Base size',\n lineHeightLabel: 'Line height',\n selectThemeError: 'Select a theme',\n },\n stylePreset: {\n description:\n 'Pick a visual style — sets effects, shadows and component styles. Colours stay unchanged.',\n },\n colors: {\n primary: 'Primary',\n secondary: 'Secondary',\n accent: 'Accent',\n background: 'Background',\n foreground: 'Foreground',\n muted: 'Muted',\n card: 'Card',\n popover: 'Popover',\n },\n preview: {\n siteTitle: 'Your Website',\n nav: {\n home: 'Home',\n about: 'About',\n services: 'Services',\n contact: 'Contact',\n },\n welcomeTitle: 'Welcome to Your Site',\n welcomeCopy:\n 'This is how your content will look with the selected theme. The colors and styling will be applied across your entire website.',\n sampleCardTitle: 'Sample Card',\n customPalette: 'Custom palette',\n footer: '© 2025 Your Website. Powered by PayloadCMS.',\n },\n paletteGenerator: {\n title: 'Palette generator',\n subtitle: 'Builds a complete light & dark palette from one brand colour (or a logo).',\n generate: 'Generate palette',\n fromImage: 'Extract from image',\n pick: 'Pick a colour from the logo, then click Generate palette:',\n hint: 'Overwrites light & dark mode colours.',\n seedLabel: 'Brand colour',\n useColor: 'Use colour',\n imageError: 'This image could not be read. Try a PNG, JPG or SVG file.',\n },\n accessibility: {\n title: 'Accessibility (WCAG contrast)',\n subtitle: 'Readability check of colour pairs in both modes. AA = 4.5:1.',\n fix: 'Fix',\n allGood: 'All pairs pass AA',\n noData: 'No colours to evaluate.',\n pairs: {\n bodyText: 'Body text',\n mutedText: 'Muted text',\n primaryButton: 'Primary button',\n secondaryButton: 'Secondary button',\n accent: 'Accent',\n cardText: 'Card text',\n destructive: 'Destructive',\n },\n },\n themeExport: {\n title: 'Export theme',\n subtitle: 'Download colours as design tokens or Tailwind config.',\n designTokens: 'Design tokens (JSON)',\n tailwindV4: 'Tailwind v4 (@theme)',\n tailwindV3: 'Tailwind v3 config',\n copyV4: 'Copy v4',\n copied: 'Copied!',\n copyFailed: 'Copy failed. Download the file instead.',\n },\n colorPicker: {\n openPicker: 'Open colour picker',\n close: 'Close colour picker',\n title: 'Colour picker',\n quickColors: 'Quick colours',\n placeholder: 'oklch(…) or #hex',\n contrast: 'WCAG contrast',\n onWhite: 'on white',\n onBlack: 'on black',\n selectColor: 'Use colour',\n levelAA: 'AA',\n levelAALarge: 'AA large text',\n levelLow: 'Low',\n pairContrast: 'Text contrast',\n pairContrastTitle: 'Contrast between {foreground} and {background}',\n presetsTitle: 'Colour presets',\n themeColors: 'Theme colours',\n commonColors: 'Common colours',\n neutralTones: 'Neutral tones',\n customColor: 'Custom colour',\n formats: 'Accepts HEX, RGB, HSL, OKLCH or a CSS variable.',\n currentColor: 'Current colour',\n },\n appearance: {\n locksLabel: 'Keep my',\n locksHint: 'Locked parts stay as they are when you pick a theme, a style or generate a palette.',\n colors: 'Colours',\n fonts: 'Fonts',\n style: 'Style',\n lockedState: 'locked',\n unlockedState: 'unlocked',\n applied: 'Applied: {name}',\n undo: 'Undo',\n undone: 'Change reverted',\n dismiss: 'Dismiss',\n colorsLocked: 'Colours are locked. Unlock them to generate a palette.',\n styleLocked: 'Style and fonts are locked. Unlock one of them to apply a style.',\n generatedPalette: 'generated palette',\n },\n presetImport: {\n none: 'No custom presets imported yet',\n summary: 'Imported presets ({count}): {names}',\n importButton: 'Import presets',\n clearButton: 'Remove imported presets',\n drawerTitle: 'Import theme presets',\n drawerIntro:\n 'Paste JSON or upload a .json file with preset definitions. Imported presets appear in Theme selection straight away.',\n uploadButton: 'Upload JSON file',\n applyButton: 'Import',\n cleared: 'Imported presets removed',\n imported: 'Imported presets: {count}',\n invalid: 'No valid presets found. Each entry needs at least a \"name\" and a \"label\".',\n readError: 'The file could not be read: {message}',\n textareaLabel: 'Preset JSON',\n },\n fontGuide: {\n usageTitle: 'How to use the selected font',\n usageIntro:\n 'After you pick a font, your website’s frontend has to load it. A developer can use either of these approaches:',\n optionNextFont: 'Option 1: next/font/google (recommended)',\n optionCssLink: 'Option 2: Google Fonts CSS link',\n strategyTitle: 'Font loading strategy',\n preImportedTitle: 'Pre-imported fonts (optimised)',\n preImportedCopy:\n 'These 8 popular fonts are pre-optimised through next/font/google, so they load with no extra runtime request:',\n dynamicTitle: 'Dynamic fonts (Google Fonts CSS)',\n dynamicCopy:\n '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.',\n exampleTitle: 'Implementation example',\n },\n appearancePreview: {\n title: 'Live preview',\n subtitle: 'Colours, fonts and component styles together, updated as you edit.',\n light: 'Light',\n dark: 'Dark',\n heading: 'Sample heading',\n body: 'The quick brown fox jumps over the lazy dog. Here is an ',\n link: 'inline link',\n primary: 'Primary',\n secondary: 'Secondary',\n footer: 'Footer',\n viewport: 'Device preview',\n chips: {\n effect: 'Effect',\n shadow: 'Shadow',\n card: 'Card',\n hover: 'Hover',\n button: 'Button',\n navbar: 'Navbar',\n footer: 'Footer',\n link: 'Links',\n image: 'Images',\n radius: 'Corners',\n },\n },\n },\n cs: {\n tabLabel: 'Nastavení vzhledu',\n standaloneCollectionLabel: 'Nastavení vzhledu',\n livePreview: {\n smallTitle: 'Náhled',\n largeTitle: 'Náhled motivu',\n },\n ui: {\n primaryAction: 'Primární akce',\n secondaryAction: 'Sekundární',\n lightMode: 'Světlý režim',\n darkMode: 'Tmavý režim',\n selectFontPlaceholder: 'Vyberte písmo...',\n usePreset: 'Použít písmo motivu',\n specifyCustom: 'Zadejte vlastní písmo níže',\n sampleSentence: 'Rychlá hnědá liška přeskočila líného psa',\n showPreview: 'Náhled',\n hidePreview: 'Skrýt náhled',\n colorsAndTypography: 'Barvy & typografie',\n clearSelection: 'Zrušit výběr stylu (nastavení zůstane)',\n selectedColor: 'Vybraná barva:',\n themePresets: 'Motivy',\n choosePreset: 'Vyberte motiv',\n presetCount: 'motivů',\n mutedSample: 'Tlumená plocha',\n accentSample: 'Akcentový štítek',\n headingSample: 'Ukázka nadpisu',\n bodySample: 'Příliš žluťoučký kůň úpěl ďábelské ódy. Nechť již hříšné saxofony ďáblů rozezvučí síň.',\n bodyFontLabel: 'Text',\n headingFontLabel: 'Nadpisy',\n baseSizeLabel: 'Základní velikost',\n lineHeightLabel: 'Výška řádku',\n selectThemeError: 'Vyberte motiv',\n },\n stylePreset: {\n description:\n 'Vyberte vizuální styl. Nastaví efekty, stíny a styly komponent — barvy zůstanou nezměněny.',\n },\n colors: {\n primary: 'Primární',\n secondary: 'Sekundární',\n accent: 'Akcent',\n background: 'Pozadí',\n foreground: 'Popředí',\n muted: 'Ztlumený',\n card: 'Karta',\n popover: 'Popover',\n },\n preview: {\n siteTitle: 'Váš web',\n nav: {\n home: 'Domů',\n about: 'O nás',\n services: 'Služby',\n contact: 'Kontakt',\n },\n welcomeTitle: 'Vítejte na svém webu',\n welcomeCopy:\n 'Takto bude vypadat váš obsah s vybraným motivem. Barvy a stylování budou aplikovány na celý web.',\n sampleCardTitle: 'Ukázková karta',\n customPalette: 'Vlastní paleta',\n footer: '© 2025 Váš web. Poháněno PayloadCMS.',\n },\n paletteGenerator: {\n title: 'Generátor palety',\n subtitle: 'Z jedné značkové barvy (nebo z loga) vytvoří kompletní světlou i tmavou paletu.',\n generate: 'Vygenerovat paletu',\n fromImage: 'Extrahovat z obrázku',\n pick: 'Vyberte barvu z loga a pak klikněte na Vygenerovat paletu:',\n hint: 'Přepíše barvy ve světlém i tmavém režimu.',\n seedLabel: 'Barva značky',\n useColor: 'Použít barvu',\n imageError: 'Obrázek se nepodařilo načíst. Zkuste soubor PNG, JPG nebo SVG.',\n },\n accessibility: {\n title: 'Přístupnost (WCAG kontrast)',\n subtitle: 'Kontrola čitelnosti barevných párů v obou režimech. AA = 4.5:1.',\n fix: 'Opravit',\n allGood: 'Vše vyhovuje AA',\n noData: 'Žádné barvy k vyhodnocení.',\n pairs: {\n bodyText: 'Tělo textu',\n mutedText: 'Tlumený text',\n primaryButton: 'Primární tlačítko',\n secondaryButton: 'Sekundární tlačítko',\n accent: 'Akcent',\n cardText: 'Text karty',\n destructive: 'Destruktivní',\n },\n },\n themeExport: {\n title: 'Export motivu',\n subtitle: 'Stáhněte barvy jako design tokeny nebo konfiguraci pro Tailwind.',\n designTokens: 'Design tokeny (JSON)',\n tailwindV4: 'Tailwind v4 (@theme)',\n tailwindV3: 'Tailwind v3 konfigurace',\n copyV4: 'Kopírovat v4',\n copied: 'Zkopírováno!',\n copyFailed: 'Kopírování selhalo. Stáhněte si raději soubor.',\n },\n colorPicker: {\n openPicker: 'Otevřít výběr barvy',\n close: 'Zavřít výběr barvy',\n title: 'Výběr barvy',\n quickColors: 'Rychlé barvy',\n placeholder: 'oklch(…) nebo #hex',\n contrast: 'WCAG kontrast',\n onWhite: 'na bílé',\n onBlack: 'na černé',\n selectColor: 'Použít barvu',\n levelAA: 'AA',\n levelAALarge: 'AA velký text',\n levelLow: 'Nízký',\n pairContrast: 'Kontrast textu',\n pairContrastTitle: 'Kontrast mezi {foreground} a {background}',\n presetsTitle: 'Předvolby barev',\n themeColors: 'Barvy motivu',\n commonColors: 'Běžné barvy',\n neutralTones: 'Neutrální odstíny',\n customColor: 'Vlastní barva',\n formats: 'Přijímá HEX, RGB, HSL, OKLCH nebo CSS proměnnou.',\n currentColor: 'Aktuální barva',\n },\n appearance: {\n locksLabel: 'Ponechat moje',\n locksHint: 'Zamčené části zůstanou beze změny, když vyberete motiv, styl nebo vygenerujete paletu.',\n colors: 'Barvy',\n fonts: 'Písma',\n style: 'Styl',\n lockedState: 'zamčeno',\n unlockedState: 'odemčeno',\n applied: 'Použito: {name}',\n undo: 'Zpět',\n undone: 'Změna vrácena',\n dismiss: 'Zavřít',\n colorsLocked: 'Barvy jsou zamčené. Pro vygenerování palety je odemkněte.',\n styleLocked: 'Styl i písma jsou zamčené. Pro použití stylu jedno z nich odemkněte.',\n generatedPalette: 'vygenerovaná paleta',\n },\n presetImport: {\n none: 'Zatím nejsou importované žádné vlastní motivy',\n summary: 'Importované motivy ({count}): {names}',\n importButton: 'Importovat motivy',\n clearButton: 'Odebrat importované motivy',\n drawerTitle: 'Import motivů',\n drawerIntro:\n 'Vložte JSON nebo nahrajte soubor .json s definicemi motivů. Importované motivy se hned objeví ve výběru motivu.',\n uploadButton: 'Nahrát soubor JSON',\n applyButton: 'Importovat',\n cleared: 'Importované motivy odebrány',\n imported: 'Importované motivy: {count}',\n invalid: 'Nenašel se žádný platný motiv. Každá položka potřebuje alespoň „name“ a „label“.',\n readError: 'Soubor se nepodařilo načíst: {message}',\n textareaLabel: 'JSON s motivy',\n },\n fontGuide: {\n usageTitle: 'Jak použít vybrané písmo',\n usageIntro:\n 'Po výběru písma ho musí web ve frontendu načíst. Vývojář může použít jeden z těchto postupů:',\n optionNextFont: 'Možnost 1: next/font/google (doporučeno)',\n optionCssLink: 'Možnost 2: odkaz na CSS Google Fonts',\n strategyTitle: 'Strategie načítání písem',\n preImportedTitle: 'Předem importovaná písma (optimalizovaná)',\n preImportedCopy:\n '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:',\n dynamicTitle: 'Dynamická písma (Google Fonts CSS)',\n dynamicCopy:\n '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.',\n exampleTitle: 'Ukázka implementace',\n },\n appearancePreview: {\n title: 'Živý náhled',\n subtitle: 'Barvy, písma a styly komponent pohromadě, mění se hned při úpravách.',\n light: 'Světlý',\n dark: 'Tmavý',\n heading: 'Ukázkový nadpis',\n body: 'Příliš žluťoučký kůň úpěl ďábelské ódy. Tady je ',\n link: 'odkaz',\n primary: 'Primární',\n secondary: 'Sekundární',\n footer: 'Patička',\n viewport: 'Náhled zařízení',\n chips: {\n effect: 'Efekt',\n shadow: 'Stín',\n card: 'Karta',\n hover: 'Hover',\n button: 'Tlačítko',\n navbar: 'Navigace',\n footer: 'Patička',\n link: 'Odkazy',\n image: 'Obrázky',\n radius: 'Rohy',\n },\n },\n },\n}\n\nexport type DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P]\n}\n\nexport function deepMerge<T extends object>(base: T, partial: DeepPartial<T>): T {\n const out: Record<string, unknown> = { ...(base as Record<string, unknown>) }\n for (const key of Object.keys(partial)) {\n const val = (partial as Record<string, unknown>)[key]\n if (val && typeof val === 'object' && !Array.isArray(val)) {\n const baseVal = (base as Record<string, unknown>)[key] as Record<string, unknown> | undefined\n out[key] = deepMerge(baseVal ?? {}, val as DeepPartial<Record<string, unknown>>) as unknown\n } else {\n out[key] = val\n }\n }\n return out as T\n}\n\nexport function getTranslations(lang: Language = 'en'): PluginTranslations {\n // Always merge with English defaults so missing keys fall back\n const en = translations['en']\n if (!lang || lang === 'en') return en\n const localized = (translations[lang] as Partial<PluginTranslations>) || {}\n return deepMerge(en, localized as DeepPartial<PluginTranslations>)\n}\n\nexport function registerTranslations(\n newTranslations: Record<Language, DeepPartial<PluginTranslations>>,\n) {\n for (const lang of Object.keys(newTranslations)) {\n const existing = (translations[lang] as PluginTranslations) || ({} as PluginTranslations)\n translations[lang] = deepMerge(existing, newTranslations[lang])\n }\n}\n\nexport function availableLanguages() {\n return Object.keys(translations)\n}\n\nexport { translations }\n"],"names":["THEME_MANAGEMENT_I18N_NAMESPACE","translations","en","tabLabel","standaloneCollectionLabel","livePreview","smallTitle","largeTitle","ui","primaryAction","secondaryAction","lightMode","darkMode","selectFontPlaceholder","usePreset","specifyCustom","sampleSentence","showPreview","hidePreview","colorsAndTypography","clearSelection","selectedColor","themePresets","choosePreset","presetCount","mutedSample","accentSample","headingSample","bodySample","bodyFontLabel","headingFontLabel","baseSizeLabel","lineHeightLabel","selectThemeError","stylePreset","description","colors","primary","secondary","accent","background","foreground","muted","card","popover","preview","siteTitle","nav","home","about","services","contact","welcomeTitle","welcomeCopy","sampleCardTitle","customPalette","footer","paletteGenerator","title","subtitle","generate","fromImage","pick","hint","seedLabel","useColor","imageError","accessibility","fix","allGood","noData","pairs","bodyText","mutedText","primaryButton","secondaryButton","cardText","destructive","themeExport","designTokens","tailwindV4","tailwindV3","copyV4","copied","copyFailed","colorPicker","openPicker","close","quickColors","placeholder","contrast","onWhite","onBlack","selectColor","levelAA","levelAALarge","levelLow","pairContrast","pairContrastTitle","presetsTitle","themeColors","commonColors","neutralTones","customColor","formats","currentColor","appearance","locksLabel","locksHint","fonts","style","lockedState","unlockedState","applied","undo","undone","dismiss","colorsLocked","styleLocked","generatedPalette","presetImport","none","summary","importButton","clearButton","drawerTitle","drawerIntro","uploadButton","applyButton","cleared","imported","invalid","readError","textareaLabel","fontGuide","usageTitle","usageIntro","optionNextFont","optionCssLink","strategyTitle","preImportedTitle","preImportedCopy","dynamicTitle","dynamicCopy","exampleTitle","appearancePreview","light","dark","heading","body","link","viewport","chips","effect","shadow","hover","button","navbar","image","radius","cs","deepMerge","base","partial","out","key","Object","keys","val","Array","isArray","baseVal","getTranslations","lang","localized","registerTranslations","newTranslations","existing","availableLanguages"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/translations.ts"],"sourcesContent":["export type Language = string\n\n/**\n * i18n namespace under which all plugin translations are registered inside\n * Payload's `config.i18n.translations`. Consumers can reference keys via\n * `t('theme-management:...')` and override them by merging into the same namespace.\n */\nexport const THEME_MANAGEMENT_I18N_NAMESPACE = 'theme-management' as const\n\nexport interface PluginTranslations {\n tabLabel: string\n standaloneCollectionLabel: string\n livePreview: {\n smallTitle: string\n largeTitle: string\n }\n ui: {\n primaryAction: string\n secondaryAction: string\n lightMode: string\n darkMode: string\n selectFontPlaceholder: string\n usePreset: string\n specifyCustom: string\n sampleSentence: string\n showPreview: string\n hidePreview: string\n colorsAndTypography: string\n clearSelection: string\n selectedColor: string\n themePresets: string\n choosePreset: string\n presetCount: string\n mutedSample: string\n accentSample: string\n headingSample: string\n bodySample: string\n bodyFontLabel: string\n headingFontLabel: string\n baseSizeLabel: string\n lineHeightLabel: string\n selectThemeError: string\n }\n stylePreset: {\n description: string\n }\n colors: {\n primary: string\n secondary: string\n accent: string\n background: string\n foreground: string\n muted: string\n card: string\n popover: string\n }\n preview: {\n siteTitle: string\n nav: {\n home: string\n about: string\n services: string\n contact: string\n }\n welcomeTitle: string\n welcomeCopy: string\n sampleCardTitle: string\n customPalette: string\n footer: string\n }\n paletteGenerator: {\n title: string\n subtitle: string\n generate: string\n fromImage: string\n pick: string\n hint: string\n seedLabel: string\n useColor: string\n imageError: string\n }\n accessibility: {\n title: string\n subtitle: string\n fix: string\n allGood: string\n noData: string\n pairs: {\n bodyText: string\n mutedText: string\n primaryButton: string\n secondaryButton: string\n accent: string\n cardText: string\n destructive: string\n }\n }\n themeExport: {\n title: string\n subtitle: string\n designTokens: string\n tailwindV4: string\n tailwindV3: string\n copyV4: string\n copied: string\n copyFailed: string\n }\n colorPicker: {\n openPicker: string\n close: string\n title: string\n quickColors: string\n placeholder: string\n contrast: string\n onWhite: string\n onBlack: string\n selectColor: string\n levelAA: string\n levelAALarge: string\n levelLow: string\n pairContrast: string\n pairContrastTitle: string\n presetsTitle: string\n themeColors: string\n commonColors: string\n neutralTones: string\n customColor: string\n formats: string\n currentColor: string\n }\n appearance: {\n locksLabel: string\n locksHint: string\n colors: string\n fonts: string\n style: string\n lockedState: string\n unlockedState: string\n applied: string\n undo: string\n undone: string\n dismiss: string\n colorsLocked: string\n styleLocked: string\n generatedPalette: string\n }\n presetImport: {\n none: string\n summary: string\n importButton: string\n clearButton: string\n drawerTitle: string\n drawerIntro: string\n uploadButton: string\n applyButton: string\n cleared: string\n imported: string\n invalid: string\n readError: string\n textareaLabel: string\n }\n fontGuide: {\n usageTitle: string\n usageIntro: string\n optionNextFont: string\n optionCssLink: string\n strategyTitle: string\n preImportedTitle: string\n preImportedCopy: string\n dynamicTitle: string\n dynamicCopy: string\n exampleTitle: string\n }\n appearancePreview: {\n title: string\n subtitle: string\n light: string\n dark: string\n heading: string\n body: string\n link: string\n cardTitle: string\n cardBody: string\n primary: string\n secondary: string\n footer: string\n viewport: string\n nativeTitle: string\n nativeBody: string\n nativeOpen: string\n chips: {\n effect: string\n shadow: string\n card: string\n hover: string\n button: string\n navbar: string\n footer: string\n link: string\n image: string\n radius: string\n }\n }\n}\n\n// Mutable translations object to allow runtime registration/extension\nconst translations: Record<Language, PluginTranslations> = {\n en: {\n tabLabel: 'Appearance Settings',\n standaloneCollectionLabel: 'Appearance Settings',\n livePreview: {\n smallTitle: 'Live Preview',\n largeTitle: 'Live Theme Preview',\n },\n ui: {\n primaryAction: 'Primary Action',\n secondaryAction: 'Secondary',\n lightMode: 'Light Mode',\n darkMode: 'Dark Mode',\n selectFontPlaceholder: 'Select font...',\n usePreset: 'Use theme preset font',\n specifyCustom: 'Specify custom font below',\n sampleSentence: 'The quick brown fox jumps over the lazy dog',\n showPreview: 'Preview',\n hidePreview: 'Hide preview',\n colorsAndTypography: 'Colours & typography',\n clearSelection: 'Unselect style (settings stay as they are)',\n selectedColor: 'Selected color:',\n themePresets: 'Theme presets',\n choosePreset: 'Choose a preset',\n presetCount: 'presets',\n mutedSample: 'Muted surface',\n accentSample: 'Accent tag',\n headingSample: 'Heading preview',\n bodySample: 'Sphinx of black quartz, judge my vow. The quick brown fox jumps over the lazy dog.',\n bodyFontLabel: 'Body',\n headingFontLabel: 'Headings',\n baseSizeLabel: 'Base size',\n lineHeightLabel: 'Line height',\n selectThemeError: 'Select a theme',\n },\n stylePreset: {\n description:\n 'Pick a visual style — sets effects, shadows and component styles. Colours stay unchanged.',\n },\n colors: {\n primary: 'Primary',\n secondary: 'Secondary',\n accent: 'Accent',\n background: 'Background',\n foreground: 'Foreground',\n muted: 'Muted',\n card: 'Card',\n popover: 'Popover',\n },\n preview: {\n siteTitle: 'Your Website',\n nav: {\n home: 'Home',\n about: 'About',\n services: 'Services',\n contact: 'Contact',\n },\n welcomeTitle: 'Welcome to Your Site',\n welcomeCopy:\n 'This is how your content will look with the selected theme. The colors and styling will be applied across your entire website.',\n sampleCardTitle: 'Sample Card',\n customPalette: 'Custom palette',\n footer: '© 2025 Your Website. Powered by PayloadCMS.',\n },\n paletteGenerator: {\n title: 'Palette generator',\n subtitle: 'Builds a complete light & dark palette from one brand colour (or a logo).',\n generate: 'Generate palette',\n fromImage: 'Extract from image',\n pick: 'Pick a colour from the logo, then click Generate palette:',\n hint: 'Overwrites light & dark mode colours.',\n seedLabel: 'Brand colour',\n useColor: 'Use colour',\n imageError: 'This image could not be read. Try a PNG, JPG or SVG file.',\n },\n accessibility: {\n title: 'Accessibility (WCAG contrast)',\n subtitle: 'Readability check of colour pairs in both modes. AA = 4.5:1.',\n fix: 'Fix',\n allGood: 'All pairs pass AA',\n noData: 'No colours to evaluate.',\n pairs: {\n bodyText: 'Body text',\n mutedText: 'Muted text',\n primaryButton: 'Primary button',\n secondaryButton: 'Secondary button',\n accent: 'Accent',\n cardText: 'Card text',\n destructive: 'Destructive',\n },\n },\n themeExport: {\n title: 'Export theme',\n subtitle: 'Download colours as design tokens or Tailwind config.',\n designTokens: 'Design tokens (JSON)',\n tailwindV4: 'Tailwind v4 (@theme)',\n tailwindV3: 'Tailwind v3 config',\n copyV4: 'Copy v4',\n copied: 'Copied!',\n copyFailed: 'Copy failed. Download the file instead.',\n },\n colorPicker: {\n openPicker: 'Open colour picker',\n close: 'Close colour picker',\n title: 'Colour picker',\n quickColors: 'Quick colours',\n placeholder: 'oklch(…) or #hex',\n contrast: 'WCAG contrast',\n onWhite: 'on white',\n onBlack: 'on black',\n selectColor: 'Use colour',\n levelAA: 'AA',\n levelAALarge: 'AA large text',\n levelLow: 'Low',\n pairContrast: 'Text contrast',\n pairContrastTitle: 'Contrast between {foreground} and {background}',\n presetsTitle: 'Colour presets',\n themeColors: 'Theme colours',\n commonColors: 'Common colours',\n neutralTones: 'Neutral tones',\n customColor: 'Custom colour',\n formats: 'Accepts HEX, RGB, HSL, OKLCH or a CSS variable.',\n currentColor: 'Current colour',\n },\n appearance: {\n locksLabel: 'Keep my',\n locksHint: 'Locked parts stay as they are when you pick a theme, a style or generate a palette.',\n colors: 'Colours',\n fonts: 'Fonts',\n style: 'Style',\n lockedState: 'locked',\n unlockedState: 'unlocked',\n applied: 'Applied: {name}',\n undo: 'Undo',\n undone: 'Change reverted',\n dismiss: 'Dismiss',\n colorsLocked: 'Colours are locked. Unlock them to generate a palette.',\n styleLocked: 'Style and fonts are locked. Unlock one of them to apply a style.',\n generatedPalette: 'generated palette',\n },\n presetImport: {\n none: 'No custom presets imported yet',\n summary: 'Imported presets ({count}): {names}',\n importButton: 'Import presets',\n clearButton: 'Remove imported presets',\n drawerTitle: 'Import theme presets',\n drawerIntro:\n 'Paste JSON or upload a .json file with preset definitions. Imported presets appear in Theme selection straight away.',\n uploadButton: 'Upload JSON file',\n applyButton: 'Import',\n cleared: 'Imported presets removed',\n imported: 'Imported presets: {count}',\n invalid: 'No valid presets found. Each entry needs at least a \"name\" and a \"label\".',\n readError: 'The file could not be read: {message}',\n textareaLabel: 'Preset JSON',\n },\n fontGuide: {\n usageTitle: 'How to use the selected font',\n usageIntro:\n 'After you pick a font, your website’s frontend has to load it. A developer can use either of these approaches:',\n optionNextFont: 'Option 1: next/font/google (recommended)',\n optionCssLink: 'Option 2: Google Fonts CSS link',\n strategyTitle: 'Font loading strategy',\n preImportedTitle: 'Pre-imported fonts (optimised)',\n preImportedCopy:\n 'These 8 popular fonts are pre-optimised through next/font/google, so they load with no extra runtime request:',\n dynamicTitle: 'Dynamic fonts (Google Fonts CSS)',\n dynamicCopy:\n '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.',\n exampleTitle: 'Implementation example',\n },\n appearancePreview: {\n title: 'Live preview',\n subtitle: 'Colours, fonts and component styles together, updated as you edit.',\n light: 'Light',\n dark: 'Dark',\n heading: 'Sample heading',\n body: 'The quick brown fox jumps over the lazy dog. Here is an ',\n link: 'inline link',\n cardTitle: 'Card title',\n cardBody: 'A short description that shows how body text reads inside a card.',\n primary: 'Primary',\n secondary: 'Secondary',\n footer: 'Footer',\n viewport: 'Device preview',\n nativeTitle: 'Preview on your real website',\n nativeBody: 'Live Preview shows every change on your own pages, with your content.',\n nativeOpen: 'Open Live Preview',\n chips: {\n effect: 'Effect',\n shadow: 'Shadow',\n card: 'Card',\n hover: 'Hover',\n button: 'Button',\n navbar: 'Navbar',\n footer: 'Footer',\n link: 'Links',\n image: 'Images',\n radius: 'Corners',\n },\n },\n },\n cs: {\n tabLabel: 'Nastavení vzhledu',\n standaloneCollectionLabel: 'Nastavení vzhledu',\n livePreview: {\n smallTitle: 'Náhled',\n largeTitle: 'Náhled motivu',\n },\n ui: {\n primaryAction: 'Primární akce',\n secondaryAction: 'Sekundární',\n lightMode: 'Světlý režim',\n darkMode: 'Tmavý režim',\n selectFontPlaceholder: 'Vyberte písmo...',\n usePreset: 'Použít písmo motivu',\n specifyCustom: 'Zadejte vlastní písmo níže',\n sampleSentence: 'Rychlá hnědá liška přeskočila líného psa',\n showPreview: 'Náhled',\n hidePreview: 'Skrýt náhled',\n colorsAndTypography: 'Barvy & typografie',\n clearSelection: 'Zrušit výběr stylu (nastavení zůstane)',\n selectedColor: 'Vybraná barva:',\n themePresets: 'Motivy',\n choosePreset: 'Vyberte motiv',\n presetCount: 'motivů',\n mutedSample: 'Tlumená plocha',\n accentSample: 'Akcentový štítek',\n headingSample: 'Ukázka nadpisu',\n bodySample: 'Příliš žluťoučký kůň úpěl ďábelské ódy. Nechť již hříšné saxofony ďáblů rozezvučí síň.',\n bodyFontLabel: 'Text',\n headingFontLabel: 'Nadpisy',\n baseSizeLabel: 'Základní velikost',\n lineHeightLabel: 'Výška řádku',\n selectThemeError: 'Vyberte motiv',\n },\n stylePreset: {\n description:\n 'Vyberte vizuální styl. Nastaví efekty, stíny a styly komponent — barvy zůstanou nezměněny.',\n },\n colors: {\n primary: 'Primární',\n secondary: 'Sekundární',\n accent: 'Akcent',\n background: 'Pozadí',\n foreground: 'Popředí',\n muted: 'Ztlumený',\n card: 'Karta',\n popover: 'Popover',\n },\n preview: {\n siteTitle: 'Váš web',\n nav: {\n home: 'Domů',\n about: 'O nás',\n services: 'Služby',\n contact: 'Kontakt',\n },\n welcomeTitle: 'Vítejte na svém webu',\n welcomeCopy:\n 'Takto bude vypadat váš obsah s vybraným motivem. Barvy a stylování budou aplikovány na celý web.',\n sampleCardTitle: 'Ukázková karta',\n customPalette: 'Vlastní paleta',\n footer: '© 2025 Váš web. Poháněno PayloadCMS.',\n },\n paletteGenerator: {\n title: 'Generátor palety',\n subtitle: 'Z jedné značkové barvy (nebo z loga) vytvoří kompletní světlou i tmavou paletu.',\n generate: 'Vygenerovat paletu',\n fromImage: 'Extrahovat z obrázku',\n pick: 'Vyberte barvu z loga a pak klikněte na Vygenerovat paletu:',\n hint: 'Přepíše barvy ve světlém i tmavém režimu.',\n seedLabel: 'Barva značky',\n useColor: 'Použít barvu',\n imageError: 'Obrázek se nepodařilo načíst. Zkuste soubor PNG, JPG nebo SVG.',\n },\n accessibility: {\n title: 'Přístupnost (WCAG kontrast)',\n subtitle: 'Kontrola čitelnosti barevných párů v obou režimech. AA = 4.5:1.',\n fix: 'Opravit',\n allGood: 'Vše vyhovuje AA',\n noData: 'Žádné barvy k vyhodnocení.',\n pairs: {\n bodyText: 'Tělo textu',\n mutedText: 'Tlumený text',\n primaryButton: 'Primární tlačítko',\n secondaryButton: 'Sekundární tlačítko',\n accent: 'Akcent',\n cardText: 'Text karty',\n destructive: 'Destruktivní',\n },\n },\n themeExport: {\n title: 'Export motivu',\n subtitle: 'Stáhněte barvy jako design tokeny nebo konfiguraci pro Tailwind.',\n designTokens: 'Design tokeny (JSON)',\n tailwindV4: 'Tailwind v4 (@theme)',\n tailwindV3: 'Tailwind v3 konfigurace',\n copyV4: 'Kopírovat v4',\n copied: 'Zkopírováno!',\n copyFailed: 'Kopírování selhalo. Stáhněte si raději soubor.',\n },\n colorPicker: {\n openPicker: 'Otevřít výběr barvy',\n close: 'Zavřít výběr barvy',\n title: 'Výběr barvy',\n quickColors: 'Rychlé barvy',\n placeholder: 'oklch(…) nebo #hex',\n contrast: 'WCAG kontrast',\n onWhite: 'na bílé',\n onBlack: 'na černé',\n selectColor: 'Použít barvu',\n levelAA: 'AA',\n levelAALarge: 'AA velký text',\n levelLow: 'Nízký',\n pairContrast: 'Kontrast textu',\n pairContrastTitle: 'Kontrast mezi {foreground} a {background}',\n presetsTitle: 'Předvolby barev',\n themeColors: 'Barvy motivu',\n commonColors: 'Běžné barvy',\n neutralTones: 'Neutrální odstíny',\n customColor: 'Vlastní barva',\n formats: 'Přijímá HEX, RGB, HSL, OKLCH nebo CSS proměnnou.',\n currentColor: 'Aktuální barva',\n },\n appearance: {\n locksLabel: 'Ponechat moje',\n locksHint: 'Zamčené části zůstanou beze změny, když vyberete motiv, styl nebo vygenerujete paletu.',\n colors: 'Barvy',\n fonts: 'Písma',\n style: 'Styl',\n lockedState: 'zamčeno',\n unlockedState: 'odemčeno',\n applied: 'Použito: {name}',\n undo: 'Zpět',\n undone: 'Změna vrácena',\n dismiss: 'Zavřít',\n colorsLocked: 'Barvy jsou zamčené. Pro vygenerování palety je odemkněte.',\n styleLocked: 'Styl i písma jsou zamčené. Pro použití stylu jedno z nich odemkněte.',\n generatedPalette: 'vygenerovaná paleta',\n },\n presetImport: {\n none: 'Zatím nejsou importované žádné vlastní motivy',\n summary: 'Importované motivy ({count}): {names}',\n importButton: 'Importovat motivy',\n clearButton: 'Odebrat importované motivy',\n drawerTitle: 'Import motivů',\n drawerIntro:\n 'Vložte JSON nebo nahrajte soubor .json s definicemi motivů. Importované motivy se hned objeví ve výběru motivu.',\n uploadButton: 'Nahrát soubor JSON',\n applyButton: 'Importovat',\n cleared: 'Importované motivy odebrány',\n imported: 'Importované motivy: {count}',\n invalid: 'Nenašel se žádný platný motiv. Každá položka potřebuje alespoň „name“ a „label“.',\n readError: 'Soubor se nepodařilo načíst: {message}',\n textareaLabel: 'JSON s motivy',\n },\n fontGuide: {\n usageTitle: 'Jak použít vybrané písmo',\n usageIntro:\n 'Po výběru písma ho musí web ve frontendu načíst. Vývojář může použít jeden z těchto postupů:',\n optionNextFont: 'Možnost 1: next/font/google (doporučeno)',\n optionCssLink: 'Možnost 2: odkaz na CSS Google Fonts',\n strategyTitle: 'Strategie načítání písem',\n preImportedTitle: 'Předem importovaná písma (optimalizovaná)',\n preImportedCopy:\n '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:',\n dynamicTitle: 'Dynamická písma (Google Fonts CSS)',\n dynamicCopy:\n '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.',\n exampleTitle: 'Ukázka implementace',\n },\n appearancePreview: {\n title: 'Živý náhled',\n subtitle: 'Barvy, písma a styly komponent pohromadě, mění se hned při úpravách.',\n light: 'Světlý',\n dark: 'Tmavý',\n heading: 'Ukázkový nadpis',\n body: 'Příliš žluťoučký kůň úpěl ďábelské ódy. Tady je ',\n link: 'odkaz',\n cardTitle: 'Nadpis karty',\n cardBody: 'Krátký popis, na kterém je vidět, jak se čte text uvnitř karty.',\n primary: 'Primární',\n secondary: 'Sekundární',\n footer: 'Patička',\n viewport: 'Náhled zařízení',\n nativeTitle: 'Náhled na vašem skutečném webu',\n nativeBody: 'Živý náhled ukazuje každou změnu přímo na vašich stránkách s vaším obsahem.',\n nativeOpen: 'Otevřít živý náhled',\n chips: {\n effect: 'Efekt',\n shadow: 'Stín',\n card: 'Karta',\n hover: 'Hover',\n button: 'Tlačítko',\n navbar: 'Navigace',\n footer: 'Patička',\n link: 'Odkazy',\n image: 'Obrázky',\n radius: 'Rohy',\n },\n },\n },\n}\n\nexport type DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P]\n}\n\nexport function deepMerge<T extends object>(base: T, partial: DeepPartial<T>): T {\n const out: Record<string, unknown> = { ...(base as Record<string, unknown>) }\n for (const key of Object.keys(partial)) {\n const val = (partial as Record<string, unknown>)[key]\n if (val && typeof val === 'object' && !Array.isArray(val)) {\n const baseVal = (base as Record<string, unknown>)[key] as Record<string, unknown> | undefined\n out[key] = deepMerge(baseVal ?? {}, val as DeepPartial<Record<string, unknown>>) as unknown\n } else {\n out[key] = val\n }\n }\n return out as T\n}\n\nexport function getTranslations(lang: Language = 'en'): PluginTranslations {\n // Always merge with English defaults so missing keys fall back\n const en = translations['en']\n if (!lang || lang === 'en') return en\n const localized = (translations[lang] as Partial<PluginTranslations>) || {}\n return deepMerge(en, localized as DeepPartial<PluginTranslations>)\n}\n\nexport function registerTranslations(\n newTranslations: Record<Language, DeepPartial<PluginTranslations>>,\n) {\n for (const lang of Object.keys(newTranslations)) {\n const existing = (translations[lang] as PluginTranslations) || ({} as PluginTranslations)\n translations[lang] = deepMerge(existing, newTranslations[lang])\n }\n}\n\nexport function availableLanguages() {\n return Object.keys(translations)\n}\n\nexport { translations }\n"],"names":["THEME_MANAGEMENT_I18N_NAMESPACE","translations","en","tabLabel","standaloneCollectionLabel","livePreview","smallTitle","largeTitle","ui","primaryAction","secondaryAction","lightMode","darkMode","selectFontPlaceholder","usePreset","specifyCustom","sampleSentence","showPreview","hidePreview","colorsAndTypography","clearSelection","selectedColor","themePresets","choosePreset","presetCount","mutedSample","accentSample","headingSample","bodySample","bodyFontLabel","headingFontLabel","baseSizeLabel","lineHeightLabel","selectThemeError","stylePreset","description","colors","primary","secondary","accent","background","foreground","muted","card","popover","preview","siteTitle","nav","home","about","services","contact","welcomeTitle","welcomeCopy","sampleCardTitle","customPalette","footer","paletteGenerator","title","subtitle","generate","fromImage","pick","hint","seedLabel","useColor","imageError","accessibility","fix","allGood","noData","pairs","bodyText","mutedText","primaryButton","secondaryButton","cardText","destructive","themeExport","designTokens","tailwindV4","tailwindV3","copyV4","copied","copyFailed","colorPicker","openPicker","close","quickColors","placeholder","contrast","onWhite","onBlack","selectColor","levelAA","levelAALarge","levelLow","pairContrast","pairContrastTitle","presetsTitle","themeColors","commonColors","neutralTones","customColor","formats","currentColor","appearance","locksLabel","locksHint","fonts","style","lockedState","unlockedState","applied","undo","undone","dismiss","colorsLocked","styleLocked","generatedPalette","presetImport","none","summary","importButton","clearButton","drawerTitle","drawerIntro","uploadButton","applyButton","cleared","imported","invalid","readError","textareaLabel","fontGuide","usageTitle","usageIntro","optionNextFont","optionCssLink","strategyTitle","preImportedTitle","preImportedCopy","dynamicTitle","dynamicCopy","exampleTitle","appearancePreview","light","dark","heading","body","link","cardTitle","cardBody","viewport","nativeTitle","nativeBody","nativeOpen","chips","effect","shadow","hover","button","navbar","image","radius","cs","deepMerge","base","partial","out","key","Object","keys","val","Array","isArray","baseVal","getTranslations","lang","localized","registerTranslations","newTranslations","existing","availableLanguages"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ThemeFontLoading } from '../constants/themeFonts.js';
|
|
1
2
|
/**
|
|
2
3
|
* Keys that strongly indicate a live-preview payload is (or contains) a theme
|
|
3
4
|
* configuration object. Used to avoid applying default theme CSS when an
|
|
@@ -13,9 +14,13 @@ export declare const isThemeLikeObject: (value: unknown) => value is Record<stri
|
|
|
13
14
|
* would visibly reset the theme while editing other documents.
|
|
14
15
|
*/
|
|
15
16
|
export declare const extractThemeConfigurationFromLiveData: (liveData: Record<string, unknown> | undefined, themeConfigurationKey?: string) => Record<string, unknown> | null;
|
|
16
|
-
export declare const buildLivePreviewThemeRuntime: (themeConfiguration: unknown) => {
|
|
17
|
+
export declare const buildLivePreviewThemeRuntime: (themeConfiguration: unknown, apiRoute?: string, fontLoading?: ThemeFontLoading) => {
|
|
17
18
|
theme: "cyberpunk" | "minimal" | "retro" | "brutal" | "pastel" | "ocean" | "forest" | "sunset" | "lavender" | "glassmorphism" | "claymorphism" | "neumorphism" | "aurora" | "luxury" | "healthcare" | "nordic" | "warm-earth" | "neutral" | "blue" | "green" | "red" | "orange" | "rose" | "violet" | "zinc" | "slate" | "stone" | "gray" | "cool" | "neon" | "solar" | "dealership" | "real-estate" | "real-estate-gold" | "real-estate-neutral";
|
|
18
19
|
mode: "light" | "dark";
|
|
20
|
+
attributes: {
|
|
21
|
+
[k: string]: string;
|
|
22
|
+
};
|
|
23
|
+
fontsHref: string;
|
|
19
24
|
css: string;
|
|
20
25
|
};
|
|
21
26
|
//# sourceMappingURL=livePreviewThemeRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePreviewThemeRuntime.d.ts","sourceRoot":"","sources":["../../src/utils/livePreviewThemeRuntime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"livePreviewThemeRuntime.d.ts","sourceRoot":"","sources":["../../src/utils/livePreviewThemeRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAOvF;;;;GAIG;AACH,eAAO,MAAM,eAAe,yJAWlB,CAAA;AAEV,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAKjF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,GAChD,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,8BAA4C,KAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAa5B,CAAA;AAkBD,eAAO,MAAM,4BAA4B,GACvC,oBAAoB,OAAO,EAC3B,iBAAiB,EACjB,cAAa,gBAAgC;;;;;;;;CA2C9C,CAAA"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { buildThemeFontsHref } from '../constants/themeFonts.js';
|
|
1
2
|
import { getBorderRadiusConfig } from '../providers/Theme/themeConfig.js';
|
|
2
3
|
import { resolveThemeConfiguration } from './resolveThemeConfiguration.js';
|
|
3
4
|
import { generateThemeColorsCss } from './themeColors.js';
|
|
5
|
+
import { getThemeHtmlAttributes } from './themeHtmlAttributes.js';
|
|
4
6
|
import { generateThemeCSS } from './themeUtils.js';
|
|
5
7
|
/**
|
|
6
8
|
* Keys that strongly indicate a live-preview payload is (or contains) a theme
|
|
@@ -51,7 +53,7 @@ const resolveColorMode = (mode)=>{
|
|
|
51
53
|
}
|
|
52
54
|
return 'light';
|
|
53
55
|
};
|
|
54
|
-
export const buildLivePreviewThemeRuntime = (themeConfiguration)=>{
|
|
56
|
+
export const buildLivePreviewThemeRuntime = (themeConfiguration, apiRoute = '/api', fontLoading = 'self-hosted')=>{
|
|
55
57
|
const resolved = resolveThemeConfiguration(themeConfiguration);
|
|
56
58
|
const borderRadiusConfig = getBorderRadiusConfig(resolved.borderRadius ?? 'medium');
|
|
57
59
|
const cssRecord = typeof borderRadiusConfig?.css === 'string' ? {
|
|
@@ -66,9 +68,17 @@ export const buildLivePreviewThemeRuntime = (themeConfiguration)=>{
|
|
|
66
68
|
darkMode: resolved.darkMode
|
|
67
69
|
});
|
|
68
70
|
const customCSSBlock = typeof resolved.customCSS === 'string' ? resolved.customCSS.trim() : '';
|
|
71
|
+
// Every data-* attribute the generated CSS targets (effects, card / button /
|
|
72
|
+
// navbar styles …), so Visual Effects and Component Styles update live too.
|
|
73
|
+
const attributes = Object.fromEntries(Object.entries(getThemeHtmlAttributes(resolved)).filter((entry)=>entry[0].startsWith('data-') && typeof entry[1] === 'string'));
|
|
69
74
|
return {
|
|
70
75
|
theme: resolved.theme,
|
|
71
76
|
mode: resolveColorMode(resolved.colorMode),
|
|
77
|
+
attributes,
|
|
78
|
+
fontsHref: buildThemeFontsHref(resolved.fontSelections ?? [], {
|
|
79
|
+
apiRoute,
|
|
80
|
+
mode: fontLoading
|
|
81
|
+
}),
|
|
72
82
|
css: [
|
|
73
83
|
borderRadiusBlock,
|
|
74
84
|
themeConfigurationCSS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/livePreviewThemeRuntime.ts"],"sourcesContent":["import { getBorderRadiusConfig } from '../providers/Theme/themeConfig.js'\nimport { resolveThemeConfiguration } from './resolveThemeConfiguration.js'\nimport { generateThemeColorsCss } from './themeColors.js'\nimport { generateThemeCSS } from './themeUtils.js'\n\n/**\n * Keys that strongly indicate a live-preview payload is (or contains) a theme\n * configuration object. Used to avoid applying default theme CSS when an\n * unrelated form (e.g. a page editor) emits live-preview data.\n */\nexport const THEME_LIKE_KEYS = [\n 'theme',\n 'colorMode',\n 'allowColorModeToggle',\n 'lightMode',\n 'darkMode',\n 'customCSS',\n 'borderRadius',\n 'fontScale',\n 'spacing',\n 'animationLevel',\n] as const\n\nexport const isThemeLikeObject = (value: unknown): value is Record<string, unknown> => {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return false\n }\n return THEME_LIKE_KEYS.some((key) => key in (value as Record<string, unknown>))\n}\n\n/**\n * Safely extract the theme configuration object from a live-preview payload.\n *\n * Returns `null` when the payload is unrelated (e.g. page form data) so callers\n * can skip re-applying theme CSS instead of falling back to defaults — which\n * would visibly reset the theme while editing other documents.\n */\nexport const extractThemeConfigurationFromLiveData = (\n liveData: Record<string, unknown> | undefined,\n themeConfigurationKey = 'themeConfiguration',\n): Record<string, unknown> | null => {\n const candidate = liveData?.[themeConfigurationKey]\n if (candidate && typeof candidate === 'object' && !Array.isArray(candidate)) {\n return candidate as Record<string, unknown>\n }\n\n // Some forms emit the theme config object directly at the root.\n if (isThemeLikeObject(liveData)) {\n return liveData as Record<string, unknown>\n }\n\n // Ignore unrelated live-preview payloads to avoid fallback defaults.\n return null\n}\n\nconst resolveColorMode = (mode: string): 'light' | 'dark' => {\n if (mode === 'dark') {\n return 'dark'\n }\n\n if (\n mode === 'auto' &&\n globalThis.window !== undefined &&\n typeof globalThis.window.matchMedia === 'function'\n ) {\n return globalThis.window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n }\n\n return 'light'\n}\n\nexport const buildLivePreviewThemeRuntime = (themeConfiguration: unknown) => {\n const resolved = resolveThemeConfiguration(themeConfiguration)\n\n const borderRadiusConfig = getBorderRadiusConfig(resolved.borderRadius ?? 'medium')\n const cssRecord =\n typeof borderRadiusConfig?.css === 'string'\n ? { '--radius-default': borderRadiusConfig.css }\n : (borderRadiusConfig?.css ?? {})\n\n const borderRadiusCSS = Object.entries(cssRecord)\n .map(([property, value]) => ` ${property}: ${value};`)\n .join('\\n')\n\n const borderRadiusBlock = borderRadiusCSS ? `:root {\\n${borderRadiusCSS}\\n}` : ''\n\n const themeConfigurationCSS = generateThemeCSS(resolved)\n const colorModesCSS = generateThemeColorsCss({\n themeName: resolved.theme,\n lightMode: resolved.lightMode,\n darkMode: resolved.darkMode,\n })\n\n const customCSSBlock = typeof resolved.customCSS === 'string' ? resolved.customCSS.trim() : ''\n\n return {\n theme: resolved.theme,\n mode: resolveColorMode(resolved.colorMode),\n css: [borderRadiusBlock, themeConfigurationCSS, colorModesCSS, customCSSBlock]\n .filter((block) => Boolean(block?.trim?.().length))\n .join('\\n\\n'),\n }\n}\n"],"names":["getBorderRadiusConfig","resolveThemeConfiguration","generateThemeColorsCss","generateThemeCSS","THEME_LIKE_KEYS","isThemeLikeObject","value","Array","isArray","some","key","extractThemeConfigurationFromLiveData","liveData","themeConfigurationKey","candidate","resolveColorMode","mode","globalThis","window","undefined","matchMedia","matches","buildLivePreviewThemeRuntime","themeConfiguration","resolved","borderRadiusConfig","borderRadius","cssRecord","css","borderRadiusCSS","Object","entries","map","property","join","borderRadiusBlock","themeConfigurationCSS","colorModesCSS","themeName","theme","lightMode","darkMode","customCSSBlock","customCSS","trim","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/livePreviewThemeRuntime.ts"],"sourcesContent":["import { buildThemeFontsHref, type ThemeFontLoading } from '../constants/themeFonts.js'\nimport { getBorderRadiusConfig } from '../providers/Theme/themeConfig.js'\nimport { resolveThemeConfiguration } from './resolveThemeConfiguration.js'\nimport { generateThemeColorsCss } from './themeColors.js'\nimport { getThemeHtmlAttributes } from './themeHtmlAttributes.js'\nimport { generateThemeCSS } from './themeUtils.js'\n\n/**\n * Keys that strongly indicate a live-preview payload is (or contains) a theme\n * configuration object. Used to avoid applying default theme CSS when an\n * unrelated form (e.g. a page editor) emits live-preview data.\n */\nexport const THEME_LIKE_KEYS = [\n 'theme',\n 'colorMode',\n 'allowColorModeToggle',\n 'lightMode',\n 'darkMode',\n 'customCSS',\n 'borderRadius',\n 'fontScale',\n 'spacing',\n 'animationLevel',\n] as const\n\nexport const isThemeLikeObject = (value: unknown): value is Record<string, unknown> => {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return false\n }\n return THEME_LIKE_KEYS.some((key) => key in (value as Record<string, unknown>))\n}\n\n/**\n * Safely extract the theme configuration object from a live-preview payload.\n *\n * Returns `null` when the payload is unrelated (e.g. page form data) so callers\n * can skip re-applying theme CSS instead of falling back to defaults — which\n * would visibly reset the theme while editing other documents.\n */\nexport const extractThemeConfigurationFromLiveData = (\n liveData: Record<string, unknown> | undefined,\n themeConfigurationKey = 'themeConfiguration',\n): Record<string, unknown> | null => {\n const candidate = liveData?.[themeConfigurationKey]\n if (candidate && typeof candidate === 'object' && !Array.isArray(candidate)) {\n return candidate as Record<string, unknown>\n }\n\n // Some forms emit the theme config object directly at the root.\n if (isThemeLikeObject(liveData)) {\n return liveData as Record<string, unknown>\n }\n\n // Ignore unrelated live-preview payloads to avoid fallback defaults.\n return null\n}\n\nconst resolveColorMode = (mode: string): 'light' | 'dark' => {\n if (mode === 'dark') {\n return 'dark'\n }\n\n if (\n mode === 'auto' &&\n globalThis.window !== undefined &&\n typeof globalThis.window.matchMedia === 'function'\n ) {\n return globalThis.window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n }\n\n return 'light'\n}\n\nexport const buildLivePreviewThemeRuntime = (\n themeConfiguration: unknown,\n apiRoute = '/api',\n fontLoading: ThemeFontLoading = 'self-hosted',\n) => {\n const resolved = resolveThemeConfiguration(themeConfiguration)\n\n const borderRadiusConfig = getBorderRadiusConfig(resolved.borderRadius ?? 'medium')\n const cssRecord =\n typeof borderRadiusConfig?.css === 'string'\n ? { '--radius-default': borderRadiusConfig.css }\n : (borderRadiusConfig?.css ?? {})\n\n const borderRadiusCSS = Object.entries(cssRecord)\n .map(([property, value]) => ` ${property}: ${value};`)\n .join('\\n')\n\n const borderRadiusBlock = borderRadiusCSS ? `:root {\\n${borderRadiusCSS}\\n}` : ''\n\n const themeConfigurationCSS = generateThemeCSS(resolved)\n const colorModesCSS = generateThemeColorsCss({\n themeName: resolved.theme,\n lightMode: resolved.lightMode,\n darkMode: resolved.darkMode,\n })\n\n const customCSSBlock = typeof resolved.customCSS === 'string' ? resolved.customCSS.trim() : ''\n\n // Every data-* attribute the generated CSS targets (effects, card / button /\n // navbar styles …), so Visual Effects and Component Styles update live too.\n const attributes = Object.fromEntries(\n Object.entries(getThemeHtmlAttributes(resolved)).filter(\n (entry): entry is [string, string] =>\n entry[0].startsWith('data-') && typeof entry[1] === 'string',\n ),\n )\n\n return {\n theme: resolved.theme,\n mode: resolveColorMode(resolved.colorMode),\n attributes,\n fontsHref: buildThemeFontsHref(resolved.fontSelections ?? [], { apiRoute, mode: fontLoading }),\n css: [borderRadiusBlock, themeConfigurationCSS, colorModesCSS, customCSSBlock]\n .filter((block) => Boolean(block?.trim?.().length))\n .join('\\n\\n'),\n }\n}\n"],"names":["buildThemeFontsHref","getBorderRadiusConfig","resolveThemeConfiguration","generateThemeColorsCss","getThemeHtmlAttributes","generateThemeCSS","THEME_LIKE_KEYS","isThemeLikeObject","value","Array","isArray","some","key","extractThemeConfigurationFromLiveData","liveData","themeConfigurationKey","candidate","resolveColorMode","mode","globalThis","window","undefined","matchMedia","matches","buildLivePreviewThemeRuntime","themeConfiguration","apiRoute","fontLoading","resolved","borderRadiusConfig","borderRadius","cssRecord","css","borderRadiusCSS","Object","entries","map","property","join","borderRadiusBlock","themeConfigurationCSS","colorModesCSS","themeName","theme","lightMode","darkMode","customCSSBlock","customCSS","trim","attributes","fromEntries","filter","entry","startsWith","colorMode","fontsHref","fontSelections","block","Boolean","length"],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ interface ThemeTypographyOverride {
|
|
|
11
11
|
headingFontCustom?: string | null;
|
|
12
12
|
baseFontSize?: string | null;
|
|
13
13
|
lineHeight?: string | null;
|
|
14
|
+
headingWeight?: string | null;
|
|
15
|
+
letterSpacing?: string | null;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Generic theme configuration interface that accepts any compatible structure
|
|
@@ -46,6 +48,8 @@ interface GenericThemeConfiguration {
|
|
|
46
48
|
info?: string | null;
|
|
47
49
|
} | null;
|
|
48
50
|
typography?: ThemeTypographyOverride | null;
|
|
51
|
+
fontSelections?: string[] | null;
|
|
52
|
+
typographyOverridden?: boolean | null;
|
|
49
53
|
visualEffects?: {
|
|
50
54
|
effectStyle?: string | null;
|
|
51
55
|
shadowIntensity?: string | null;
|
|
@@ -110,6 +114,17 @@ export interface ResolvedThemeConfiguration {
|
|
|
110
114
|
lightMode?: ThemeColorConfiguration;
|
|
111
115
|
darkMode?: ThemeColorConfiguration;
|
|
112
116
|
typography: ThemeTypographyPreset | null;
|
|
117
|
+
/**
|
|
118
|
+
* The body / heading font values picked in the admin ('Inter', 'Lora' …),
|
|
119
|
+
* kept so the font files can be requested (see `ServerThemeInjector`).
|
|
120
|
+
*/
|
|
121
|
+
fontSelections?: string[];
|
|
122
|
+
/**
|
|
123
|
+
* True when the editor picked something in Typography (a font, size, line
|
|
124
|
+
* height, heading weight or tracking) instead of "Use theme preset". Base
|
|
125
|
+
* typography rules are only emitted then, so untouched sites render as before.
|
|
126
|
+
*/
|
|
127
|
+
typographyOverridden?: boolean;
|
|
113
128
|
visualEffects?: ResolvedVisualEffects | null;
|
|
114
129
|
componentStyles?: ResolvedComponentStyles | null;
|
|
115
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveThemeConfiguration.d.ts","sourceRoot":"","sources":["../../src/utils/resolveThemeConfiguration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolveThemeConfiguration.d.ts","sourceRoot":"","sources":["../../src/utils/resolveThemeConfiguration.ts"],"names":[],"mappings":"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"}
|