@kilivi/payloadcms-theme-management 0.2.11 → 0.2.12
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/ExtendedThemeAutoPopulateField.d.ts +12 -0
- package/dist/fields/ExtendedThemeAutoPopulateField.d.ts.map +1 -0
- package/dist/fields/ExtendedThemeAutoPopulateField.js +176 -0
- package/dist/fields/ExtendedThemeAutoPopulateField.js.map +1 -0
- package/dist/fields/extendedThemeFields.d.ts +2 -1
- package/dist/fields/extendedThemeFields.d.ts.map +1 -1
- package/dist/fields/extendedThemeFields.js +5 -4
- package/dist/fields/extendedThemeFields.js.map +1 -1
- package/dist/fields/themeConfigurationField.d.ts.map +1 -1
- package/dist/fields/themeConfigurationField.js +4 -8
- package/dist/fields/themeConfigurationField.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/font-loader.d.ts +127 -0
- package/dist/providers/font-loader.d.ts.map +1 -0
- package/dist/providers/font-loader.js +212 -0
- package/dist/providers/font-loader.js.map +1 -0
- package/package.json +1 -1
- package/dist/fields/ThemePresetSelectField.d.ts +0 -4
- package/dist/fields/ThemePresetSelectField.d.ts.map +0 -1
- package/dist/fields/ThemePresetSelectField.js +0 -228
- package/dist/fields/ThemePresetSelectField.js.map +0 -1
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useField } from '@payloadcms/ui';
|
|
4
|
-
import { useEffect, useState } from 'react';
|
|
5
|
-
import { allExtendedThemePresets } from '../extended-presets.js';
|
|
6
|
-
const ThemePresetSelectField = ({ field, path })=>{
|
|
7
|
-
const { value, setValue } = useField({
|
|
8
|
-
path
|
|
9
|
-
});
|
|
10
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
11
|
-
const options = field.options || [];
|
|
12
|
-
const selectedOption = options.find((opt)=>opt.value === value);
|
|
13
|
-
const handleSelect = (optionValue)=>{
|
|
14
|
-
setValue(optionValue);
|
|
15
|
-
setIsOpen(false);
|
|
16
|
-
};
|
|
17
|
-
useEffect(()=>{
|
|
18
|
-
const handleClickOutside = (e)=>{
|
|
19
|
-
const target = e.target;
|
|
20
|
-
if (!target.closest('.theme-preset-select-container')) {
|
|
21
|
-
setIsOpen(false);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
if (isOpen) {
|
|
25
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
26
|
-
return ()=>document.removeEventListener('mousedown', handleClickOutside);
|
|
27
|
-
}
|
|
28
|
-
}, [
|
|
29
|
-
isOpen
|
|
30
|
-
]);
|
|
31
|
-
const label = typeof field.label === 'string' ? field.label : field.label?.en || field.label?.cs || 'Theme Preset';
|
|
32
|
-
const description = typeof field.admin?.description === 'string' ? field.admin.description : field.admin?.description?.en || field.admin?.description?.cs;
|
|
33
|
-
// Get color swatches for a preset
|
|
34
|
-
const getPresetColors = (presetValue)=>{
|
|
35
|
-
const preset = allExtendedThemePresets[presetValue];
|
|
36
|
-
if (!preset) return [];
|
|
37
|
-
const colors = [
|
|
38
|
-
preset.styles.light.primary,
|
|
39
|
-
preset.styles.light.secondary,
|
|
40
|
-
preset.styles.light.accent,
|
|
41
|
-
preset.styles.light.background,
|
|
42
|
-
preset.styles.light.foreground
|
|
43
|
-
].filter(Boolean);
|
|
44
|
-
return colors.slice(0, 5) // Max 5 swatches
|
|
45
|
-
;
|
|
46
|
-
};
|
|
47
|
-
return /*#__PURE__*/ _jsxs("div", {
|
|
48
|
-
className: "theme-preset-select-container",
|
|
49
|
-
style: {
|
|
50
|
-
position: 'relative',
|
|
51
|
-
marginBottom: '16px'
|
|
52
|
-
},
|
|
53
|
-
children: [
|
|
54
|
-
/*#__PURE__*/ _jsx("label", {
|
|
55
|
-
style: {
|
|
56
|
-
display: 'block',
|
|
57
|
-
marginBottom: '6px',
|
|
58
|
-
fontSize: '13px',
|
|
59
|
-
fontWeight: 600,
|
|
60
|
-
color: 'var(--theme-elevation-800)'
|
|
61
|
-
},
|
|
62
|
-
children: label
|
|
63
|
-
}),
|
|
64
|
-
description && /*#__PURE__*/ _jsx("div", {
|
|
65
|
-
style: {
|
|
66
|
-
fontSize: '12px',
|
|
67
|
-
color: 'var(--theme-elevation-500)',
|
|
68
|
-
marginBottom: '8px'
|
|
69
|
-
},
|
|
70
|
-
children: description
|
|
71
|
-
}),
|
|
72
|
-
/*#__PURE__*/ _jsxs("button", {
|
|
73
|
-
type: "button",
|
|
74
|
-
onClick: ()=>setIsOpen(!isOpen),
|
|
75
|
-
style: {
|
|
76
|
-
width: '100%',
|
|
77
|
-
padding: '12px 14px',
|
|
78
|
-
borderRadius: '6px',
|
|
79
|
-
border: '1px solid var(--theme-elevation-200)',
|
|
80
|
-
backgroundColor: 'var(--theme-input-bg)',
|
|
81
|
-
color: 'var(--theme-elevation-800)',
|
|
82
|
-
textAlign: 'left',
|
|
83
|
-
cursor: 'pointer',
|
|
84
|
-
display: 'flex',
|
|
85
|
-
justifyContent: 'space-between',
|
|
86
|
-
alignItems: 'center',
|
|
87
|
-
fontSize: '14px',
|
|
88
|
-
transition: 'border-color 0.2s ease'
|
|
89
|
-
},
|
|
90
|
-
onMouseEnter: (e)=>{
|
|
91
|
-
e.currentTarget.style.borderColor = 'var(--theme-elevation-400)';
|
|
92
|
-
},
|
|
93
|
-
onMouseLeave: (e)=>{
|
|
94
|
-
e.currentTarget.style.borderColor = 'var(--theme-elevation-200)';
|
|
95
|
-
},
|
|
96
|
-
children: [
|
|
97
|
-
/*#__PURE__*/ _jsxs("div", {
|
|
98
|
-
style: {
|
|
99
|
-
display: 'flex',
|
|
100
|
-
alignItems: 'center',
|
|
101
|
-
gap: '12px',
|
|
102
|
-
flex: 1
|
|
103
|
-
},
|
|
104
|
-
children: [
|
|
105
|
-
/*#__PURE__*/ _jsx("span", {
|
|
106
|
-
style: {
|
|
107
|
-
flex: 1
|
|
108
|
-
},
|
|
109
|
-
children: selectedOption?.label || 'Vyberte téma...'
|
|
110
|
-
}),
|
|
111
|
-
selectedOption && /*#__PURE__*/ _jsx("div", {
|
|
112
|
-
style: {
|
|
113
|
-
display: 'flex',
|
|
114
|
-
gap: '4px'
|
|
115
|
-
},
|
|
116
|
-
children: getPresetColors(selectedOption.value).map((color, index)=>/*#__PURE__*/ _jsx("span", {
|
|
117
|
-
style: {
|
|
118
|
-
width: '20px',
|
|
119
|
-
height: '20px',
|
|
120
|
-
borderRadius: '50%',
|
|
121
|
-
backgroundColor: color,
|
|
122
|
-
border: '1px solid rgba(15, 23, 42, 0.12)',
|
|
123
|
-
boxShadow: 'inset 0 1px 2px rgba(15, 23, 42, 0.08)'
|
|
124
|
-
}
|
|
125
|
-
}, `${selectedOption.value}-swatch-${index}`))
|
|
126
|
-
})
|
|
127
|
-
]
|
|
128
|
-
}),
|
|
129
|
-
/*#__PURE__*/ _jsx("svg", {
|
|
130
|
-
width: "12",
|
|
131
|
-
height: "12",
|
|
132
|
-
viewBox: "0 0 12 12",
|
|
133
|
-
fill: "none",
|
|
134
|
-
style: {
|
|
135
|
-
transition: 'transform 0.2s ease',
|
|
136
|
-
transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',
|
|
137
|
-
marginLeft: '8px'
|
|
138
|
-
},
|
|
139
|
-
children: /*#__PURE__*/ _jsx("path", {
|
|
140
|
-
d: "M3 4.5L6 7.5L9 4.5",
|
|
141
|
-
stroke: "currentColor",
|
|
142
|
-
strokeWidth: "1.5",
|
|
143
|
-
strokeLinecap: "round",
|
|
144
|
-
strokeLinejoin: "round"
|
|
145
|
-
})
|
|
146
|
-
})
|
|
147
|
-
]
|
|
148
|
-
}),
|
|
149
|
-
isOpen && /*#__PURE__*/ _jsx("div", {
|
|
150
|
-
style: {
|
|
151
|
-
position: 'absolute',
|
|
152
|
-
top: '100%',
|
|
153
|
-
left: 0,
|
|
154
|
-
right: 0,
|
|
155
|
-
marginTop: '4px',
|
|
156
|
-
maxHeight: '320px',
|
|
157
|
-
overflowY: 'auto',
|
|
158
|
-
backgroundColor: 'var(--theme-elevation-0)',
|
|
159
|
-
border: '1px solid var(--theme-elevation-200)',
|
|
160
|
-
borderRadius: '8px',
|
|
161
|
-
boxShadow: '0 8px 24px rgba(15, 23, 42, 0.15)',
|
|
162
|
-
zIndex: 1000
|
|
163
|
-
},
|
|
164
|
-
children: options.map((option)=>{
|
|
165
|
-
const isSelected = option.value === value;
|
|
166
|
-
const colors = getPresetColors(option.value);
|
|
167
|
-
return /*#__PURE__*/ _jsxs("button", {
|
|
168
|
-
type: "button",
|
|
169
|
-
onClick: ()=>handleSelect(option.value),
|
|
170
|
-
style: {
|
|
171
|
-
width: '100%',
|
|
172
|
-
padding: '12px 14px',
|
|
173
|
-
border: 'none',
|
|
174
|
-
backgroundColor: isSelected ? 'var(--theme-elevation-100)' : 'transparent',
|
|
175
|
-
color: 'var(--theme-elevation-800)',
|
|
176
|
-
textAlign: 'left',
|
|
177
|
-
cursor: 'pointer',
|
|
178
|
-
fontSize: '14px',
|
|
179
|
-
display: 'flex',
|
|
180
|
-
justifyContent: 'space-between',
|
|
181
|
-
alignItems: 'center',
|
|
182
|
-
gap: '12px',
|
|
183
|
-
transition: 'background-color 0.15s ease'
|
|
184
|
-
},
|
|
185
|
-
onMouseEnter: (e)=>{
|
|
186
|
-
if (!isSelected) {
|
|
187
|
-
e.currentTarget.style.backgroundColor = 'var(--theme-elevation-50)';
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
onMouseLeave: (e)=>{
|
|
191
|
-
if (!isSelected) {
|
|
192
|
-
e.currentTarget.style.backgroundColor = 'transparent';
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
children: [
|
|
196
|
-
/*#__PURE__*/ _jsx("div", {
|
|
197
|
-
style: {
|
|
198
|
-
fontWeight: isSelected ? 600 : 500,
|
|
199
|
-
flex: 1
|
|
200
|
-
},
|
|
201
|
-
children: option.label
|
|
202
|
-
}),
|
|
203
|
-
/*#__PURE__*/ _jsx("div", {
|
|
204
|
-
style: {
|
|
205
|
-
display: 'flex',
|
|
206
|
-
gap: '4px'
|
|
207
|
-
},
|
|
208
|
-
children: colors.map((color, index)=>/*#__PURE__*/ _jsx("span", {
|
|
209
|
-
style: {
|
|
210
|
-
width: '24px',
|
|
211
|
-
height: '24px',
|
|
212
|
-
borderRadius: '50%',
|
|
213
|
-
backgroundColor: color,
|
|
214
|
-
border: '1px solid rgba(15, 23, 42, 0.12)',
|
|
215
|
-
boxShadow: 'inset 0 1px 2px rgba(15, 23, 42, 0.08)'
|
|
216
|
-
}
|
|
217
|
-
}, `${option.value}-dropdown-swatch-${index}`))
|
|
218
|
-
})
|
|
219
|
-
]
|
|
220
|
-
}, option.value);
|
|
221
|
-
})
|
|
222
|
-
})
|
|
223
|
-
]
|
|
224
|
-
});
|
|
225
|
-
};
|
|
226
|
-
export default ThemePresetSelectField;
|
|
227
|
-
|
|
228
|
-
//# sourceMappingURL=ThemePresetSelectField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/ThemePresetSelectField.tsx"],"sourcesContent":["'use client'\n\nimport { useField } from '@payloadcms/ui'\nimport type { SelectFieldClientComponent } from 'payload'\nimport { useEffect, useState } from 'react'\nimport { allExtendedThemePresets } from '../extended-presets.js'\n\nconst ThemePresetSelectField: SelectFieldClientComponent = ({ field, path }) => {\n const { value, setValue } = useField<string>({ path })\n const [isOpen, setIsOpen] = useState(false)\n\n const options = (field.options as Array<{ label: string; value: string }>) || []\n const selectedOption = options.find((opt) => opt.value === value)\n\n const handleSelect = (optionValue: string) => {\n setValue(optionValue)\n setIsOpen(false)\n }\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as HTMLElement\n if (!target.closest('.theme-preset-select-container')) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen])\n\n const label =\n typeof field.label === 'string'\n ? field.label\n : field.label?.en || field.label?.cs || 'Theme Preset'\n const description =\n typeof field.admin?.description === 'string'\n ? field.admin.description\n : field.admin?.description?.en || field.admin?.description?.cs\n\n // Get color swatches for a preset\n const getPresetColors = (presetValue: string) => {\n const preset = allExtendedThemePresets[presetValue as keyof typeof allExtendedThemePresets]\n if (!preset) return []\n\n const colors = [\n preset.styles.light.primary,\n preset.styles.light.secondary,\n preset.styles.light.accent,\n preset.styles.light.background,\n preset.styles.light.foreground,\n ].filter(Boolean)\n\n return colors.slice(0, 5) // Max 5 swatches\n }\n\n return (\n <div\n className=\"theme-preset-select-container\"\n style={{ position: 'relative', marginBottom: '16px' }}\n >\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 600,\n color: 'var(--theme-elevation-800)',\n }}\n >\n {label}\n </label>\n\n {description && (\n <div\n style={{\n fontSize: '12px',\n color: 'var(--theme-elevation-500)',\n marginBottom: '8px',\n }}\n >\n {description}\n </div>\n )}\n\n <button\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n style={{\n width: '100%',\n padding: '12px 14px',\n borderRadius: '6px',\n border: '1px solid var(--theme-elevation-200)',\n backgroundColor: 'var(--theme-input-bg)',\n color: 'var(--theme-elevation-800)',\n textAlign: 'left',\n cursor: 'pointer',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n fontSize: '14px',\n transition: 'border-color 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.borderColor = 'var(--theme-elevation-400)'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.borderColor = 'var(--theme-elevation-200)'\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px', flex: 1 }}>\n <span style={{ flex: 1 }}>{selectedOption?.label || 'Vyberte téma...'}</span>\n {selectedOption && (\n <div style={{ display: 'flex', gap: '4px' }}>\n {getPresetColors(selectedOption.value).map((color, index) => (\n <span\n key={`${selectedOption.value}-swatch-${index}`}\n style={{\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n backgroundColor: color,\n border: '1px solid rgba(15, 23, 42, 0.12)',\n boxShadow: 'inset 0 1px 2px rgba(15, 23, 42, 0.08)',\n }}\n />\n ))}\n </div>\n )}\n </div>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n marginLeft: '8px',\n }}\n >\n <path\n d=\"M3 4.5L6 7.5L9 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n\n {isOpen && (\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n right: 0,\n marginTop: '4px',\n maxHeight: '320px',\n overflowY: 'auto',\n backgroundColor: 'var(--theme-elevation-0)',\n border: '1px solid var(--theme-elevation-200)',\n borderRadius: '8px',\n boxShadow: '0 8px 24px rgba(15, 23, 42, 0.15)',\n zIndex: 1000,\n }}\n >\n {options.map((option) => {\n const isSelected = option.value === value\n const colors = getPresetColors(option.value)\n\n return (\n <button\n key={option.value}\n type=\"button\"\n onClick={() => handleSelect(option.value)}\n style={{\n width: '100%',\n padding: '12px 14px',\n border: 'none',\n backgroundColor: isSelected ? 'var(--theme-elevation-100)' : 'transparent',\n color: 'var(--theme-elevation-800)',\n textAlign: 'left',\n cursor: 'pointer',\n fontSize: '14px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '12px',\n transition: 'background-color 0.15s ease',\n }}\n onMouseEnter={(e) => {\n if (!isSelected) {\n e.currentTarget.style.backgroundColor = 'var(--theme-elevation-50)'\n }\n }}\n onMouseLeave={(e) => {\n if (!isSelected) {\n e.currentTarget.style.backgroundColor = 'transparent'\n }\n }}\n >\n <div\n style={{\n fontWeight: isSelected ? 600 : 500,\n flex: 1,\n }}\n >\n {option.label}\n </div>\n\n {/* Color Swatches */}\n <div style={{ display: 'flex', gap: '4px' }}>\n {colors.map((color, index) => (\n <span\n key={`${option.value}-dropdown-swatch-${index}`}\n style={{\n width: '24px',\n height: '24px',\n borderRadius: '50%',\n backgroundColor: color,\n border: '1px solid rgba(15, 23, 42, 0.12)',\n boxShadow: 'inset 0 1px 2px rgba(15, 23, 42, 0.08)',\n }}\n />\n ))}\n </div>\n </button>\n )\n })}\n </div>\n )}\n </div>\n )\n}\n\nexport default ThemePresetSelectField\n"],"names":["useField","useEffect","useState","allExtendedThemePresets","ThemePresetSelectField","field","path","value","setValue","isOpen","setIsOpen","options","selectedOption","find","opt","handleSelect","optionValue","handleClickOutside","e","target","closest","document","addEventListener","removeEventListener","label","en","cs","description","admin","getPresetColors","presetValue","preset","colors","styles","light","primary","secondary","accent","background","foreground","filter","Boolean","slice","div","className","style","position","marginBottom","display","fontSize","fontWeight","color","button","type","onClick","width","padding","borderRadius","border","backgroundColor","textAlign","cursor","justifyContent","alignItems","transition","onMouseEnter","currentTarget","borderColor","onMouseLeave","gap","flex","span","map","index","height","boxShadow","svg","viewBox","fill","transform","marginLeft","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","top","left","right","marginTop","maxHeight","overflowY","zIndex","option","isSelected"],"mappings":"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"}
|