@kilivi/payloadcms-theme-management 0.2.1 → 0.2.3

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 (43) hide show
  1. package/README.md +26 -4
  2. package/dist/extended-presets.d.ts +16 -1
  3. package/dist/extended-presets.d.ts.map +1 -1
  4. package/dist/extended-presets.js +8 -1
  5. package/dist/extended-presets.js.map +1 -1
  6. package/dist/fields/ThemeColorPickerField.css +350 -65
  7. package/dist/fields/ThemeColorPickerField.d.ts.map +1 -1
  8. package/dist/fields/ThemeColorPickerField.js +131 -13
  9. package/dist/fields/ThemeColorPickerField.js.map +1 -1
  10. package/dist/fields/ThemeLivePreview.css +190 -0
  11. package/dist/fields/ThemeLivePreview.d.ts +4 -0
  12. package/dist/fields/ThemeLivePreview.d.ts.map +1 -0
  13. package/dist/fields/ThemeLivePreview.js +198 -0
  14. package/dist/fields/ThemeLivePreview.js.map +1 -0
  15. package/dist/fields/extendedThemeFields.d.ts +121 -9
  16. package/dist/fields/extendedThemeFields.d.ts.map +1 -1
  17. package/dist/fields/extendedThemeFields.js +298 -103
  18. package/dist/fields/extendedThemeFields.js.map +1 -1
  19. package/dist/fields/themeConfigurationField.d.ts +14 -3
  20. package/dist/fields/themeConfigurationField.d.ts.map +1 -1
  21. package/dist/fields/themeConfigurationField.js +22 -23
  22. package/dist/fields/themeConfigurationField.js.map +1 -1
  23. package/dist/index.d.ts +2 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +77 -15
  26. package/dist/index.js.map +1 -1
  27. package/dist/tweakcn-presets.d.ts +10 -0
  28. package/dist/tweakcn-presets.d.ts.map +1 -0
  29. package/dist/tweakcn-presets.js +714 -0
  30. package/dist/tweakcn-presets.js.map +1 -0
  31. package/dist/tweakcn-special-themes.d.ts +8 -0
  32. package/dist/tweakcn-special-themes.d.ts.map +1 -0
  33. package/dist/tweakcn-special-themes.js +614 -0
  34. package/dist/tweakcn-special-themes.js.map +1 -0
  35. package/dist/views/ThemePreviewView.d.ts +8 -0
  36. package/dist/views/ThemePreviewView.d.ts.map +1 -0
  37. package/dist/views/ThemePreviewView.js +44 -0
  38. package/dist/views/ThemePreviewView.js.map +1 -0
  39. package/dist/views/ThemePreviewViewClient.d.ts +7 -0
  40. package/dist/views/ThemePreviewViewClient.d.ts.map +1 -0
  41. package/dist/views/ThemePreviewViewClient.js +12 -0
  42. package/dist/views/ThemePreviewViewClient.js.map +1 -0
  43. package/package.json +6 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/fields/ThemeLivePreview.tsx"],"sourcesContent":["'use client'\n\n/**\n * Theme Live Preview Component\n * Real-time preview of theme configuration\n * Inspired by Payload CMS 3 Live Preview\n */\n\nimport { useFormFields } from '@payloadcms/ui'\nimport { useEffect, useState } from 'react'\nimport './ThemeLivePreview.css'\n\nexport const ThemeLivePreview = () => {\n const allFields = useFormFields(([fields]) => fields)\n const [previewMode, setPreviewMode] = useState<'light' | 'dark'>('light')\n\n const themeConfig = allFields?.themeConfiguration?.value as Record<string, any> | undefined\n\n // Extract colors from theme configuration\n const lightMode = themeConfig?.lightMode\n const darkMode = themeConfig?.darkMode\n const activeMode = previewMode === 'light' ? lightMode : darkMode\n\n // Apply theme colors to preview\n useEffect(() => {\n if (!activeMode) return\n\n const root = document.documentElement\n Object.entries(activeMode).forEach(([key, value]) => {\n if (typeof value === 'string') {\n root.style.setProperty(`--preview-${key}`, value)\n }\n })\n }, [activeMode])\n\n if (!themeConfig) {\n return (\n <div className=\"theme-live-preview-empty\">\n <p>Configure your theme to see live preview</p>\n </div>\n )\n }\n\n return (\n <div className=\"theme-live-preview-container\" data-mode={previewMode}>\n {/* Mode Toggle */}\n <div className=\"preview-header\">\n <h3>Live Theme Preview</h3>\n <div className=\"mode-toggle\">\n <button\n type=\"button\"\n className={previewMode === 'light' ? 'active' : ''}\n onClick={() => setPreviewMode('light')}\n >\n ☀️ Light\n </button>\n <button\n type=\"button\"\n className={previewMode === 'dark' ? 'active' : ''}\n onClick={() => setPreviewMode('dark')}\n >\n 🌙 Dark\n </button>\n </div>\n </div>\n\n {/* Preview Content */}\n <div\n className=\"preview-content\"\n style={{\n backgroundColor: activeMode?.background || '#ffffff',\n color: activeMode?.foreground || '#000000',\n }}\n >\n {/* Header Section */}\n <div className=\"preview-section\">\n <h1 style={{ color: activeMode?.foreground }}>Welcome to Your Site</h1>\n <p style={{ color: activeMode?.mutedForeground }}>\n This is a live preview of your theme configuration\n </p>\n </div>\n\n {/* Card Section */}\n <div className=\"preview-cards\">\n <div\n className=\"preview-card\"\n style={{\n backgroundColor: activeMode?.card || '#ffffff',\n color: activeMode?.cardForeground || '#000000',\n borderColor: activeMode?.border || '#e2e8f0',\n }}\n >\n <h3>Featured Content</h3>\n <p style={{ color: activeMode?.mutedForeground }}>\n Card component with theme colors\n </p>\n <button\n className=\"preview-btn-primary\"\n style={{\n backgroundColor: activeMode?.primary || '#0070f3',\n color: activeMode?.primaryForeground || '#ffffff',\n }}\n >\n Primary Action\n </button>\n </div>\n\n <div\n className=\"preview-card\"\n style={{\n backgroundColor: activeMode?.card || '#ffffff',\n color: activeMode?.cardForeground || '#000000',\n borderColor: activeMode?.border || '#e2e8f0',\n }}\n >\n <h3>Secondary Card</h3>\n <p style={{ color: activeMode?.mutedForeground }}>\n Another card to showcase your theme\n </p>\n <button\n className=\"preview-btn-secondary\"\n style={{\n backgroundColor: activeMode?.secondary || '#f1f5f9',\n color: activeMode?.secondaryForeground || '#0f172a',\n }}\n >\n Secondary\n </button>\n </div>\n </div>\n\n {/* UI Elements */}\n <div className=\"preview-ui-elements\">\n <input\n type=\"text\"\n placeholder=\"Input field\"\n className=\"preview-input\"\n style={{\n backgroundColor: activeMode?.background,\n color: activeMode?.foreground,\n borderColor: activeMode?.input || activeMode?.border,\n }}\n />\n\n <div\n className=\"preview-badge\"\n style={{\n backgroundColor: activeMode?.accent || '#f1f5f9',\n color: activeMode?.accentForeground || '#0f172a',\n }}\n >\n Accent Badge\n </div>\n\n <button\n className=\"preview-btn-destructive\"\n style={{\n backgroundColor: activeMode?.destructive || '#ef4444',\n color: activeMode?.destructiveForeground || '#ffffff',\n }}\n >\n Destructive\n </button>\n </div>\n\n {/* Muted Section */}\n <div\n className=\"preview-muted\"\n style={{\n backgroundColor: activeMode?.muted || '#f1f5f9',\n color: activeMode?.mutedForeground || '#64748b',\n }}\n >\n <p>Muted background section for less prominent content</p>\n </div>\n </div>\n </div>\n )\n}\n\nexport default ThemeLivePreview\n"],"names":["useFormFields","useEffect","useState","ThemeLivePreview","allFields","fields","previewMode","setPreviewMode","themeConfig","themeConfiguration","value","lightMode","darkMode","activeMode","root","document","documentElement","Object","entries","forEach","key","style","setProperty","div","className","p","data-mode","h3","button","type","onClick","backgroundColor","background","color","foreground","h1","mutedForeground","card","cardForeground","borderColor","border","primary","primaryForeground","secondary","secondaryForeground","input","placeholder","accent","accentForeground","destructive","destructiveForeground","muted"],"mappings":"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"}
@@ -1,26 +1,138 @@
1
1
  import type { Field } from 'payload';
2
2
  /**
3
- * Extended Theme Color Fields for Light Mode
3
+ * Base Color Tokens (19 tokens)
4
+ * Required for all themes
4
5
  */
5
- export declare const extendedLightModeFields: Field[];
6
+ export declare const baseColorFields: Field[];
6
7
  /**
7
- * Chart color fields (for data visualization)
8
+ * Chart Colors (5 tokens)
9
+ * For data visualization
8
10
  */
9
11
  export declare const chartColorFields: Field[];
10
12
  /**
11
- * Extended Theme Selection Field
13
+ * Shadow Controls (6 properties)
14
+ * TweakCN essential feature
15
+ */
16
+ export declare const shadowFields: Field[];
17
+ /**
18
+ * Font Family Configuration (3 families)
19
+ * TweakCN essential feature
20
+ */
21
+ export declare const fontFamilyFields: Field[];
22
+ /**
23
+ * Advanced Typography (2 properties)
24
+ */
25
+ export declare const advancedTypographyFields: Field[];
26
+ /**
27
+ * Border Radius Configuration
28
+ */
29
+ export declare const designSystemFields: Field[];
30
+ /**
31
+ * Extended Theme Selection Field with Visual Preview
12
32
  */
13
33
  export declare const extendedThemeSelectionField: Field;
14
34
  /**
15
- * Extended Light Mode Configuration
35
+ * Unified Light Mode Configuration
36
+ * Combines all color tokens in one place
37
+ */
38
+ export declare const lightModeColorsField: Field;
39
+ /**
40
+ * Unified Dark Mode Configuration
41
+ */
42
+ export declare const darkModeColorsField: Field;
43
+ /**
44
+ * Shadow Configuration Section
16
45
  */
17
- export declare const extendedLightModeField: Field;
46
+ export declare const shadowConfigField: Field;
18
47
  /**
19
- * Extended Dark Mode Configuration
48
+ * Typography Configuration Section
20
49
  */
21
- export declare const extendedDarkModeField: Field;
50
+ export declare const typographyConfigField: Field;
22
51
  /**
23
- * Chart Colors Configuration
52
+ * Design System Configuration
24
53
  */
54
+ export declare const designSystemConfigField: Field;
55
+ export declare const extendedLightModeField: {
56
+ fields: Field[];
57
+ type: "collapsible";
58
+ } & {
59
+ admin?: {
60
+ components?: {
61
+ afterInput?: import("payload").CustomPreviewButton[];
62
+ beforeInput?: import("payload").CustomPreviewButton[];
63
+ Label?: import("payload").CustomPreviewButton<import("payload").CollapsibleFieldLabelClientComponent | import("payload").CollapsibleFieldLabelServerComponent>;
64
+ } & {
65
+ Cell?: import("payload").PayloadComponent<import("payload").DefaultServerCellComponentProps, import("payload").DefaultCellComponentProps>;
66
+ Description?: import("payload").PayloadComponent<import("payload").FieldDescriptionServerProps, import("payload").FieldDescriptionClientProps>;
67
+ Diff?: import("payload").PayloadComponent<import("payload").FieldDiffServerProps, import("payload").FieldDiffClientProps>;
68
+ Field?: import("payload").PayloadComponent<import("payload").FieldClientComponent | import("payload").FieldServerComponent>;
69
+ Filter?: import("payload").PayloadComponent;
70
+ };
71
+ initCollapsed?: boolean;
72
+ } & {
73
+ className?: string;
74
+ components?: {
75
+ Cell?: import("payload").PayloadComponent<import("payload").DefaultServerCellComponentProps, import("payload").DefaultCellComponentProps>;
76
+ Description?: import("payload").PayloadComponent<import("payload").FieldDescriptionServerProps, import("payload").FieldDescriptionClientProps>;
77
+ Diff?: import("payload").PayloadComponent<import("payload").FieldDiffServerProps, import("payload").FieldDiffClientProps>;
78
+ Field?: import("payload").PayloadComponent<import("payload").FieldClientComponent | import("payload").FieldServerComponent>;
79
+ Filter?: import("payload").PayloadComponent;
80
+ };
81
+ condition?: import("payload").Condition;
82
+ custom?: Record<string, any>;
83
+ description?: import("payload").Description;
84
+ disableBulkEdit?: boolean;
85
+ disabled?: boolean;
86
+ disableListColumn?: boolean;
87
+ disableListFilter?: boolean;
88
+ hidden?: boolean;
89
+ position?: "sidebar";
90
+ readOnly?: boolean;
91
+ style?: import("react").CSSProperties;
92
+ width?: import("react").CSSProperties["width"];
93
+ };
94
+ label: Required<import("payload").FieldBase["label"]>;
95
+ } & Omit<import("payload").FieldBase, "validate" | "hooks" | "label" | "localized" | "name" | "virtual">;
96
+ export declare const extendedDarkModeField: {
97
+ fields: Field[];
98
+ type: "collapsible";
99
+ } & {
100
+ admin?: {
101
+ components?: {
102
+ afterInput?: import("payload").CustomPreviewButton[];
103
+ beforeInput?: import("payload").CustomPreviewButton[];
104
+ Label?: import("payload").CustomPreviewButton<import("payload").CollapsibleFieldLabelClientComponent | import("payload").CollapsibleFieldLabelServerComponent>;
105
+ } & {
106
+ Cell?: import("payload").PayloadComponent<import("payload").DefaultServerCellComponentProps, import("payload").DefaultCellComponentProps>;
107
+ Description?: import("payload").PayloadComponent<import("payload").FieldDescriptionServerProps, import("payload").FieldDescriptionClientProps>;
108
+ Diff?: import("payload").PayloadComponent<import("payload").FieldDiffServerProps, import("payload").FieldDiffClientProps>;
109
+ Field?: import("payload").PayloadComponent<import("payload").FieldClientComponent | import("payload").FieldServerComponent>;
110
+ Filter?: import("payload").PayloadComponent;
111
+ };
112
+ initCollapsed?: boolean;
113
+ } & {
114
+ className?: string;
115
+ components?: {
116
+ Cell?: import("payload").PayloadComponent<import("payload").DefaultServerCellComponentProps, import("payload").DefaultCellComponentProps>;
117
+ Description?: import("payload").PayloadComponent<import("payload").FieldDescriptionServerProps, import("payload").FieldDescriptionClientProps>;
118
+ Diff?: import("payload").PayloadComponent<import("payload").FieldDiffServerProps, import("payload").FieldDiffClientProps>;
119
+ Field?: import("payload").PayloadComponent<import("payload").FieldClientComponent | import("payload").FieldServerComponent>;
120
+ Filter?: import("payload").PayloadComponent;
121
+ };
122
+ condition?: import("payload").Condition;
123
+ custom?: Record<string, any>;
124
+ description?: import("payload").Description;
125
+ disableBulkEdit?: boolean;
126
+ disabled?: boolean;
127
+ disableListColumn?: boolean;
128
+ disableListFilter?: boolean;
129
+ hidden?: boolean;
130
+ position?: "sidebar";
131
+ readOnly?: boolean;
132
+ style?: import("react").CSSProperties;
133
+ width?: import("react").CSSProperties["width"];
134
+ };
135
+ label: Required<import("payload").FieldBase["label"]>;
136
+ } & Omit<import("payload").FieldBase, "validate" | "hooks" | "label" | "localized" | "name" | "virtual">;
25
137
  export declare const chartColorsField: Field;
26
138
  //# sourceMappingURL=extendedThemeFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extendedThemeFields.d.ts","sourceRoot":"","sources":["../../src/fields/extendedThemeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAoCpC;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,EAgG1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EA0BnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAezC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAoBpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAoB9B,CAAA"}
1
+ {"version":3,"file":"extendedThemeFields.d.ts","sourceRoot":"","sources":["../../src/fields/extendedThemeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAsEpC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,EAgGlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EA0BnC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,EAoC/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAmBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,EAa3C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAOrC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAezC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAoBlC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAoBjC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAoBrC,CAAA;AAID,eAAO,MAAM,sBAAsB;;;;;kBAOmuhB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGAPx0C,CAAA;AAC1D,eAAO,MAAM,qBAAqB;;;;;kBAMouhB,CAAC;sBAA0B,CAAC;uBAA4C,CAAC;iBAAsC,CAAC;;;;;;;;qBAAsJ,CAAC;;;;gBAA9jgB,CAAC;uBAAmG,CAAC;gBAA0F,CAAC;iBAA6E,CAAC;kBAAoK,CAAC;;;;;;;;;;;;;;;;wGAN10C,CAAA;AACxD,eAAO,MAAM,gBAAgB,EAIxB,KAAK,CAAA"}