@duskmoon-dev/core 0.1.0 → 1.1.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.
Files changed (86) hide show
  1. package/README.md +366 -78
  2. package/dist/components/accordion.css +244 -0
  3. package/dist/components/alert.css +199 -0
  4. package/dist/components/appbar.css +308 -0
  5. package/dist/components/autocomplete.css +269 -0
  6. package/dist/components/avatar.css +167 -0
  7. package/dist/components/badge.css +178 -0
  8. package/dist/components/bottom-navigation.css +263 -0
  9. package/dist/components/bottomsheet.css +334 -0
  10. package/dist/components/button.css +474 -0
  11. package/dist/components/card.css +220 -0
  12. package/dist/components/chip.css +211 -0
  13. package/dist/components/collapse.css +254 -0
  14. package/dist/components/datepicker.css +347 -0
  15. package/dist/components/dialog.css +173 -0
  16. package/dist/components/divider.css +284 -0
  17. package/dist/components/drawer.css +371 -0
  18. package/dist/components/file-upload.css +321 -0
  19. package/dist/components/form.css +441 -0
  20. package/dist/components/index.css +9994 -0
  21. package/dist/components/input.css +240 -0
  22. package/dist/components/list.css +188 -0
  23. package/dist/components/markdown-body.css +405 -0
  24. package/dist/components/modal.css +291 -0
  25. package/dist/components/navigation.css +392 -0
  26. package/dist/components/popover.css +326 -0
  27. package/dist/components/progress.css +238 -0
  28. package/dist/components/rating.css +230 -0
  29. package/dist/components/skeleton.css +216 -0
  30. package/dist/components/slider.css +327 -0
  31. package/dist/components/snackbar.css +311 -0
  32. package/dist/components/stepper.css +313 -0
  33. package/dist/components/switch.css +277 -0
  34. package/dist/components/table.css +199 -0
  35. package/dist/components/timeline.css +353 -0
  36. package/dist/components/toast.css +251 -0
  37. package/dist/components/tooltip.css +284 -0
  38. package/dist/esm/components/accordion.js +251 -0
  39. package/dist/esm/components/alert.js +206 -0
  40. package/dist/esm/components/appbar.js +315 -0
  41. package/dist/esm/components/autocomplete.js +276 -0
  42. package/dist/esm/components/avatar.js +174 -0
  43. package/dist/esm/components/badge.js +185 -0
  44. package/dist/esm/components/bottom-navigation.js +270 -0
  45. package/dist/esm/components/bottomsheet.js +341 -0
  46. package/dist/esm/components/button.js +481 -0
  47. package/dist/esm/components/card.js +227 -0
  48. package/dist/esm/components/chip.js +218 -0
  49. package/dist/esm/components/collapse.js +261 -0
  50. package/dist/esm/components/datepicker.js +354 -0
  51. package/dist/esm/components/dialog.js +180 -0
  52. package/dist/esm/components/divider.js +291 -0
  53. package/dist/esm/components/drawer.js +378 -0
  54. package/dist/esm/components/file-upload.js +328 -0
  55. package/dist/esm/components/form.js +448 -0
  56. package/dist/esm/components/input.js +247 -0
  57. package/dist/esm/components/list.js +195 -0
  58. package/dist/esm/components/markdown-body.js +412 -0
  59. package/dist/esm/components/modal.js +298 -0
  60. package/dist/esm/components/navigation.js +399 -0
  61. package/dist/esm/components/popover.js +333 -0
  62. package/dist/esm/components/progress.js +245 -0
  63. package/dist/esm/components/rating.js +237 -0
  64. package/dist/esm/components/skeleton.js +223 -0
  65. package/dist/esm/components/slider.js +334 -0
  66. package/dist/esm/components/snackbar.js +318 -0
  67. package/dist/esm/components/stepper.js +320 -0
  68. package/dist/esm/components/switch.js +284 -0
  69. package/dist/esm/components/table.js +206 -0
  70. package/dist/esm/components/timeline.js +360 -0
  71. package/dist/esm/components/toast.js +258 -0
  72. package/dist/esm/components/tooltip.js +291 -0
  73. package/dist/index.css +10699 -0
  74. package/dist/themes/moonlight.css +168 -0
  75. package/dist/themes/sunshine.css +166 -0
  76. package/dist/types/index.d.ts +14 -0
  77. package/dist/types/index.d.ts.map +1 -0
  78. package/dist/types/plugin.d.ts +69 -0
  79. package/dist/types/plugin.d.ts.map +1 -0
  80. package/dist/types/theme.d.ts +202 -0
  81. package/dist/types/theme.d.ts.map +1 -0
  82. package/package.json +207 -18
  83. package/dist/index.cjs +0 -243
  84. package/dist/index.cjs.map +0 -15
  85. package/dist/index.js +0 -211
  86. 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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"}