@kilivi/payloadcms-theme-management 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +97 -97
  2. package/dist/components/ServerThemeInjector.d.ts +1 -1
  3. package/dist/components/ServerThemeInjector.d.ts.map +1 -1
  4. package/dist/components/{ServerThemeInjector.jsx → ServerThemeInjector.js} +50 -37
  5. package/dist/components/ServerThemeInjector.js.map +1 -0
  6. package/dist/components/ThemePreview.js +318 -0
  7. package/dist/components/ThemePreview.js.map +1 -0
  8. package/dist/components/typographyPreviewUtils.js +12 -17
  9. package/dist/components/typographyPreviewUtils.js.map +1 -1
  10. package/dist/constants/themeFonts.js +94 -24
  11. package/dist/constants/themeFonts.js.map +1 -1
  12. package/dist/fields/ColorPickerField.js +332 -0
  13. package/dist/fields/ColorPickerField.js.map +1 -0
  14. package/dist/fields/RadiusField.js +174 -0
  15. package/dist/fields/RadiusField.js.map +1 -0
  16. package/dist/fields/ThemeColorPickerField.css +138 -138
  17. package/dist/fields/ThemeColorPickerField.js +163 -0
  18. package/dist/fields/ThemeColorPickerField.js.map +1 -0
  19. package/dist/fields/ThemePreviewField.js +558 -0
  20. package/dist/fields/ThemePreviewField.js.map +1 -0
  21. package/dist/fields/ThemeTokenSelectField.js +209 -0
  22. package/dist/fields/ThemeTokenSelectField.js.map +1 -0
  23. package/dist/fields/colorModeFields.js +167 -73
  24. package/dist/fields/colorModeFields.js.map +1 -1
  25. package/dist/fields/themeConfigurationField.d.ts +1 -1
  26. package/dist/fields/themeConfigurationField.d.ts.map +1 -1
  27. package/dist/fields/themeConfigurationField.js +227 -134
  28. package/dist/fields/themeConfigurationField.js.map +1 -1
  29. package/dist/index.d.ts +17 -16
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +52 -52
  32. package/dist/index.js.map +1 -1
  33. package/dist/payload-types.js +5 -5
  34. package/dist/payload-types.js.map +1 -1
  35. package/dist/plugin.d.ts +1 -2
  36. package/dist/plugin.d.ts.map +1 -1
  37. package/dist/plugin.js +2 -1
  38. package/dist/plugin.js.map +1 -1
  39. package/dist/presets.js +66 -65
  40. package/dist/presets.js.map +1 -1
  41. package/dist/providers/Theme/index.d.ts +1 -1
  42. package/dist/providers/Theme/index.d.ts.map +1 -1
  43. package/dist/providers/Theme/{index.jsx → index.js} +61 -31
  44. package/dist/providers/Theme/index.js.map +1 -0
  45. package/dist/providers/Theme/shared.d.ts +1 -1
  46. package/dist/providers/Theme/shared.d.ts.map +1 -1
  47. package/dist/providers/Theme/shared.js +34 -9
  48. package/dist/providers/Theme/shared.js.map +1 -1
  49. package/dist/providers/Theme/themeConfig.d.ts +1 -1
  50. package/dist/providers/Theme/themeConfig.d.ts.map +1 -1
  51. package/dist/providers/Theme/themeConfig.js +37 -36
  52. package/dist/providers/Theme/themeConfig.js.map +1 -1
  53. package/dist/providers/Theme/types.js +15 -13
  54. package/dist/providers/Theme/types.js.map +1 -1
  55. package/dist/server.d.ts +2 -2
  56. package/dist/server.d.ts.map +1 -1
  57. package/dist/server.js +3 -2
  58. package/dist/server.js.map +1 -1
  59. package/dist/src/--verbose/dist/fields/ThemeColorPickerField.scss +138 -0
  60. package/dist/src/dist/fields/ThemeColorPickerField.scss +138 -0
  61. package/dist/types.d.ts +2 -2
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +2 -1
  64. package/dist/types.js.map +1 -1
  65. package/dist/utils/resolveThemeConfiguration.d.ts +3 -3
  66. package/dist/utils/resolveThemeConfiguration.d.ts.map +1 -1
  67. package/dist/utils/resolveThemeConfiguration.js +53 -34
  68. package/dist/utils/resolveThemeConfiguration.js.map +1 -1
  69. package/dist/utils/themeAssets.d.ts +1 -1
  70. package/dist/utils/themeAssets.d.ts.map +1 -1
  71. package/dist/utils/themeAssets.js +4 -4
  72. package/dist/utils/themeAssets.js.map +1 -1
  73. package/dist/utils/themeColors.js +95 -41
  74. package/dist/utils/themeColors.js.map +1 -1
  75. package/dist/utils/themeUtils.d.ts +2 -2
  76. package/dist/utils/themeUtils.d.ts.map +1 -1
  77. package/dist/utils/themeUtils.js +38 -53
  78. package/dist/utils/themeUtils.js.map +1 -1
  79. package/package.json +13 -5
  80. package/dist/components/ServerThemeInjector.jsx.map +0 -1
  81. package/dist/components/ThemePreview.jsx +0 -231
  82. package/dist/components/ThemePreview.jsx.map +0 -1
  83. package/dist/fields/ColorPickerField.jsx +0 -205
  84. package/dist/fields/ColorPickerField.jsx.map +0 -1
  85. package/dist/fields/RadiusField.jsx +0 -123
  86. package/dist/fields/RadiusField.jsx.map +0 -1
  87. package/dist/fields/ThemeColorPickerField.jsx +0 -110
  88. package/dist/fields/ThemeColorPickerField.jsx.map +0 -1
  89. package/dist/fields/ThemePreviewField.jsx +0 -420
  90. package/dist/fields/ThemePreviewField.jsx.map +0 -1
  91. package/dist/fields/ThemeTokenSelectField.jsx +0 -151
  92. package/dist/fields/ThemeTokenSelectField.jsx.map +0 -1
  93. package/dist/providers/Theme/index.jsx.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"themeConfigurationField.js","sourceRoot":"","sources":["../../src/fields/themeConfigurationField.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/themeConfigurationField.ts"],"sourcesContent":["import type { Field } from 'payload'\r\nimport {\r\n BASE_FONT_SIZE_OPTIONS,\r\n BODY_FONT_OPTIONS,\r\n HEADING_FONT_OPTIONS,\r\n LINE_HEIGHT_OPTIONS,\r\n} from '../constants/themeFonts.js'\r\nimport type { ThemePreset } from '../index.js'\r\nimport { darkModeField, lightModeField } from './colorModeFields.js'\r\n\r\ninterface ThemeConfigurationFieldOptions {\r\n themePresets: ThemePreset[]\r\n defaultTheme: string\r\n includeColorModeToggle: boolean\r\n includeCustomCSS: boolean\r\n includeBrandIdentity: boolean\r\n enableAdvancedFeatures?: boolean\r\n}\r\n\r\n/**\r\n * Theme Configuration Field with Theme Selection as default value setter\r\n * Theme Selection populates lightMode/darkMode colors automatically\r\n */\r\nexport function createThemeConfigurationField(options: ThemeConfigurationFieldOptions): Field {\r\n const {\r\n themePresets,\r\n defaultTheme,\r\n includeColorModeToggle,\r\n includeCustomCSS,\r\n enableAdvancedFeatures = true,\r\n } = options\r\n\r\n const themeOptions = themePresets.map((preset) => {\r\n const previewColor = preset.preview?.colors.primary\r\n const label = previewColor ? `${preset.label} • ${previewColor}` : preset.label\r\n return {\r\n label,\r\n value: preset.name,\r\n }\r\n })\r\n\r\n const fields: Field[] = [\r\n {\r\n name: 'theme',\r\n type: 'select',\r\n required: true,\r\n defaultValue: defaultTheme,\r\n options: themeOptions,\r\n label: {\r\n en: '🎨 Theme Selection',\r\n cs: '🎨 Výběr tématu',\r\n },\r\n admin: {\r\n description: {\r\n en: 'Select a theme to auto-populate color values. You can customize colors after selection.',\r\n cs: 'Vyberte téma pro automatické předvyplnění barev. Po výběru můžete barvy upravit.',\r\n },\r\n components: {\r\n Field: '@payloadcms-plugins/theme-management/fields/ThemePreviewField',\r\n },\r\n },\r\n },\r\n ]\r\n\r\n // Color Mode Settings\r\n if (includeColorModeToggle) {\r\n fields.push({\r\n type: 'collapsible',\r\n label: {\r\n en: '🌗 Color Mode Settings',\r\n cs: '🌗 Nastavení barevného režimu',\r\n },\r\n admin: {\r\n initCollapsed: false,\r\n description: {\r\n en: 'Configure light and dark mode colors. Changes here override theme selection.',\r\n cs: 'Nakonfigurujte barvy světlého a tmavého režimu. Změny zde přepíší výběr tématu.',\r\n },\r\n },\r\n fields: [\r\n {\r\n type: 'row',\r\n fields: [\r\n {\r\n name: 'colorMode',\r\n type: 'select',\r\n label: {\r\n en: 'Default Color Mode',\r\n cs: 'Výchozí barevný režim',\r\n },\r\n defaultValue: 'auto',\r\n options: [\r\n {\r\n label: {\r\n en: 'Auto (System)',\r\n cs: 'Automaticky (Systém)',\r\n },\r\n value: 'auto',\r\n },\r\n {\r\n label: { en: 'Light', cs: 'Světlý' },\r\n value: 'light',\r\n },\r\n {\r\n label: { en: 'Dark', cs: 'Tmavý' },\r\n value: 'dark',\r\n },\r\n ],\r\n admin: {\r\n description: {\r\n en: 'Default color mode for visitors',\r\n cs: 'Výchozí barevný režim pro návštěvníky',\r\n },\r\n width: '50%',\r\n },\r\n },\r\n {\r\n name: 'allowColorModeToggle',\r\n type: 'checkbox',\r\n label: {\r\n en: 'Enable Mode Toggle',\r\n cs: 'Povolit přepínač režimu',\r\n },\r\n defaultValue: true,\r\n admin: {\r\n description: {\r\n en: 'Let visitors switch modes',\r\n cs: 'Umožnit návštěvníkům přepínat režimy',\r\n },\r\n width: '50%',\r\n },\r\n },\r\n ],\r\n },\r\n lightModeField,\r\n darkModeField,\r\n ],\r\n })\r\n }\r\n\r\n fields.push({\r\n type: 'collapsible',\r\n label: {\r\n en: '🅰️ Typography',\r\n cs: '🅰️ Typografie',\r\n },\r\n admin: {\r\n initCollapsed: true,\r\n description: {\r\n en: 'Choose font families and base typography settings. Leave fields on \"Use preset\" to inherit the theme defaults.',\r\n cs: 'Zvolte rodiny písem a základní typografické nastavení. Hodnota \"Použít výchozí\" zachová nastavení motivu.',\r\n },\r\n },\r\n fields: [\r\n {\r\n name: 'typography',\r\n type: 'group',\r\n fields: [\r\n {\r\n type: 'row',\r\n fields: [\r\n {\r\n name: 'bodyFont',\r\n type: 'select',\r\n label: {\r\n en: 'Body font',\r\n cs: 'Písmo pro text',\r\n },\r\n defaultValue: 'preset',\r\n options: BODY_FONT_OPTIONS.map((option) => ({\r\n label: option.label,\r\n value: option.value,\r\n })),\r\n admin: {\r\n width: '50%',\r\n },\r\n },\r\n {\r\n name: 'headingFont',\r\n type: 'select',\r\n label: {\r\n en: 'Heading font',\r\n cs: 'Písmo pro nadpisy',\r\n },\r\n defaultValue: 'preset',\r\n options: HEADING_FONT_OPTIONS.map((option) => ({\r\n label: option.label,\r\n value: option.value,\r\n })),\r\n admin: {\r\n width: '50%',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n type: 'row',\r\n fields: [\r\n {\r\n name: 'bodyFontCustom',\r\n type: 'text',\r\n label: {\r\n en: 'Custom body font stack',\r\n cs: 'Vlastní písmo pro text',\r\n },\r\n admin: {\r\n width: '50%',\r\n placeholder: '\"IBM Plex Sans\", sans-serif',\r\n description: {\r\n en: 'Provide full CSS font-family stack when using a custom font.',\r\n cs: 'Při volbě vlastního písma zadejte celý CSS zápis font-family.',\r\n },\r\n condition: (_, siblingData) => siblingData?.bodyFont === 'custom',\r\n },\r\n },\r\n {\r\n name: 'headingFontCustom',\r\n type: 'text',\r\n label: {\r\n en: 'Custom heading font stack',\r\n cs: 'Vlastní písmo pro nadpisy',\r\n },\r\n admin: {\r\n width: '50%',\r\n placeholder: '\"Cormorant Garamond\", serif',\r\n description: {\r\n en: 'Provide full CSS font-family stack when using a custom heading font.',\r\n cs: 'Při volbě vlastního nadpisového písma zadejte celý CSS zápis font-family.',\r\n },\r\n condition: (_, siblingData) => siblingData?.headingFont === 'custom',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n type: 'row',\r\n fields: [\r\n {\r\n name: 'baseFontSize',\r\n type: 'select',\r\n label: {\r\n en: 'Base font size',\r\n cs: 'Základní velikost písma',\r\n },\r\n defaultValue: 'preset',\r\n options: BASE_FONT_SIZE_OPTIONS.map((option) => ({\r\n label: option.label,\r\n value: option.value,\r\n })),\r\n admin: {\r\n width: '50%',\r\n },\r\n },\r\n {\r\n name: 'lineHeight',\r\n type: 'select',\r\n label: {\r\n en: 'Line height',\r\n cs: 'Řádkování',\r\n },\r\n defaultValue: 'preset',\r\n options: LINE_HEIGHT_OPTIONS.map((option) => ({\r\n label: option.label,\r\n value: option.value,\r\n })),\r\n admin: {\r\n width: '50%',\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n })\r\n\r\n // Design Customization\r\n fields.push({\r\n type: 'collapsible',\r\n label: {\r\n en: '✨ Design Customization',\r\n cs: '✨ Přizpůsobení designu',\r\n },\r\n admin: {\r\n initCollapsed: true,\r\n },\r\n fields: [\r\n {\r\n name: 'borderRadius',\r\n type: 'select',\r\n label: {\r\n en: 'Border Radius',\r\n cs: 'Zaoblení rohů',\r\n },\r\n defaultValue: 'medium',\r\n options: [\r\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\r\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\r\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\r\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\r\n { label: { en: 'Full', cs: 'Plné' }, value: 'xl' },\r\n ],\r\n admin: {\r\n components: {\r\n Field: '@payloadcms-plugins/theme-management/fields/RadiusField',\r\n },\r\n width: '33%',\r\n },\r\n },\r\n {\r\n name: 'fontScale',\r\n type: 'select',\r\n label: {\r\n en: 'Font Scale',\r\n cs: 'Velikost písma',\r\n },\r\n defaultValue: 'medium',\r\n options: [\r\n { label: { en: 'Small', cs: 'Malé' }, value: 'small' },\r\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\r\n { label: { en: 'Large', cs: 'Velké' }, value: 'large' },\r\n ],\r\n admin: {\r\n width: '33%',\r\n },\r\n },\r\n {\r\n name: 'spacing',\r\n type: 'select',\r\n label: {\r\n en: 'Spacing',\r\n cs: 'Mezery',\r\n },\r\n defaultValue: 'medium',\r\n options: [\r\n { label: { en: 'Compact', cs: 'Kompaktní' }, value: 'compact' },\r\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\r\n { label: { en: 'Spacious', cs: 'Prostorné' }, value: 'spacious' },\r\n ],\r\n admin: {\r\n width: '34%',\r\n },\r\n },\r\n ],\r\n })\r\n\r\n // Advanced Settings\r\n if (enableAdvancedFeatures) {\r\n const advancedFields: Field[] = [\r\n {\r\n name: 'animationLevel',\r\n type: 'select',\r\n label: {\r\n en: 'Animation Level',\r\n cs: 'Úroveň animací',\r\n },\r\n defaultValue: 'medium',\r\n options: [\r\n { label: { en: 'None', cs: 'Žádné' }, value: 'none' },\r\n { label: { en: 'Reduced', cs: 'Snížené' }, value: 'reduced' },\r\n { label: { en: 'Medium', cs: 'Střední' }, value: 'medium' },\r\n { label: { en: 'High', cs: 'Vysoké' }, value: 'high' },\r\n ],\r\n admin: {\r\n description: {\r\n en: 'Control website animations and transitions',\r\n cs: 'Kontrola animací a přechodů na webu',\r\n },\r\n width: '50%',\r\n },\r\n },\r\n ]\r\n\r\n if (includeCustomCSS) {\r\n advancedFields.push({\r\n name: 'customCSS',\r\n type: 'code',\r\n label: {\r\n en: 'Custom CSS',\r\n cs: 'Vlastní CSS',\r\n },\r\n admin: {\r\n language: 'css',\r\n description: {\r\n en: 'Add custom CSS to override default styles',\r\n cs: 'Přidejte vlastní CSS pro přepsání výchozích stylů',\r\n },\r\n // placeholder:\r\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}',\r\n // rows: 8,\r\n },\r\n })\r\n }\r\n\r\n fields.push({\r\n type: 'collapsible',\r\n label: {\r\n en: '⚙️ Advanced Settings',\r\n cs: '⚙️ Pokročilé nastavení',\r\n },\r\n admin: {\r\n initCollapsed: true,\r\n },\r\n fields: advancedFields,\r\n })\r\n }\r\n\r\n return {\r\n name: 'themeConfiguration',\r\n type: 'group',\r\n label: false,\r\n admin: {\r\n description: {\r\n en: 'Configure website appearance and styling',\r\n cs: 'Nakonfigurujte vzhled a stylování webu',\r\n },\r\n },\r\n fields,\r\n }\r\n}\r\n"],"names":["BASE_FONT_SIZE_OPTIONS","BODY_FONT_OPTIONS","HEADING_FONT_OPTIONS","LINE_HEIGHT_OPTIONS","darkModeField","lightModeField","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":"AACA,SACEA,sBAAsB,EACtBC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,QACd,6BAA4B;AAEnC,SAASC,aAAa,EAAEC,cAAc,QAAQ,uBAAsB;AAWpE;;;CAGC,GACD,OAAO,SAASC,8BAA8BC,OAAuC;IACnF,MAAM,EACJC,YAAY,EACZC,YAAY,EACZC,sBAAsB,EACtBC,gBAAgB,EAChBC,yBAAyB,IAAI,EAC9B,GAAGL;IAEJ,MAAMM,eAAeL,aAAaM,GAAG,CAAC,CAACC;QACrC,MAAMC,eAAeD,OAAOE,OAAO,EAAEC,OAAOC;QAC5C,MAAMC,QAAQJ,eAAe,GAAGD,OAAOK,KAAK,CAAC,GAAG,EAAEJ,cAAc,GAAGD,OAAOK,KAAK;QAC/E,OAAO;YACLA;YACAC,OAAON,OAAOO,IAAI;QACpB;IACF;IAEA,MAAMC,SAAkB;QACtB;YACED,MAAM;YACNE,MAAM;YACNC,UAAU;YACVC,cAAcjB;YACdF,SAASM;YACTO,OAAO;gBACLO,IAAI;gBACJC,IAAI;YACN;YACAC,OAAO;gBACLC,aAAa;oBACXH,IAAI;oBACJC,IAAI;gBACN;gBACAG,YAAY;oBACVC,OAAO;gBACT;YACF;QACF;KACD;IAED,sBAAsB;IACtB,IAAItB,wBAAwB;QAC1Ba,OAAOU,IAAI,CAAC;YACVT,MAAM;YACNJ,OAAO;gBACLO,IAAI;gBACJC,IAAI;YACN;YACAC,OAAO;gBACLK,eAAe;gBACfJ,aAAa;oBACXH,IAAI;oBACJC,IAAI;gBACN;YACF;YACAL,QAAQ;gBACN;oBACEC,MAAM;oBACND,QAAQ;wBACN;4BACED,MAAM;4BACNE,MAAM;4BACNJ,OAAO;gCACLO,IAAI;gCACJC,IAAI;4BACN;4BACAF,cAAc;4BACdnB,SAAS;gCACP;oCACEa,OAAO;wCACLO,IAAI;wCACJC,IAAI;oCACN;oCACAP,OAAO;gCACT;gCACA;oCACED,OAAO;wCAAEO,IAAI;wCAASC,IAAI;oCAAS;oCACnCP,OAAO;gCACT;gCACA;oCACED,OAAO;wCAAEO,IAAI;wCAAQC,IAAI;oCAAQ;oCACjCP,OAAO;gCACT;6BACD;4BACDQ,OAAO;gCACLC,aAAa;oCACXH,IAAI;oCACJC,IAAI;gCACN;gCACAO,OAAO;4BACT;wBACF;wBACA;4BACEb,MAAM;4BACNE,MAAM;4BACNJ,OAAO;gCACLO,IAAI;gCACJC,IAAI;4BACN;4BACAF,cAAc;4BACdG,OAAO;gCACLC,aAAa;oCACXH,IAAI;oCACJC,IAAI;gCACN;gCACAO,OAAO;4BACT;wBACF;qBACD;gBACH;gBACA9B;gBACAD;aACD;QACH;IACF;IAEAmB,OAAOU,IAAI,CAAC;QACVT,MAAM;QACNJ,OAAO;YACLO,IAAI;YACJC,IAAI;QACN;QACAC,OAAO;YACLK,eAAe;YACfJ,aAAa;gBACXH,IAAI;gBACJC,IAAI;YACN;QACF;QACAL,QAAQ;YACN;gBACED,MAAM;gBACNE,MAAM;gBACND,QAAQ;oBACN;wBACEC,MAAM;wBACND,QAAQ;4BACN;gCACED,MAAM;gCACNE,MAAM;gCACNJ,OAAO;oCACLO,IAAI;oCACJC,IAAI;gCACN;gCACAF,cAAc;gCACdnB,SAASN,kBAAkBa,GAAG,CAAC,CAACsB,SAAY,CAAA;wCAC1ChB,OAAOgB,OAAOhB,KAAK;wCACnBC,OAAOe,OAAOf,KAAK;oCACrB,CAAA;gCACAQ,OAAO;oCACLM,OAAO;gCACT;4BACF;4BACA;gCACEb,MAAM;gCACNE,MAAM;gCACNJ,OAAO;oCACLO,IAAI;oCACJC,IAAI;gCACN;gCACAF,cAAc;gCACdnB,SAASL,qBAAqBY,GAAG,CAAC,CAACsB,SAAY,CAAA;wCAC7ChB,OAAOgB,OAAOhB,KAAK;wCACnBC,OAAOe,OAAOf,KAAK;oCACrB,CAAA;gCACAQ,OAAO;oCACLM,OAAO;gCACT;4BACF;yBACD;oBACH;oBACA;wBACEX,MAAM;wBACND,QAAQ;4BACN;gCACED,MAAM;gCACNE,MAAM;gCACNJ,OAAO;oCACLO,IAAI;oCACJC,IAAI;gCACN;gCACAC,OAAO;oCACLM,OAAO;oCACPE,aAAa;oCACbP,aAAa;wCACXH,IAAI;wCACJC,IAAI;oCACN;oCACAU,WAAW,CAACC,GAAGC,cAAgBA,aAAaC,aAAa;gCAC3D;4BACF;4BACA;gCACEnB,MAAM;gCACNE,MAAM;gCACNJ,OAAO;oCACLO,IAAI;oCACJC,IAAI;gCACN;gCACAC,OAAO;oCACLM,OAAO;oCACPE,aAAa;oCACbP,aAAa;wCACXH,IAAI;wCACJC,IAAI;oCACN;oCACAU,WAAW,CAACC,GAAGC,cAAgBA,aAAaE,gBAAgB;gCAC9D;4BACF;yBACD;oBACH;oBACA;wBACElB,MAAM;wBACND,QAAQ;4BACN;gCACED,MAAM;gCACNE,MAAM;gCACNJ,OAAO;oCACLO,IAAI;oCACJC,IAAI;gCACN;gCACAF,cAAc;gCACdnB,SAASP,uBAAuBc,GAAG,CAAC,CAACsB,SAAY,CAAA;wCAC/ChB,OAAOgB,OAAOhB,KAAK;wCACnBC,OAAOe,OAAOf,KAAK;oCACrB,CAAA;gCACAQ,OAAO;oCACLM,OAAO;gCACT;4BACF;4BACA;gCACEb,MAAM;gCACNE,MAAM;gCACNJ,OAAO;oCACLO,IAAI;oCACJC,IAAI;gCACN;gCACAF,cAAc;gCACdnB,SAASJ,oBAAoBW,GAAG,CAAC,CAACsB,SAAY,CAAA;wCAC5ChB,OAAOgB,OAAOhB,KAAK;wCACnBC,OAAOe,OAAOf,KAAK;oCACrB,CAAA;gCACAQ,OAAO;oCACLM,OAAO;gCACT;4BACF;yBACD;oBACH;iBACD;YACH;SACD;IACH;IAEA,uBAAuB;IACvBZ,OAAOU,IAAI,CAAC;QACVT,MAAM;QACNJ,OAAO;YACLO,IAAI;YACJC,IAAI;QACN;QACAC,OAAO;YACLK,eAAe;QACjB;QACAX,QAAQ;YACN;gBACED,MAAM;gBACNE,MAAM;gBACNJ,OAAO;oBACLO,IAAI;oBACJC,IAAI;gBACN;gBACAF,cAAc;gBACdnB,SAAS;oBACP;wBAAEa,OAAO;4BAAEO,IAAI;4BAAQC,IAAI;wBAAQ;wBAAGP,OAAO;oBAAO;oBACpD;wBAAED,OAAO;4BAAEO,IAAI;4BAASC,IAAI;wBAAO;wBAAGP,OAAO;oBAAQ;oBACrD;wBAAED,OAAO;4BAAEO,IAAI;4BAAUC,IAAI;wBAAU;wBAAGP,OAAO;oBAAS;oBAC1D;wBAAED,OAAO;4BAAEO,IAAI;4BAASC,IAAI;wBAAQ;wBAAGP,OAAO;oBAAQ;oBACtD;wBAAED,OAAO;4BAAEO,IAAI;4BAAQC,IAAI;wBAAO;wBAAGP,OAAO;oBAAK;iBAClD;gBACDQ,OAAO;oBACLE,YAAY;wBACVC,OAAO;oBACT;oBACAG,OAAO;gBACT;YACF;YACA;gBACEb,MAAM;gBACNE,MAAM;gBACNJ,OAAO;oBACLO,IAAI;oBACJC,IAAI;gBACN;gBACAF,cAAc;gBACdnB,SAAS;oBACP;wBAAEa,OAAO;4BAAEO,IAAI;4BAASC,IAAI;wBAAO;wBAAGP,OAAO;oBAAQ;oBACrD;wBAAED,OAAO;4BAAEO,IAAI;4BAAUC,IAAI;wBAAU;wBAAGP,OAAO;oBAAS;oBAC1D;wBAAED,OAAO;4BAAEO,IAAI;4BAASC,IAAI;wBAAQ;wBAAGP,OAAO;oBAAQ;iBACvD;gBACDQ,OAAO;oBACLM,OAAO;gBACT;YACF;YACA;gBACEb,MAAM;gBACNE,MAAM;gBACNJ,OAAO;oBACLO,IAAI;oBACJC,IAAI;gBACN;gBACAF,cAAc;gBACdnB,SAAS;oBACP;wBAAEa,OAAO;4BAAEO,IAAI;4BAAWC,IAAI;wBAAY;wBAAGP,OAAO;oBAAU;oBAC9D;wBAAED,OAAO;4BAAEO,IAAI;4BAAUC,IAAI;wBAAU;wBAAGP,OAAO;oBAAS;oBAC1D;wBAAED,OAAO;4BAAEO,IAAI;4BAAYC,IAAI;wBAAY;wBAAGP,OAAO;oBAAW;iBACjE;gBACDQ,OAAO;oBACLM,OAAO;gBACT;YACF;SACD;IACH;IAEA,oBAAoB;IACpB,IAAIvB,wBAAwB;QAC1B,MAAM+B,iBAA0B;YAC9B;gBACErB,MAAM;gBACNE,MAAM;gBACNJ,OAAO;oBACLO,IAAI;oBACJC,IAAI;gBACN;gBACAF,cAAc;gBACdnB,SAAS;oBACP;wBAAEa,OAAO;4BAAEO,IAAI;4BAAQC,IAAI;wBAAQ;wBAAGP,OAAO;oBAAO;oBACpD;wBAAED,OAAO;4BAAEO,IAAI;4BAAWC,IAAI;wBAAU;wBAAGP,OAAO;oBAAU;oBAC5D;wBAAED,OAAO;4BAAEO,IAAI;4BAAUC,IAAI;wBAAU;wBAAGP,OAAO;oBAAS;oBAC1D;wBAAED,OAAO;4BAAEO,IAAI;4BAAQC,IAAI;wBAAS;wBAAGP,OAAO;oBAAO;iBACtD;gBACDQ,OAAO;oBACLC,aAAa;wBACXH,IAAI;wBACJC,IAAI;oBACN;oBACAO,OAAO;gBACT;YACF;SACD;QAED,IAAIxB,kBAAkB;YACpBgC,eAAeV,IAAI,CAAC;gBAClBX,MAAM;gBACNE,MAAM;gBACNJ,OAAO;oBACLO,IAAI;oBACJC,IAAI;gBACN;gBACAC,OAAO;oBACLe,UAAU;oBACVd,aAAa;wBACXH,IAAI;wBACJC,IAAI;oBACN;gBAIF;YACF;QACF;QAEAL,OAAOU,IAAI,CAAC;YACVT,MAAM;YACNJ,OAAO;gBACLO,IAAI;gBACJC,IAAI;YACN;YACAC,OAAO;gBACLK,eAAe;YACjB;YACAX,QAAQoB;QACV;IACF;IAEA,OAAO;QACLrB,MAAM;QACNE,MAAM;QACNJ,OAAO;QACPS,OAAO;YACLC,aAAa;gBACXH,IAAI;gBACJC,IAAI;YACN;QACF;QACAL;IACF;AACF"}
package/dist/index.d.ts CHANGED
@@ -1,22 +1,23 @@
1
1
  import type { Plugin } from 'payload';
2
- import type { SiteThemeConfiguration } from './payload-types';
3
- import type { ThemePreset } from './presets';
4
- import type { FetchThemeConfigurationOptions, ThemeConfigurationPluginOptions } from './types';
5
- export declare const themeConfigurationPlugin: (options?: ThemeConfigurationPluginOptions) => Plugin;
2
+ import type { SiteThemeConfiguration } from './payload-types.js';
3
+ import type { ThemePreset } from './presets.js';
4
+ import type { FetchThemeConfigurationOptions, ThemeManagementPluginOptions } from './types.js';
5
+ export declare const themeManagementPlugin: (options?: ThemeManagementPluginOptions) => Plugin;
6
6
  type FetchOptionsInput = string | FetchThemeConfigurationOptions;
7
7
  export declare const fetchThemeConfiguration: (options?: FetchOptionsInput) => Promise<SiteThemeConfiguration | null>;
8
8
  export declare const getThemePreset: (themeName: string) => ThemePreset | null;
9
9
  export declare const getAvailableThemePresets: () => ThemePreset[];
10
- export declare const ThemeConfigurationPlugin: (options?: ThemeConfigurationPluginOptions) => Plugin;
11
- export declare const themeManagementPlugin: (options?: ThemeConfigurationPluginOptions) => Plugin;
12
- export default themeConfigurationPlugin;
13
- export { defaultThemePresets } from './presets';
14
- export type { ThemePreset, ThemeTypographyPreset } from './presets';
15
- export type { ThemeConfigurationPluginOptions, FetchThemeConfigurationOptions } from './types';
16
- export { DEFAULT_THEME_CONFIGURATION, resolveThemeConfiguration, } from './utils/resolveThemeConfiguration';
17
- export { generateThemeColorsCss, hexToHsl } from './utils/themeColors';
18
- export { generateThemeCSS, getThemeStyles } from './utils/themeUtils';
19
- export { ServerThemeInjector } from './components/ServerThemeInjector';
20
- export type { Mode, ThemeDefaults } from './providers/Theme/types';
21
- export { ThemeProvider } from './providers/Theme';
10
+ export { defaultThemePresets } from './presets.js';
11
+ export type { ThemePreset, ThemeTypographyPreset } from './presets.js';
12
+ export type { ThemeManagementPluginOptions, FetchThemeConfigurationOptions } from './types.js';
13
+ export { DEFAULT_THEME_CONFIGURATION, resolveThemeConfiguration, } from './utils/resolveThemeConfiguration.js';
14
+ export { generateThemeColorsCss, hexToHsl } from './utils/themeColors.js';
15
+ export { generateThemeCSS, getThemeStyles } from './utils/themeUtils.js';
16
+ export { ServerThemeInjector } from './components/ServerThemeInjector.js';
17
+ export type { Mode, ThemeDefaults } from './providers/Theme/types.js';
18
+ export { ThemeProvider } from './providers/Theme/index.js';
19
+ export declare const ThemeManagementPlugin: (options?: ThemeManagementPluginOptions) => Plugin;
20
+ /** @deprecated use {@link themeManagementPlugin} */
21
+ export declare const themeConfigurationPlugin: (options?: ThemeManagementPluginOptions) => Plugin;
22
+ export default themeManagementPlugin;
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,SAAS,CAAA;AAEtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,KAAK,EACV,8BAA8B,EAC9B,+BAA+B,EAChC,MAAM,SAAS,CAAA;AA2BhB,eAAO,MAAM,wBAAwB,GAAI,UAAS,+BAAoC,KAAG,MAqExF,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,GAAG,8BAA8B,CAAA;AAEhE,eAAO,MAAM,uBAAuB,GAClC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CA8CvC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,KAAG,WAAW,GAAG,IAEhE,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,WAAW,EAEtD,CAAA;AAED,eAAO,MAAM,wBAAwB,aAnIa,+BAA+B,KAAQ,MAmIzB,CAAA;AAChE,eAAO,MAAM,qBAAqB,aApIgB,+BAA+B,KAAQ,MAoI5B,CAAA;AAE7D,eAAe,wBAAwB,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACnE,YAAY,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAA;AAC9F,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,YAAY,EAAC,IAAI,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,SAAS,CAAA;AAEtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EACV,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,YAAY,CAAA;AA2BnB,eAAO,MAAM,qBAAqB,GAAI,UAAS,4BAAiC,KAAG,MAqElF,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,GAAG,8BAA8B,CAAA;AAEhE,eAAO,MAAM,uBAAuB,GAClC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CA8CvC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,KAAG,WAAW,GAAG,IAEhE,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,WAAW,EAEtD,CAAA;AAID,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACtE,YAAY,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAC9F,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAEzE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,eAAO,MAAM,qBAAqB,aAnJa,4BAA4B,KAAQ,MAmJzB,CAAA;AAC1D,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,aArJU,4BAA4B,KAAQ,MAqJtB,CAAA;AAE7D,eAAe,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -1,24 +1,27 @@
1
- import { createThemeConfigurationField } from './fields/themeConfigurationField';
2
- import { defaultThemePresets } from './presets';
1
+ import { createThemeConfigurationField } from './fields/themeConfigurationField.js';
2
+ import { defaultThemePresets } from './presets.js';
3
3
  const THEME_FIELD_NAME = 'themeConfiguration';
4
- const removeExistingThemeField = (fields = []) => fields.filter((field) => {
5
- const candidate = field;
6
- return candidate?.name !== THEME_FIELD_NAME;
7
- });
8
- const upsertThemeField = (fields, themeField, enableLogging) => {
4
+ const removeExistingThemeField = (fields = [])=>fields.filter((field)=>{
5
+ const candidate = field;
6
+ return candidate?.name !== THEME_FIELD_NAME;
7
+ });
8
+ const upsertThemeField = (fields, themeField, enableLogging)=>{
9
9
  const sanitized = removeExistingThemeField(fields ?? []);
10
10
  if (enableLogging) {
11
- console.log('🎨 Theme Configuration Plugin: injecting theme configuration field');
11
+ console.log('🎨 Theme Management Plugin: injecting theme configuration field');
12
12
  }
13
- return [...sanitized, themeField];
13
+ return [
14
+ ...sanitized,
15
+ themeField
16
+ ];
14
17
  };
15
- const ensureCollectionsArray = (collections) => Array.isArray(collections) ? collections : [];
16
- export const themeConfigurationPlugin = (options = {}) => {
17
- return (config) => {
18
- const { enabled = true, targetCollection = 'site-settings', themePresets = defaultThemePresets, defaultTheme = 'cool', includeColorModeToggle = true, includeCustomCSS = true, includeBrandIdentity = false, enableAdvancedFeatures = true, enableLogging = false, } = options;
18
+ const ensureCollectionsArray = (collections)=>Array.isArray(collections) ? collections : [];
19
+ export const themeManagementPlugin = (options = {})=>{
20
+ return (config)=>{
21
+ const { enabled = true, targetCollection = 'site-settings', themePresets = defaultThemePresets, defaultTheme = 'cool', includeColorModeToggle = true, includeCustomCSS = true, includeBrandIdentity = false, enableAdvancedFeatures = true, enableLogging = false } = options;
19
22
  if (!enabled) {
20
23
  if (enableLogging) {
21
- console.log('🎨 Theme Configuration Plugin: disabled via options, skipping.');
24
+ console.log('🎨 Theme Management Plugin: disabled via options, skipping.');
22
25
  }
23
26
  return config;
24
27
  }
@@ -28,53 +31,50 @@ export const themeConfigurationPlugin = (options = {}) => {
28
31
  includeColorModeToggle,
29
32
  includeCustomCSS,
30
33
  includeBrandIdentity: includeBrandIdentity ?? false,
31
- enableAdvancedFeatures,
34
+ enableAdvancedFeatures
32
35
  });
33
36
  let collectionTouched = false;
34
- const collections = ensureCollectionsArray(config.collections).map((collection) => {
37
+ const collections = ensureCollectionsArray(config.collections).map((collection)=>{
35
38
  if (collection.slug !== targetCollection) {
36
39
  return collection;
37
40
  }
38
41
  collectionTouched = true;
39
42
  if (enableLogging) {
40
- console.log(`🎨 Theme Configuration Plugin: enhancing collection "${collection.slug}"`);
43
+ console.log(`🎨 Theme Management Plugin: enhancing collection "${collection.slug}"`);
41
44
  }
42
45
  const existingFields = Array.isArray(collection.fields) ? collection.fields : [];
43
46
  const fields = upsertThemeField(existingFields, themeField, enableLogging);
44
47
  return {
45
48
  ...collection,
46
- fields,
49
+ fields
47
50
  };
48
51
  });
49
52
  if (!collectionTouched) {
50
53
  if (enableLogging) {
51
- console.warn(`🎨 Theme Configuration Plugin: collection "${targetCollection}" was not found, leaving config untouched.`);
54
+ console.warn(`🎨 Theme Management Plugin: collection "${targetCollection}" was not found, leaving config untouched.`);
52
55
  }
53
56
  return config;
54
57
  }
55
58
  return {
56
59
  ...config,
57
- collections,
60
+ collections
58
61
  };
59
62
  };
60
63
  };
61
- export const fetchThemeConfiguration = async (options) => {
62
- const normalizedOptions = typeof options === 'string'
63
- ? { tenantSlug: options }
64
- : options ?? {};
65
- const { tenantSlug, collectionSlug = 'site-settings', depth, locale, draft, queryParams = {}, } = normalizedOptions;
66
- const params = new URLSearchParams({ limit: '1' });
67
- if (typeof depth === 'number')
68
- params.set('depth', String(depth));
69
- if (tenantSlug)
70
- params.set('tenant', tenantSlug);
71
- if (locale)
72
- params.set('locale', locale);
73
- if (draft)
74
- params.set('draft', 'true');
75
- Object.entries(queryParams).forEach(([key, value]) => {
76
- if (value === undefined)
77
- return;
64
+ export const fetchThemeConfiguration = async (options)=>{
65
+ const normalizedOptions = typeof options === 'string' ? {
66
+ tenantSlug: options
67
+ } : options ?? {};
68
+ const { tenantSlug, collectionSlug = 'site-settings', depth, locale, draft, queryParams = {} } = normalizedOptions;
69
+ const params = new URLSearchParams({
70
+ limit: '1'
71
+ });
72
+ if (typeof depth === 'number') params.set('depth', String(depth));
73
+ if (tenantSlug) params.set('tenant', tenantSlug);
74
+ if (locale) params.set('locale', locale);
75
+ if (draft) params.set('draft', 'true');
76
+ Object.entries(queryParams).forEach(([key, value])=>{
77
+ if (value === undefined) return;
78
78
  params.set(key, String(value));
79
79
  });
80
80
  const url = `/api/${collectionSlug}?${params.toString()}`;
@@ -83,28 +83,28 @@ export const fetchThemeConfiguration = async (options) => {
83
83
  if (!response.ok) {
84
84
  throw new Error(`Failed to fetch theme configuration (status ${response.status})`);
85
85
  }
86
- const data = (await response.json());
86
+ const data = await response.json();
87
87
  const doc = data.docs?.[0];
88
88
  return doc?.themeConfiguration ?? null;
89
- }
90
- catch (error) {
89
+ } catch (error) {
91
90
  console.warn('Failed to fetch theme configuration:', error);
92
91
  return null;
93
92
  }
94
93
  };
95
- export const getThemePreset = (themeName) => {
96
- return defaultThemePresets.find((preset) => preset.name === themeName) || null;
94
+ export const getThemePreset = (themeName)=>{
95
+ return defaultThemePresets.find((preset)=>preset.name === themeName) || null;
97
96
  };
98
- export const getAvailableThemePresets = () => {
97
+ export const getAvailableThemePresets = ()=>{
99
98
  return defaultThemePresets;
100
99
  };
101
- export const ThemeConfigurationPlugin = themeConfigurationPlugin;
102
- export const themeManagementPlugin = themeConfigurationPlugin;
103
- export default themeConfigurationPlugin;
104
- export { defaultThemePresets } from './presets';
105
- export { DEFAULT_THEME_CONFIGURATION, resolveThemeConfiguration, } from './utils/resolveThemeConfiguration';
106
- export { generateThemeColorsCss, hexToHsl } from './utils/themeColors';
107
- export { generateThemeCSS, getThemeStyles } from './utils/themeUtils';
108
- export { ServerThemeInjector } from './components/ServerThemeInjector';
109
- export { ThemeProvider } from './providers/Theme';
100
+ export { defaultThemePresets } from './presets.js';
101
+ export { DEFAULT_THEME_CONFIGURATION, resolveThemeConfiguration } from './utils/resolveThemeConfiguration.js';
102
+ export { generateThemeColorsCss, hexToHsl } from './utils/themeColors.js';
103
+ export { generateThemeCSS, getThemeStyles } from './utils/themeUtils.js';
104
+ export { ServerThemeInjector } from './components/ServerThemeInjector.js';
105
+ export { ThemeProvider } from './providers/Theme/index.js';
106
+ export const ThemeManagementPlugin = themeManagementPlugin;
107
+ /** @deprecated use {@link themeManagementPlugin} */ export const themeConfigurationPlugin = themeManagementPlugin;
108
+ export default themeManagementPlugin;
109
+
110
110
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { CollectionConfig, Config, Field, Plugin } from 'payload'\r\nimport { createThemeConfigurationField } from './fields/themeConfigurationField.js'\r\nimport type { SiteThemeConfiguration } from './payload-types.js'\r\nimport type { ThemePreset } from './presets.js'\r\nimport { defaultThemePresets } from './presets.js'\r\nimport type {\r\n FetchThemeConfigurationOptions,\r\n ThemeManagementPluginOptions,\r\n} from './types.js'\r\n\r\nconst THEME_FIELD_NAME = 'themeConfiguration'\r\n\r\nconst removeExistingThemeField = (fields: Field[] = []): Field[] =>\r\n fields.filter((field) => {\r\n const candidate = field as { name?: unknown }\r\n return candidate?.name !== THEME_FIELD_NAME\r\n })\r\n\r\nconst upsertThemeField = (\r\n fields: Field[] | undefined,\r\n themeField: Field,\r\n enableLogging: boolean,\r\n): Field[] => {\r\n const sanitized = removeExistingThemeField(fields ?? [])\r\n\r\n if (enableLogging) {\r\n console.log('🎨 Theme Management Plugin: injecting theme configuration field')\r\n }\r\n\r\n return [...sanitized, themeField]\r\n}\r\n\r\nconst ensureCollectionsArray = (collections: Config['collections']): CollectionConfig[] =>\r\n Array.isArray(collections) ? collections : []\r\n\r\nexport const themeManagementPlugin = (options: ThemeManagementPluginOptions = {}): Plugin => {\r\n return (config: Config): Config => {\r\n const {\r\n enabled = true,\r\n targetCollection = 'site-settings',\r\n themePresets = defaultThemePresets,\r\n defaultTheme = 'cool',\r\n includeColorModeToggle = true,\r\n includeCustomCSS = true,\r\n includeBrandIdentity = false,\r\n enableAdvancedFeatures = true,\r\n enableLogging = false,\r\n } = options\r\n\r\n if (!enabled) {\r\n if (enableLogging) {\r\n console.log('🎨 Theme Management Plugin: disabled via options, skipping.')\r\n }\r\n return config\r\n }\r\n\r\n const themeField = createThemeConfigurationField({\r\n themePresets,\r\n defaultTheme,\r\n includeColorModeToggle,\r\n includeCustomCSS,\r\n includeBrandIdentity: includeBrandIdentity ?? false,\r\n enableAdvancedFeatures,\r\n })\r\n\r\n let collectionTouched = false\r\n\r\n const collections = ensureCollectionsArray(config.collections).map((collection) => {\r\n if (collection.slug !== targetCollection) {\r\n return collection\r\n }\r\n\r\n collectionTouched = true\r\n\r\n if (enableLogging) {\r\n console.log(\r\n `🎨 Theme Management Plugin: enhancing collection \"${collection.slug}\"`,\r\n )\r\n }\r\n\r\n const existingFields = Array.isArray(collection.fields) ? collection.fields : []\r\n\r\n const fields = upsertThemeField(existingFields, themeField, enableLogging)\r\n\r\n return {\r\n ...collection,\r\n fields,\r\n }\r\n })\r\n\r\n if (!collectionTouched) {\r\n if (enableLogging) {\r\n console.warn(\r\n `🎨 Theme Management Plugin: collection \"${targetCollection}\" was not found, leaving config untouched.`,\r\n )\r\n }\r\n return config\r\n }\r\n\r\n return {\r\n ...config,\r\n collections,\r\n }\r\n }\r\n}\r\n\r\ntype FetchOptionsInput = string | FetchThemeConfigurationOptions\r\n\r\nexport const fetchThemeConfiguration = async (\r\n options?: FetchOptionsInput,\r\n): Promise<SiteThemeConfiguration | null> => {\r\n const normalizedOptions =\r\n typeof options === 'string'\r\n ? { tenantSlug: options }\r\n : options ?? {}\r\n\r\n const {\r\n tenantSlug,\r\n collectionSlug = 'site-settings',\r\n depth,\r\n locale,\r\n draft,\r\n queryParams = {},\r\n } = normalizedOptions\r\n\r\n const params = new URLSearchParams({ limit: '1' })\r\n\r\n if (typeof depth === 'number') params.set('depth', String(depth))\r\n if (tenantSlug) params.set('tenant', tenantSlug)\r\n if (locale) params.set('locale', locale)\r\n if (draft) params.set('draft', 'true')\r\n\r\n Object.entries(queryParams).forEach(([key, value]) => {\r\n if (value === undefined) return\r\n params.set(key, String(value))\r\n })\r\n\r\n const url = `/api/${collectionSlug}?${params.toString()}`\r\n\r\n try {\r\n const response = await fetch(url)\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch theme configuration (status ${response.status})`)\r\n }\r\n\r\n const data = (await response.json()) as {\r\n docs?: Array<{ themeConfiguration?: SiteThemeConfiguration }>\r\n }\r\n\r\n const doc = data.docs?.[0]\r\n\r\n return doc?.themeConfiguration ?? null\r\n } catch (error) {\r\n console.warn('Failed to fetch theme configuration:', error)\r\n return null\r\n }\r\n}\r\n\r\nexport const getThemePreset = (themeName: string): ThemePreset | null => {\r\n return defaultThemePresets.find((preset) => preset.name === themeName) || null\r\n}\r\n\r\nexport const getAvailableThemePresets = (): ThemePreset[] => {\r\n return defaultThemePresets\r\n}\r\n\r\n\r\n\r\nexport { defaultThemePresets } from './presets.js'\r\nexport type { ThemePreset, ThemeTypographyPreset } from './presets.js'\r\nexport type { ThemeManagementPluginOptions, FetchThemeConfigurationOptions } from './types.js'\r\nexport {\r\n DEFAULT_THEME_CONFIGURATION,\r\n resolveThemeConfiguration,\r\n} from './utils/resolveThemeConfiguration.js'\r\nexport { generateThemeColorsCss, hexToHsl } from './utils/themeColors.js'\r\nexport { generateThemeCSS, getThemeStyles } from './utils/themeUtils.js'\r\nexport { ServerThemeInjector } from './components/ServerThemeInjector.js'\r\n\r\nexport type { Mode, ThemeDefaults } from './providers/Theme/types.js'\r\nexport { ThemeProvider } from './providers/Theme/index.js'\r\n\r\nexport const ThemeManagementPlugin = themeManagementPlugin\r\n/** @deprecated use {@link themeManagementPlugin} */\r\nexport const themeConfigurationPlugin = themeManagementPlugin\r\n\r\nexport default themeManagementPlugin"],"names":["createThemeConfigurationField","defaultThemePresets","THEME_FIELD_NAME","removeExistingThemeField","fields","filter","field","candidate","name","upsertThemeField","themeField","enableLogging","sanitized","console","log","ensureCollectionsArray","collections","Array","isArray","themeManagementPlugin","options","config","enabled","targetCollection","themePresets","defaultTheme","includeColorModeToggle","includeCustomCSS","includeBrandIdentity","enableAdvancedFeatures","collectionTouched","map","collection","slug","existingFields","warn","fetchThemeConfiguration","normalizedOptions","tenantSlug","collectionSlug","depth","locale","draft","queryParams","params","URLSearchParams","limit","set","String","Object","entries","forEach","key","value","undefined","url","toString","response","fetch","ok","Error","status","data","json","doc","docs","themeConfiguration","error","getThemePreset","themeName","find","preset","getAvailableThemePresets","DEFAULT_THEME_CONFIGURATION","resolveThemeConfiguration","generateThemeColorsCss","hexToHsl","generateThemeCSS","getThemeStyles","ServerThemeInjector","ThemeProvider","ThemeManagementPlugin","themeConfigurationPlugin"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- /**
2
- * Payload types for theme configuration
3
- * These are placeholder types that will be extended in the consuming application
4
- */
5
- export {};
1
+ /**
2
+ * Payload types for theme configuration
3
+ * These are placeholder types that will be extended in the consuming application
4
+ */ export { };
5
+
6
6
  //# sourceMappingURL=payload-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payload-types.js","sourceRoot":"","sources":["../src/payload-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
1
+ {"version":3,"sources":["../src/payload-types.ts"],"sourcesContent":["/**\r\n * Payload types for theme configuration\r\n * These are placeholder types that will be extended in the consuming application\r\n */\r\n\r\nexport interface ThemeColorOverride {\r\n [token: string]: string | null | undefined;\r\n primary?: string | null;\r\n secondary?: string | null;\r\n accent?: string | null;\r\n background?: string | null;\r\n surface?: string | null;\r\n surfaceVariant?: string | null;\r\n text?: string | null;\r\n textSecondary?: string | null;\r\n border?: string | null;\r\n success?: string | null;\r\n warning?: string | null;\r\n error?: string | null;\r\n info?: string | null;\r\n foreground?: string | null;\r\n card?: string | null;\r\n cardForeground?: string | null;\r\n popover?: string | null;\r\n popoverForeground?: string | null;\r\n primaryForeground?: string | null;\r\n secondaryForeground?: string | null;\r\n muted?: string | null;\r\n mutedForeground?: string | null;\r\n accentForeground?: string | null;\r\n destructive?: string | null;\r\n destructiveForeground?: string | null;\r\n input?: string | null;\r\n ring?: string | null;\r\n}\r\n\r\nexport interface ThemeTypographyOverride {\r\n bodyFont?:\r\n | (\r\n | 'preset'\r\n | 'system'\r\n | 'geist-sans'\r\n | 'inter'\r\n | 'manrope'\r\n | 'urbanist'\r\n | 'outfit'\r\n | 'lora'\r\n | 'custom'\r\n )\r\n | null;\r\n headingFont?:\r\n | (\r\n | 'preset'\r\n | 'geist-sans'\r\n | 'geist-mono'\r\n | 'outfit'\r\n | 'playfair'\r\n | 'lora'\r\n | 'serif-classic'\r\n | 'custom'\r\n )\r\n | null;\r\n bodyFontCustom?: string | null;\r\n headingFontCustom?: string | null;\r\n baseFontSize?: ('preset' | '14px' | '16px' | '18px' | '20px') | null;\r\n lineHeight?: ('preset' | '1.4' | '1.5' | '1.6' | '1.75' | '1.9') | null;\r\n fontWeights?: Partial<\r\n Record<'light' | 'normal' | 'medium' | 'semibold' | 'bold' | 'black', string | null>\r\n > | null;\r\n letterSpacing?: Partial<Record<'tight' | 'normal' | 'wide' | 'wider', string | null>> | null;\r\n}\r\n\r\nexport interface ThemeCustomization {\r\n primaryColor?: string | null;\r\n accentColor?: string | null;\r\n backgroundColor?: string | null;\r\n textColor?: string | null;\r\n customCSS?: string | null;\r\n}\r\n\r\nexport interface SiteThemeConfiguration {\r\n theme?: string | null;\r\n preset?: string | null;\r\n colorMode?: 'auto' | 'light' | 'dark' | null;\r\n allowColorModeToggle?: boolean | null;\r\n lightMode?: ThemeColorOverride | null;\r\n darkMode?: ThemeColorOverride | null;\r\n colors?: ThemeColorOverride | null;\r\n typography?: ThemeTypographyOverride | null;\r\n borderRadius?: 'none' | 'small' | 'medium' | 'large' | 'xl' | null;\r\n fontScale?: 'small' | 'medium' | 'large' | 'xl' | null;\r\n spacing?: 'compact' | 'medium' | 'spacious' | null;\r\n animationLevel?: 'none' | 'reduced' | 'medium' | 'high' | null;\r\n customCSS?: string | null;\r\n customization?: ThemeCustomization | null;\r\n radius?: string | null;\r\n}\r\n\r\nexport interface SiteSetting {\r\n id: string;\r\n title?: string | null;\r\n slug?: string | null;\r\n themeConfiguration: SiteThemeConfiguration | null;\r\n updatedAt: string;\r\n createdAt: string;\r\n}\r\n\r\nexport interface Config {\r\n collections: {\r\n 'site-settings': SiteSetting;\r\n };\r\n globals: Record<string, unknown>;\r\n}\r\n"],"names":[],"mappings":"AAAA;;;CAGC,GAwGD,WAKC"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export { ThemeConfigurationPlugin, themeConfigurationPlugin, themeConfigurationPlugin as default, } from './index';
2
- export type { ThemeConfigurationPluginOptions } from './types';
1
+ export type { ThemeManagementPluginOptions } from './types.js';
3
2
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,IAAI,OAAO,GACpC,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC"}
package/dist/plugin.js CHANGED
@@ -1,2 +1,3 @@
1
- export { ThemeConfigurationPlugin, themeConfigurationPlugin, themeConfigurationPlugin as default, } from './index';
1
+ export { };
2
+
2
3
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,IAAI,OAAO,GACpC,MAAM,SAAS,CAAA"}
1
+ {"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["export type { ThemeManagementPluginOptions } from './types.js';\r\n"],"names":[],"mappings":"AAAA,WAA+D"}