@duskmoon-dev/core 0.1.0 → 0.2.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 (110) 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 +493 -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 +475 -0
  11. package/dist/components/card.css +220 -0
  12. package/dist/components/cascader.css +418 -0
  13. package/dist/components/checkbox.css +231 -0
  14. package/dist/components/chip.css +211 -0
  15. package/dist/components/collapse.css +454 -0
  16. package/dist/components/datepicker.css +741 -0
  17. package/dist/components/dialog.css +173 -0
  18. package/dist/components/divider.css +284 -0
  19. package/dist/components/drawer.css +371 -0
  20. package/dist/components/file-upload.css +321 -0
  21. package/dist/components/form-group.css +308 -0
  22. package/dist/components/form.css +441 -0
  23. package/dist/components/index.css +14951 -0
  24. package/dist/components/input.css +240 -0
  25. package/dist/components/list.css +188 -0
  26. package/dist/components/markdown-body.css +405 -0
  27. package/dist/components/modal.css +291 -0
  28. package/dist/components/multi-select.css +491 -0
  29. package/dist/components/navigation.css +736 -0
  30. package/dist/components/otp-input.css +195 -0
  31. package/dist/components/pin-input.css +184 -0
  32. package/dist/components/popover.css +392 -0
  33. package/dist/components/progress.css +238 -0
  34. package/dist/components/radio.css +183 -0
  35. package/dist/components/rating.css +230 -0
  36. package/dist/components/segment-control.css +186 -0
  37. package/dist/components/select.css +205 -0
  38. package/dist/components/skeleton.css +216 -0
  39. package/dist/components/slider.css +327 -0
  40. package/dist/components/snackbar.css +311 -0
  41. package/dist/components/stepper.css +313 -0
  42. package/dist/components/switch.css +234 -0
  43. package/dist/components/table.css +199 -0
  44. package/dist/components/textarea.css +398 -0
  45. package/dist/components/time-input.css +252 -0
  46. package/dist/components/timeline.css +353 -0
  47. package/dist/components/toast.css +251 -0
  48. package/dist/components/tooltip.css +284 -0
  49. package/dist/components/tree-select.css +472 -0
  50. package/dist/esm/components/accordion.js +251 -0
  51. package/dist/esm/components/alert.js +206 -0
  52. package/dist/esm/components/appbar.js +500 -0
  53. package/dist/esm/components/autocomplete.js +276 -0
  54. package/dist/esm/components/avatar.js +174 -0
  55. package/dist/esm/components/badge.js +185 -0
  56. package/dist/esm/components/bottom-navigation.js +270 -0
  57. package/dist/esm/components/bottomsheet.js +341 -0
  58. package/dist/esm/components/button.js +482 -0
  59. package/dist/esm/components/card.js +227 -0
  60. package/dist/esm/components/cascader.js +425 -0
  61. package/dist/esm/components/checkbox.js +238 -0
  62. package/dist/esm/components/chip.js +218 -0
  63. package/dist/esm/components/collapse.js +461 -0
  64. package/dist/esm/components/datepicker.js +748 -0
  65. package/dist/esm/components/dialog.js +180 -0
  66. package/dist/esm/components/divider.js +291 -0
  67. package/dist/esm/components/drawer.js +378 -0
  68. package/dist/esm/components/file-upload.js +328 -0
  69. package/dist/esm/components/form-group.js +315 -0
  70. package/dist/esm/components/form.js +448 -0
  71. package/dist/esm/components/input.js +247 -0
  72. package/dist/esm/components/list.js +195 -0
  73. package/dist/esm/components/markdown-body.js +412 -0
  74. package/dist/esm/components/modal.js +298 -0
  75. package/dist/esm/components/multi-select.js +498 -0
  76. package/dist/esm/components/navigation.js +743 -0
  77. package/dist/esm/components/otp-input.js +202 -0
  78. package/dist/esm/components/pin-input.js +191 -0
  79. package/dist/esm/components/popover.js +399 -0
  80. package/dist/esm/components/progress.js +245 -0
  81. package/dist/esm/components/radio.js +190 -0
  82. package/dist/esm/components/rating.js +237 -0
  83. package/dist/esm/components/segment-control.js +193 -0
  84. package/dist/esm/components/select.js +212 -0
  85. package/dist/esm/components/skeleton.js +223 -0
  86. package/dist/esm/components/slider.js +334 -0
  87. package/dist/esm/components/snackbar.js +318 -0
  88. package/dist/esm/components/stepper.js +320 -0
  89. package/dist/esm/components/switch.js +241 -0
  90. package/dist/esm/components/table.js +206 -0
  91. package/dist/esm/components/textarea.js +405 -0
  92. package/dist/esm/components/time-input.js +259 -0
  93. package/dist/esm/components/timeline.js +360 -0
  94. package/dist/esm/components/toast.js +258 -0
  95. package/dist/esm/components/tooltip.js +291 -0
  96. package/dist/esm/components/tree-select.js +479 -0
  97. package/dist/index.css +15866 -0
  98. package/dist/themes/moonlight.css +253 -0
  99. package/dist/themes/sunshine.css +250 -0
  100. package/dist/types/index.d.ts +14 -0
  101. package/dist/types/index.d.ts.map +1 -0
  102. package/dist/types/plugin.d.ts +69 -0
  103. package/dist/types/plugin.d.ts.map +1 -0
  104. package/dist/types/theme.d.ts +202 -0
  105. package/dist/types/theme.d.ts.map +1 -0
  106. package/package.json +262 -18
  107. package/dist/index.cjs +0 -243
  108. package/dist/index.cjs.map +0 -15
  109. package/dist/index.js +0 -211
  110. package/dist/index.js.map +0 -15
@@ -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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"}
package/package.json CHANGED
@@ -1,20 +1,254 @@
1
1
  {
2
2
  "name": "@duskmoon-dev/core",
3
- "version": "0.1.0",
4
- "description": "DuskMoonUI - Tailwind CSS component library with extended color system",
3
+ "version": "0.2.0",
4
+ "description": "DuskMoonUI - Tailwind CSS v4 plugin with Material Design 3 color system and component styles",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
6
+ "main": "./dist/index.css",
7
+ "types": "./dist/types/index.d.ts",
9
8
  "exports": {
10
9
  ".": {
11
- "types": "./dist/index.d.ts",
12
- "import": "./dist/index.js",
13
- "require": "./dist/index.cjs"
10
+ "default": "./dist/index.css",
11
+ "style": "./dist/index.css",
12
+ "types": "./dist/types/index.d.ts"
14
13
  },
15
- "./theme": {
16
- "types": "./dist/theme.d.ts",
17
- "import": "./dist/theme.js"
14
+ "./themes/sunshine": {
15
+ "style": "./dist/themes/sunshine.css"
16
+ },
17
+ "./themes/moonlight": {
18
+ "style": "./dist/themes/moonlight.css"
19
+ },
20
+ "./components": {
21
+ "style": "./dist/components/index.css"
22
+ },
23
+ "./components/accordion": {
24
+ "style": "./dist/components/accordion.css",
25
+ "import": "./dist/esm/components/accordion.js",
26
+ "default": "./dist/esm/components/accordion.js"
27
+ },
28
+ "./components/alert": {
29
+ "style": "./dist/components/alert.css",
30
+ "import": "./dist/esm/components/alert.js",
31
+ "default": "./dist/esm/components/alert.js"
32
+ },
33
+ "./components/appbar": {
34
+ "style": "./dist/components/appbar.css",
35
+ "import": "./dist/esm/components/appbar.js",
36
+ "default": "./dist/esm/components/appbar.js"
37
+ },
38
+ "./components/autocomplete": {
39
+ "style": "./dist/components/autocomplete.css",
40
+ "import": "./dist/esm/components/autocomplete.js",
41
+ "default": "./dist/esm/components/autocomplete.js"
42
+ },
43
+ "./components/avatar": {
44
+ "style": "./dist/components/avatar.css",
45
+ "import": "./dist/esm/components/avatar.js",
46
+ "default": "./dist/esm/components/avatar.js"
47
+ },
48
+ "./components/badge": {
49
+ "style": "./dist/components/badge.css",
50
+ "import": "./dist/esm/components/badge.js",
51
+ "default": "./dist/esm/components/badge.js"
52
+ },
53
+ "./components/bottom-navigation": {
54
+ "style": "./dist/components/bottom-navigation.css",
55
+ "import": "./dist/esm/components/bottom-navigation.js",
56
+ "default": "./dist/esm/components/bottom-navigation.js"
57
+ },
58
+ "./components/bottomsheet": {
59
+ "style": "./dist/components/bottomsheet.css",
60
+ "import": "./dist/esm/components/bottomsheet.js",
61
+ "default": "./dist/esm/components/bottomsheet.js"
62
+ },
63
+ "./components/button": {
64
+ "style": "./dist/components/button.css",
65
+ "import": "./dist/esm/components/button.js",
66
+ "default": "./dist/esm/components/button.js"
67
+ },
68
+ "./components/card": {
69
+ "style": "./dist/components/card.css",
70
+ "import": "./dist/esm/components/card.js",
71
+ "default": "./dist/esm/components/card.js"
72
+ },
73
+ "./components/checkbox": {
74
+ "style": "./dist/components/checkbox.css",
75
+ "import": "./dist/esm/components/checkbox.js",
76
+ "default": "./dist/esm/components/checkbox.js"
77
+ },
78
+ "./components/chip": {
79
+ "style": "./dist/components/chip.css",
80
+ "import": "./dist/esm/components/chip.js",
81
+ "default": "./dist/esm/components/chip.js"
82
+ },
83
+ "./components/collapse": {
84
+ "style": "./dist/components/collapse.css",
85
+ "import": "./dist/esm/components/collapse.js",
86
+ "default": "./dist/esm/components/collapse.js"
87
+ },
88
+ "./components/datepicker": {
89
+ "style": "./dist/components/datepicker.css",
90
+ "import": "./dist/esm/components/datepicker.js",
91
+ "default": "./dist/esm/components/datepicker.js"
92
+ },
93
+ "./components/dialog": {
94
+ "style": "./dist/components/dialog.css",
95
+ "import": "./dist/esm/components/dialog.js",
96
+ "default": "./dist/esm/components/dialog.js"
97
+ },
98
+ "./components/divider": {
99
+ "style": "./dist/components/divider.css",
100
+ "import": "./dist/esm/components/divider.js",
101
+ "default": "./dist/esm/components/divider.js"
102
+ },
103
+ "./components/drawer": {
104
+ "style": "./dist/components/drawer.css",
105
+ "import": "./dist/esm/components/drawer.js",
106
+ "default": "./dist/esm/components/drawer.js"
107
+ },
108
+ "./components/file-upload": {
109
+ "style": "./dist/components/file-upload.css",
110
+ "import": "./dist/esm/components/file-upload.js",
111
+ "default": "./dist/esm/components/file-upload.js"
112
+ },
113
+ "./components/form": {
114
+ "style": "./dist/components/form.css",
115
+ "import": "./dist/esm/components/form.js",
116
+ "default": "./dist/esm/components/form.js"
117
+ },
118
+ "./components/form-group": {
119
+ "style": "./dist/components/form-group.css",
120
+ "import": "./dist/esm/components/form-group.js",
121
+ "default": "./dist/esm/components/form-group.js"
122
+ },
123
+ "./components/input": {
124
+ "style": "./dist/components/input.css",
125
+ "import": "./dist/esm/components/input.js",
126
+ "default": "./dist/esm/components/input.js"
127
+ },
128
+ "./components/list": {
129
+ "style": "./dist/components/list.css",
130
+ "import": "./dist/esm/components/list.js",
131
+ "default": "./dist/esm/components/list.js"
132
+ },
133
+ "./components/markdown-body": {
134
+ "style": "./dist/components/markdown-body.css",
135
+ "import": "./dist/esm/components/markdown-body.js",
136
+ "default": "./dist/esm/components/markdown-body.js"
137
+ },
138
+ "./components/modal": {
139
+ "style": "./dist/components/modal.css",
140
+ "import": "./dist/esm/components/modal.js",
141
+ "default": "./dist/esm/components/modal.js"
142
+ },
143
+ "./components/multi-select": {
144
+ "style": "./dist/components/multi-select.css",
145
+ "import": "./dist/esm/components/multi-select.js",
146
+ "default": "./dist/esm/components/multi-select.js"
147
+ },
148
+ "./components/navigation": {
149
+ "style": "./dist/components/navigation.css",
150
+ "import": "./dist/esm/components/navigation.js",
151
+ "default": "./dist/esm/components/navigation.js"
152
+ },
153
+ "./components/otp-input": {
154
+ "style": "./dist/components/otp-input.css",
155
+ "import": "./dist/esm/components/otp-input.js",
156
+ "default": "./dist/esm/components/otp-input.js"
157
+ },
158
+ "./components/pin-input": {
159
+ "style": "./dist/components/pin-input.css",
160
+ "import": "./dist/esm/components/pin-input.js",
161
+ "default": "./dist/esm/components/pin-input.js"
162
+ },
163
+ "./components/popover": {
164
+ "style": "./dist/components/popover.css",
165
+ "import": "./dist/esm/components/popover.js",
166
+ "default": "./dist/esm/components/popover.js"
167
+ },
168
+ "./components/progress": {
169
+ "style": "./dist/components/progress.css",
170
+ "import": "./dist/esm/components/progress.js",
171
+ "default": "./dist/esm/components/progress.js"
172
+ },
173
+ "./components/radio": {
174
+ "style": "./dist/components/radio.css",
175
+ "import": "./dist/esm/components/radio.js",
176
+ "default": "./dist/esm/components/radio.js"
177
+ },
178
+ "./components/rating": {
179
+ "style": "./dist/components/rating.css",
180
+ "import": "./dist/esm/components/rating.js",
181
+ "default": "./dist/esm/components/rating.js"
182
+ },
183
+ "./components/segment-control": {
184
+ "style": "./dist/components/segment-control.css",
185
+ "import": "./dist/esm/components/segment-control.js",
186
+ "default": "./dist/esm/components/segment-control.js"
187
+ },
188
+ "./components/select": {
189
+ "style": "./dist/components/select.css",
190
+ "import": "./dist/esm/components/select.js",
191
+ "default": "./dist/esm/components/select.js"
192
+ },
193
+ "./components/skeleton": {
194
+ "style": "./dist/components/skeleton.css",
195
+ "import": "./dist/esm/components/skeleton.js",
196
+ "default": "./dist/esm/components/skeleton.js"
197
+ },
198
+ "./components/slider": {
199
+ "style": "./dist/components/slider.css",
200
+ "import": "./dist/esm/components/slider.js",
201
+ "default": "./dist/esm/components/slider.js"
202
+ },
203
+ "./components/snackbar": {
204
+ "style": "./dist/components/snackbar.css",
205
+ "import": "./dist/esm/components/snackbar.js",
206
+ "default": "./dist/esm/components/snackbar.js"
207
+ },
208
+ "./components/stepper": {
209
+ "style": "./dist/components/stepper.css",
210
+ "import": "./dist/esm/components/stepper.js",
211
+ "default": "./dist/esm/components/stepper.js"
212
+ },
213
+ "./components/switch": {
214
+ "style": "./dist/components/switch.css",
215
+ "import": "./dist/esm/components/switch.js",
216
+ "default": "./dist/esm/components/switch.js"
217
+ },
218
+ "./components/table": {
219
+ "style": "./dist/components/table.css",
220
+ "import": "./dist/esm/components/table.js",
221
+ "default": "./dist/esm/components/table.js"
222
+ },
223
+ "./components/textarea": {
224
+ "style": "./dist/components/textarea.css",
225
+ "import": "./dist/esm/components/textarea.js",
226
+ "default": "./dist/esm/components/textarea.js"
227
+ },
228
+ "./components/time-input": {
229
+ "style": "./dist/components/time-input.css",
230
+ "import": "./dist/esm/components/time-input.js",
231
+ "default": "./dist/esm/components/time-input.js"
232
+ },
233
+ "./components/timeline": {
234
+ "style": "./dist/components/timeline.css",
235
+ "import": "./dist/esm/components/timeline.js",
236
+ "default": "./dist/esm/components/timeline.js"
237
+ },
238
+ "./components/toast": {
239
+ "style": "./dist/components/toast.css",
240
+ "import": "./dist/esm/components/toast.js",
241
+ "default": "./dist/esm/components/toast.js"
242
+ },
243
+ "./components/tooltip": {
244
+ "style": "./dist/components/tooltip.css",
245
+ "import": "./dist/esm/components/tooltip.js",
246
+ "default": "./dist/esm/components/tooltip.js"
247
+ },
248
+ "./components/tree-select": {
249
+ "style": "./dist/components/tree-select.css",
250
+ "import": "./dist/esm/components/tree-select.js",
251
+ "default": "./dist/esm/components/tree-select.js"
18
252
  }
19
253
  },
20
254
  "files": [
@@ -24,12 +258,17 @@
24
258
  ],
25
259
  "scripts": {
26
260
  "dev": "bun run build --watch",
27
- "build": "bun run clean && bun run build:bundle && bun run build:types",
28
- "build:bundle": "bun build src/index.ts --outdir dist --target node --format esm --sourcemap && bun build src/index.ts --target node --format cjs --outfile src/index.cjs --sourcemap && mv src/index.cjs src/index.cjs.map dist/",
29
- "build:types": "tsc --emitDeclarationOnly --outDir dist",
261
+ "build": "bun run clean && bun run build:css && bun run build:types",
262
+ "build:css": "bun run scripts/build-css.ts",
263
+ "build:types": "tsc --emitDeclarationOnly --outDir dist/types",
30
264
  "clean": "rm -rf dist",
31
265
  "typecheck": "tsc --noEmit",
32
- "test": "bun test"
266
+ "test": "bun test tests/unit",
267
+ "test:unit": "bun test tests/unit",
268
+ "test:visual": "playwright test --config=playwright.visual.config.ts",
269
+ "test:integration": "playwright test --config=playwright.integration.config.ts",
270
+ "test:a11y": "playwright test --config=playwright.integration.config.ts tests/accessibility/",
271
+ "test:all": "bun run test:unit && bun run test:visual && bun run test:integration && bun run test:a11y"
33
272
  },
34
273
  "keywords": [
35
274
  "tailwind",
@@ -57,12 +296,17 @@
57
296
  "url": "https://github.com/duskmoon-dev/duskmoonui/issues"
58
297
  },
59
298
  "peerDependencies": {
60
- "tailwindcss": "^3.4.0 || ^4.0.0"
299
+ "tailwindcss": "^4.0.0"
61
300
  },
62
301
  "devDependencies": {
302
+ "@axe-core/playwright": "^4.8.0",
303
+ "@playwright/test": "^1.40.0",
63
304
  "@types/bun": "latest",
64
- "tailwindcss": "^3.4.0",
65
- "typescript": "^5.6.0"
305
+ "axe-core": "^4.8.0",
306
+ "lightningcss": "^1.22.0",
307
+ "tailwindcss": "^4.0.0",
308
+ "typescript": "^5.6.0",
309
+ "vitest": "^1.0.0"
66
310
  },
67
311
  "engines": {
68
312
  "node": ">=18.0.0",