@kilivi/payloadcms-theme-management 0.2.3 → 0.2.4
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/dist/fields/ThemeLivePreview.d.ts.map +1 -1
- package/dist/fields/ThemeLivePreview.js +3 -2
- package/dist/fields/ThemeLivePreview.js.map +1 -1
- package/dist/fields/extendedThemeFields.d.ts.map +1 -1
- package/dist/fields/extendedThemeFields.js +2 -2
- package/dist/fields/extendedThemeFields.js.map +1 -1
- package/dist/fields/themeConfigurationField.d.ts.map +1 -1
- package/dist/fields/themeConfigurationField.js +251 -246
- package/dist/fields/themeConfigurationField.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeLivePreview.d.ts","sourceRoot":"","sources":["../../src/fields/ThemeLivePreview.tsx"],"names":[],"mappings":"AAUA,OAAO,wBAAwB,CAAA;AAE/B,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ThemeLivePreview.d.ts","sourceRoot":"","sources":["../../src/fields/ThemeLivePreview.tsx"],"names":[],"mappings":"AAUA,OAAO,wBAAwB,CAAA;AAE/B,eAAO,MAAM,gBAAgB,mCA2K5B,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -12,8 +12,9 @@ export const ThemeLivePreview = ()=>{
|
|
|
12
12
|
const [previewMode, setPreviewMode] = useState('light');
|
|
13
13
|
const themeConfig = allFields?.themeConfiguration?.value;
|
|
14
14
|
// Extract colors from theme configuration
|
|
15
|
-
|
|
16
|
-
const
|
|
15
|
+
// Support both basic (lightMode/darkMode) and extended (extendedLightMode/extendedDarkMode)
|
|
16
|
+
const lightMode = themeConfig?.extendedLightMode || themeConfig?.lightMode;
|
|
17
|
+
const darkMode = themeConfig?.extendedDarkMode || themeConfig?.darkMode;
|
|
17
18
|
const activeMode = previewMode === 'light' ? lightMode : darkMode;
|
|
18
19
|
// Apply theme colors to preview
|
|
19
20
|
useEffect(()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/ThemeLivePreview.tsx"],"sourcesContent":["'use client'\n\n/**\n * Theme Live Preview Component\n * Real-time preview of theme configuration\n * Inspired by Payload CMS 3 Live Preview\n */\n\nimport { useFormFields } from '@payloadcms/ui'\nimport { useEffect, useState } from 'react'\nimport './ThemeLivePreview.css'\n\nexport const ThemeLivePreview = () => {\n const allFields = useFormFields(([fields]) => fields)\n const [previewMode, setPreviewMode] = useState<'light' | 'dark'>('light')\n\n const themeConfig = allFields?.themeConfiguration?.value as Record<string,
|
|
1
|
+
{"version":3,"sources":["../../src/fields/ThemeLivePreview.tsx"],"sourcesContent":["'use client'\n\n/**\n * Theme Live Preview Component\n * Real-time preview of theme configuration\n * Inspired by Payload CMS 3 Live Preview\n */\n\nimport { useFormFields } from '@payloadcms/ui'\nimport { useEffect, useState } from 'react'\nimport './ThemeLivePreview.css'\n\nexport const ThemeLivePreview = () => {\n const allFields = useFormFields(([fields]) => fields)\n const [previewMode, setPreviewMode] = useState<'light' | 'dark'>('light')\n\n const themeConfig = allFields?.themeConfiguration?.value as Record<string, unknown> | undefined\n\n // Extract colors from theme configuration\n // Support both basic (lightMode/darkMode) and extended (extendedLightMode/extendedDarkMode)\n const lightMode = (themeConfig?.extendedLightMode || themeConfig?.lightMode) as\n | Record<string, string>\n | undefined\n const darkMode = (themeConfig?.extendedDarkMode || themeConfig?.darkMode) as\n | Record<string, string>\n | undefined\n const activeMode = previewMode === 'light' ? lightMode : darkMode\n\n // Apply theme colors to preview\n useEffect(() => {\n if (!activeMode) return\n\n const root = document.documentElement\n Object.entries(activeMode).forEach(([key, value]) => {\n if (typeof value === 'string') {\n root.style.setProperty(`--preview-${key}`, value)\n }\n })\n }, [activeMode])\n\n if (!themeConfig) {\n return (\n <div className=\"theme-live-preview-empty\">\n <p>Configure your theme to see live preview</p>\n </div>\n )\n }\n\n return (\n <div className=\"theme-live-preview-container\" data-mode={previewMode}>\n {/* Mode Toggle */}\n <div className=\"preview-header\">\n <h3>Live Theme Preview</h3>\n <div className=\"mode-toggle\">\n <button\n type=\"button\"\n className={previewMode === 'light' ? 'active' : ''}\n onClick={() => setPreviewMode('light')}\n >\n ☀️ Light\n </button>\n <button\n type=\"button\"\n className={previewMode === 'dark' ? 'active' : ''}\n onClick={() => setPreviewMode('dark')}\n >\n 🌙 Dark\n </button>\n </div>\n </div>\n\n {/* Preview Content */}\n <div\n className=\"preview-content\"\n style={{\n backgroundColor: activeMode?.background || '#ffffff',\n color: activeMode?.foreground || '#000000',\n }}\n >\n {/* Header Section */}\n <div className=\"preview-section\">\n <h1 style={{ color: activeMode?.foreground }}>Welcome to Your Site</h1>\n <p style={{ color: activeMode?.mutedForeground }}>\n This is a live preview of your theme configuration\n </p>\n </div>\n\n {/* Card Section */}\n <div className=\"preview-cards\">\n <div\n className=\"preview-card\"\n style={{\n backgroundColor: activeMode?.card || '#ffffff',\n color: activeMode?.cardForeground || '#000000',\n borderColor: activeMode?.border || '#e2e8f0',\n }}\n >\n <h3>Featured Content</h3>\n <p style={{ color: activeMode?.mutedForeground }}>\n Card component with theme colors\n </p>\n <button\n className=\"preview-btn-primary\"\n style={{\n backgroundColor: activeMode?.primary || '#0070f3',\n color: activeMode?.primaryForeground || '#ffffff',\n }}\n >\n Primary Action\n </button>\n </div>\n\n <div\n className=\"preview-card\"\n style={{\n backgroundColor: activeMode?.card || '#ffffff',\n color: activeMode?.cardForeground || '#000000',\n borderColor: activeMode?.border || '#e2e8f0',\n }}\n >\n <h3>Secondary Card</h3>\n <p style={{ color: activeMode?.mutedForeground }}>\n Another card to showcase your theme\n </p>\n <button\n className=\"preview-btn-secondary\"\n style={{\n backgroundColor: activeMode?.secondary || '#f1f5f9',\n color: activeMode?.secondaryForeground || '#0f172a',\n }}\n >\n Secondary\n </button>\n </div>\n </div>\n\n {/* UI Elements */}\n <div className=\"preview-ui-elements\">\n <input\n type=\"text\"\n placeholder=\"Input field\"\n className=\"preview-input\"\n style={{\n backgroundColor: activeMode?.background,\n color: activeMode?.foreground,\n borderColor: activeMode?.input || activeMode?.border,\n }}\n />\n\n <div\n className=\"preview-badge\"\n style={{\n backgroundColor: activeMode?.accent || '#f1f5f9',\n color: activeMode?.accentForeground || '#0f172a',\n }}\n >\n Accent Badge\n </div>\n\n <button\n className=\"preview-btn-destructive\"\n style={{\n backgroundColor: activeMode?.destructive || '#ef4444',\n color: activeMode?.destructiveForeground || '#ffffff',\n }}\n >\n Destructive\n </button>\n </div>\n\n {/* Muted Section */}\n <div\n className=\"preview-muted\"\n style={{\n backgroundColor: activeMode?.muted || '#f1f5f9',\n color: activeMode?.mutedForeground || '#64748b',\n }}\n >\n <p>Muted background section for less prominent content</p>\n </div>\n </div>\n </div>\n )\n}\n\nexport default ThemeLivePreview\n"],"names":["useFormFields","useEffect","useState","ThemeLivePreview","allFields","fields","previewMode","setPreviewMode","themeConfig","themeConfiguration","value","lightMode","extendedLightMode","darkMode","extendedDarkMode","activeMode","root","document","documentElement","Object","entries","forEach","key","style","setProperty","div","className","p","data-mode","h3","button","type","onClick","backgroundColor","background","color","foreground","h1","mutedForeground","card","cardForeground","borderColor","border","primary","primaryForeground","secondary","secondaryForeground","input","placeholder","accent","accentForeground","destructive","destructiveForeground","muted"],"mappings":"AAAA;;AAEA;;;;CAIC,GAED,SAASA,aAAa,QAAQ,iBAAgB;AAC9C,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAC3C,OAAO,yBAAwB;AAE/B,OAAO,MAAMC,mBAAmB;IAC9B,MAAMC,YAAYJ,cAAc,CAAC,CAACK,OAAO,GAAKA;IAC9C,MAAM,CAACC,aAAaC,eAAe,GAAGL,SAA2B;IAEjE,MAAMM,cAAcJ,WAAWK,oBAAoBC;IAEnD,0CAA0C;IAC1C,4FAA4F;IAC5F,MAAMC,YAAaH,aAAaI,qBAAqBJ,aAAaG;IAGlE,MAAME,WAAYL,aAAaM,oBAAoBN,aAAaK;IAGhE,MAAME,aAAaT,gBAAgB,UAAUK,YAAYE;IAEzD,gCAAgC;IAChCZ,UAAU;QACR,IAAI,CAACc,YAAY;QAEjB,MAAMC,OAAOC,SAASC,eAAe;QACrCC,OAAOC,OAAO,CAACL,YAAYM,OAAO,CAAC,CAAC,CAACC,KAAKZ,MAAM;YAC9C,IAAI,OAAOA,UAAU,UAAU;gBAC7BM,KAAKO,KAAK,CAACC,WAAW,CAAC,CAAC,UAAU,EAAEF,KAAK,EAAEZ;YAC7C;QACF;IACF,GAAG;QAACK;KAAW;IAEf,IAAI,CAACP,aAAa;QAChB,qBACE,KAACiB;YAAIC,WAAU;sBACb,cAAA,KAACC;0BAAE;;;IAGT;IAEA,qBACE,MAACF;QAAIC,WAAU;QAA+BE,aAAWtB;;0BAEvD,MAACmB;gBAAIC,WAAU;;kCACb,KAACG;kCAAG;;kCACJ,MAACJ;wBAAIC,WAAU;;0CACb,KAACI;gCACCC,MAAK;gCACLL,WAAWpB,gBAAgB,UAAU,WAAW;gCAChD0B,SAAS,IAAMzB,eAAe;0CAC/B;;0CAGD,KAACuB;gCACCC,MAAK;gCACLL,WAAWpB,gBAAgB,SAAS,WAAW;gCAC/C0B,SAAS,IAAMzB,eAAe;0CAC/B;;;;;;0BAOL,MAACkB;gBACCC,WAAU;gBACVH,OAAO;oBACLU,iBAAiBlB,YAAYmB,cAAc;oBAC3CC,OAAOpB,YAAYqB,cAAc;gBACnC;;kCAGA,MAACX;wBAAIC,WAAU;;0CACb,KAACW;gCAAGd,OAAO;oCAAEY,OAAOpB,YAAYqB;gCAAW;0CAAG;;0CAC9C,KAACT;gCAAEJ,OAAO;oCAAEY,OAAOpB,YAAYuB;gCAAgB;0CAAG;;;;kCAMpD,MAACb;wBAAIC,WAAU;;0CACb,MAACD;gCACCC,WAAU;gCACVH,OAAO;oCACLU,iBAAiBlB,YAAYwB,QAAQ;oCACrCJ,OAAOpB,YAAYyB,kBAAkB;oCACrCC,aAAa1B,YAAY2B,UAAU;gCACrC;;kDAEA,KAACb;kDAAG;;kDACJ,KAACF;wCAAEJ,OAAO;4CAAEY,OAAOpB,YAAYuB;wCAAgB;kDAAG;;kDAGlD,KAACR;wCACCJ,WAAU;wCACVH,OAAO;4CACLU,iBAAiBlB,YAAY4B,WAAW;4CACxCR,OAAOpB,YAAY6B,qBAAqB;wCAC1C;kDACD;;;;0CAKH,MAACnB;gCACCC,WAAU;gCACVH,OAAO;oCACLU,iBAAiBlB,YAAYwB,QAAQ;oCACrCJ,OAAOpB,YAAYyB,kBAAkB;oCACrCC,aAAa1B,YAAY2B,UAAU;gCACrC;;kDAEA,KAACb;kDAAG;;kDACJ,KAACF;wCAAEJ,OAAO;4CAAEY,OAAOpB,YAAYuB;wCAAgB;kDAAG;;kDAGlD,KAACR;wCACCJ,WAAU;wCACVH,OAAO;4CACLU,iBAAiBlB,YAAY8B,aAAa;4CAC1CV,OAAOpB,YAAY+B,uBAAuB;wCAC5C;kDACD;;;;;;kCAOL,MAACrB;wBAAIC,WAAU;;0CACb,KAACqB;gCACChB,MAAK;gCACLiB,aAAY;gCACZtB,WAAU;gCACVH,OAAO;oCACLU,iBAAiBlB,YAAYmB;oCAC7BC,OAAOpB,YAAYqB;oCACnBK,aAAa1B,YAAYgC,SAAShC,YAAY2B;gCAChD;;0CAGF,KAACjB;gCACCC,WAAU;gCACVH,OAAO;oCACLU,iBAAiBlB,YAAYkC,UAAU;oCACvCd,OAAOpB,YAAYmC,oBAAoB;gCACzC;0CACD;;0CAID,KAACpB;gCACCJ,WAAU;gCACVH,OAAO;oCACLU,iBAAiBlB,YAAYoC,eAAe;oCAC5ChB,OAAOpB,YAAYqC,yBAAyB;gCAC9C;0CACD;;;;kCAMH,KAAC3B;wBACCC,WAAU;wBACVH,OAAO;4BACLU,iBAAiBlB,YAAYsC,SAAS;4BACtClB,OAAOpB,YAAYuB,mBAAmB;wBACxC;kCAEA,cAAA,KAACX;sCAAE;;;;;;;AAKb,EAAC;AAED,eAAexB,iBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendedThemeFields.d.ts","sourceRoot":"","sources":["../../src/fields/extendedThemeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAsEpC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,EAgGlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EA0BnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,EAoC/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAmBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,EAa3C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAOrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAezC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAoBlC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAoBjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAoBrC,CAAA;AAID,eAAO,MAAM,sBAAsB;;;;;
|
|
1
|
+
{"version":3,"file":"extendedThemeFields.d.ts","sourceRoot":"","sources":["../../src/fields/extendedThemeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAsEpC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,EAgGlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EA0BnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,EAoC/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAmBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,EAa3C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAOrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAezC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAoBlC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAoBjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAoBrC,CAAA;AAID,eAAO,MAAM,sBAAsB;;;;;kBAOmthB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGAPxzC,CAAA;AAC1D,eAAO,MAAM,qBAAqB;;;;;kBAMothB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGAN1zC,CAAA;AACxD,eAAO,MAAM,gBAAgB,EAIxB,KAAK,CAAA"}
|
|
@@ -365,7 +365,7 @@ import { allExtendedThemePresets } from '../extended-presets.js';
|
|
|
365
365
|
},
|
|
366
366
|
fields: [
|
|
367
367
|
{
|
|
368
|
-
name: '
|
|
368
|
+
name: 'extendedLightMode',
|
|
369
369
|
type: 'group',
|
|
370
370
|
fields: [
|
|
371
371
|
...baseColorFields,
|
|
@@ -391,7 +391,7 @@ import { allExtendedThemePresets } from '../extended-presets.js';
|
|
|
391
391
|
},
|
|
392
392
|
fields: [
|
|
393
393
|
{
|
|
394
|
-
name: '
|
|
394
|
+
name: 'extendedDarkMode',
|
|
395
395
|
type: 'group',
|
|
396
396
|
fields: [
|
|
397
397
|
...baseColorFields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/extendedThemeFields.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport { allExtendedThemePresets } from '../extended-presets.js'\n\n/**\n * Extended Theme Configuration Fields\n * Full TweakCN-compatible theme system with:\n * - All shadcn/ui color tokens (19 base + 5 chart = 24 color tokens)\n * - Shadow controls (6 properties)\n * - Font families (3 families: sans, serif, mono)\n * - Advanced typography (letter-spacing, global spacing)\n * - Professional color picker with live preview\n */\n\nconst extendedThemeOptions = Object.values(allExtendedThemePresets).map((preset) => {\n const primaryColor = preset.styles.light.primary\n const bgColor = preset.styles.light.background\n \n return {\n label: preset.label,\n value: preset.value,\n // Add visual preview in the dropdown\n __meta: {\n primary: primaryColor,\n background: bgColor,\n },\n }\n})\n\n/**\n * Creates professional OKLCH color field with enhanced UI\n */\nfunction createColorField(\n name: string,\n label: { en: string; cs: string },\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder: 'oklch(0.5 0.2 250) or #rgb or hsl(...)',\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemeColorPickerField',\n },\n },\n }\n}\n\n/**\n * Creates text field for non-color values (fonts, shadows, etc.)\n */\nfunction createTextField(\n name: string,\n label: { en: string; cs: string },\n placeholder: string,\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder,\n },\n }\n}\n\n/**\n * Base Color Tokens (19 tokens)\n * Required for all themes\n */\nexport const baseColorFields: Field[] = [\n createColorField(\n 'background',\n { en: 'Background', cs: 'Pozadí' },\n { en: 'Main page background', cs: 'Hlavní pozadí stránky' },\n ),\n createColorField(\n 'foreground',\n { en: 'Foreground', cs: 'Popředí' },\n { en: 'Primary text color', cs: 'Primární barva textu' },\n ),\n createColorField(\n 'card',\n { en: 'Card', cs: 'Karta' },\n { en: 'Card background', cs: 'Pozadí karty' },\n ),\n createColorField(\n 'cardForeground',\n { en: 'Card Foreground', cs: 'Popředí karty' },\n { en: 'Text on cards', cs: 'Text na kartách' },\n ),\n createColorField(\n 'popover',\n { en: 'Popover', cs: 'Vyskakovací okno' },\n { en: 'Popover/dropdown background', cs: 'Pozadí vyskakovacích oken' },\n ),\n createColorField(\n 'popoverForeground',\n { en: 'Popover Foreground', cs: 'Popředí vyskakovacího okna' },\n { en: 'Text in popovers', cs: 'Text ve vyskakovacích oknech' },\n ),\n createColorField(\n 'primary',\n { en: 'Primary', cs: 'Primární' },\n { en: 'Primary brand color', cs: 'Primární značková barva' },\n ),\n createColorField(\n 'primaryForeground',\n { en: 'Primary Foreground', cs: 'Popředí primární' },\n { en: 'Text on primary', cs: 'Text na primární barvě' },\n ),\n createColorField(\n 'secondary',\n { en: 'Secondary', cs: 'Sekundární' },\n { en: 'Secondary accent', cs: 'Sekundární akcent' },\n ),\n createColorField(\n 'secondaryForeground',\n { en: 'Secondary Foreground', cs: 'Popředí sekundární' },\n { en: 'Text on secondary', cs: 'Text na sekundární' },\n ),\n createColorField(\n 'muted',\n { en: 'Muted', cs: 'Tlumená' },\n { en: 'Muted background', cs: 'Tlumené pozadí' },\n ),\n createColorField(\n 'mutedForeground',\n { en: 'Muted Foreground', cs: 'Popředí tlumené' },\n { en: 'Muted text', cs: 'Tlumený text' },\n ),\n createColorField(\n 'accent',\n { en: 'Accent', cs: 'Akcentová' },\n { en: 'Accent/hover color', cs: 'Akcentová/hover barva' },\n ),\n createColorField(\n 'accentForeground',\n { en: 'Accent Foreground', cs: 'Popředí akcentové' },\n { en: 'Text on accent', cs: 'Text na akcentové' },\n ),\n createColorField(\n 'destructive',\n { en: 'Destructive', cs: 'Destruktivní' },\n { en: 'Error/danger color', cs: 'Barva chyby/nebezpečí' },\n ),\n createColorField(\n 'destructiveForeground',\n { en: 'Destructive Foreground', cs: 'Popředí destruktivní' },\n { en: 'Text on destructive', cs: 'Text na destruktivní' },\n ),\n createColorField(\n 'border',\n { en: 'Border', cs: 'Okraj' },\n { en: 'Default border color', cs: 'Výchozí barva okraje' },\n ),\n createColorField(\n 'input',\n { en: 'Input', cs: 'Vstupní pole' },\n { en: 'Input border color', cs: 'Barva okraje vstupu' },\n ),\n createColorField(\n 'ring',\n { en: 'Ring', cs: 'Zvýraznění' },\n { en: 'Focus ring color', cs: 'Barva zvýraznění focus' },\n ),\n]\n\n/**\n * Chart Colors (5 tokens)\n * For data visualization\n */\nexport const chartColorFields: Field[] = [\n createColorField(\n 'chart1',\n { en: 'Chart 1', cs: 'Graf 1' },\n { en: 'First chart color', cs: 'První barva grafu' },\n ),\n createColorField(\n 'chart2',\n { en: 'Chart 2', cs: 'Graf 2' },\n { en: 'Second chart color', cs: 'Druhá barva grafu' },\n ),\n createColorField(\n 'chart3',\n { en: 'Chart 3', cs: 'Graf 3' },\n { en: 'Third chart color', cs: 'Třetí barva grafu' },\n ),\n createColorField(\n 'chart4',\n { en: 'Chart 4', cs: 'Graf 4' },\n { en: 'Fourth chart color', cs: 'Čtvrtá barva grafu' },\n ),\n createColorField(\n 'chart5',\n { en: 'Chart 5', cs: 'Graf 5' },\n { en: 'Fifth chart color', cs: 'Pátá barva grafu' },\n ),\n]\n\n/**\n * Shadow Controls (6 properties)\n * TweakCN essential feature\n */\nexport const shadowFields: Field[] = [\n createColorField(\n 'shadowColor',\n { en: 'Shadow Color', cs: 'Barva stínu' },\n { en: 'Base shadow color', cs: 'Základní barva stínu' },\n ),\n createTextField(\n 'shadowOpacity',\n { en: 'Shadow Opacity', cs: 'Průhlednost stínu' },\n '0.18',\n { en: 'Shadow opacity (0-1)', cs: 'Průhlednost stínu (0-1)' },\n ),\n createTextField(\n 'shadowBlur',\n { en: 'Shadow Blur', cs: 'Rozmazání stínu' },\n '2px',\n { en: 'Blur radius', cs: 'Poloměr rozmazání' },\n ),\n createTextField(\n 'shadowSpread',\n { en: 'Shadow Spread', cs: 'Rozprostření stínu' },\n '0px',\n { en: 'Spread radius', cs: 'Poloměr rozprostření' },\n ),\n createTextField(\n 'shadowOffsetX',\n { en: 'Shadow Offset X', cs: 'Posun stínu X' },\n '0px',\n { en: 'Horizontal offset', cs: 'Horizontální posun' },\n ),\n createTextField(\n 'shadowOffsetY',\n { en: 'Shadow Offset Y', cs: 'Posun stínu Y' },\n '1px',\n { en: 'Vertical offset', cs: 'Vertikální posun' },\n ),\n]\n\n/**\n * Font Family Configuration (3 families)\n * TweakCN essential feature\n */\nexport const fontFamilyFields: Field[] = [\n createTextField(\n 'fontSans',\n { en: 'Sans-Serif Font', cs: 'Bezpatkové písmo' },\n 'Inter, system-ui, sans-serif',\n { en: 'Primary sans-serif font stack', cs: 'Primární bezpatkové písmo' },\n ),\n createTextField(\n 'fontSerif',\n { en: 'Serif Font', cs: 'Patkové písmo' },\n 'Georgia, serif',\n { en: 'Serif font stack', cs: 'Patkové písmo' },\n ),\n createTextField(\n 'fontMono',\n { en: 'Monospace Font', cs: 'Monospace písmo' },\n 'JetBrains Mono, monospace',\n { en: 'Monospace font stack', cs: 'Monospace písmo' },\n ),\n]\n\n/**\n * Advanced Typography (2 properties)\n */\nexport const advancedTypographyFields: Field[] = [\n createTextField(\n 'letterSpacing',\n { en: 'Letter Spacing', cs: 'Rozestup písmen' },\n '0em',\n { en: 'Global letter spacing', cs: 'Globální rozestup písmen' },\n ),\n createTextField(\n 'spacing',\n { en: 'Spacing Scale', cs: 'Škála rozestupů' },\n '0.25rem',\n { en: 'Base spacing unit', cs: 'Základní jednotka rozestupu' },\n ),\n]\n\n/**\n * Border Radius Configuration\n */\nexport const designSystemFields: Field[] = [\n createTextField(\n 'radius',\n { en: 'Border Radius', cs: 'Zaoblení rohů' },\n '0.5rem',\n { en: 'Default border radius', cs: 'Výchozí zaoblení rohů' },\n ),\n]\n\n/**\n * Extended Theme Selection Field with Visual Preview\n */\nexport const extendedThemeSelectionField: Field = {\n name: 'extendedTheme',\n type: 'select',\n label: {\n en: '🎨 Theme Preset',\n cs: '🎨 Přednastavené téma',\n },\n defaultValue: 'cool-extended',\n options: extendedThemeOptions,\n admin: {\n description: {\n en: 'Select a professional theme with full OKLCH color support (TweakCN compatible)',\n cs: 'Vyberte profesionální téma s plnou podporou OKLCH barev (kompatibilní s TweakCN)',\n },\n },\n}\n\n/**\n * Unified Light Mode Configuration\n * Combines all color tokens in one place\n */\nexport const lightModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '☀️ Light Mode Colors',\n cs: '☀️ Barvy světlého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for light mode',\n cs: 'Kompletní konfigurace barev pro světlý režim',\n },\n },\n fields: [\n {\n name: 'lightMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Unified Dark Mode Configuration\n */\nexport const darkModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '🌙 Dark Mode Colors',\n cs: '🌙 Barvy tmavého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for dark mode',\n cs: 'Kompletní konfigurace barev pro tmavý režim',\n },\n },\n fields: [\n {\n name: 'darkMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Shadow Configuration Section\n */\nexport const shadowConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '🌓 Shadows & Elevation',\n cs: '🌓 Stíny a výška',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Configure shadow system for depth and elevation',\n cs: 'Nakonfigurujte systém stínů pro hloubku a výšku',\n },\n },\n fields: [\n {\n name: 'shadows',\n type: 'group',\n fields: shadowFields,\n },\n ],\n}\n\n/**\n * Typography Configuration Section\n */\nexport const typographyConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '� Typography',\n cs: '� Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Font families and advanced typography settings',\n cs: 'Rodiny písem a pokročilá nastavení typografie',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [...fontFamilyFields, ...advancedTypographyFields],\n },\n ],\n}\n\n/**\n * Design System Configuration\n */\nexport const designSystemConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '⚙️ Design System',\n cs: '⚙️ Designový systém',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Global design tokens (radius, spacing, etc.)',\n cs: 'Globální design tokeny (zaoblení, rozestupy, atd.)',\n },\n },\n fields: [\n {\n name: 'designSystem',\n type: 'group',\n fields: designSystemFields,\n },\n ],\n}\n\n// DEPRECATED: Old fields kept for backwards compatibility\n// TODO: Remove in v1.0.0\nexport const extendedLightModeField = lightModeColorsField\nexport const extendedDarkModeField = darkModeColorsField\nexport const chartColorsField = {\n type: 'group',\n name: 'chartColors',\n fields: chartColorFields,\n} as Field\n"],"names":["allExtendedThemePresets","extendedThemeOptions","Object","values","map","preset","primaryColor","styles","light","primary","bgColor","background","label","value","__meta","createColorField","name","description","type","admin","placeholder","components","Field","createTextField","baseColorFields","en","cs","chartColorFields","shadowFields","fontFamilyFields","advancedTypographyFields","designSystemFields","extendedThemeSelectionField","defaultValue","options","lightModeColorsField","initCollapsed","fields","darkModeColorsField","shadowConfigField","typographyConfigField","designSystemConfigField","extendedLightModeField","extendedDarkModeField","chartColorsField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/fields/extendedThemeFields.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport { allExtendedThemePresets } from '../extended-presets.js'\n\n/**\n * Extended Theme Configuration Fields\n * Full TweakCN-compatible theme system with:\n * - All shadcn/ui color tokens (19 base + 5 chart = 24 color tokens)\n * - Shadow controls (6 properties)\n * - Font families (3 families: sans, serif, mono)\n * - Advanced typography (letter-spacing, global spacing)\n * - Professional color picker with live preview\n */\n\nconst extendedThemeOptions = Object.values(allExtendedThemePresets).map((preset) => {\n const primaryColor = preset.styles.light.primary\n const bgColor = preset.styles.light.background\n \n return {\n label: preset.label,\n value: preset.value,\n // Add visual preview in the dropdown\n __meta: {\n primary: primaryColor,\n background: bgColor,\n },\n }\n})\n\n/**\n * Creates professional OKLCH color field with enhanced UI\n */\nfunction createColorField(\n name: string,\n label: { en: string; cs: string },\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder: 'oklch(0.5 0.2 250) or #rgb or hsl(...)',\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemeColorPickerField',\n },\n },\n }\n}\n\n/**\n * Creates text field for non-color values (fonts, shadows, etc.)\n */\nfunction createTextField(\n name: string,\n label: { en: string; cs: string },\n placeholder: string,\n description?: { en: string; cs: string },\n): Field {\n return {\n name,\n type: 'text',\n label,\n admin: {\n description,\n placeholder,\n },\n }\n}\n\n/**\n * Base Color Tokens (19 tokens)\n * Required for all themes\n */\nexport const baseColorFields: Field[] = [\n createColorField(\n 'background',\n { en: 'Background', cs: 'Pozadí' },\n { en: 'Main page background', cs: 'Hlavní pozadí stránky' },\n ),\n createColorField(\n 'foreground',\n { en: 'Foreground', cs: 'Popředí' },\n { en: 'Primary text color', cs: 'Primární barva textu' },\n ),\n createColorField(\n 'card',\n { en: 'Card', cs: 'Karta' },\n { en: 'Card background', cs: 'Pozadí karty' },\n ),\n createColorField(\n 'cardForeground',\n { en: 'Card Foreground', cs: 'Popředí karty' },\n { en: 'Text on cards', cs: 'Text na kartách' },\n ),\n createColorField(\n 'popover',\n { en: 'Popover', cs: 'Vyskakovací okno' },\n { en: 'Popover/dropdown background', cs: 'Pozadí vyskakovacích oken' },\n ),\n createColorField(\n 'popoverForeground',\n { en: 'Popover Foreground', cs: 'Popředí vyskakovacího okna' },\n { en: 'Text in popovers', cs: 'Text ve vyskakovacích oknech' },\n ),\n createColorField(\n 'primary',\n { en: 'Primary', cs: 'Primární' },\n { en: 'Primary brand color', cs: 'Primární značková barva' },\n ),\n createColorField(\n 'primaryForeground',\n { en: 'Primary Foreground', cs: 'Popředí primární' },\n { en: 'Text on primary', cs: 'Text na primární barvě' },\n ),\n createColorField(\n 'secondary',\n { en: 'Secondary', cs: 'Sekundární' },\n { en: 'Secondary accent', cs: 'Sekundární akcent' },\n ),\n createColorField(\n 'secondaryForeground',\n { en: 'Secondary Foreground', cs: 'Popředí sekundární' },\n { en: 'Text on secondary', cs: 'Text na sekundární' },\n ),\n createColorField(\n 'muted',\n { en: 'Muted', cs: 'Tlumená' },\n { en: 'Muted background', cs: 'Tlumené pozadí' },\n ),\n createColorField(\n 'mutedForeground',\n { en: 'Muted Foreground', cs: 'Popředí tlumené' },\n { en: 'Muted text', cs: 'Tlumený text' },\n ),\n createColorField(\n 'accent',\n { en: 'Accent', cs: 'Akcentová' },\n { en: 'Accent/hover color', cs: 'Akcentová/hover barva' },\n ),\n createColorField(\n 'accentForeground',\n { en: 'Accent Foreground', cs: 'Popředí akcentové' },\n { en: 'Text on accent', cs: 'Text na akcentové' },\n ),\n createColorField(\n 'destructive',\n { en: 'Destructive', cs: 'Destruktivní' },\n { en: 'Error/danger color', cs: 'Barva chyby/nebezpečí' },\n ),\n createColorField(\n 'destructiveForeground',\n { en: 'Destructive Foreground', cs: 'Popředí destruktivní' },\n { en: 'Text on destructive', cs: 'Text na destruktivní' },\n ),\n createColorField(\n 'border',\n { en: 'Border', cs: 'Okraj' },\n { en: 'Default border color', cs: 'Výchozí barva okraje' },\n ),\n createColorField(\n 'input',\n { en: 'Input', cs: 'Vstupní pole' },\n { en: 'Input border color', cs: 'Barva okraje vstupu' },\n ),\n createColorField(\n 'ring',\n { en: 'Ring', cs: 'Zvýraznění' },\n { en: 'Focus ring color', cs: 'Barva zvýraznění focus' },\n ),\n]\n\n/**\n * Chart Colors (5 tokens)\n * For data visualization\n */\nexport const chartColorFields: Field[] = [\n createColorField(\n 'chart1',\n { en: 'Chart 1', cs: 'Graf 1' },\n { en: 'First chart color', cs: 'První barva grafu' },\n ),\n createColorField(\n 'chart2',\n { en: 'Chart 2', cs: 'Graf 2' },\n { en: 'Second chart color', cs: 'Druhá barva grafu' },\n ),\n createColorField(\n 'chart3',\n { en: 'Chart 3', cs: 'Graf 3' },\n { en: 'Third chart color', cs: 'Třetí barva grafu' },\n ),\n createColorField(\n 'chart4',\n { en: 'Chart 4', cs: 'Graf 4' },\n { en: 'Fourth chart color', cs: 'Čtvrtá barva grafu' },\n ),\n createColorField(\n 'chart5',\n { en: 'Chart 5', cs: 'Graf 5' },\n { en: 'Fifth chart color', cs: 'Pátá barva grafu' },\n ),\n]\n\n/**\n * Shadow Controls (6 properties)\n * TweakCN essential feature\n */\nexport const shadowFields: Field[] = [\n createColorField(\n 'shadowColor',\n { en: 'Shadow Color', cs: 'Barva stínu' },\n { en: 'Base shadow color', cs: 'Základní barva stínu' },\n ),\n createTextField(\n 'shadowOpacity',\n { en: 'Shadow Opacity', cs: 'Průhlednost stínu' },\n '0.18',\n { en: 'Shadow opacity (0-1)', cs: 'Průhlednost stínu (0-1)' },\n ),\n createTextField(\n 'shadowBlur',\n { en: 'Shadow Blur', cs: 'Rozmazání stínu' },\n '2px',\n { en: 'Blur radius', cs: 'Poloměr rozmazání' },\n ),\n createTextField(\n 'shadowSpread',\n { en: 'Shadow Spread', cs: 'Rozprostření stínu' },\n '0px',\n { en: 'Spread radius', cs: 'Poloměr rozprostření' },\n ),\n createTextField(\n 'shadowOffsetX',\n { en: 'Shadow Offset X', cs: 'Posun stínu X' },\n '0px',\n { en: 'Horizontal offset', cs: 'Horizontální posun' },\n ),\n createTextField(\n 'shadowOffsetY',\n { en: 'Shadow Offset Y', cs: 'Posun stínu Y' },\n '1px',\n { en: 'Vertical offset', cs: 'Vertikální posun' },\n ),\n]\n\n/**\n * Font Family Configuration (3 families)\n * TweakCN essential feature\n */\nexport const fontFamilyFields: Field[] = [\n createTextField(\n 'fontSans',\n { en: 'Sans-Serif Font', cs: 'Bezpatkové písmo' },\n 'Inter, system-ui, sans-serif',\n { en: 'Primary sans-serif font stack', cs: 'Primární bezpatkové písmo' },\n ),\n createTextField(\n 'fontSerif',\n { en: 'Serif Font', cs: 'Patkové písmo' },\n 'Georgia, serif',\n { en: 'Serif font stack', cs: 'Patkové písmo' },\n ),\n createTextField(\n 'fontMono',\n { en: 'Monospace Font', cs: 'Monospace písmo' },\n 'JetBrains Mono, monospace',\n { en: 'Monospace font stack', cs: 'Monospace písmo' },\n ),\n]\n\n/**\n * Advanced Typography (2 properties)\n */\nexport const advancedTypographyFields: Field[] = [\n createTextField(\n 'letterSpacing',\n { en: 'Letter Spacing', cs: 'Rozestup písmen' },\n '0em',\n { en: 'Global letter spacing', cs: 'Globální rozestup písmen' },\n ),\n createTextField(\n 'spacing',\n { en: 'Spacing Scale', cs: 'Škála rozestupů' },\n '0.25rem',\n { en: 'Base spacing unit', cs: 'Základní jednotka rozestupu' },\n ),\n]\n\n/**\n * Border Radius Configuration\n */\nexport const designSystemFields: Field[] = [\n createTextField(\n 'radius',\n { en: 'Border Radius', cs: 'Zaoblení rohů' },\n '0.5rem',\n { en: 'Default border radius', cs: 'Výchozí zaoblení rohů' },\n ),\n]\n\n/**\n * Extended Theme Selection Field with Visual Preview\n */\nexport const extendedThemeSelectionField: Field = {\n name: 'extendedTheme',\n type: 'select',\n label: {\n en: '🎨 Theme Preset',\n cs: '🎨 Přednastavené téma',\n },\n defaultValue: 'cool-extended',\n options: extendedThemeOptions,\n admin: {\n description: {\n en: 'Select a professional theme with full OKLCH color support (TweakCN compatible)',\n cs: 'Vyberte profesionální téma s plnou podporou OKLCH barev (kompatibilní s TweakCN)',\n },\n },\n}\n\n/**\n * Unified Light Mode Configuration\n * Combines all color tokens in one place\n */\nexport const lightModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '☀️ Light Mode Colors',\n cs: '☀️ Barvy světlého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for light mode',\n cs: 'Kompletní konfigurace barev pro světlý režim',\n },\n },\n fields: [\n {\n name: 'extendedLightMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Unified Dark Mode Configuration\n */\nexport const darkModeColorsField: Field = {\n type: 'collapsible',\n label: {\n en: '🌙 Dark Mode Colors',\n cs: '🌙 Barvy tmavého režimu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Complete color configuration for dark mode',\n cs: 'Kompletní konfigurace barev pro tmavý režim',\n },\n },\n fields: [\n {\n name: 'extendedDarkMode',\n type: 'group',\n fields: [...baseColorFields, ...chartColorFields],\n },\n ],\n}\n\n/**\n * Shadow Configuration Section\n */\nexport const shadowConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '🌓 Shadows & Elevation',\n cs: '🌓 Stíny a výška',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Configure shadow system for depth and elevation',\n cs: 'Nakonfigurujte systém stínů pro hloubku a výšku',\n },\n },\n fields: [\n {\n name: 'shadows',\n type: 'group',\n fields: shadowFields,\n },\n ],\n}\n\n/**\n * Typography Configuration Section\n */\nexport const typographyConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '� Typography',\n cs: '� Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Font families and advanced typography settings',\n cs: 'Rodiny písem a pokročilá nastavení typografie',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [...fontFamilyFields, ...advancedTypographyFields],\n },\n ],\n}\n\n/**\n * Design System Configuration\n */\nexport const designSystemConfigField: Field = {\n type: 'collapsible',\n label: {\n en: '⚙️ Design System',\n cs: '⚙️ Designový systém',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Global design tokens (radius, spacing, etc.)',\n cs: 'Globální design tokeny (zaoblení, rozestupy, atd.)',\n },\n },\n fields: [\n {\n name: 'designSystem',\n type: 'group',\n fields: designSystemFields,\n },\n ],\n}\n\n// DEPRECATED: Old fields kept for backwards compatibility\n// TODO: Remove in v1.0.0\nexport const extendedLightModeField = lightModeColorsField\nexport const extendedDarkModeField = darkModeColorsField\nexport const chartColorsField = {\n type: 'group',\n name: 'chartColors',\n fields: chartColorFields,\n} as Field\n"],"names":["allExtendedThemePresets","extendedThemeOptions","Object","values","map","preset","primaryColor","styles","light","primary","bgColor","background","label","value","__meta","createColorField","name","description","type","admin","placeholder","components","Field","createTextField","baseColorFields","en","cs","chartColorFields","shadowFields","fontFamilyFields","advancedTypographyFields","designSystemFields","extendedThemeSelectionField","defaultValue","options","lightModeColorsField","initCollapsed","fields","darkModeColorsField","shadowConfigField","typographyConfigField","designSystemConfigField","extendedLightModeField","extendedDarkModeField","chartColorsField"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeConfigurationField.d.ts","sourceRoot":"","sources":["../../src/fields/themeConfigurationField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAW9C,UAAU,8BAA8B;IACtC,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,8BAA8B,GACtC;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,
|
|
1
|
+
{"version":3,"file":"themeConfigurationField.d.ts","sourceRoot":"","sources":["../../src/fields/themeConfigurationField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAW9C,UAAU,8BAA8B;IACtC,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,gBAAgB,EAAE,OAAO,CAAA;IACzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,8BAA8B,GACtC;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CA6aA"}
|
|
@@ -61,8 +61,8 @@ import { extendedThemeSelectionField, lightModeColorsField, darkModeColorsField,
|
|
|
61
61
|
]
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
-
// Color Mode Settings
|
|
65
|
-
if (includeColorModeToggle) {
|
|
64
|
+
// Color Mode Settings (only when NOT using extended theme configuration)
|
|
65
|
+
if (includeColorModeToggle && !enableAdvancedFeatures) {
|
|
66
66
|
fields.push({
|
|
67
67
|
type: 'collapsible',
|
|
68
68
|
label: {
|
|
@@ -142,277 +142,282 @@ import { extendedThemeSelectionField, lightModeColorsField, darkModeColorsField,
|
|
|
142
142
|
]
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
name: 'headingFont',
|
|
184
|
-
type: 'select',
|
|
185
|
-
label: {
|
|
186
|
-
en: 'Heading font',
|
|
187
|
-
cs: 'Písmo pro nadpisy'
|
|
145
|
+
// Typography (only when NOT using extended theme configuration)
|
|
146
|
+
if (!enableAdvancedFeatures) {
|
|
147
|
+
fields.push({
|
|
148
|
+
type: 'collapsible',
|
|
149
|
+
label: {
|
|
150
|
+
en: '🅰️ Typography',
|
|
151
|
+
cs: '🅰️ Typografie'
|
|
152
|
+
},
|
|
153
|
+
admin: {
|
|
154
|
+
initCollapsed: true,
|
|
155
|
+
description: {
|
|
156
|
+
en: 'Choose font families and base typography settings. Leave fields on "Use preset" to inherit the theme defaults.',
|
|
157
|
+
cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota "Použít výchozí" zachová nastavení motivu.'
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
fields: [
|
|
161
|
+
{
|
|
162
|
+
name: 'typography',
|
|
163
|
+
type: 'group',
|
|
164
|
+
fields: [
|
|
165
|
+
{
|
|
166
|
+
type: 'row',
|
|
167
|
+
fields: [
|
|
168
|
+
{
|
|
169
|
+
name: 'bodyFont',
|
|
170
|
+
type: 'select',
|
|
171
|
+
label: {
|
|
172
|
+
en: 'Body font',
|
|
173
|
+
cs: 'Písmo pro text'
|
|
174
|
+
},
|
|
175
|
+
defaultValue: 'preset',
|
|
176
|
+
options: BODY_FONT_OPTIONS.map((option)=>({
|
|
177
|
+
label: option.label,
|
|
178
|
+
value: option.value
|
|
179
|
+
})),
|
|
180
|
+
admin: {
|
|
181
|
+
width: '50%'
|
|
182
|
+
}
|
|
188
183
|
},
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
184
|
+
{
|
|
185
|
+
name: 'headingFont',
|
|
186
|
+
type: 'select',
|
|
187
|
+
label: {
|
|
188
|
+
en: 'Heading font',
|
|
189
|
+
cs: 'Písmo pro nadpisy'
|
|
190
|
+
},
|
|
191
|
+
defaultValue: 'preset',
|
|
192
|
+
options: HEADING_FONT_OPTIONS.map((option)=>({
|
|
193
|
+
label: option.label,
|
|
194
|
+
value: option.value
|
|
195
|
+
})),
|
|
196
|
+
admin: {
|
|
197
|
+
width: '50%'
|
|
198
|
+
}
|
|
196
199
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'row',
|
|
204
|
+
fields: [
|
|
205
|
+
{
|
|
206
|
+
name: 'bodyFontCustom',
|
|
207
|
+
type: 'text',
|
|
208
|
+
label: {
|
|
209
|
+
en: 'Custom body font stack',
|
|
210
|
+
cs: 'Vlastní písmo pro text'
|
|
211
|
+
},
|
|
212
|
+
admin: {
|
|
213
|
+
width: '50%',
|
|
214
|
+
placeholder: '"IBM Plex Sans", sans-serif',
|
|
215
|
+
description: {
|
|
216
|
+
en: 'Provide full CSS font-family stack when using a custom font.',
|
|
217
|
+
cs: 'Při volbě vlastního písma zadejte celý CSS zápis font-family.'
|
|
218
|
+
},
|
|
219
|
+
condition: (_, siblingData)=>siblingData?.bodyFont === 'custom'
|
|
220
|
+
}
|
|
209
221
|
},
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
en: '
|
|
215
|
-
cs: '
|
|
222
|
+
{
|
|
223
|
+
name: 'headingFontCustom',
|
|
224
|
+
type: 'text',
|
|
225
|
+
label: {
|
|
226
|
+
en: 'Custom heading font stack',
|
|
227
|
+
cs: 'Vlastní písmo pro nadpisy'
|
|
216
228
|
},
|
|
217
|
-
|
|
229
|
+
admin: {
|
|
230
|
+
width: '50%',
|
|
231
|
+
placeholder: '"Cormorant Garamond", serif',
|
|
232
|
+
description: {
|
|
233
|
+
en: 'Provide full CSS font-family stack when using a custom heading font.',
|
|
234
|
+
cs: 'Při volbě vlastního nadpisového písma zadejte celý CSS zápis font-family.'
|
|
235
|
+
},
|
|
236
|
+
condition: (_, siblingData)=>siblingData?.headingFont === 'custom'
|
|
237
|
+
}
|
|
218
238
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
type: 'row',
|
|
243
|
+
fields: [
|
|
244
|
+
{
|
|
245
|
+
name: 'baseFontSize',
|
|
246
|
+
type: 'select',
|
|
247
|
+
label: {
|
|
248
|
+
en: 'Base font size',
|
|
249
|
+
cs: 'Základní velikost písma'
|
|
250
|
+
},
|
|
251
|
+
defaultValue: 'preset',
|
|
252
|
+
options: BASE_FONT_SIZE_OPTIONS.map((option)=>({
|
|
253
|
+
label: option.label,
|
|
254
|
+
value: option.value
|
|
255
|
+
})),
|
|
256
|
+
admin: {
|
|
257
|
+
width: '50%'
|
|
258
|
+
}
|
|
226
259
|
},
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
en: '
|
|
232
|
-
cs: '
|
|
260
|
+
{
|
|
261
|
+
name: 'lineHeight',
|
|
262
|
+
type: 'select',
|
|
263
|
+
label: {
|
|
264
|
+
en: 'Line height',
|
|
265
|
+
cs: 'Řádkování'
|
|
233
266
|
},
|
|
234
|
-
|
|
267
|
+
defaultValue: 'preset',
|
|
268
|
+
options: LINE_HEIGHT_OPTIONS.map((option)=>({
|
|
269
|
+
label: option.label,
|
|
270
|
+
value: option.value
|
|
271
|
+
})),
|
|
272
|
+
admin: {
|
|
273
|
+
width: '50%'
|
|
274
|
+
}
|
|
235
275
|
}
|
|
236
|
-
|
|
237
|
-
|
|
276
|
+
]
|
|
277
|
+
}
|
|
278
|
+
]
|
|
279
|
+
}
|
|
280
|
+
]
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
// Design Customization (only when NOT using extended theme configuration)
|
|
284
|
+
if (!enableAdvancedFeatures) {
|
|
285
|
+
fields.push({
|
|
286
|
+
type: 'collapsible',
|
|
287
|
+
label: {
|
|
288
|
+
en: '✨ Design Customization',
|
|
289
|
+
cs: '✨ Přizpůsobení designu'
|
|
290
|
+
},
|
|
291
|
+
admin: {
|
|
292
|
+
initCollapsed: true
|
|
293
|
+
},
|
|
294
|
+
fields: [
|
|
295
|
+
{
|
|
296
|
+
name: 'borderRadius',
|
|
297
|
+
type: 'select',
|
|
298
|
+
label: {
|
|
299
|
+
en: 'Border Radius',
|
|
300
|
+
cs: 'Zaoblení rohů'
|
|
238
301
|
},
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
{
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
label: {
|
|
246
|
-
en: 'Base font size',
|
|
247
|
-
cs: 'Základní velikost písma'
|
|
248
|
-
},
|
|
249
|
-
defaultValue: 'preset',
|
|
250
|
-
options: BASE_FONT_SIZE_OPTIONS.map((option)=>({
|
|
251
|
-
label: option.label,
|
|
252
|
-
value: option.value
|
|
253
|
-
})),
|
|
254
|
-
admin: {
|
|
255
|
-
width: '50%'
|
|
256
|
-
}
|
|
302
|
+
defaultValue: 'medium',
|
|
303
|
+
options: [
|
|
304
|
+
{
|
|
305
|
+
label: {
|
|
306
|
+
en: 'None',
|
|
307
|
+
cs: 'Žádné'
|
|
257
308
|
},
|
|
258
|
-
|
|
259
|
-
name: 'lineHeight',
|
|
260
|
-
type: 'select',
|
|
261
|
-
label: {
|
|
262
|
-
en: 'Line height',
|
|
263
|
-
cs: 'Řádkování'
|
|
264
|
-
},
|
|
265
|
-
defaultValue: 'preset',
|
|
266
|
-
options: LINE_HEIGHT_OPTIONS.map((option)=>({
|
|
267
|
-
label: option.label,
|
|
268
|
-
value: option.value
|
|
269
|
-
})),
|
|
270
|
-
admin: {
|
|
271
|
-
width: '50%'
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
]
|
|
275
|
-
}
|
|
276
|
-
]
|
|
277
|
-
}
|
|
278
|
-
]
|
|
279
|
-
});
|
|
280
|
-
// Design Customization
|
|
281
|
-
fields.push({
|
|
282
|
-
type: 'collapsible',
|
|
283
|
-
label: {
|
|
284
|
-
en: '✨ Design Customization',
|
|
285
|
-
cs: '✨ Přizpůsobení designu'
|
|
286
|
-
},
|
|
287
|
-
admin: {
|
|
288
|
-
initCollapsed: true
|
|
289
|
-
},
|
|
290
|
-
fields: [
|
|
291
|
-
{
|
|
292
|
-
name: 'borderRadius',
|
|
293
|
-
type: 'select',
|
|
294
|
-
label: {
|
|
295
|
-
en: 'Border Radius',
|
|
296
|
-
cs: 'Zaoblení rohů'
|
|
297
|
-
},
|
|
298
|
-
defaultValue: 'medium',
|
|
299
|
-
options: [
|
|
300
|
-
{
|
|
301
|
-
label: {
|
|
302
|
-
en: 'None',
|
|
303
|
-
cs: 'Žádné'
|
|
309
|
+
value: 'none'
|
|
304
310
|
},
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
+
{
|
|
312
|
+
label: {
|
|
313
|
+
en: 'Small',
|
|
314
|
+
cs: 'Malé'
|
|
315
|
+
},
|
|
316
|
+
value: 'small'
|
|
311
317
|
},
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
+
{
|
|
319
|
+
label: {
|
|
320
|
+
en: 'Medium',
|
|
321
|
+
cs: 'Střední'
|
|
322
|
+
},
|
|
323
|
+
value: 'medium'
|
|
318
324
|
},
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
+
{
|
|
326
|
+
label: {
|
|
327
|
+
en: 'Large',
|
|
328
|
+
cs: 'Velké'
|
|
329
|
+
},
|
|
330
|
+
value: 'large'
|
|
325
331
|
},
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
+
{
|
|
333
|
+
label: {
|
|
334
|
+
en: 'Full',
|
|
335
|
+
cs: 'Plné'
|
|
336
|
+
},
|
|
337
|
+
value: 'xl'
|
|
338
|
+
}
|
|
339
|
+
],
|
|
340
|
+
admin: {
|
|
341
|
+
components: {
|
|
342
|
+
Field: '@kilivi/payloadcms-theme-management/fields/RadiusField'
|
|
332
343
|
},
|
|
333
|
-
|
|
344
|
+
width: '33%'
|
|
334
345
|
}
|
|
335
|
-
],
|
|
336
|
-
admin: {
|
|
337
|
-
components: {
|
|
338
|
-
Field: '@kilivi/payloadcms-theme-management/fields/RadiusField'
|
|
339
|
-
},
|
|
340
|
-
width: '33%'
|
|
341
|
-
}
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
name: 'fontScale',
|
|
345
|
-
type: 'select',
|
|
346
|
-
label: {
|
|
347
|
-
en: 'Font Scale',
|
|
348
|
-
cs: 'Velikost písma'
|
|
349
346
|
},
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
},
|
|
357
|
-
value: 'small'
|
|
347
|
+
{
|
|
348
|
+
name: 'fontScale',
|
|
349
|
+
type: 'select',
|
|
350
|
+
label: {
|
|
351
|
+
en: 'Font Scale',
|
|
352
|
+
cs: 'Velikost písma'
|
|
358
353
|
},
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
354
|
+
defaultValue: 'medium',
|
|
355
|
+
options: [
|
|
356
|
+
{
|
|
357
|
+
label: {
|
|
358
|
+
en: 'Small',
|
|
359
|
+
cs: 'Malé'
|
|
360
|
+
},
|
|
361
|
+
value: 'small'
|
|
363
362
|
},
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
363
|
+
{
|
|
364
|
+
label: {
|
|
365
|
+
en: 'Medium',
|
|
366
|
+
cs: 'Střední'
|
|
367
|
+
},
|
|
368
|
+
value: 'medium'
|
|
370
369
|
},
|
|
371
|
-
|
|
370
|
+
{
|
|
371
|
+
label: {
|
|
372
|
+
en: 'Large',
|
|
373
|
+
cs: 'Velké'
|
|
374
|
+
},
|
|
375
|
+
value: 'large'
|
|
376
|
+
}
|
|
377
|
+
],
|
|
378
|
+
admin: {
|
|
379
|
+
width: '33%'
|
|
372
380
|
}
|
|
373
|
-
],
|
|
374
|
-
admin: {
|
|
375
|
-
width: '33%'
|
|
376
|
-
}
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
name: 'spacing',
|
|
380
|
-
type: 'select',
|
|
381
|
-
label: {
|
|
382
|
-
en: 'Spacing',
|
|
383
|
-
cs: 'Mezery'
|
|
384
381
|
},
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
},
|
|
392
|
-
value: 'compact'
|
|
382
|
+
{
|
|
383
|
+
name: 'spacing',
|
|
384
|
+
type: 'select',
|
|
385
|
+
label: {
|
|
386
|
+
en: 'Spacing',
|
|
387
|
+
cs: 'Mezery'
|
|
393
388
|
},
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
389
|
+
defaultValue: 'medium',
|
|
390
|
+
options: [
|
|
391
|
+
{
|
|
392
|
+
label: {
|
|
393
|
+
en: 'Compact',
|
|
394
|
+
cs: 'Kompaktní'
|
|
395
|
+
},
|
|
396
|
+
value: 'compact'
|
|
398
397
|
},
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
398
|
+
{
|
|
399
|
+
label: {
|
|
400
|
+
en: 'Medium',
|
|
401
|
+
cs: 'Střední'
|
|
402
|
+
},
|
|
403
|
+
value: 'medium'
|
|
405
404
|
},
|
|
406
|
-
|
|
405
|
+
{
|
|
406
|
+
label: {
|
|
407
|
+
en: 'Spacious',
|
|
408
|
+
cs: 'Prostorné'
|
|
409
|
+
},
|
|
410
|
+
value: 'spacious'
|
|
411
|
+
}
|
|
412
|
+
],
|
|
413
|
+
admin: {
|
|
414
|
+
width: '34%'
|
|
407
415
|
}
|
|
408
|
-
],
|
|
409
|
-
admin: {
|
|
410
|
-
width: '34%'
|
|
411
416
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
}
|
|
415
|
-
// Advanced Settings
|
|
417
|
+
]
|
|
418
|
+
});
|
|
419
|
+
} // End of !enableAdvancedFeatures block
|
|
420
|
+
// Advanced Settings (when using extended theme configuration)
|
|
416
421
|
if (enableAdvancedFeatures) {
|
|
417
422
|
const advancedFields = [
|
|
418
423
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/themeConfigurationField.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport {\n BASE_FONT_SIZE_OPTIONS,\n BODY_FONT_OPTIONS,\n HEADING_FONT_OPTIONS,\n LINE_HEIGHT_OPTIONS,\n} from '../constants/themeFonts.js'\nimport type { ThemePreset } from '../index.js'\nimport { darkModeField, lightModeField } from './colorModeFields.js'\nimport {\n extendedThemeSelectionField,\n lightModeColorsField,\n darkModeColorsField,\n shadowConfigField,\n typographyConfigField,\n designSystemConfigField,\n} from './extendedThemeFields.js'\n\ninterface ThemeConfigurationFieldOptions {\n themePresets: ThemePreset[]\n defaultTheme: string\n includeColorModeToggle: boolean\n includeCustomCSS: boolean\n includeBrandIdentity: boolean\n enableAdvancedFeatures?: boolean\n}\n\n/**\n * Theme Configuration Tab Configuration\n * Returns tab config that can be injected into existing tabs field\n */\nexport function createThemeConfigurationField(\n options: ThemeConfigurationFieldOptions,\n): {\n name: string\n label: { en: string; cs: string }\n description: { en: string; cs: string }\n fields: Field[]\n} {\n const {\n themePresets,\n defaultTheme,\n includeColorModeToggle,\n includeCustomCSS,\n enableAdvancedFeatures = true,\n } = options\n\n const themeOptions = themePresets.map((preset) => {\n const previewColor = preset.preview?.colors.primary\n const label = previewColor ? `${preset.label} • ${previewColor}` : preset.label\n return {\n label,\n value: preset.name,\n }\n })\n\n const fields: Field[] = [\n {\n name: 'theme',\n type: 'select',\n required: true,\n defaultValue: defaultTheme,\n options: themeOptions,\n label: {\n en: '🎨 Theme Selection',\n cs: '🎨 Výběr tématu',\n },\n admin: {\n description: {\n en: 'Select a theme to auto-populate color values. You can customize colors after selection.',\n cs: 'Vyberte téma pro automatické předvyplnění barev. Po výběru můžete barvy upravit.',\n },\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemePreviewField',\n },\n },\n },\n extendedThemeSelectionField,\n ]\n\n // Extended Theme Configuration (OKLCH colors, shadcn/ui compatible)\n if (enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🎨 Extended Theme Configuration',\n cs: '🎨 Rozšířená konfigurace tématu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Professional theme system with TweakCN compatibility. Full OKLCH color support, shadows, typography, and more.',\n cs: 'Profesionální systém témat s kompatibilitou TweakCN. Plná podpora OKLCH barev, stíny, typografie a další.',\n },\n },\n fields: [\n lightModeColorsField,\n darkModeColorsField,\n shadowConfigField,\n typographyConfigField,\n designSystemConfigField,\n ],\n })\n }\n\n // Color Mode Settings\n if (includeColorModeToggle) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🌗 Color Mode Settings',\n cs: '🌗 Nastavení barevného režimu',\n },\n admin: {\n initCollapsed: false,\n description: {\n en: 'Configure light and dark mode colors. Changes here override theme selection.',\n cs: 'Nakonfigurujte barvy světlého a tmavého režimu. Změny zde přepíší výběr tématu.',\n },\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'colorMode',\n type: 'select',\n label: {\n en: 'Default Color Mode',\n cs: 'Výchozí barevný režim',\n },\n defaultValue: 'auto',\n options: [\n {\n label: {\n en: 'Auto (System)',\n cs: 'Automaticky (Systém)',\n },\n value: 'auto',\n },\n {\n label: { en: 'Light', cs: 'Světlý' },\n value: 'light',\n },\n {\n label: { en: 'Dark', cs: 'Tmavý' },\n value: 'dark',\n },\n ],\n admin: {\n description: {\n en: 'Default color mode for visitors',\n cs: 'Výchozí barevný režim pro návštěvníky',\n },\n width: '50%',\n },\n },\n {\n name: 'allowColorModeToggle',\n type: 'checkbox',\n label: {\n en: 'Enable Mode Toggle',\n cs: 'Povolit přepínač režimu',\n },\n defaultValue: true,\n admin: {\n description: {\n en: 'Let visitors switch modes',\n cs: 'Umožnit návštěvníkům přepínat režimy',\n },\n width: '50%',\n },\n },\n ],\n },\n lightModeField,\n darkModeField,\n ],\n })\n }\n\n fields.push({\n type: 'collapsible',\n label: {\n en: '🅰️ Typography',\n cs: '🅰️ Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Choose font families and base typography settings. Leave fields on \"Use preset\" to inherit the theme defaults.',\n cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota \"Použít výchozí\" zachová nastavení motivu.',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFont',\n type: 'select',\n label: {\n en: 'Body font',\n cs: 'Písmo pro text',\n },\n defaultValue: 'preset',\n options: BODY_FONT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n {\n name: 'headingFont',\n type: 'select',\n label: {\n en: 'Heading font',\n cs: 'Písmo pro nadpisy',\n },\n defaultValue: 'preset',\n options: HEADING_FONT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFontCustom',\n type: 'text',\n label: {\n en: 'Custom body font stack',\n cs: 'Vlastní písmo pro text',\n },\n admin: {\n width: '50%',\n placeholder: '\"IBM Plex Sans\", sans-serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom font.',\n cs: 'Při volbě vlastního písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.bodyFont === 'custom',\n },\n },\n {\n name: 'headingFontCustom',\n type: 'text',\n label: {\n en: 'Custom heading font stack',\n cs: 'Vlastní písmo pro nadpisy',\n },\n admin: {\n width: '50%',\n placeholder: '\"Cormorant Garamond\", serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom heading font.',\n cs: 'Při volbě vlastního nadpisového písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.headingFont === 'custom',\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'baseFontSize',\n type: 'select',\n label: {\n en: 'Base font size',\n cs: 'Základní velikost písma',\n },\n defaultValue: 'preset',\n options: BASE_FONT_SIZE_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n {\n name: 'lineHeight',\n type: 'select',\n label: {\n en: 'Line height',\n cs: 'Řádkování',\n },\n defaultValue: 'preset',\n options: LINE_HEIGHT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n ],\n },\n ],\n },\n ],\n })\n\n // Design Customization\n fields.push({\n type: 'collapsible',\n label: {\n en: '✨ Design Customization',\n cs: '✨ Přizpůsobení designu',\n },\n admin: {\n initCollapsed: true,\n },\n fields: [\n {\n name: 'borderRadius',\n type: 'select',\n label: {\n en: 'Border Radius',\n cs: 'Zaoblení rohů',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n { label: { en: 'Full', cs: 'Plné' }, value: 'xl' },\n ],\n admin: {\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/RadiusField',\n },\n width: '33%',\n },\n },\n {\n name: 'fontScale',\n type: 'select',\n label: {\n en: 'Font Scale',\n cs: 'Velikost písma',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n ],\n admin: {\n width: '33%',\n },\n },\n {\n name: 'spacing',\n type: 'select',\n label: {\n en: 'Spacing',\n cs: 'Mezery',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Compact', cs: 'Kompaktní' }, value: 'compact' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Spacious', cs: 'Prostorné' }, value: 'spacious' },\n ],\n admin: {\n width: '34%',\n },\n },\n ],\n })\n\n // Advanced Settings\n if (enableAdvancedFeatures) {\n const advancedFields: Field[] = [\n {\n name: 'animationLevel',\n type: 'select',\n label: {\n en: 'Animation Level',\n cs: 'Úroveň animací',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Reduced', cs: 'Snížené' }, value: 'reduced' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'High', cs: 'Vysoké' }, value: 'high' },\n ],\n admin: {\n description: {\n en: 'Control website animations and transitions',\n cs: 'Kontrola animací a přechodů na webu',\n },\n width: '50%',\n },\n },\n ]\n\n if (includeCustomCSS) {\n advancedFields.push({\n name: 'customCSS',\n type: 'code',\n label: {\n en: 'Custom CSS',\n cs: 'Vlastní CSS',\n },\n admin: {\n language: 'css',\n description: {\n en: 'Add custom CSS to override default styles',\n cs: 'Přidejte vlastní CSS pro přepsání výchozích stylů',\n },\n // placeholder:\n // ':root {\\n --primary: #your-color;\\n --border-radius: 8px;\\n --font-family: \"Your Font\";\\n}\\n\\n.custom-class {\\n /* Your custom styles */\\n}',\n // rows: 8,\n },\n })\n }\n\n fields.push({\n type: 'collapsible',\n label: {\n en: '⚙️ Advanced Settings',\n cs: '⚙️ Pokročilé nastavení',\n },\n admin: {\n initCollapsed: true,\n },\n fields: advancedFields,\n })\n }\n\n // Return just the tab configuration, not the full tabs field\n // The plugin will inject this into existing tabs or create a group field\n return {\n name: 'themeConfiguration',\n label: {\n en: '🎨 Appearance Settings',\n cs: '🎨 Nastavení vzhledu',\n },\n description: {\n en: 'Configure website appearance and styling',\n cs: 'Nakonfigurujte vzhled a stylování webu',\n },\n fields,\n }\n}\n"],"names":["BASE_FONT_SIZE_OPTIONS","BODY_FONT_OPTIONS","HEADING_FONT_OPTIONS","LINE_HEIGHT_OPTIONS","darkModeField","lightModeField","extendedThemeSelectionField","lightModeColorsField","darkModeColorsField","shadowConfigField","typographyConfigField","designSystemConfigField","createThemeConfigurationField","options","themePresets","defaultTheme","includeColorModeToggle","includeCustomCSS","enableAdvancedFeatures","themeOptions","map","preset","previewColor","preview","colors","primary","label","value","name","fields","type","required","defaultValue","en","cs","admin","description","components","Field","push","initCollapsed","width","option","placeholder","condition","_","siblingData","bodyFont","headingFont","advancedFields","language"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/fields/themeConfigurationField.ts"],"sourcesContent":["import type { Field } from 'payload'\nimport {\n BASE_FONT_SIZE_OPTIONS,\n BODY_FONT_OPTIONS,\n HEADING_FONT_OPTIONS,\n LINE_HEIGHT_OPTIONS,\n} from '../constants/themeFonts.js'\nimport type { ThemePreset } from '../index.js'\nimport { darkModeField, lightModeField } from './colorModeFields.js'\nimport {\n extendedThemeSelectionField,\n lightModeColorsField,\n darkModeColorsField,\n shadowConfigField,\n typographyConfigField,\n designSystemConfigField,\n} from './extendedThemeFields.js'\n\ninterface ThemeConfigurationFieldOptions {\n themePresets: ThemePreset[]\n defaultTheme: string\n includeColorModeToggle: boolean\n includeCustomCSS: boolean\n includeBrandIdentity: boolean\n enableAdvancedFeatures?: boolean\n}\n\n/**\n * Theme Configuration Tab Configuration\n * Returns tab config that can be injected into existing tabs field\n */\nexport function createThemeConfigurationField(\n options: ThemeConfigurationFieldOptions,\n): {\n name: string\n label: { en: string; cs: string }\n description: { en: string; cs: string }\n fields: Field[]\n} {\n const {\n themePresets,\n defaultTheme,\n includeColorModeToggle,\n includeCustomCSS,\n enableAdvancedFeatures = true,\n } = options\n\n const themeOptions = themePresets.map((preset) => {\n const previewColor = preset.preview?.colors.primary\n const label = previewColor ? `${preset.label} • ${previewColor}` : preset.label\n return {\n label,\n value: preset.name,\n }\n })\n\n const fields: Field[] = [\n {\n name: 'theme',\n type: 'select',\n required: true,\n defaultValue: defaultTheme,\n options: themeOptions,\n label: {\n en: '🎨 Theme Selection',\n cs: '🎨 Výběr tématu',\n },\n admin: {\n description: {\n en: 'Select a theme to auto-populate color values. You can customize colors after selection.',\n cs: 'Vyberte téma pro automatické předvyplnění barev. Po výběru můžete barvy upravit.',\n },\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/ThemePreviewField',\n },\n },\n },\n extendedThemeSelectionField,\n ]\n\n // Extended Theme Configuration (OKLCH colors, shadcn/ui compatible)\n if (enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🎨 Extended Theme Configuration',\n cs: '🎨 Rozšířená konfigurace tématu',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Professional theme system with TweakCN compatibility. Full OKLCH color support, shadows, typography, and more.',\n cs: 'Profesionální systém témat s kompatibilitou TweakCN. Plná podpora OKLCH barev, stíny, typografie a další.',\n },\n },\n fields: [\n lightModeColorsField,\n darkModeColorsField,\n shadowConfigField,\n typographyConfigField,\n designSystemConfigField,\n ],\n })\n }\n\n // Color Mode Settings (only when NOT using extended theme configuration)\n if (includeColorModeToggle && !enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🌗 Color Mode Settings',\n cs: '🌗 Nastavení barevného režimu',\n },\n admin: {\n initCollapsed: false,\n description: {\n en: 'Configure light and dark mode colors. Changes here override theme selection.',\n cs: 'Nakonfigurujte barvy světlého a tmavého režimu. Změny zde přepíší výběr tématu.',\n },\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'colorMode',\n type: 'select',\n label: {\n en: 'Default Color Mode',\n cs: 'Výchozí barevný režim',\n },\n defaultValue: 'auto',\n options: [\n {\n label: {\n en: 'Auto (System)',\n cs: 'Automaticky (Systém)',\n },\n value: 'auto',\n },\n {\n label: { en: 'Light', cs: 'Světlý' },\n value: 'light',\n },\n {\n label: { en: 'Dark', cs: 'Tmavý' },\n value: 'dark',\n },\n ],\n admin: {\n description: {\n en: 'Default color mode for visitors',\n cs: 'Výchozí barevný režim pro návštěvníky',\n },\n width: '50%',\n },\n },\n {\n name: 'allowColorModeToggle',\n type: 'checkbox',\n label: {\n en: 'Enable Mode Toggle',\n cs: 'Povolit přepínač režimu',\n },\n defaultValue: true,\n admin: {\n description: {\n en: 'Let visitors switch modes',\n cs: 'Umožnit návštěvníkům přepínat režimy',\n },\n width: '50%',\n },\n },\n ],\n },\n lightModeField,\n darkModeField,\n ],\n })\n }\n\n // Typography (only when NOT using extended theme configuration)\n if (!enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '🅰️ Typography',\n cs: '🅰️ Typografie',\n },\n admin: {\n initCollapsed: true,\n description: {\n en: 'Choose font families and base typography settings. Leave fields on \"Use preset\" to inherit the theme defaults.',\n cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota \"Použít výchozí\" zachová nastavení motivu.',\n },\n },\n fields: [\n {\n name: 'typography',\n type: 'group',\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFont',\n type: 'select',\n label: {\n en: 'Body font',\n cs: 'Písmo pro text',\n },\n defaultValue: 'preset',\n options: BODY_FONT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n {\n name: 'headingFont',\n type: 'select',\n label: {\n en: 'Heading font',\n cs: 'Písmo pro nadpisy',\n },\n defaultValue: 'preset',\n options: HEADING_FONT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'bodyFontCustom',\n type: 'text',\n label: {\n en: 'Custom body font stack',\n cs: 'Vlastní písmo pro text',\n },\n admin: {\n width: '50%',\n placeholder: '\"IBM Plex Sans\", sans-serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom font.',\n cs: 'Při volbě vlastního písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.bodyFont === 'custom',\n },\n },\n {\n name: 'headingFontCustom',\n type: 'text',\n label: {\n en: 'Custom heading font stack',\n cs: 'Vlastní písmo pro nadpisy',\n },\n admin: {\n width: '50%',\n placeholder: '\"Cormorant Garamond\", serif',\n description: {\n en: 'Provide full CSS font-family stack when using a custom heading font.',\n cs: 'Při volbě vlastního nadpisového písma zadejte celý CSS zápis font-family.',\n },\n condition: (_, siblingData) => siblingData?.headingFont === 'custom',\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'baseFontSize',\n type: 'select',\n label: {\n en: 'Base font size',\n cs: 'Základní velikost písma',\n },\n defaultValue: 'preset',\n options: BASE_FONT_SIZE_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n {\n name: 'lineHeight',\n type: 'select',\n label: {\n en: 'Line height',\n cs: 'Řádkování',\n },\n defaultValue: 'preset',\n options: LINE_HEIGHT_OPTIONS.map((option) => ({\n label: option.label,\n value: option.value,\n })),\n admin: {\n width: '50%',\n },\n },\n ],\n },\n ],\n },\n ],\n })\n }\n\n // Design Customization (only when NOT using extended theme configuration)\n if (!enableAdvancedFeatures) {\n fields.push({\n type: 'collapsible',\n label: {\n en: '✨ Design Customization',\n cs: '✨ Přizpůsobení designu',\n },\n admin: {\n initCollapsed: true,\n },\n fields: [\n {\n name: 'borderRadius',\n type: 'select',\n label: {\n en: 'Border Radius',\n cs: 'Zaoblení rohů',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n { label: { en: 'Full', cs: 'Plné' }, value: 'xl' },\n ],\n admin: {\n components: {\n Field: '@kilivi/payloadcms-theme-management/fields/RadiusField',\n },\n width: '33%',\n },\n },\n {\n name: 'fontScale',\n type: 'select',\n label: {\n en: 'Font Scale',\n cs: 'Velikost písma',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\n ],\n admin: {\n width: '33%',\n },\n },\n {\n name: 'spacing',\n type: 'select',\n label: {\n en: 'Spacing',\n cs: 'Mezery',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'Compact', cs: 'Kompaktní' }, value: 'compact' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'Spacious', cs: 'Prostorné' }, value: 'spacious' },\n ],\n admin: {\n width: '34%',\n },\n },\n ],\n })\n } // End of !enableAdvancedFeatures block\n\n // Advanced Settings (when using extended theme configuration)\n if (enableAdvancedFeatures) {\n const advancedFields: Field[] = [\n {\n name: 'animationLevel',\n type: 'select',\n label: {\n en: 'Animation Level',\n cs: 'Úroveň animací',\n },\n defaultValue: 'medium',\n options: [\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\n { label: { en: 'Reduced', cs: 'Snížené' }, value: 'reduced' },\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\n { label: { en: 'High', cs: 'Vysoké' }, value: 'high' },\n ],\n admin: {\n description: {\n en: 'Control website animations and transitions',\n cs: 'Kontrola animací a přechodů na webu',\n },\n width: '50%',\n },\n },\n ]\n\n if (includeCustomCSS) {\n advancedFields.push({\n name: 'customCSS',\n type: 'code',\n label: {\n en: 'Custom CSS',\n cs: 'Vlastní CSS',\n },\n admin: {\n language: 'css',\n description: {\n en: 'Add custom CSS to override default styles',\n cs: 'Přidejte vlastní CSS pro přepsání výchozích stylů',\n },\n // placeholder:\n // ':root {\\n --primary: #your-color;\\n --border-radius: 8px;\\n --font-family: \"Your Font\";\\n}\\n\\n.custom-class {\\n /* Your custom styles */\\n}',\n // rows: 8,\n },\n })\n }\n\n fields.push({\n type: 'collapsible',\n label: {\n en: '⚙️ Advanced Settings',\n cs: '⚙️ Pokročilé nastavení',\n },\n admin: {\n initCollapsed: true,\n },\n fields: advancedFields,\n })\n }\n\n // Return just the tab configuration, not the full tabs field\n // The plugin will inject this into existing tabs or create a group field\n return {\n name: 'themeConfiguration',\n label: {\n en: '🎨 Appearance Settings',\n cs: '🎨 Nastavení vzhledu',\n },\n description: {\n en: 'Configure website appearance and styling',\n cs: 'Nakonfigurujte vzhled a stylování webu',\n },\n fields,\n }\n}\n"],"names":["BASE_FONT_SIZE_OPTIONS","BODY_FONT_OPTIONS","HEADING_FONT_OPTIONS","LINE_HEIGHT_OPTIONS","darkModeField","lightModeField","extendedThemeSelectionField","lightModeColorsField","darkModeColorsField","shadowConfigField","typographyConfigField","designSystemConfigField","createThemeConfigurationField","options","themePresets","defaultTheme","includeColorModeToggle","includeCustomCSS","enableAdvancedFeatures","themeOptions","map","preset","previewColor","preview","colors","primary","label","value","name","fields","type","required","defaultValue","en","cs","admin","description","components","Field","push","initCollapsed","width","option","placeholder","condition","_","siblingData","bodyFont","headingFont","advancedFields","language"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kilivi/payloadcms-theme-management",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Theme configuration plugin for Payload CMS v3",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"dev": "swc src -d dist --config-file .swcrc --watch",
|
|
89
89
|
"clean": "rimraf dist tsconfig.tsbuildinfo",
|
|
90
90
|
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
|
|
91
|
+
"validate": "node validate-fields.js",
|
|
91
92
|
"test": "jest",
|
|
92
93
|
"test:watch": "jest --watch",
|
|
93
94
|
"test:coverage": "jest --coverage",
|