@kilivi/payloadcms-theme-management 0.1.1

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 (94) hide show
  1. package/README.md +97 -0
  2. package/dist/components/ServerThemeInjector.d.ts +11 -0
  3. package/dist/components/ServerThemeInjector.d.ts.map +1 -0
  4. package/dist/components/ServerThemeInjector.js +73 -0
  5. package/dist/components/ServerThemeInjector.js.map +1 -0
  6. package/dist/components/ThemePreview.d.ts +2 -0
  7. package/dist/components/ThemePreview.d.ts.map +1 -0
  8. package/dist/components/ThemePreview.js +153 -0
  9. package/dist/components/ThemePreview.js.map +1 -0
  10. package/dist/components/typographyPreviewUtils.d.ts +18 -0
  11. package/dist/components/typographyPreviewUtils.d.ts.map +1 -0
  12. package/dist/components/typographyPreviewUtils.js +80 -0
  13. package/dist/components/typographyPreviewUtils.js.map +1 -0
  14. package/dist/constants/themeFonts.d.ts +75 -0
  15. package/dist/constants/themeFonts.d.ts.map +1 -0
  16. package/dist/constants/themeFonts.js +45 -0
  17. package/dist/constants/themeFonts.js.map +1 -0
  18. package/dist/fields/ColorPickerField.d.ts +3 -0
  19. package/dist/fields/ColorPickerField.d.ts.map +1 -0
  20. package/dist/fields/ColorPickerField.js +153 -0
  21. package/dist/fields/ColorPickerField.js.map +1 -0
  22. package/dist/fields/RadiusField.d.ts +3 -0
  23. package/dist/fields/RadiusField.d.ts.map +1 -0
  24. package/dist/fields/RadiusField.js +91 -0
  25. package/dist/fields/RadiusField.js.map +1 -0
  26. package/dist/fields/ThemeColorPickerField.d.ts +5 -0
  27. package/dist/fields/ThemeColorPickerField.d.ts.map +1 -0
  28. package/dist/fields/ThemeColorPickerField.js +84 -0
  29. package/dist/fields/ThemeColorPickerField.js.map +1 -0
  30. package/dist/fields/ThemePreviewField.d.ts +3 -0
  31. package/dist/fields/ThemePreviewField.d.ts.map +1 -0
  32. package/dist/fields/ThemePreviewField.js +336 -0
  33. package/dist/fields/ThemePreviewField.js.map +1 -0
  34. package/dist/fields/ThemeTokenSelectField.d.ts +3 -0
  35. package/dist/fields/ThemeTokenSelectField.d.ts.map +1 -0
  36. package/dist/fields/ThemeTokenSelectField.js +128 -0
  37. package/dist/fields/ThemeTokenSelectField.js.map +1 -0
  38. package/dist/fields/colorModeFields.d.ts +10 -0
  39. package/dist/fields/colorModeFields.d.ts.map +1 -0
  40. package/dist/fields/colorModeFields.js +241 -0
  41. package/dist/fields/colorModeFields.js.map +1 -0
  42. package/dist/fields/themeConfigurationField.d.ts +17 -0
  43. package/dist/fields/themeConfigurationField.d.ts.map +1 -0
  44. package/dist/fields/themeConfigurationField.js +389 -0
  45. package/dist/fields/themeConfigurationField.js.map +1 -0
  46. package/dist/index.d.ts +20 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +109 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/payload-types.d.ts +83 -0
  51. package/dist/payload-types.d.ts.map +1 -0
  52. package/dist/payload-types.js +6 -0
  53. package/dist/payload-types.js.map +1 -0
  54. package/dist/plugin.d.ts +3 -0
  55. package/dist/plugin.d.ts.map +1 -0
  56. package/dist/plugin.js +2 -0
  57. package/dist/plugin.js.map +1 -0
  58. package/dist/presets.d.ts +43 -0
  59. package/dist/presets.d.ts.map +1 -0
  60. package/dist/presets.js +580 -0
  61. package/dist/presets.js.map +1 -0
  62. package/dist/providers/Theme/themeConfig.d.ts +4 -0
  63. package/dist/providers/Theme/themeConfig.d.ts.map +1 -0
  64. package/dist/providers/Theme/themeConfig.js +66 -0
  65. package/dist/providers/Theme/themeConfig.js.map +1 -0
  66. package/dist/providers/Theme/types.d.ts +16 -0
  67. package/dist/providers/Theme/types.d.ts.map +1 -0
  68. package/dist/providers/Theme/types.js +14 -0
  69. package/dist/providers/Theme/types.js.map +1 -0
  70. package/dist/server.d.ts +3 -0
  71. package/dist/server.d.ts.map +1 -0
  72. package/dist/server.js +3 -0
  73. package/dist/server.js.map +1 -0
  74. package/dist/types.d.ts +36 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +2 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/utils/resolveThemeConfiguration.d.ts +40 -0
  79. package/dist/utils/resolveThemeConfiguration.d.ts.map +1 -0
  80. package/dist/utils/resolveThemeConfiguration.js +148 -0
  81. package/dist/utils/resolveThemeConfiguration.js.map +1 -0
  82. package/dist/utils/themeAssets.d.ts +6 -0
  83. package/dist/utils/themeAssets.d.ts.map +1 -0
  84. package/dist/utils/themeAssets.js +67 -0
  85. package/dist/utils/themeAssets.js.map +1 -0
  86. package/dist/utils/themeColors.d.ts +36 -0
  87. package/dist/utils/themeColors.d.ts.map +1 -0
  88. package/dist/utils/themeColors.js +111 -0
  89. package/dist/utils/themeColors.js.map +1 -0
  90. package/dist/utils/themeUtils.d.ts +16 -0
  91. package/dist/utils/themeUtils.d.ts.map +1 -0
  92. package/dist/utils/themeUtils.js +260 -0
  93. package/dist/utils/themeUtils.js.map +1 -0
  94. package/package.json +68 -0
@@ -0,0 +1,153 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useField } from '@payloadcms/ui';
4
+ import { useCallback, useEffect, useRef, useState } from 'react';
5
+ const colorPresets = {
6
+ 'Theme Colors': ['#3b82f6', '#1e40af', '#b45309', '#78716c', '#8b5cf6', '#f97316'],
7
+ 'Common Colors': ['#ef4444', '#10b981', '#f59e0b', '#06b6d4', '#ec4899', '#6b7280'],
8
+ 'Neutral Tones': ['#000000', '#1f2937', '#6b7280', '#d1d5db', '#f3f4f6', '#ffffff'],
9
+ };
10
+ function resolveLocalizedValue(value) {
11
+ if (typeof value === 'string') {
12
+ return value;
13
+ }
14
+ if (typeof value === 'object' && value !== null) {
15
+ const localized = value;
16
+ const fallback = localized.en ?? localized.cs ?? localized[''];
17
+ return typeof fallback === 'string' ? fallback : '';
18
+ }
19
+ return '';
20
+ }
21
+ export default function ColorPickerField(props) {
22
+ const { field, path } = props;
23
+ const { value = '#000000', setValue } = useField({ path });
24
+ const [isPickerOpen, setIsPickerOpen] = useState(false);
25
+ const pickerRef = useRef(null);
26
+ const fieldLabel = resolveLocalizedValue(field.label);
27
+ const fieldDescription = resolveLocalizedValue(field.admin?.description);
28
+ const placeholder = resolveLocalizedValue(field.admin?.placeholder) || 'e.g., #3b82f6, hsl(...)';
29
+ const handleColorChange = useCallback((color) => {
30
+ setValue(color);
31
+ }, [setValue]);
32
+ const handleInputChange = useCallback((event) => {
33
+ handleColorChange(event.target.value);
34
+ }, [handleColorChange]);
35
+ const togglePicker = useCallback(() => {
36
+ setIsPickerOpen((previous) => !previous);
37
+ }, []);
38
+ useEffect(() => {
39
+ if (!isPickerOpen) {
40
+ return;
41
+ }
42
+ function handleClickOutside(event) {
43
+ if (!pickerRef.current) {
44
+ return;
45
+ }
46
+ if (!pickerRef.current.contains(event.target)) {
47
+ setIsPickerOpen(false);
48
+ }
49
+ }
50
+ document.addEventListener('mousedown', handleClickOutside);
51
+ return () => {
52
+ document.removeEventListener('mousedown', handleClickOutside);
53
+ };
54
+ }, [isPickerOpen]);
55
+ return (_jsxs("div", { className: "field-type color-picker-field", style: { position: 'relative' }, children: [fieldLabel && (_jsxs("label", { htmlFor: path, className: "field-label", style: { display: 'block', marginBottom: '8px', fontSize: '13px', fontWeight: 600 }, children: [fieldLabel, field.required && (_jsx("span", { className: "required", style: { color: 'var(--theme-error-500)', marginLeft: '4px' }, children: "*" }))] })), fieldDescription && (_jsx("div", { className: "field-description", style: {
56
+ marginBottom: '8px',
57
+ fontSize: '13px',
58
+ color: 'var(--theme-elevation-500)',
59
+ lineHeight: 1.5,
60
+ }, children: fieldDescription })), _jsxs("div", { className: "color-picker-input-group", style: { display: 'flex', alignItems: 'center', gap: '8px' }, children: [_jsx("button", { type: "button", onClick: togglePicker, className: "color-preview-button", style: {
61
+ width: '40px',
62
+ height: '40px',
63
+ borderRadius: '6px',
64
+ border: '2px solid #e5e7eb',
65
+ backgroundColor: value || '#ffffff',
66
+ cursor: 'pointer',
67
+ position: 'relative',
68
+ display: 'flex',
69
+ alignItems: 'center',
70
+ justifyContent: 'center',
71
+ }, title: value ? `Current color: ${value}` : 'Select a color', children: !value && _jsx("span", { style: { fontSize: '20px', color: '#9ca3af' }, children: "?" }) }), _jsx("input", { id: path, type: "text", value: value || '', onChange: handleInputChange, placeholder: placeholder, style: {
72
+ flex: 1,
73
+ padding: '8px 12px',
74
+ border: '1px solid var(--theme-elevation-150)',
75
+ borderRadius: '6px',
76
+ fontSize: '14px',
77
+ fontFamily: 'monospace',
78
+ backgroundColor: 'var(--theme-elevation-0)',
79
+ color: 'var(--theme-elevation-1000)',
80
+ } }), _jsx("input", { type: "color", value: value?.startsWith('#') ? value : '#3b82f6', onChange: handleInputChange, title: "Pick a color", style: {
81
+ width: '40px',
82
+ height: '40px',
83
+ border: 'none',
84
+ borderRadius: '6px',
85
+ cursor: 'pointer',
86
+ } })] }), isPickerOpen && (_jsxs("div", { ref: pickerRef, className: "color-presets", style: {
87
+ position: 'absolute',
88
+ top: '100%',
89
+ left: 0,
90
+ right: 0,
91
+ zIndex: 1000,
92
+ marginTop: '4px',
93
+ padding: '16px',
94
+ border: '1px solid var(--theme-elevation-150)',
95
+ borderRadius: '8px',
96
+ backgroundColor: 'var(--theme-elevation-0)',
97
+ boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
98
+ maxHeight: '300px',
99
+ overflowY: 'auto',
100
+ }, children: [_jsx("div", { style: {
101
+ marginBottom: '16px',
102
+ fontSize: '14px',
103
+ fontWeight: 600,
104
+ color: 'var(--theme-elevation-800)',
105
+ }, children: "\uD83C\uDFA8 Professional Color Picker" }), Object.entries(colorPresets).map(([groupName, colors]) => (_jsxs("div", { style: { marginBottom: '16px' }, children: [_jsx("div", { style: {
106
+ marginBottom: '8px',
107
+ fontSize: '12px',
108
+ fontWeight: 500,
109
+ color: 'var(--theme-elevation-600)',
110
+ textTransform: 'uppercase',
111
+ letterSpacing: '0.05em',
112
+ }, children: groupName }), _jsx("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(6, 1fr)', gap: '6px' }, children: colors.map((color) => (_jsx("button", { type: "button", onClick: () => handleColorChange(color), style: {
113
+ width: '36px',
114
+ height: '36px',
115
+ borderRadius: '6px',
116
+ border: value === color
117
+ ? '3px solid var(--theme-primary-500)'
118
+ : '1px solid var(--theme-elevation-150)',
119
+ backgroundColor: color,
120
+ cursor: 'pointer',
121
+ transition: 'all 0.2s ease',
122
+ position: 'relative',
123
+ overflow: 'hidden',
124
+ boxShadow: value === color
125
+ ? '0 0 0 2px var(--theme-primary-200)'
126
+ : '0 1px 3px rgba(0, 0, 0, 0.1)',
127
+ }, title: `${color} - Click to select`, onMouseEnter: (event) => {
128
+ event.currentTarget.style.transform = 'scale(1.1)';
129
+ }, onMouseLeave: (event) => {
130
+ event.currentTarget.style.transform = 'scale(1)';
131
+ }, children: color === '#ffffff' && (_jsx("div", { style: {
132
+ position: 'absolute',
133
+ inset: 0,
134
+ border: '1px solid var(--theme-elevation-150)',
135
+ borderRadius: 'inherit',
136
+ } })) }, color))) })] }, groupName))), _jsxs("div", { style: {
137
+ marginTop: '16px',
138
+ paddingTop: '16px',
139
+ borderTop: '1px solid var(--theme-elevation-100)',
140
+ }, children: [_jsx("div", { style: {
141
+ marginBottom: '8px',
142
+ fontSize: '12px',
143
+ fontWeight: 500,
144
+ color: 'var(--theme-elevation-600)',
145
+ }, children: "CUSTOM COLOR" }), _jsxs("div", { style: { display: 'flex', gap: '8px', alignItems: 'center' }, children: [_jsx("input", { type: "color", value: value?.startsWith('#') ? value : '#3b82f6', onChange: handleInputChange, style: {
146
+ width: '36px',
147
+ height: '36px',
148
+ border: 'none',
149
+ borderRadius: '6px',
150
+ cursor: 'pointer',
151
+ } }), _jsxs("div", { style: { fontSize: '11px', color: '#9ca3af', lineHeight: 1.3 }, children: [_jsx("div", { children: _jsx("strong", { children: "Formats:" }) }), _jsx("div", { children: "Hex, RGB, HSL, CSS vars" })] })] })] })] }))] }));
152
+ }
153
+ //# sourceMappingURL=ColorPickerField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerField.js","sourceRoot":"","sources":["../../src/fields/ColorPickerField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SelectFieldClientProps } from 'payload';
2
+ export default function RadiusField({ field, ...props }: SelectFieldClientProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=RadiusField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadiusField.d.ts","sourceRoot":"","sources":["../../src/fields/RadiusField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAarD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,2CA2J9E"}
@@ -0,0 +1,91 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useField } from '@payloadcms/ui';
4
+ import { useMemo } from 'react';
5
+ import { borderRadiusPresets } from '@/providers/Theme/themeConfig';
6
+ export default function RadiusField({ field, ...props }) {
7
+ const { value, setValue } = useField({ path: props.path });
8
+ const label = typeof field.label === 'string' ? field.label : '';
9
+ const radiusOptions = useMemo(() => {
10
+ const entries = Object.entries(borderRadiusPresets);
11
+ return entries.map(([key, preset]) => ({
12
+ key,
13
+ label: preset.label,
14
+ css: preset.css,
15
+ }));
16
+ }, []);
17
+ const fallbackKey = radiusOptions[2]?.key ?? radiusOptions[0]?.key ?? 'medium';
18
+ const currentKey = typeof value === 'string' && value in borderRadiusPresets
19
+ ? value
20
+ : fallbackKey;
21
+ const description = typeof field.admin?.description === 'string'
22
+ ? field.admin.description
23
+ : field.admin?.description?.en || field.admin?.description?.cs || null;
24
+ return (_jsxs("div", { className: "field-type", children: [_jsxs("label", { className: "field-label", htmlFor: props.path, children: [label, field.required && _jsx("span", { className: "required", children: "*" })] }), description && (_jsx("p", { style: {
25
+ marginTop: '4px',
26
+ fontSize: '12px',
27
+ lineHeight: 1.5,
28
+ color: 'var(--theme-elevation-600)',
29
+ }, children: description })), _jsx("div", { style: {
30
+ display: 'grid',
31
+ gridTemplateColumns: 'repeat(auto-fit, minmax(160px, 1fr))',
32
+ gap: '16px',
33
+ marginTop: '16px',
34
+ }, children: radiusOptions.map((option) => {
35
+ const isSelected = option.key === currentKey;
36
+ const cardRadius = option.css['--radius-large'] ??
37
+ option.css['--radius-default'] ??
38
+ option.css['--radius-medium'];
39
+ const chipRadius = option.css['--radius-default'] ?? option.css['--radius-small'];
40
+ const pillRadius = option.css['--radius-xl'] ?? option.css['--radius-large'] ?? '999px';
41
+ return (_jsxs("button", { type: "button", onClick: () => setValue(option.key), "aria-pressed": isSelected, style: {
42
+ border: isSelected
43
+ ? '2px solid var(--theme-success-500)'
44
+ : '1px solid var(--theme-elevation-150)',
45
+ borderRadius: '14px',
46
+ backgroundColor: 'var(--theme-elevation-25)',
47
+ padding: '16px',
48
+ display: 'grid',
49
+ gap: '10px',
50
+ textAlign: 'left',
51
+ cursor: 'pointer',
52
+ transition: 'border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease',
53
+ boxShadow: isSelected
54
+ ? '0 10px 20px rgba(34, 197, 94, 0.18)'
55
+ : '0 6px 18px rgba(15, 23, 42, 0.08)',
56
+ transform: isSelected ? 'translateY(-2px)' : 'translateY(0)',
57
+ }, children: [_jsxs("div", { style: {
58
+ display: 'flex',
59
+ alignItems: 'center',
60
+ justifyContent: 'space-between',
61
+ fontWeight: 600,
62
+ fontSize: '13px',
63
+ color: 'var(--theme-elevation-800)',
64
+ }, children: [_jsx("span", { children: option.label }), _jsx("span", { style: { fontSize: '11px', opacity: 0.7 }, children: option.key })] }), _jsxs("div", { style: {
65
+ display: 'grid',
66
+ gap: '10px',
67
+ }, children: [_jsxs("div", { style: {
68
+ display: 'flex',
69
+ gap: '8px',
70
+ alignItems: 'center',
71
+ }, children: [_jsx("div", { style: {
72
+ width: '50px',
73
+ height: '34px',
74
+ backgroundColor: 'var(--theme-elevation-100)',
75
+ border: '1px solid var(--theme-elevation-200)',
76
+ borderRadius: cardRadius ?? '0',
77
+ } }), _jsx("div", { style: {
78
+ flex: 1,
79
+ height: '14px',
80
+ backgroundColor: 'var(--theme-primary-500)',
81
+ borderRadius: pillRadius,
82
+ } })] }), _jsxs("div", { style: {
83
+ display: 'flex',
84
+ gap: '6px',
85
+ flexWrap: 'wrap',
86
+ fontSize: '11px',
87
+ color: 'var(--theme-elevation-600)',
88
+ }, children: [_jsxs("span", { children: ["Card ", cardRadius ?? '—'] }), _jsxs("span", { children: ["Chip ", chipRadius ?? '—'] }), _jsxs("span", { children: ["Pill ", pillRadius] })] })] })] }, option.key));
89
+ }) }), _jsx("input", { type: "hidden", id: props.path, value: currentKey, readOnly: true })] }));
90
+ }
91
+ //# sourceMappingURL=RadiusField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadiusField.js","sourceRoot":"","sources":["../../src/fields/RadiusField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { TextFieldClientComponent } from 'payload';
2
+ import './ThemeColorPickerField.scss';
3
+ declare const ThemeColorPickerField: TextFieldClientComponent;
4
+ export default ThemeColorPickerField;
5
+ //# sourceMappingURL=ThemeColorPickerField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeColorPickerField.d.ts","sourceRoot":"","sources":["../../src/fields/ThemeColorPickerField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEvD,OAAO,8BAA8B,CAAA;AAkBrC,QAAA,MAAM,qBAAqB,EAAE,wBA8H5B,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -0,0 +1,84 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useField, useFormFields } from '@payloadcms/ui';
4
+ import { useEffect, useMemo, useState } from 'react';
5
+ import './ThemeColorPickerField.scss';
6
+ function resolveLocalizedValue(value, fallback) {
7
+ if (typeof value === 'string') {
8
+ return value;
9
+ }
10
+ if (typeof value === 'object' && value !== null) {
11
+ const localized = value;
12
+ const resolved = localized.en ?? localized.cs ?? localized[''];
13
+ if (typeof resolved === 'string') {
14
+ return resolved;
15
+ }
16
+ }
17
+ return fallback;
18
+ }
19
+ const ThemeColorPickerField = ({ field, path }) => {
20
+ const { value, setValue } = useField({ path });
21
+ const [localValue, setLocalValue] = useState(value || '');
22
+ const allFields = useFormFields(([fields]) => fields);
23
+ const mode = path.includes('lightMode') ? 'lightMode' : 'darkMode';
24
+ const modePrefix = `themeConfiguration.${mode}`;
25
+ useEffect(() => {
26
+ setLocalValue(value || '');
27
+ }, [value]);
28
+ const colorValues = useMemo(() => {
29
+ if (!allFields) {
30
+ return {};
31
+ }
32
+ const names = [
33
+ 'background',
34
+ 'foreground',
35
+ 'card',
36
+ 'cardForeground',
37
+ 'popover',
38
+ 'popoverForeground',
39
+ 'primary',
40
+ 'primaryForeground',
41
+ 'secondary',
42
+ 'secondaryForeground',
43
+ 'muted',
44
+ 'mutedForeground',
45
+ 'accent',
46
+ 'accentForeground',
47
+ 'destructive',
48
+ 'destructiveForeground',
49
+ 'border',
50
+ 'input',
51
+ 'ring',
52
+ ];
53
+ return names.reduce((accumulator, name) => {
54
+ const fieldState = allFields[`${modePrefix}.${name}`];
55
+ const parsedValue = typeof fieldState?.value === 'string' ? fieldState.value : undefined;
56
+ accumulator[name] = parsedValue ?? '';
57
+ return accumulator;
58
+ }, {});
59
+ }, [allFields, modePrefix]);
60
+ function handleChange(nextValue) {
61
+ setLocalValue(nextValue);
62
+ setValue(nextValue);
63
+ }
64
+ const fieldName = path.split('.').pop() || '';
65
+ const label = resolveLocalizedValue(field.label, fieldName);
66
+ const description = resolveLocalizedValue(field.admin?.description, '');
67
+ return (_jsxs("div", { className: "theme-color-picker-field", children: [_jsxs("div", { className: "field-header", children: [_jsx("label", { className: "field-label", children: label }), description && _jsx("div", { className: "field-description", children: description })] }), _jsxs("div", { className: "color-picker-container", children: [_jsxs("div", { className: "color-input-wrapper", children: [_jsx("input", { type: "color", value: localValue || '#000000', onChange: (event) => handleChange(event.target.value), className: "color-input" }), _jsx("input", { type: "text", value: localValue || '', onChange: (event) => handleChange(event.target.value), placeholder: "#000000", className: "text-input", pattern: "^#[0-9A-Fa-f]{6}$" })] }), _jsx("div", { className: "color-preview", style: { backgroundColor: localValue || '#000000' }, children: _jsx("span", { className: "preview-label", children: localValue || 'Not set' }) })] }), (fieldName === 'primary' || fieldName === 'background') && (_jsx("div", { className: "mini-preview", style: {
68
+ backgroundColor: colorValues.background || '#ffffff',
69
+ color: colorValues.foreground || '#000000',
70
+ borderColor: colorValues.border || '#e2e8f0',
71
+ }, children: _jsxs("div", { className: "preview-card", style: {
72
+ backgroundColor: colorValues.card || '#ffffff',
73
+ color: colorValues.cardForeground || '#000000',
74
+ borderColor: colorValues.border || '#e2e8f0',
75
+ }, children: [_jsx("button", { className: "preview-button", style: {
76
+ backgroundColor: colorValues.primary || '#0070f3',
77
+ color: colorValues.primaryForeground || '#ffffff',
78
+ }, children: "Primary Button" }), _jsx("button", { className: "preview-button secondary", style: {
79
+ backgroundColor: colorValues.secondary || '#f1f5f9',
80
+ color: colorValues.secondaryForeground || '#0f172a',
81
+ }, children: "Secondary" })] }) }))] }));
82
+ };
83
+ export default ThemeColorPickerField;
84
+ //# sourceMappingURL=ThemeColorPickerField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeColorPickerField.js","sourceRoot":"","sources":["../../src/fields/ThemeColorPickerField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SelectFieldClientProps } from 'payload';
2
+ export default function ThemePreviewField(props: SelectFieldClientProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ThemePreviewField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemePreviewField.d.ts","sourceRoot":"","sources":["../../src/fields/ThemePreviewField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAiQrD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CA2UtE"}