@duskmoon-dev/core 0.1.0 → 1.0.0
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/README.md +366 -78
- package/dist/components/accordion.css +244 -0
- package/dist/components/alert.css +199 -0
- package/dist/components/appbar.css +308 -0
- package/dist/components/autocomplete.css +269 -0
- package/dist/components/avatar.css +167 -0
- package/dist/components/badge.css +178 -0
- package/dist/components/bottom-navigation.css +263 -0
- package/dist/components/bottomsheet.css +334 -0
- package/dist/components/button.css +474 -0
- package/dist/components/card.css +220 -0
- package/dist/components/chip.css +211 -0
- package/dist/components/collapse.css +254 -0
- package/dist/components/datepicker.css +347 -0
- package/dist/components/dialog.css +173 -0
- package/dist/components/divider.css +284 -0
- package/dist/components/drawer.css +371 -0
- package/dist/components/file-upload.css +321 -0
- package/dist/components/form.css +441 -0
- package/dist/components/index.css +9994 -0
- package/dist/components/input.css +240 -0
- package/dist/components/list.css +188 -0
- package/dist/components/markdown-body.css +405 -0
- package/dist/components/modal.css +291 -0
- package/dist/components/navigation.css +392 -0
- package/dist/components/popover.css +326 -0
- package/dist/components/progress.css +238 -0
- package/dist/components/rating.css +230 -0
- package/dist/components/skeleton.css +216 -0
- package/dist/components/slider.css +327 -0
- package/dist/components/snackbar.css +311 -0
- package/dist/components/stepper.css +313 -0
- package/dist/components/switch.css +277 -0
- package/dist/components/table.css +199 -0
- package/dist/components/timeline.css +353 -0
- package/dist/components/toast.css +251 -0
- package/dist/components/tooltip.css +284 -0
- package/dist/index.css +10699 -0
- package/dist/themes/moonlight.css +168 -0
- package/dist/themes/sunshine.css +166 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/plugin.d.ts +69 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/theme.d.ts +202 -0
- package/dist/types/theme.d.ts.map +1 -0
- package/package.json +137 -18
- package/dist/index.cjs +0 -243
- package/dist/index.cjs.map +0 -15
- package/dist/index.js +0 -211
- package/dist/index.js.map +0 -15
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Moonlight Theme - Dark Mode
|
|
3
|
+
* A cool, calm dark theme optimized for low-light viewing
|
|
4
|
+
* Uses OKLCH format: "oklch(L% C H)"
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
[data-theme="moonlight"] {
|
|
8
|
+
color-scheme: dark;
|
|
9
|
+
|
|
10
|
+
/* ============================================
|
|
11
|
+
* BRAND COLORS
|
|
12
|
+
* ============================================ */
|
|
13
|
+
|
|
14
|
+
/* Primary Color Family - Cool Blue */
|
|
15
|
+
--color-primary: oklch(68% 0.18 255);
|
|
16
|
+
--color-primary-content: oklch(100% 0 0);
|
|
17
|
+
--color-primary-container: oklch(35% 0.08 255);
|
|
18
|
+
--color-on-primary-container: oklch(88% 0.08 255);
|
|
19
|
+
|
|
20
|
+
/* Secondary Color Family - Soft Teal */
|
|
21
|
+
--color-secondary: oklch(72% 0.10 190);
|
|
22
|
+
--color-secondary-content: oklch(20% 0 0);
|
|
23
|
+
--color-secondary-container: oklch(32% 0.05 190);
|
|
24
|
+
--color-on-secondary-container: oklch(85% 0.06 190);
|
|
25
|
+
|
|
26
|
+
/* Tertiary Color Family - Lavender */
|
|
27
|
+
--color-tertiary: oklch(72% 0.14 310);
|
|
28
|
+
--color-tertiary-content: oklch(20% 0 0);
|
|
29
|
+
--color-tertiary-container: oklch(35% 0.08 310);
|
|
30
|
+
--color-on-tertiary-container: oklch(88% 0.06 310);
|
|
31
|
+
|
|
32
|
+
/* ============================================
|
|
33
|
+
* SURFACE COLORS
|
|
34
|
+
* ============================================ */
|
|
35
|
+
|
|
36
|
+
--color-surface: oklch(20% 0.02 260);
|
|
37
|
+
--color-surface-dim: oklch(17% 0.02 260);
|
|
38
|
+
--color-surface-bright: oklch(28% 0.02 260);
|
|
39
|
+
--color-surface-container-lowest: oklch(14% 0.02 260);
|
|
40
|
+
--color-surface-container-low: oklch(20% 0.02 260);
|
|
41
|
+
--color-surface-container: oklch(22% 0.02 260);
|
|
42
|
+
--color-surface-container-high: oklch(25% 0.02 260);
|
|
43
|
+
--color-surface-container-highest: oklch(28% 0.01 260);
|
|
44
|
+
--color-on-surface: oklch(95% 0.01 260);
|
|
45
|
+
--color-on-surface-variant: oklch(75% 0.01 260);
|
|
46
|
+
|
|
47
|
+
/* ============================================
|
|
48
|
+
* SEMANTIC COLORS
|
|
49
|
+
* ============================================ */
|
|
50
|
+
|
|
51
|
+
/* Info - Light Blue */
|
|
52
|
+
--color-info: oklch(72% 0.12 235);
|
|
53
|
+
--color-info-content: oklch(20% 0 0);
|
|
54
|
+
--color-info-container: oklch(32% 0.06 235);
|
|
55
|
+
--color-on-info-container: oklch(88% 0.06 235);
|
|
56
|
+
|
|
57
|
+
/* Success - Mint Green */
|
|
58
|
+
--color-success: oklch(65% 0.12 150);
|
|
59
|
+
--color-success-content: oklch(20% 0 0);
|
|
60
|
+
--color-success-container: oklch(30% 0.05 150);
|
|
61
|
+
--color-on-success-container: oklch(85% 0.06 150);
|
|
62
|
+
|
|
63
|
+
/* Warning - Warm Amber */
|
|
64
|
+
--color-warning: oklch(82% 0.14 80);
|
|
65
|
+
--color-warning-content: oklch(20% 0 0);
|
|
66
|
+
--color-warning-container: oklch(35% 0.06 80);
|
|
67
|
+
--color-on-warning-container: oklch(90% 0.06 80);
|
|
68
|
+
|
|
69
|
+
/* Error - Soft Red */
|
|
70
|
+
--color-error: oklch(62% 0.18 25);
|
|
71
|
+
--color-error-content: oklch(100% 0 0);
|
|
72
|
+
--color-error-container: oklch(30% 0.08 25);
|
|
73
|
+
--color-on-error-container: oklch(88% 0.06 25);
|
|
74
|
+
|
|
75
|
+
/* ============================================
|
|
76
|
+
* NEUTRAL COLORS (Base Scale)
|
|
77
|
+
* ============================================ */
|
|
78
|
+
|
|
79
|
+
--color-base-100: oklch(20% 0.02 260);
|
|
80
|
+
--color-base-200: oklch(23% 0.02 260);
|
|
81
|
+
--color-base-300: oklch(26% 0.02 260);
|
|
82
|
+
--color-base-400: oklch(32% 0.01 260);
|
|
83
|
+
--color-base-500: oklch(44% 0.01 260);
|
|
84
|
+
--color-base-600: oklch(58% 0.01 260);
|
|
85
|
+
--color-base-700: oklch(70% 0.01 260);
|
|
86
|
+
--color-base-800: oklch(84% 0.01 260);
|
|
87
|
+
--color-base-900: oklch(94% 0.01 260);
|
|
88
|
+
--color-base-content: oklch(95% 0.01 260);
|
|
89
|
+
|
|
90
|
+
/* ============================================
|
|
91
|
+
* OUTLINE COLORS
|
|
92
|
+
* ============================================ */
|
|
93
|
+
|
|
94
|
+
--color-outline: oklch(44% 0.01 260);
|
|
95
|
+
--color-outline-variant: oklch(35% 0.01 260);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* System preference: prefers-color-scheme dark */
|
|
99
|
+
@media (prefers-color-scheme: dark) {
|
|
100
|
+
:root:not([data-theme]) {
|
|
101
|
+
color-scheme: dark;
|
|
102
|
+
|
|
103
|
+
/* Brand Colors */
|
|
104
|
+
--color-primary: oklch(68% 0.18 255);
|
|
105
|
+
--color-primary-content: oklch(100% 0 0);
|
|
106
|
+
--color-primary-container: oklch(35% 0.08 255);
|
|
107
|
+
--color-on-primary-container: oklch(88% 0.08 255);
|
|
108
|
+
|
|
109
|
+
--color-secondary: oklch(72% 0.10 190);
|
|
110
|
+
--color-secondary-content: oklch(20% 0 0);
|
|
111
|
+
--color-secondary-container: oklch(32% 0.05 190);
|
|
112
|
+
--color-on-secondary-container: oklch(85% 0.06 190);
|
|
113
|
+
|
|
114
|
+
--color-tertiary: oklch(72% 0.14 310);
|
|
115
|
+
--color-tertiary-content: oklch(20% 0 0);
|
|
116
|
+
--color-tertiary-container: oklch(35% 0.08 310);
|
|
117
|
+
--color-on-tertiary-container: oklch(88% 0.06 310);
|
|
118
|
+
|
|
119
|
+
/* Surface Colors */
|
|
120
|
+
--color-surface: oklch(20% 0.02 260);
|
|
121
|
+
--color-surface-dim: oklch(17% 0.02 260);
|
|
122
|
+
--color-surface-bright: oklch(28% 0.02 260);
|
|
123
|
+
--color-surface-container-lowest: oklch(14% 0.02 260);
|
|
124
|
+
--color-surface-container-low: oklch(20% 0.02 260);
|
|
125
|
+
--color-surface-container: oklch(22% 0.02 260);
|
|
126
|
+
--color-surface-container-high: oklch(25% 0.02 260);
|
|
127
|
+
--color-surface-container-highest: oklch(28% 0.01 260);
|
|
128
|
+
--color-on-surface: oklch(95% 0.01 260);
|
|
129
|
+
--color-on-surface-variant: oklch(75% 0.01 260);
|
|
130
|
+
|
|
131
|
+
/* Semantic Colors */
|
|
132
|
+
--color-info: oklch(72% 0.12 235);
|
|
133
|
+
--color-info-content: oklch(20% 0 0);
|
|
134
|
+
--color-info-container: oklch(32% 0.06 235);
|
|
135
|
+
--color-on-info-container: oklch(88% 0.06 235);
|
|
136
|
+
|
|
137
|
+
--color-success: oklch(65% 0.12 150);
|
|
138
|
+
--color-success-content: oklch(20% 0 0);
|
|
139
|
+
--color-success-container: oklch(30% 0.05 150);
|
|
140
|
+
--color-on-success-container: oklch(85% 0.06 150);
|
|
141
|
+
|
|
142
|
+
--color-warning: oklch(82% 0.14 80);
|
|
143
|
+
--color-warning-content: oklch(20% 0 0);
|
|
144
|
+
--color-warning-container: oklch(35% 0.06 80);
|
|
145
|
+
--color-on-warning-container: oklch(90% 0.06 80);
|
|
146
|
+
|
|
147
|
+
--color-error: oklch(62% 0.18 25);
|
|
148
|
+
--color-error-content: oklch(100% 0 0);
|
|
149
|
+
--color-error-container: oklch(30% 0.08 25);
|
|
150
|
+
--color-on-error-container: oklch(88% 0.06 25);
|
|
151
|
+
|
|
152
|
+
/* Neutral Colors */
|
|
153
|
+
--color-base-100: oklch(20% 0.02 260);
|
|
154
|
+
--color-base-200: oklch(23% 0.02 260);
|
|
155
|
+
--color-base-300: oklch(26% 0.02 260);
|
|
156
|
+
--color-base-400: oklch(32% 0.01 260);
|
|
157
|
+
--color-base-500: oklch(44% 0.01 260);
|
|
158
|
+
--color-base-600: oklch(58% 0.01 260);
|
|
159
|
+
--color-base-700: oklch(70% 0.01 260);
|
|
160
|
+
--color-base-800: oklch(84% 0.01 260);
|
|
161
|
+
--color-base-900: oklch(94% 0.01 260);
|
|
162
|
+
--color-base-content: oklch(95% 0.01 260);
|
|
163
|
+
|
|
164
|
+
/* Outline Colors */
|
|
165
|
+
--color-outline: oklch(44% 0.01 260);
|
|
166
|
+
--color-outline-variant: oklch(35% 0.01 260);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sunshine Theme - Light Mode
|
|
3
|
+
* A warm, bright theme optimized for daylight viewing
|
|
4
|
+
* Uses OKLCH format: "oklch(L% C H)"
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
[data-theme="sunshine"] {
|
|
8
|
+
color-scheme: light;
|
|
9
|
+
|
|
10
|
+
/* ============================================
|
|
11
|
+
* BRAND COLORS
|
|
12
|
+
* ============================================ */
|
|
13
|
+
|
|
14
|
+
/* Primary Color Family - Warm Orange */
|
|
15
|
+
--color-primary: oklch(72% 0.165 55);
|
|
16
|
+
--color-primary-content: oklch(100% 0 0);
|
|
17
|
+
--color-primary-container: oklch(95% 0.04 55);
|
|
18
|
+
--color-on-primary-container: oklch(35% 0.10 55);
|
|
19
|
+
|
|
20
|
+
/* Secondary Color Family - Coral Pink */
|
|
21
|
+
--color-secondary: oklch(68% 0.18 360);
|
|
22
|
+
--color-secondary-content: oklch(100% 0 0);
|
|
23
|
+
--color-secondary-container: oklch(95% 0.04 360);
|
|
24
|
+
--color-on-secondary-container: oklch(40% 0.12 360);
|
|
25
|
+
|
|
26
|
+
/* Tertiary Color Family - Violet */
|
|
27
|
+
--color-tertiary: oklch(62% 0.18 300);
|
|
28
|
+
--color-tertiary-content: oklch(100% 0 0);
|
|
29
|
+
--color-tertiary-container: oklch(95% 0.04 300);
|
|
30
|
+
--color-on-tertiary-container: oklch(38% 0.12 300);
|
|
31
|
+
|
|
32
|
+
/* ============================================
|
|
33
|
+
* SURFACE COLORS
|
|
34
|
+
* ============================================ */
|
|
35
|
+
|
|
36
|
+
--color-surface: oklch(100% 0 0);
|
|
37
|
+
--color-surface-dim: oklch(96% 0.01 85);
|
|
38
|
+
--color-surface-bright: oklch(100% 0 0);
|
|
39
|
+
--color-surface-container-lowest: oklch(100% 0 0);
|
|
40
|
+
--color-surface-container-low: oklch(99% 0.01 85);
|
|
41
|
+
--color-surface-container: oklch(97% 0.01 85);
|
|
42
|
+
--color-surface-container-high: oklch(96% 0.01 85);
|
|
43
|
+
--color-surface-container-highest: oklch(94% 0.01 85);
|
|
44
|
+
--color-on-surface: oklch(27% 0.02 260);
|
|
45
|
+
--color-on-surface-variant: oklch(50% 0.02 260);
|
|
46
|
+
|
|
47
|
+
/* ============================================
|
|
48
|
+
* SEMANTIC COLORS
|
|
49
|
+
* ============================================ */
|
|
50
|
+
|
|
51
|
+
/* Info - Sky Blue */
|
|
52
|
+
--color-info: oklch(68% 0.15 235);
|
|
53
|
+
--color-info-content: oklch(100% 0 0);
|
|
54
|
+
--color-info-container: oklch(95% 0.03 235);
|
|
55
|
+
--color-on-info-container: oklch(35% 0.08 235);
|
|
56
|
+
|
|
57
|
+
/* Success - Green */
|
|
58
|
+
--color-success: oklch(58% 0.14 150);
|
|
59
|
+
--color-success-content: oklch(100% 0 0);
|
|
60
|
+
--color-success-container: oklch(93% 0.04 150);
|
|
61
|
+
--color-on-success-container: oklch(30% 0.08 150);
|
|
62
|
+
|
|
63
|
+
/* Warning - Amber */
|
|
64
|
+
--color-warning: oklch(80% 0.16 80);
|
|
65
|
+
--color-warning-content: oklch(20% 0 0);
|
|
66
|
+
--color-warning-container: oklch(93% 0.05 80);
|
|
67
|
+
--color-on-warning-container: oklch(38% 0.10 80);
|
|
68
|
+
|
|
69
|
+
/* Error - Red */
|
|
70
|
+
--color-error: oklch(60% 0.20 25);
|
|
71
|
+
--color-error-content: oklch(100% 0 0);
|
|
72
|
+
--color-error-container: oklch(93% 0.04 25);
|
|
73
|
+
--color-on-error-container: oklch(32% 0.10 25);
|
|
74
|
+
|
|
75
|
+
/* ============================================
|
|
76
|
+
* NEUTRAL COLORS (Base Scale)
|
|
77
|
+
* ============================================ */
|
|
78
|
+
|
|
79
|
+
--color-base-100: oklch(100% 0 0);
|
|
80
|
+
--color-base-200: oklch(98% 0.01 85);
|
|
81
|
+
--color-base-300: oklch(96% 0.01 85);
|
|
82
|
+
--color-base-400: oklch(91% 0.01 85);
|
|
83
|
+
--color-base-500: oklch(80% 0.01 85);
|
|
84
|
+
--color-base-600: oklch(62% 0.01 85);
|
|
85
|
+
--color-base-700: oklch(50% 0.01 85);
|
|
86
|
+
--color-base-800: oklch(35% 0.01 85);
|
|
87
|
+
--color-base-900: oklch(23% 0.01 85);
|
|
88
|
+
--color-base-content: oklch(27% 0.02 260);
|
|
89
|
+
|
|
90
|
+
/* ============================================
|
|
91
|
+
* OUTLINE COLORS
|
|
92
|
+
* ============================================ */
|
|
93
|
+
|
|
94
|
+
--color-outline: oklch(75% 0.01 260);
|
|
95
|
+
--color-outline-variant: oklch(85% 0.01 260);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* Default theme - applies sunshine when no data-theme is set */
|
|
99
|
+
:root {
|
|
100
|
+
color-scheme: light;
|
|
101
|
+
|
|
102
|
+
/* Brand Colors */
|
|
103
|
+
--color-primary: oklch(72% 0.165 55);
|
|
104
|
+
--color-primary-content: oklch(100% 0 0);
|
|
105
|
+
--color-primary-container: oklch(95% 0.04 55);
|
|
106
|
+
--color-on-primary-container: oklch(35% 0.10 55);
|
|
107
|
+
|
|
108
|
+
--color-secondary: oklch(68% 0.18 360);
|
|
109
|
+
--color-secondary-content: oklch(100% 0 0);
|
|
110
|
+
--color-secondary-container: oklch(95% 0.04 360);
|
|
111
|
+
--color-on-secondary-container: oklch(40% 0.12 360);
|
|
112
|
+
|
|
113
|
+
--color-tertiary: oklch(62% 0.18 300);
|
|
114
|
+
--color-tertiary-content: oklch(100% 0 0);
|
|
115
|
+
--color-tertiary-container: oklch(95% 0.04 300);
|
|
116
|
+
--color-on-tertiary-container: oklch(38% 0.12 300);
|
|
117
|
+
|
|
118
|
+
/* Surface Colors */
|
|
119
|
+
--color-surface: oklch(100% 0 0);
|
|
120
|
+
--color-surface-dim: oklch(96% 0.01 85);
|
|
121
|
+
--color-surface-bright: oklch(100% 0 0);
|
|
122
|
+
--color-surface-container-lowest: oklch(100% 0 0);
|
|
123
|
+
--color-surface-container-low: oklch(99% 0.01 85);
|
|
124
|
+
--color-surface-container: oklch(97% 0.01 85);
|
|
125
|
+
--color-surface-container-high: oklch(96% 0.01 85);
|
|
126
|
+
--color-surface-container-highest: oklch(94% 0.01 85);
|
|
127
|
+
--color-on-surface: oklch(27% 0.02 260);
|
|
128
|
+
--color-on-surface-variant: oklch(50% 0.02 260);
|
|
129
|
+
|
|
130
|
+
/* Semantic Colors */
|
|
131
|
+
--color-info: oklch(68% 0.15 235);
|
|
132
|
+
--color-info-content: oklch(100% 0 0);
|
|
133
|
+
--color-info-container: oklch(95% 0.03 235);
|
|
134
|
+
--color-on-info-container: oklch(35% 0.08 235);
|
|
135
|
+
|
|
136
|
+
--color-success: oklch(58% 0.14 150);
|
|
137
|
+
--color-success-content: oklch(100% 0 0);
|
|
138
|
+
--color-success-container: oklch(93% 0.04 150);
|
|
139
|
+
--color-on-success-container: oklch(30% 0.08 150);
|
|
140
|
+
|
|
141
|
+
--color-warning: oklch(80% 0.16 80);
|
|
142
|
+
--color-warning-content: oklch(20% 0 0);
|
|
143
|
+
--color-warning-container: oklch(93% 0.05 80);
|
|
144
|
+
--color-on-warning-container: oklch(38% 0.10 80);
|
|
145
|
+
|
|
146
|
+
--color-error: oklch(60% 0.20 25);
|
|
147
|
+
--color-error-content: oklch(100% 0 0);
|
|
148
|
+
--color-error-container: oklch(93% 0.04 25);
|
|
149
|
+
--color-on-error-container: oklch(32% 0.10 25);
|
|
150
|
+
|
|
151
|
+
/* Neutral Colors */
|
|
152
|
+
--color-base-100: oklch(100% 0 0);
|
|
153
|
+
--color-base-200: oklch(98% 0.01 85);
|
|
154
|
+
--color-base-300: oklch(96% 0.01 85);
|
|
155
|
+
--color-base-400: oklch(91% 0.01 85);
|
|
156
|
+
--color-base-500: oklch(80% 0.01 85);
|
|
157
|
+
--color-base-600: oklch(62% 0.01 85);
|
|
158
|
+
--color-base-700: oklch(50% 0.01 85);
|
|
159
|
+
--color-base-800: oklch(35% 0.01 85);
|
|
160
|
+
--color-base-900: oklch(23% 0.01 85);
|
|
161
|
+
--color-base-content: oklch(27% 0.02 260);
|
|
162
|
+
|
|
163
|
+
/* Outline Colors */
|
|
164
|
+
--color-outline: oklch(75% 0.01 260);
|
|
165
|
+
--color-outline-variant: oklch(85% 0.01 260);
|
|
166
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DuskMoonUI Type Definitions
|
|
3
|
+
* Main export file for all TypeScript types
|
|
4
|
+
*/
|
|
5
|
+
export type { PluginConfig, BuiltInTheme, ComponentName, ComponentSize, ComponentColorVariant, ComponentStyleVariant, InteractiveState, } from './plugin';
|
|
6
|
+
export type { HSLColor, ColorScheme, ThemeDefinition, ThemeColors, PartialThemeColors, ThemeConfig, ThemeValidationResult, ThemeValidationError, ThemeValidationWarning, } from './theme';
|
|
7
|
+
/**
|
|
8
|
+
* Re-export types for backwards compatibility
|
|
9
|
+
* @deprecated Use specific imports from './plugin' or './theme'
|
|
10
|
+
*/
|
|
11
|
+
export type DuskMoonUIOptions = import('./plugin').PluginConfig;
|
|
12
|
+
export type ThemeName = import('./plugin').BuiltInTheme;
|
|
13
|
+
export type CustomTheme = import('./theme').PartialThemeColors;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,UAAU,EAAE,YAAY,CAAC;AAChE,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,EAAE,YAAY,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,OAAO,SAAS,EAAE,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Configuration Types
|
|
3
|
+
* TypeScript definitions for @duskmoon-dev/core plugin options
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Theme names available in the plugin
|
|
7
|
+
*/
|
|
8
|
+
export type BuiltInTheme = 'sunshine' | 'moonlight';
|
|
9
|
+
/**
|
|
10
|
+
* Plugin configuration options
|
|
11
|
+
* Used with @plugin "@duskmoon-dev/core" { ... } syntax
|
|
12
|
+
*/
|
|
13
|
+
export interface PluginConfig {
|
|
14
|
+
/**
|
|
15
|
+
* Themes to include in the build
|
|
16
|
+
* @example ["sunshine", "moonlight", "custom"]
|
|
17
|
+
* @default ["sunshine", "moonlight"]
|
|
18
|
+
*/
|
|
19
|
+
themes?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Default theme name (applied when no data-theme is set)
|
|
22
|
+
* @default "sunshine"
|
|
23
|
+
*/
|
|
24
|
+
defaultTheme?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Theme to use when user prefers dark color scheme
|
|
27
|
+
* @default "moonlight"
|
|
28
|
+
*/
|
|
29
|
+
prefersDarkTheme?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Components to include in the build
|
|
32
|
+
* Use 'all' to include all components, or specify an array of component names
|
|
33
|
+
* @example ["button", "card", "input"]
|
|
34
|
+
* @default "all"
|
|
35
|
+
*/
|
|
36
|
+
components?: 'all' | ComponentName[];
|
|
37
|
+
/**
|
|
38
|
+
* Prefix to add to all component class names
|
|
39
|
+
* @example "dm-" results in "dm-btn" instead of "btn"
|
|
40
|
+
* @default ""
|
|
41
|
+
*/
|
|
42
|
+
prefix?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Enable logging for debugging
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
logs?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Available component names
|
|
51
|
+
*/
|
|
52
|
+
export type ComponentName = 'button' | 'card' | 'input' | 'form' | 'navigation' | 'modal';
|
|
53
|
+
/**
|
|
54
|
+
* Component size variants
|
|
55
|
+
*/
|
|
56
|
+
export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
57
|
+
/**
|
|
58
|
+
* Component color variants
|
|
59
|
+
*/
|
|
60
|
+
export type ComponentColorVariant = 'primary' | 'secondary' | 'tertiary' | 'info' | 'success' | 'warning' | 'error';
|
|
61
|
+
/**
|
|
62
|
+
* Component style variants
|
|
63
|
+
*/
|
|
64
|
+
export type ComponentStyleVariant = 'solid' | 'outline' | 'ghost';
|
|
65
|
+
/**
|
|
66
|
+
* Interactive states for components
|
|
67
|
+
*/
|
|
68
|
+
export type InteractiveState = 'hover' | 'focus' | 'active' | 'disabled';
|
|
69
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,CAAC;IAErC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,YAAY,GACZ,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,UAAU,GACV,MAAM,GACN,SAAS,GACT,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,CAAC"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Configuration Types
|
|
3
|
+
* TypeScript definitions for DuskMoonUI theme definitions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* HSL color value in space-separated format
|
|
7
|
+
* @example "240 80% 60%" (hue saturation lightness)
|
|
8
|
+
*/
|
|
9
|
+
export type HSLColor = string;
|
|
10
|
+
/**
|
|
11
|
+
* Color scheme preference
|
|
12
|
+
*/
|
|
13
|
+
export type ColorScheme = 'light' | 'dark';
|
|
14
|
+
/**
|
|
15
|
+
* Theme definition structure
|
|
16
|
+
* Defines all color tokens for a theme
|
|
17
|
+
*/
|
|
18
|
+
export interface ThemeDefinition {
|
|
19
|
+
/**
|
|
20
|
+
* Unique theme identifier
|
|
21
|
+
* @example "sunshine", "moonlight", "custom"
|
|
22
|
+
*/
|
|
23
|
+
name: string;
|
|
24
|
+
/**
|
|
25
|
+
* Light or dark color scheme
|
|
26
|
+
* Used for browser color-scheme CSS property
|
|
27
|
+
*/
|
|
28
|
+
colorScheme: ColorScheme;
|
|
29
|
+
/**
|
|
30
|
+
* Whether this is the default theme
|
|
31
|
+
* Only one theme can be default
|
|
32
|
+
*/
|
|
33
|
+
default?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Whether to use when user prefers dark mode
|
|
36
|
+
* Only one theme can have prefersDark
|
|
37
|
+
*/
|
|
38
|
+
prefersDark?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Theme colors
|
|
41
|
+
*/
|
|
42
|
+
colors: ThemeColors;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Complete theme color token set
|
|
46
|
+
* 65+ tokens following Material Design 3 conventions
|
|
47
|
+
*/
|
|
48
|
+
export interface ThemeColors {
|
|
49
|
+
/**
|
|
50
|
+
* Primary brand color
|
|
51
|
+
* @example "30 90% 60%" (warm orange for sunshine theme)
|
|
52
|
+
*/
|
|
53
|
+
primary: HSLColor;
|
|
54
|
+
/**
|
|
55
|
+
* Primary focus state (hover/active)
|
|
56
|
+
*/
|
|
57
|
+
'primary-focus': HSLColor;
|
|
58
|
+
/**
|
|
59
|
+
* Content color on primary background
|
|
60
|
+
* Must meet WCAG AA contrast (4.5:1)
|
|
61
|
+
*/
|
|
62
|
+
'primary-content': HSLColor;
|
|
63
|
+
/**
|
|
64
|
+
* Tinted primary container background
|
|
65
|
+
*/
|
|
66
|
+
'primary-container': HSLColor;
|
|
67
|
+
/**
|
|
68
|
+
* Content color on primary container
|
|
69
|
+
*/
|
|
70
|
+
'on-primary-container': HSLColor;
|
|
71
|
+
/**
|
|
72
|
+
* Secondary brand color
|
|
73
|
+
*/
|
|
74
|
+
secondary: HSLColor;
|
|
75
|
+
'secondary-focus': HSLColor;
|
|
76
|
+
'secondary-content': HSLColor;
|
|
77
|
+
'secondary-container': HSLColor;
|
|
78
|
+
'on-secondary-container': HSLColor;
|
|
79
|
+
/**
|
|
80
|
+
* Tertiary brand color
|
|
81
|
+
*/
|
|
82
|
+
tertiary: HSLColor;
|
|
83
|
+
'tertiary-focus': HSLColor;
|
|
84
|
+
'tertiary-content': HSLColor;
|
|
85
|
+
'tertiary-container': HSLColor;
|
|
86
|
+
'on-tertiary-container': HSLColor;
|
|
87
|
+
/**
|
|
88
|
+
* Base surface color
|
|
89
|
+
*/
|
|
90
|
+
surface: HSLColor;
|
|
91
|
+
/**
|
|
92
|
+
* Dimmed surface for lower emphasis
|
|
93
|
+
*/
|
|
94
|
+
'surface-dim': HSLColor;
|
|
95
|
+
/**
|
|
96
|
+
* Brightened surface for higher emphasis
|
|
97
|
+
*/
|
|
98
|
+
'surface-bright': HSLColor;
|
|
99
|
+
/**
|
|
100
|
+
* Surface container variants (elevation levels)
|
|
101
|
+
*/
|
|
102
|
+
'surface-container-lowest': HSLColor;
|
|
103
|
+
'surface-container-low': HSLColor;
|
|
104
|
+
'surface-container': HSLColor;
|
|
105
|
+
'surface-container-high': HSLColor;
|
|
106
|
+
'surface-container-highest': HSLColor;
|
|
107
|
+
/**
|
|
108
|
+
* Content on surface colors
|
|
109
|
+
*/
|
|
110
|
+
'on-surface': HSLColor;
|
|
111
|
+
'on-surface-variant': HSLColor;
|
|
112
|
+
/**
|
|
113
|
+
* Info semantic color (blue tones)
|
|
114
|
+
*/
|
|
115
|
+
info: HSLColor;
|
|
116
|
+
'info-content': HSLColor;
|
|
117
|
+
'info-container': HSLColor;
|
|
118
|
+
'on-info-container': HSLColor;
|
|
119
|
+
/**
|
|
120
|
+
* Success semantic color (green tones)
|
|
121
|
+
*/
|
|
122
|
+
success: HSLColor;
|
|
123
|
+
'success-content': HSLColor;
|
|
124
|
+
'success-container': HSLColor;
|
|
125
|
+
'on-success-container': HSLColor;
|
|
126
|
+
/**
|
|
127
|
+
* Warning semantic color (yellow/orange tones)
|
|
128
|
+
*/
|
|
129
|
+
warning: HSLColor;
|
|
130
|
+
'warning-content': HSLColor;
|
|
131
|
+
'warning-container': HSLColor;
|
|
132
|
+
'on-warning-container': HSLColor;
|
|
133
|
+
/**
|
|
134
|
+
* Error semantic color (red tones)
|
|
135
|
+
*/
|
|
136
|
+
error: HSLColor;
|
|
137
|
+
'error-content': HSLColor;
|
|
138
|
+
'error-container': HSLColor;
|
|
139
|
+
'on-error-container': HSLColor;
|
|
140
|
+
/**
|
|
141
|
+
* Base neutral colors (grayscale)
|
|
142
|
+
* base-100 is lightest, base-900 is darkest
|
|
143
|
+
*/
|
|
144
|
+
'base-100': HSLColor;
|
|
145
|
+
'base-200': HSLColor;
|
|
146
|
+
'base-300': HSLColor;
|
|
147
|
+
'base-400': HSLColor;
|
|
148
|
+
'base-500': HSLColor;
|
|
149
|
+
'base-600': HSLColor;
|
|
150
|
+
'base-700': HSLColor;
|
|
151
|
+
'base-800': HSLColor;
|
|
152
|
+
'base-900': HSLColor;
|
|
153
|
+
/**
|
|
154
|
+
* Default text color on base backgrounds
|
|
155
|
+
*/
|
|
156
|
+
'base-content': HSLColor;
|
|
157
|
+
/**
|
|
158
|
+
* Primary outline color
|
|
159
|
+
*/
|
|
160
|
+
outline: HSLColor;
|
|
161
|
+
/**
|
|
162
|
+
* Subtle outline variant
|
|
163
|
+
*/
|
|
164
|
+
'outline-variant': HSLColor;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Partial theme colors for custom theme definitions
|
|
168
|
+
* Allows overriding only specific tokens
|
|
169
|
+
*/
|
|
170
|
+
export type PartialThemeColors = Partial<ThemeColors>;
|
|
171
|
+
/**
|
|
172
|
+
* Theme configuration for plugin
|
|
173
|
+
*/
|
|
174
|
+
export type ThemeConfig = string | {
|
|
175
|
+
[themeName: string]: PartialThemeColors;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Validation result for theme colors
|
|
179
|
+
*/
|
|
180
|
+
export interface ThemeValidationResult {
|
|
181
|
+
valid: boolean;
|
|
182
|
+
errors: ThemeValidationError[];
|
|
183
|
+
warnings: ThemeValidationWarning[];
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Theme validation error
|
|
187
|
+
*/
|
|
188
|
+
export interface ThemeValidationError {
|
|
189
|
+
token: string;
|
|
190
|
+
message: string;
|
|
191
|
+
value?: string;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Theme validation warning (non-blocking)
|
|
195
|
+
*/
|
|
196
|
+
export interface ThemeValidationWarning {
|
|
197
|
+
token: string;
|
|
198
|
+
message: string;
|
|
199
|
+
value?: string;
|
|
200
|
+
suggestion?: string;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/types/theme.ts"],"names":[],"mappings":"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"}
|