@kilivi/payloadcms-theme-management 0.1.5 → 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,4 +1,4 @@
1
- import type { Mode, ThemeOption, ThemeDefaults } from './types';
1
+ import type { Mode, ThemeOption, ThemeDefaults } from './types.js';
2
2
  export declare const themeLocalStorageKey = "payload-theme";
3
3
  export declare const modeLocalStorageKey = "payload-theme-mode";
4
4
  export declare const defaultTheme: ThemeDefaults;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE/D,eAAO,MAAM,oBAAoB,kBAAkB,CAAA;AACnD,eAAO,MAAM,mBAAmB,uBAAuB,CAAA;AAEvD,eAAO,MAAM,YAAY,EAAa,aAAa,CAAA;AACnD,eAAO,MAAM,WAAW,EAAa,IAAI,CAAA;AAEzC,eAAO,MAAM,YAAY,EASpB,WAAW,EAAE,CAAA;AAElB,eAAO,MAAM,yBAAyB,QAAO,IAAI,GAAG,IAUnD,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAElE,eAAO,MAAM,oBAAoB,kBAAkB,CAAA;AACnD,eAAO,MAAM,mBAAmB,uBAAuB,CAAA;AAEvD,eAAO,MAAM,YAAY,EAAa,aAAa,CAAA;AACnD,eAAO,MAAM,WAAW,EAAa,IAAI,CAAA;AAEzC,eAAO,MAAM,YAAY,EASpB,WAAW,EAAE,CAAA;AAElB,eAAO,MAAM,yBAAyB,QAAO,IAAI,GAAG,IAUnD,CAAA"}
@@ -3,16 +3,40 @@ export const modeLocalStorageKey = 'payload-theme-mode';
3
3
  export const defaultTheme = 'cool';
4
4
  export const defaultMode = 'auto';
5
5
  export const themeOptions = [
6
- { label: 'Cool & Professional', value: 'cool' },
7
- { label: 'Modern Brutalism', value: 'brutal' },
8
- { label: 'Neon Cyberpunk', value: 'neon' },
9
- { label: 'Dealership', value: 'dealership' },
10
- { label: 'Solar', value: 'solar' },
11
- { label: 'Real Estate Blue', value: 'real-estate' },
12
- { label: 'Real Estate Gold', value: 'real-estate-gold' },
13
- { label: 'Real Estate Neutral', value: 'real-estate-neutral' },
6
+ {
7
+ label: 'Cool & Professional',
8
+ value: 'cool'
9
+ },
10
+ {
11
+ label: 'Modern Brutalism',
12
+ value: 'brutal'
13
+ },
14
+ {
15
+ label: 'Neon Cyberpunk',
16
+ value: 'neon'
17
+ },
18
+ {
19
+ label: 'Dealership',
20
+ value: 'dealership'
21
+ },
22
+ {
23
+ label: 'Solar',
24
+ value: 'solar'
25
+ },
26
+ {
27
+ label: 'Real Estate Blue',
28
+ value: 'real-estate'
29
+ },
30
+ {
31
+ label: 'Real Estate Gold',
32
+ value: 'real-estate-gold'
33
+ },
34
+ {
35
+ label: 'Real Estate Neutral',
36
+ value: 'real-estate-neutral'
37
+ }
14
38
  ];
15
- export const getImplicitModePreference = () => {
39
+ export const getImplicitModePreference = ()=>{
16
40
  const mediaQuery = '(prefers-color-scheme: dark)';
17
41
  const mql = window.matchMedia(mediaQuery);
18
42
  const hasImplicitPreference = typeof mql.matches === 'boolean';
@@ -21,4 +45,5 @@ export const getImplicitModePreference = () => {
21
45
  }
22
46
  return null;
23
47
  };
48
+
24
49
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/providers/Theme/shared.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAA;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAA;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAuB,CAAA;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAc,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/C,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC1C,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IAC5C,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAClC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE;IACnD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACxD,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;CAC9C,CAAA;AAElB,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAgB,EAAE;IACzD,MAAM,UAAU,GAAG,8BAA8B,CAAA;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IACzC,MAAM,qBAAqB,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,CAAA;IAE9D,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"sources":["../../../src/providers/Theme/shared.ts"],"sourcesContent":["import type { Mode, ThemeOption, ThemeDefaults } from './types.js'\r\n\r\nexport const themeLocalStorageKey = 'payload-theme'\r\nexport const modeLocalStorageKey = 'payload-theme-mode'\r\n\r\nexport const defaultTheme = 'cool' as ThemeDefaults\r\nexport const defaultMode = 'auto' as Mode\r\n\r\nexport const themeOptions = [\r\n { label: 'Cool & Professional', value: 'cool' },\r\n { label: 'Modern Brutalism', value: 'brutal' },\r\n { label: 'Neon Cyberpunk', value: 'neon' },\r\n { label: 'Dealership', value: 'dealership' },\r\n { label: 'Solar', value: 'solar' },\r\n { label: 'Real Estate Blue', value: 'real-estate' },\r\n { label: 'Real Estate Gold', value: 'real-estate-gold' },\r\n { label: 'Real Estate Neutral', value: 'real-estate-neutral' },\r\n] as ThemeOption[]\r\n\r\nexport const getImplicitModePreference = (): Mode | null => {\r\n const mediaQuery = '(prefers-color-scheme: dark)'\r\n const mql = window.matchMedia(mediaQuery)\r\n const hasImplicitPreference = typeof mql.matches === 'boolean'\r\n\r\n if (hasImplicitPreference) {\r\n return mql.matches ? 'dark' : 'light'\r\n }\r\n\r\n return null\r\n}\r\n"],"names":["themeLocalStorageKey","modeLocalStorageKey","defaultTheme","defaultMode","themeOptions","label","value","getImplicitModePreference","mediaQuery","mql","window","matchMedia","hasImplicitPreference","matches"],"mappings":"AAEA,OAAO,MAAMA,uBAAuB,gBAAe;AACnD,OAAO,MAAMC,sBAAsB,qBAAoB;AAEvD,OAAO,MAAMC,eAAe,OAAuB;AACnD,OAAO,MAAMC,cAAc,OAAc;AAEzC,OAAO,MAAMC,eAAe;IAC1B;QAAEC,OAAO;QAAuBC,OAAO;IAAO;IAC9C;QAAED,OAAO;QAAoBC,OAAO;IAAS;IAC7C;QAAED,OAAO;QAAkBC,OAAO;IAAO;IACzC;QAAED,OAAO;QAAcC,OAAO;IAAa;IAC3C;QAAED,OAAO;QAASC,OAAO;IAAQ;IACjC;QAAED,OAAO;QAAoBC,OAAO;IAAc;IAClD;QAAED,OAAO;QAAoBC,OAAO;IAAmB;IACvD;QAAED,OAAO;QAAuBC,OAAO;IAAsB;CAC9D,CAAiB;AAElB,OAAO,MAAMC,4BAA4B;IACvC,MAAMC,aAAa;IACnB,MAAMC,MAAMC,OAAOC,UAAU,CAACH;IAC9B,MAAMI,wBAAwB,OAAOH,IAAII,OAAO,KAAK;IAErD,IAAID,uBAAuB;QACzB,OAAOH,IAAII,OAAO,GAAG,SAAS;IAChC;IAEA,OAAO;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { ThemeConfig, ThemeDefaults } from './types';
1
+ import type { ThemeConfig, ThemeDefaults } from './types.js';
2
2
  export declare const themeConfigs: Record<ThemeDefaults, ThemeConfig>;
3
3
  export declare const borderRadiusPresets: {
4
4
  readonly none: {
@@ -1 +1 @@
1
- {"version":3,"file":"themeConfig.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/themeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEzD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,CAyG3D,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DtB,CAAA;AAEV,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,OAAO,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7E"}
1
+ {"version":3,"file":"themeConfig.d.ts","sourceRoot":"","sources":["../../../src/providers/Theme/themeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE5D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,CAyG3D,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DtB,CAAA;AAEV,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,OAAO,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7E"}
@@ -8,9 +8,9 @@ export const themeConfigs = {
8
8
  colors: {
9
9
  primary: 'hsl(221 83% 53%)',
10
10
  background: 'hsl(0 0% 100%)',
11
- accent: 'hsl(210 40% 95%)',
12
- },
13
- },
11
+ accent: 'hsl(210 40% 95%)'
12
+ }
13
+ }
14
14
  },
15
15
  brutal: {
16
16
  name: 'brutal',
@@ -21,9 +21,9 @@ export const themeConfigs = {
21
21
  colors: {
22
22
  primary: 'hsl(0 0% 0%)',
23
23
  background: 'hsl(0 0% 100%)',
24
- accent: 'hsl(0 72% 51%)',
25
- },
26
- },
24
+ accent: 'hsl(0 72% 51%)'
25
+ }
26
+ }
27
27
  },
28
28
  neon: {
29
29
  name: 'neon',
@@ -34,9 +34,9 @@ export const themeConfigs = {
34
34
  colors: {
35
35
  primary: 'hsl(263 90% 51%)',
36
36
  background: 'hsl(230 25% 5%)',
37
- accent: 'hsl(180 100% 50%)',
38
- },
39
- },
37
+ accent: 'hsl(180 100% 50%)'
38
+ }
39
+ }
40
40
  },
41
41
  solar: {
42
42
  name: 'solar',
@@ -47,9 +47,9 @@ export const themeConfigs = {
47
47
  colors: {
48
48
  primary: 'hsl(20 90% 45%)',
49
49
  background: 'hsl(40 30% 95%)',
50
- accent: 'hsl(40 100% 50%)',
51
- },
52
- },
50
+ accent: 'hsl(40 100% 50%)'
51
+ }
52
+ }
53
53
  },
54
54
  dealership: {
55
55
  name: 'dealership',
@@ -60,9 +60,9 @@ export const themeConfigs = {
60
60
  colors: {
61
61
  primary: 'hsl(225 25% 25%)',
62
62
  background: 'hsl(0 0% 98%)',
63
- accent: 'hsl(15 85% 55%)',
64
- },
65
- },
63
+ accent: 'hsl(15 85% 55%)'
64
+ }
65
+ }
66
66
  },
67
67
  'real-estate': {
68
68
  name: 'real-estate',
@@ -73,9 +73,9 @@ export const themeConfigs = {
73
73
  colors: {
74
74
  primary: 'hsl(220 90% 48%)',
75
75
  background: 'hsl(220 40% 98.5%)',
76
- accent: 'hsl(210 85% 55%)',
77
- },
78
- },
76
+ accent: 'hsl(210 85% 55%)'
77
+ }
78
+ }
79
79
  },
80
80
  'real-estate-gold': {
81
81
  name: 'real-estate-gold',
@@ -86,9 +86,9 @@ export const themeConfigs = {
86
86
  colors: {
87
87
  primary: 'hsl(38 75% 45%)',
88
88
  background: 'hsl(45 25% 97%)',
89
- accent: 'hsl(42 85% 55%)',
90
- },
91
- },
89
+ accent: 'hsl(42 85% 55%)'
90
+ }
91
+ }
92
92
  },
93
93
  'real-estate-neutral': {
94
94
  name: 'real-estate-neutral',
@@ -99,10 +99,10 @@ export const themeConfigs = {
99
99
  colors: {
100
100
  primary: 'hsl(25 35% 25%)',
101
101
  background: 'hsl(30 8% 98%)',
102
- accent: 'hsl(35 25% 45%)',
103
- },
104
- },
105
- },
102
+ accent: 'hsl(35 25% 45%)'
103
+ }
104
+ }
105
+ }
106
106
  };
107
107
  export const borderRadiusPresets = {
108
108
  none: {
@@ -114,8 +114,8 @@ export const borderRadiusPresets = {
114
114
  '--radius-default': '0',
115
115
  '--radius-medium': '0',
116
116
  '--radius-large': '0',
117
- '--radius-xl': '0',
118
- },
117
+ '--radius-xl': '0'
118
+ }
119
119
  },
120
120
  small: {
121
121
  label: 'Small',
@@ -126,8 +126,8 @@ export const borderRadiusPresets = {
126
126
  '--radius-default': '0.375rem',
127
127
  '--radius-medium': '0.5rem',
128
128
  '--radius-large': '0.75rem',
129
- '--radius-xl': '1rem',
130
- },
129
+ '--radius-xl': '1rem'
130
+ }
131
131
  },
132
132
  medium: {
133
133
  label: 'Medium',
@@ -138,8 +138,8 @@ export const borderRadiusPresets = {
138
138
  '--radius-default': '0.75rem',
139
139
  '--radius-medium': '1rem',
140
140
  '--radius-large': '1.5rem',
141
- '--radius-xl': '2rem',
142
- },
141
+ '--radius-xl': '2rem'
142
+ }
143
143
  },
144
144
  large: {
145
145
  label: 'Large',
@@ -150,8 +150,8 @@ export const borderRadiusPresets = {
150
150
  '--radius-default': '1rem',
151
151
  '--radius-medium': '1.5rem',
152
152
  '--radius-large': '2rem',
153
- '--radius-xl': '2.5rem',
154
- },
153
+ '--radius-xl': '2.5rem'
154
+ }
155
155
  },
156
156
  xl: {
157
157
  label: 'Extra Large',
@@ -162,9 +162,9 @@ export const borderRadiusPresets = {
162
162
  '--radius-default': '1.5rem',
163
163
  '--radius-medium': '2rem',
164
164
  '--radius-large': '2.5rem',
165
- '--radius-xl': '3rem',
166
- },
167
- },
165
+ '--radius-xl': '3rem'
166
+ }
167
+ }
168
168
  };
169
169
  export function getThemeConfig(theme) {
170
170
  return themeConfigs[theme];
@@ -172,4 +172,5 @@ export function getThemeConfig(theme) {
172
172
  export function getBorderRadiusConfig(preset) {
173
173
  return borderRadiusPresets[preset];
174
174
  }
175
+
175
176
  //# sourceMappingURL=themeConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"themeConfig.js","sourceRoot":"","sources":["../../../src/providers/Theme/themeConfig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAuC;IAC9D,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,qBAAqB;QAC5B,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,gBAAgB;gBAC5B,MAAM,EAAE,kBAAkB;aAC3B;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,kBAAkB;QACzB,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,gBAAgB;gBAC5B,MAAM,EAAE,gBAAgB;aACzB;SACF;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,iBAAiB;gBAC7B,MAAM,EAAE,mBAAmB;aAC5B;SACF;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,OAAO;QACrB,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,iBAAiB;gBAC7B,MAAM,EAAE,kBAAkB;aAC3B;SACF;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,wBAAwB;QACjC,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,eAAe;gBAC3B,MAAM,EAAE,iBAAiB;aAC1B;SACF;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,kBAAkB;QACzB,YAAY,EAAE,OAAO;QACrB,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,oBAAoB;gBAChC,MAAM,EAAE,kBAAkB;aAC3B;SACF;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,kBAAkB;QACzB,YAAY,EAAE,OAAO;QACrB,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,iBAAiB;gBAC7B,MAAM,EAAE,iBAAiB;aAC1B;SACF;KACF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,YAAY,EAAE,OAAO;QACrB,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,gBAAgB;gBAC5B,MAAM,EAAE,iBAAiB;aAC1B;SACF;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,GAAG,EAAE;YACH,aAAa,EAAE,GAAG;YAClB,gBAAgB,EAAE,GAAG;YACrB,kBAAkB,EAAE,GAAG;YACvB,iBAAiB,EAAE,GAAG;YACtB,gBAAgB,EAAE,GAAG;YACrB,aAAa,EAAE,GAAG;SACnB;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,GAAG,EAAE;YACH,aAAa,EAAE,UAAU;YACzB,gBAAgB,EAAE,SAAS;YAC3B,kBAAkB,EAAE,UAAU;YAC9B,iBAAiB,EAAE,QAAQ;YAC3B,gBAAgB,EAAE,SAAS;YAC3B,aAAa,EAAE,MAAM;SACtB;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE;YACH,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,QAAQ;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,iBAAiB,EAAE,MAAM;YACzB,gBAAgB,EAAE,QAAQ;YAC1B,aAAa,EAAE,MAAM;SACtB;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,GAAG,EAAE;YACH,aAAa,EAAE,QAAQ;YACvB,gBAAgB,EAAE,SAAS;YAC3B,kBAAkB,EAAE,MAAM;YAC1B,iBAAiB,EAAE,QAAQ;YAC3B,gBAAgB,EAAE,MAAM;YACxB,aAAa,EAAE,QAAQ;SACxB;KACF;IACD,EAAE,EAAE;QACF,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,IAAI;QACX,GAAG,EAAE;YACH,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,MAAM;YACxB,kBAAkB,EAAE,QAAQ;YAC5B,iBAAiB,EAAE,MAAM;YACzB,gBAAgB,EAAE,QAAQ;YAC1B,aAAa,EAAE,MAAM;SACtB;KACF;CACO,CAAA;AAEV,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAwC;IAC5E,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC"}
1
+ {"version":3,"sources":["../../../src/providers/Theme/themeConfig.ts"],"sourcesContent":["import type { ThemeConfig, ThemeDefaults } from './types.js'\r\n\r\nexport const themeConfigs: Record<ThemeDefaults, ThemeConfig> = {\r\n cool: {\r\n name: 'cool',\r\n label: 'Cool & Professional',\r\n borderRadius: 'medium',\r\n cssFile: '/themes/cool.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(221 83% 53%)',\r\n background: 'hsl(0 0% 100%)',\r\n accent: 'hsl(210 40% 95%)',\r\n },\r\n },\r\n },\r\n brutal: {\r\n name: 'brutal',\r\n label: 'Modern Brutalism',\r\n borderRadius: 'none',\r\n cssFile: '/themes/brutal.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(0 0% 0%)',\r\n background: 'hsl(0 0% 100%)',\r\n accent: 'hsl(0 72% 51%)',\r\n },\r\n },\r\n },\r\n neon: {\r\n name: 'neon',\r\n label: 'Neon Cyberpunk',\r\n borderRadius: 'medium',\r\n cssFile: '/themes/neon.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(263 90% 51%)',\r\n background: 'hsl(230 25% 5%)',\r\n accent: 'hsl(180 100% 50%)',\r\n },\r\n },\r\n },\r\n solar: {\r\n name: 'solar',\r\n label: 'Solar',\r\n borderRadius: 'large',\r\n cssFile: '/themes/solar.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(20 90% 45%)',\r\n background: 'hsl(40 30% 95%)',\r\n accent: 'hsl(40 100% 50%)',\r\n },\r\n },\r\n },\r\n dealership: {\r\n name: 'dealership',\r\n label: 'Dealership',\r\n borderRadius: 'medium',\r\n cssFile: '/themes/dealership.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(225 25% 25%)',\r\n background: 'hsl(0 0% 98%)',\r\n accent: 'hsl(15 85% 55%)',\r\n },\r\n },\r\n },\r\n 'real-estate': {\r\n name: 'real-estate',\r\n label: 'Real Estate Blue',\r\n borderRadius: 'large',\r\n cssFile: '/themes/real-estate.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(220 90% 48%)',\r\n background: 'hsl(220 40% 98.5%)',\r\n accent: 'hsl(210 85% 55%)',\r\n },\r\n },\r\n },\r\n 'real-estate-gold': {\r\n name: 'real-estate-gold',\r\n label: 'Real Estate Gold',\r\n borderRadius: 'large',\r\n cssFile: '/themes/real-estate-gold.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(38 75% 45%)',\r\n background: 'hsl(45 25% 97%)',\r\n accent: 'hsl(42 85% 55%)',\r\n },\r\n },\r\n },\r\n 'real-estate-neutral': {\r\n name: 'real-estate-neutral',\r\n label: 'Real Estate Neutral',\r\n borderRadius: 'large',\r\n cssFile: '/themes/real-estate-neutral.css',\r\n preview: {\r\n colors: {\r\n primary: 'hsl(25 35% 25%)',\r\n background: 'hsl(30 8% 98%)',\r\n accent: 'hsl(35 25% 45%)',\r\n },\r\n },\r\n },\r\n}\r\n\r\nexport const borderRadiusPresets = {\r\n none: {\r\n label: 'None',\r\n value: 'none',\r\n css: {\r\n '--radius-xs': '0',\r\n '--radius-small': '0',\r\n '--radius-default': '0',\r\n '--radius-medium': '0',\r\n '--radius-large': '0',\r\n '--radius-xl': '0',\r\n },\r\n },\r\n small: {\r\n label: 'Small',\r\n value: 'small',\r\n css: {\r\n '--radius-xs': '0.125rem',\r\n '--radius-small': '0.25rem',\r\n '--radius-default': '0.375rem',\r\n '--radius-medium': '0.5rem',\r\n '--radius-large': '0.75rem',\r\n '--radius-xl': '1rem',\r\n },\r\n },\r\n medium: {\r\n label: 'Medium',\r\n value: 'medium',\r\n css: {\r\n '--radius-xs': '0.25rem',\r\n '--radius-small': '0.5rem',\r\n '--radius-default': '0.75rem',\r\n '--radius-medium': '1rem',\r\n '--radius-large': '1.5rem',\r\n '--radius-xl': '2rem',\r\n },\r\n },\r\n large: {\r\n label: 'Large',\r\n value: 'large',\r\n css: {\r\n '--radius-xs': '0.5rem',\r\n '--radius-small': '0.75rem',\r\n '--radius-default': '1rem',\r\n '--radius-medium': '1.5rem',\r\n '--radius-large': '2rem',\r\n '--radius-xl': '2.5rem',\r\n },\r\n },\r\n xl: {\r\n label: 'Extra Large',\r\n value: 'xl',\r\n css: {\r\n '--radius-xs': '0.75rem',\r\n '--radius-small': '1rem',\r\n '--radius-default': '1.5rem',\r\n '--radius-medium': '2rem',\r\n '--radius-large': '2.5rem',\r\n '--radius-xl': '3rem',\r\n },\r\n },\r\n} as const\r\n\r\nexport function getThemeConfig(theme: ThemeDefaults): ThemeConfig {\r\n return themeConfigs[theme]\r\n}\r\n\r\nexport function getBorderRadiusConfig(preset: keyof typeof borderRadiusPresets) {\r\n return borderRadiusPresets[preset]\r\n}\r\n"],"names":["themeConfigs","cool","name","label","borderRadius","cssFile","preview","colors","primary","background","accent","brutal","neon","solar","dealership","borderRadiusPresets","none","value","css","small","medium","large","xl","getThemeConfig","theme","getBorderRadiusConfig","preset"],"mappings":"AAEA,OAAO,MAAMA,eAAmD;IAC9DC,MAAM;QACJC,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;IACAC,QAAQ;QACNT,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;IACAE,MAAM;QACJV,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;IACAG,OAAO;QACLX,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;IACAI,YAAY;QACVZ,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;IACA,eAAe;QACbR,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;IACA,oBAAoB;QAClBR,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;IACA,uBAAuB;QACrBR,MAAM;QACNC,OAAO;QACPC,cAAc;QACdC,SAAS;QACTC,SAAS;YACPC,QAAQ;gBACNC,SAAS;gBACTC,YAAY;gBACZC,QAAQ;YACV;QACF;IACF;AACF,EAAC;AAED,OAAO,MAAMK,sBAAsB;IACjCC,MAAM;QACJb,OAAO;QACPc,OAAO;QACPC,KAAK;YACH,eAAe;YACf,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;QACjB;IACF;IACAC,OAAO;QACLhB,OAAO;QACPc,OAAO;QACPC,KAAK;YACH,eAAe;YACf,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;QACjB;IACF;IACAE,QAAQ;QACNjB,OAAO;QACPc,OAAO;QACPC,KAAK;YACH,eAAe;YACf,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;QACjB;IACF;IACAG,OAAO;QACLlB,OAAO;QACPc,OAAO;QACPC,KAAK;YACH,eAAe;YACf,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;QACjB;IACF;IACAI,IAAI;QACFnB,OAAO;QACPc,OAAO;QACPC,KAAK;YACH,eAAe;YACf,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;YACnB,kBAAkB;YAClB,eAAe;QACjB;IACF;AACF,EAAU;AAEV,OAAO,SAASK,eAAeC,KAAoB;IACjD,OAAOxB,YAAY,CAACwB,MAAM;AAC5B;AAEA,OAAO,SAASC,sBAAsBC,MAAwC;IAC5E,OAAOX,mBAAmB,CAACW,OAAO;AACpC"}
@@ -1,18 +1,20 @@
1
1
  export function themeIsValid(string) {
2
- return string
3
- ? [
4
- 'cool',
5
- 'brutal',
6
- 'neon',
7
- 'solar',
8
- 'dealership',
9
- 'real-estate',
10
- 'real-estate-gold',
11
- 'real-estate-neutral',
12
- ].includes(string)
13
- : false;
2
+ return string ? [
3
+ 'cool',
4
+ 'brutal',
5
+ 'neon',
6
+ 'solar',
7
+ 'dealership',
8
+ 'real-estate',
9
+ 'real-estate-gold',
10
+ 'real-estate-neutral'
11
+ ].includes(string) : false;
14
12
  }
15
13
  export function modeIsValid(string) {
16
- return string ? ['dark', 'light'].includes(string) : false;
14
+ return string ? [
15
+ 'dark',
16
+ 'light'
17
+ ].includes(string) : false;
17
18
  }
19
+
18
20
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/Theme/types.ts"],"names":[],"mappings":"AAuEA,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,OAAO,MAAM;QACX,CAAC,CAAC;YACE,MAAM;YACN,QAAQ;YACR,MAAM;YACN,OAAO;YACP,YAAY;YACZ,aAAa;YACb,kBAAkB;YAClB,qBAAqB;SACtB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"sources":["../../../src/providers/Theme/types.ts"],"sourcesContent":["export type ThemeDefaults =\r\n | 'cool'\r\n | 'brutal'\r\n | 'neon'\r\n | 'solar'\r\n | 'dealership'\r\n | 'real-estate'\r\n | 'real-estate-gold'\r\n | 'real-estate-neutral';\r\n\r\nexport type Mode = 'dark' | 'light' | 'auto';\r\n\r\nexport type BorderRadiusPreset = 'none' | 'small' | 'medium' | 'large' | 'xl';\r\n\r\nexport type FontScalePreset = 'small' | 'medium' | 'large' | 'xl';\r\n\r\nexport type SpacingPreset = 'compact' | 'medium' | 'spacious';\r\n\r\nexport type AnimationLevelPreset = 'none' | 'reduced' | 'medium' | 'high';\r\n\r\nexport type ColorModePreset = 'auto' | 'light' | 'dark';\r\n\r\nexport interface ThemeConfig {\r\n name: string;\r\n label: string;\r\n borderRadius: BorderRadiusPreset;\r\n cssFile: string;\r\n preview?: {\r\n colors: {\r\n primary: string;\r\n background: string;\r\n accent: string;\r\n };\r\n };\r\n}\r\n\r\nexport interface ThemeContextType {\r\n // Theme management\r\n theme?: ThemeDefaults | null;\r\n setTheme?: (theme: ThemeDefaults) => void; // Add setTheme for enhanced functionality\r\n refreshTheme: () => void; // Refresh theme (now handled server-side)\r\n\r\n // Color mode\r\n mode?: Mode | null;\r\n setMode: (mode: Mode | null) => void;\r\n isColorModeToggleAllowed?: boolean; // Whether admin allows color mode changes\r\n\r\n // Design controls\r\n borderRadius?: BorderRadiusPreset;\r\n setBorderRadius?: (radius: BorderRadiusPreset) => void;\r\n fontScale?: FontScalePreset;\r\n setFontScale?: (scale: FontScalePreset) => void;\r\n spacing?: SpacingPreset;\r\n setSpacing?: (spacing: SpacingPreset) => void;\r\n animationLevel?: AnimationLevelPreset;\r\n setAnimationLevel?: (level: AnimationLevelPreset) => void;\r\n\r\n // Theme loading\r\n preloadTheme?: (theme: ThemeDefaults) => Promise<boolean>;\r\n isThemeLoaded?: (theme: ThemeDefaults) => boolean;\r\n\r\n // Enhanced configuration\r\n themeConfig?: any; // Enhanced theme configuration from plugin\r\n}\r\n\r\nexport interface ThemeOption {\r\n label: string;\r\n value: ThemeDefaults;\r\n config?: ThemeConfig;\r\n}\r\n\r\nexport function themeIsValid(string: null | string): string is ThemeDefaults {\r\n return string\r\n ? [\r\n 'cool',\r\n 'brutal',\r\n 'neon',\r\n 'solar',\r\n 'dealership',\r\n 'real-estate',\r\n 'real-estate-gold',\r\n 'real-estate-neutral',\r\n ].includes(string)\r\n : false;\r\n}\r\n\r\nexport function modeIsValid(string: null | string): string is Mode {\r\n return string ? ['dark', 'light'].includes(string) : false;\r\n}\r\n"],"names":["themeIsValid","string","includes","modeIsValid"],"mappings":"AAuEA,OAAO,SAASA,aAAaC,MAAqB;IAChD,OAAOA,SACH;QACE;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD,CAACC,QAAQ,CAACD,UACX;AACN;AAEA,OAAO,SAASE,YAAYF,MAAqB;IAC/C,OAAOA,SAAS;QAAC;QAAQ;KAAQ,CAACC,QAAQ,CAACD,UAAU;AACvD"}
package/dist/server.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { ServerThemeInjector } from './components/ServerThemeInjector';
2
- export { createFallbackCriticalCSS, generateThemePreloadLinks, getThemeCriticalCSS, getThemeCSSPath, } from './utils/themeAssets';
1
+ export { ServerThemeInjector } from './components/ServerThemeInjector.js';
2
+ export { createFallbackCriticalCSS, generateThemePreloadLinks, getThemeCriticalCSS, getThemeCSSPath, } from './utils/themeAssets.js';
3
3
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,GAChB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAEzE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,GAChB,MAAM,wBAAwB,CAAA"}
package/dist/server.js CHANGED
@@ -1,3 +1,4 @@
1
- export { ServerThemeInjector } from './components/ServerThemeInjector';
2
- export { createFallbackCriticalCSS, generateThemePreloadLinks, getThemeCriticalCSS, getThemeCSSPath, } from './utils/themeAssets';
1
+ export { ServerThemeInjector } from './components/ServerThemeInjector.js';
2
+ export { createFallbackCriticalCSS, generateThemePreloadLinks, getThemeCriticalCSS, getThemeCSSPath } from './utils/themeAssets.js';
3
+
3
4
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,GAChB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"sources":["../src/server.ts"],"sourcesContent":["export { ServerThemeInjector } from './components/ServerThemeInjector.js'\r\n\r\nexport {\r\n createFallbackCriticalCSS,\r\n generateThemePreloadLinks,\r\n getThemeCriticalCSS,\r\n getThemeCSSPath,\r\n} from './utils/themeAssets.js'\r\n"],"names":["ServerThemeInjector","createFallbackCriticalCSS","generateThemePreloadLinks","getThemeCriticalCSS","getThemeCSSPath"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,sCAAqC;AAEzE,SACEC,yBAAyB,EACzBC,yBAAyB,EACzBC,mBAAmB,EACnBC,eAAe,QACV,yBAAwB"}
@@ -0,0 +1,138 @@
1
+ .theme-color-picker-field {
2
+ margin-bottom: 1rem;
3
+
4
+ .field-header {
5
+ margin-bottom: 0.5rem;
6
+ }
7
+
8
+ .field-label {
9
+ display: block;
10
+ font-weight: 500;
11
+ font-size: 0.875rem;
12
+ color: var(--theme-text);
13
+ margin-bottom: 0.25rem;
14
+ }
15
+
16
+ .field-description {
17
+ font-size: 0.75rem;
18
+ color: var(--theme-elevation-400);
19
+ margin-top: 0.25rem;
20
+ }
21
+
22
+ .color-picker-container {
23
+ display: flex;
24
+ gap: 0.75rem;
25
+ align-items: center;
26
+ }
27
+
28
+ .color-input-wrapper {
29
+ display: flex;
30
+ gap: 0.5rem;
31
+ flex: 1;
32
+ }
33
+
34
+ .color-input {
35
+ width: 60px;
36
+ height: 38px;
37
+ border: 1px solid var(--theme-elevation-200);
38
+ border-radius: 4px;
39
+ cursor: pointer;
40
+ padding: 2px;
41
+
42
+ &:hover {
43
+ border-color: var(--theme-elevation-400);
44
+ }
45
+
46
+ &:focus {
47
+ outline: 2px solid var(--theme-elevation-500);
48
+ outline-offset: 1px;
49
+ }
50
+ }
51
+
52
+ .text-input {
53
+ flex: 1;
54
+ height: 38px;
55
+ padding: 0 0.75rem;
56
+ border: 1px solid var(--theme-elevation-200);
57
+ border-radius: 4px;
58
+ font-family: monospace;
59
+ font-size: 0.875rem;
60
+ background: var(--theme-elevation-0);
61
+ color: var(--theme-text);
62
+
63
+ &:hover {
64
+ border-color: var(--theme-elevation-400);
65
+ }
66
+
67
+ &:focus {
68
+ outline: 2px solid var(--theme-elevation-500);
69
+ outline-offset: 1px;
70
+ border-color: var(--theme-elevation-500);
71
+ }
72
+
73
+ &::placeholder {
74
+ color: var(--theme-elevation-400);
75
+ }
76
+
77
+ &:invalid {
78
+ border-color: #ef4444;
79
+ }
80
+ }
81
+
82
+ .color-preview {
83
+ width: 120px;
84
+ height: 38px;
85
+ border-radius: 4px;
86
+ border: 1px solid var(--theme-elevation-200);
87
+ display: flex;
88
+ align-items: center;
89
+ justify-content: center;
90
+ position: relative;
91
+ overflow: hidden;
92
+
93
+ .preview-label {
94
+ font-size: 0.75rem;
95
+ font-family: monospace;
96
+ padding: 0.25rem 0.5rem;
97
+ background: rgba(255, 255, 255, 0.9);
98
+ border-radius: 2px;
99
+ backdrop-filter: blur(4px);
100
+ color: #000;
101
+ font-weight: 500;
102
+ }
103
+ }
104
+
105
+ .mini-preview {
106
+ margin-top: 1rem;
107
+ padding: 1rem;
108
+ border-radius: 6px;
109
+ border: 1px solid;
110
+
111
+ .preview-card {
112
+ padding: 1rem;
113
+ border-radius: 4px;
114
+ border: 1px solid;
115
+ display: flex;
116
+ gap: 0.5rem;
117
+ flex-wrap: wrap;
118
+ }
119
+
120
+ .preview-button {
121
+ padding: 0.5rem 1rem;
122
+ border-radius: 4px;
123
+ border: none;
124
+ font-size: 0.875rem;
125
+ font-weight: 500;
126
+ cursor: pointer;
127
+ transition: opacity 0.2s;
128
+
129
+ &:hover {
130
+ opacity: 0.9;
131
+ }
132
+
133
+ &.secondary {
134
+ border: 1px solid currentColor;
135
+ }
136
+ }
137
+ }
138
+ }
@@ -0,0 +1,138 @@
1
+ .theme-color-picker-field {
2
+ margin-bottom: 1rem;
3
+
4
+ .field-header {
5
+ margin-bottom: 0.5rem;
6
+ }
7
+
8
+ .field-label {
9
+ display: block;
10
+ font-weight: 500;
11
+ font-size: 0.875rem;
12
+ color: var(--theme-text);
13
+ margin-bottom: 0.25rem;
14
+ }
15
+
16
+ .field-description {
17
+ font-size: 0.75rem;
18
+ color: var(--theme-elevation-400);
19
+ margin-top: 0.25rem;
20
+ }
21
+
22
+ .color-picker-container {
23
+ display: flex;
24
+ gap: 0.75rem;
25
+ align-items: center;
26
+ }
27
+
28
+ .color-input-wrapper {
29
+ display: flex;
30
+ gap: 0.5rem;
31
+ flex: 1;
32
+ }
33
+
34
+ .color-input {
35
+ width: 60px;
36
+ height: 38px;
37
+ border: 1px solid var(--theme-elevation-200);
38
+ border-radius: 4px;
39
+ cursor: pointer;
40
+ padding: 2px;
41
+
42
+ &:hover {
43
+ border-color: var(--theme-elevation-400);
44
+ }
45
+
46
+ &:focus {
47
+ outline: 2px solid var(--theme-elevation-500);
48
+ outline-offset: 1px;
49
+ }
50
+ }
51
+
52
+ .text-input {
53
+ flex: 1;
54
+ height: 38px;
55
+ padding: 0 0.75rem;
56
+ border: 1px solid var(--theme-elevation-200);
57
+ border-radius: 4px;
58
+ font-family: monospace;
59
+ font-size: 0.875rem;
60
+ background: var(--theme-elevation-0);
61
+ color: var(--theme-text);
62
+
63
+ &:hover {
64
+ border-color: var(--theme-elevation-400);
65
+ }
66
+
67
+ &:focus {
68
+ outline: 2px solid var(--theme-elevation-500);
69
+ outline-offset: 1px;
70
+ border-color: var(--theme-elevation-500);
71
+ }
72
+
73
+ &::placeholder {
74
+ color: var(--theme-elevation-400);
75
+ }
76
+
77
+ &:invalid {
78
+ border-color: #ef4444;
79
+ }
80
+ }
81
+
82
+ .color-preview {
83
+ width: 120px;
84
+ height: 38px;
85
+ border-radius: 4px;
86
+ border: 1px solid var(--theme-elevation-200);
87
+ display: flex;
88
+ align-items: center;
89
+ justify-content: center;
90
+ position: relative;
91
+ overflow: hidden;
92
+
93
+ .preview-label {
94
+ font-size: 0.75rem;
95
+ font-family: monospace;
96
+ padding: 0.25rem 0.5rem;
97
+ background: rgba(255, 255, 255, 0.9);
98
+ border-radius: 2px;
99
+ backdrop-filter: blur(4px);
100
+ color: #000;
101
+ font-weight: 500;
102
+ }
103
+ }
104
+
105
+ .mini-preview {
106
+ margin-top: 1rem;
107
+ padding: 1rem;
108
+ border-radius: 6px;
109
+ border: 1px solid;
110
+
111
+ .preview-card {
112
+ padding: 1rem;
113
+ border-radius: 4px;
114
+ border: 1px solid;
115
+ display: flex;
116
+ gap: 0.5rem;
117
+ flex-wrap: wrap;
118
+ }
119
+
120
+ .preview-button {
121
+ padding: 0.5rem 1rem;
122
+ border-radius: 4px;
123
+ border: none;
124
+ font-size: 0.875rem;
125
+ font-weight: 500;
126
+ cursor: pointer;
127
+ transition: opacity 0.2s;
128
+
129
+ &:hover {
130
+ opacity: 0.9;
131
+ }
132
+
133
+ &.secondary {
134
+ border: 1px solid currentColor;
135
+ }
136
+ }
137
+ }
138
+ }
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { ThemePreset } from './presets';
2
- export interface ThemeConfigurationPluginOptions {
1
+ import type { ThemePreset } from './presets.js';
2
+ export interface ThemeManagementPluginOptions {
3
3
  /** Whether the plugin should register itself */
4
4
  enabled?: boolean;
5
5
  /** Collection slug that stores site-level settings (default: `site-settings`) */