@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,251 @@
1
+ // Auto-generated from accordion.css
2
+ export const css = `/**
3
+ * Accordion Component Styles
4
+ * DuskMoonUI - Material Design 3 inspired accordion/expansion panel system
5
+ */
6
+
7
+ @layer components {
8
+ /* Accordion Container */
9
+ .accordion {
10
+ display: flex;
11
+ flex-direction: column;
12
+ border-radius: 0.75rem;
13
+ overflow: hidden;
14
+ }
15
+
16
+ /* Accordion Item */
17
+ .accordion-item {
18
+ background-color: var(--color-surface);
19
+ border: 1px solid var(--color-outline-variant);
20
+ margin-top: -1px;
21
+ }
22
+
23
+ .accordion-item:first-child {
24
+ margin-top: 0;
25
+ border-top-left-radius: 0.75rem;
26
+ border-top-right-radius: 0.75rem;
27
+ }
28
+
29
+ .accordion-item:last-child {
30
+ border-bottom-left-radius: 0.75rem;
31
+ border-bottom-right-radius: 0.75rem;
32
+ }
33
+
34
+ /* Accordion Header */
35
+ .accordion-header {
36
+ display: flex;
37
+ align-items: center;
38
+ width: 100%;
39
+ padding: 1rem;
40
+ font-size: 0.875rem;
41
+ font-weight: 500;
42
+ color: var(--color-on-surface);
43
+ background-color: transparent;
44
+ border: none;
45
+ cursor: pointer;
46
+ text-align: left;
47
+ transition: background-color 150ms ease-in-out;
48
+ }
49
+
50
+ .accordion-header:hover {
51
+ background-color: var(--color-surface-container);
52
+ }
53
+
54
+ .accordion-header:focus-visible {
55
+ outline: none;
56
+ background-color: var(--color-surface-container);
57
+ box-shadow: inset 0 0 0 2px var(--color-primary);
58
+ }
59
+
60
+ .accordion-item.open .accordion-header {
61
+ background-color: var(--color-surface-container);
62
+ }
63
+
64
+ /* Accordion Icon */
65
+ .accordion-icon {
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ width: 1.5rem;
70
+ height: 1.5rem;
71
+ margin-right: 0.75rem;
72
+ color: var(--color-on-surface-variant);
73
+ flex-shrink: 0;
74
+ }
75
+
76
+ /* Accordion Title */
77
+ .accordion-title {
78
+ flex: 1;
79
+ }
80
+
81
+ /* Accordion Subtitle */
82
+ .accordion-subtitle {
83
+ font-size: 0.75rem;
84
+ font-weight: 400;
85
+ color: var(--color-on-surface-variant);
86
+ margin-top: 0.125rem;
87
+ }
88
+
89
+ /* Accordion Expand Icon */
90
+ .accordion-expand {
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: center;
94
+ width: 1.5rem;
95
+ height: 1.5rem;
96
+ margin-left: auto;
97
+ color: var(--color-on-surface-variant);
98
+ transition: transform 200ms ease-in-out;
99
+ flex-shrink: 0;
100
+ }
101
+
102
+ .accordion-item.open .accordion-expand {
103
+ transform: rotate(180deg);
104
+ }
105
+
106
+ /* Accordion Content */
107
+ .accordion-content {
108
+ display: grid;
109
+ grid-template-rows: 0fr;
110
+ transition: grid-template-rows 200ms ease-in-out;
111
+ }
112
+
113
+ .accordion-item.open .accordion-content {
114
+ grid-template-rows: 1fr;
115
+ }
116
+
117
+ .accordion-body {
118
+ overflow: hidden;
119
+ }
120
+
121
+ .accordion-body-inner {
122
+ padding: 0 1rem 1rem;
123
+ font-size: 0.875rem;
124
+ color: var(--color-on-surface-variant);
125
+ line-height: 1.5;
126
+ }
127
+
128
+ /* Borderless Variant */
129
+ .accordion-borderless .accordion-item {
130
+ border: none;
131
+ border-bottom: 1px solid var(--color-outline-variant);
132
+ border-radius: 0;
133
+ }
134
+
135
+ .accordion-borderless .accordion-item:last-child {
136
+ border-bottom: none;
137
+ }
138
+
139
+ /* Separated Variant */
140
+ .accordion-separated .accordion-item {
141
+ margin-top: 0.5rem;
142
+ border-radius: 0.75rem;
143
+ }
144
+
145
+ .accordion-separated .accordion-item:first-child {
146
+ margin-top: 0;
147
+ }
148
+
149
+ /* Filled Variant */
150
+ .accordion-filled .accordion-item {
151
+ background-color: var(--color-surface-container);
152
+ border: none;
153
+ }
154
+
155
+ .accordion-filled .accordion-header:hover,
156
+ .accordion-filled .accordion-item.open .accordion-header {
157
+ background-color: var(--color-surface-container-high);
158
+ }
159
+
160
+ /* Compact Variant */
161
+ .accordion-compact .accordion-header {
162
+ padding: 0.75rem;
163
+ }
164
+
165
+ .accordion-compact .accordion-body-inner {
166
+ padding: 0 0.75rem 0.75rem;
167
+ }
168
+
169
+ /* Large Variant */
170
+ .accordion-lg .accordion-header {
171
+ padding: 1.25rem;
172
+ font-size: 1rem;
173
+ }
174
+
175
+ .accordion-lg .accordion-body-inner {
176
+ padding: 0 1.25rem 1.25rem;
177
+ font-size: 1rem;
178
+ }
179
+
180
+ /* Disabled State */
181
+ .accordion-item.disabled .accordion-header {
182
+ cursor: not-allowed;
183
+ opacity: 0.6;
184
+ background-color: transparent;
185
+ }
186
+
187
+ .accordion-item.disabled .accordion-header:hover {
188
+ background-color: transparent;
189
+ }
190
+
191
+ /* Flush Variant (no outer border radius) */
192
+ .accordion-flush {
193
+ border-radius: 0;
194
+ }
195
+
196
+ .accordion-flush .accordion-item:first-child,
197
+ .accordion-flush .accordion-item:last-child {
198
+ border-radius: 0;
199
+ }
200
+
201
+ /* Multiple open */
202
+ .accordion-multiple .accordion-item.open + .accordion-item.open {
203
+ border-top-color: transparent;
204
+ }
205
+
206
+ /* With Actions */
207
+ .accordion-actions {
208
+ display: flex;
209
+ gap: 0.5rem;
210
+ padding: 0.75rem 1rem;
211
+ background-color: var(--color-surface-container);
212
+ border-top: 1px solid var(--color-outline-variant);
213
+ }
214
+
215
+ /* Nested Accordion */
216
+ .accordion-nested {
217
+ margin: 0 -1rem;
218
+ border-radius: 0;
219
+ }
220
+
221
+ .accordion-nested .accordion-item {
222
+ border-left: none;
223
+ border-right: none;
224
+ border-radius: 0;
225
+ }
226
+
227
+ /* Color Variants */
228
+ .accordion-primary .accordion-item.open .accordion-header {
229
+ background-color: var(--color-primary-container);
230
+ color: var(--color-on-primary-container);
231
+ }
232
+
233
+ .accordion-primary .accordion-item.open .accordion-expand {
234
+ color: var(--color-on-primary-container);
235
+ }
236
+
237
+ /* Reduce Motion */
238
+ @media (prefers-reduced-motion: reduce) {
239
+ .accordion-content,
240
+ .accordion-expand,
241
+ .accordion-header {
242
+ transition: none;
243
+ }
244
+ }
245
+ }
246
+ `;
247
+
248
+ const sheet = new CSSStyleSheet();
249
+ sheet.replaceSync(css);
250
+ export const styles = sheet;
251
+ export default sheet;
@@ -0,0 +1,206 @@
1
+ // Auto-generated from alert.css
2
+ export const css = `/**
3
+ * Alert Component Styles
4
+ * DuskMoonUI - Material Design 3 inspired alert system
5
+ */
6
+
7
+ @layer components {
8
+ /* Base Alert */
9
+ .alert {
10
+ display: flex;
11
+ align-items: flex-start;
12
+ gap: 0.75rem;
13
+ padding: 1rem;
14
+ border-radius: 0.5rem;
15
+ background-color: var(--color-surface-container);
16
+ color: var(--color-on-surface);
17
+ border: 1px solid var(--color-outline);
18
+ }
19
+
20
+ /* Alert Icon */
21
+ .alert-icon {
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ width: 1.5rem;
26
+ height: 1.5rem;
27
+ font-size: 1.25rem;
28
+ flex-shrink: 0;
29
+ }
30
+
31
+ /* Alert Content */
32
+ .alert-content {
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: 0.25rem;
36
+ flex: 1;
37
+ min-width: 0;
38
+ }
39
+
40
+ .alert-title {
41
+ font-size: 0.875rem;
42
+ font-weight: 600;
43
+ line-height: 1.25rem;
44
+ }
45
+
46
+ .alert-description {
47
+ font-size: 0.875rem;
48
+ line-height: 1.25rem;
49
+ opacity: 0.9;
50
+ }
51
+
52
+ /* Alert Close Button */
53
+ .alert-close {
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ width: 1.5rem;
58
+ height: 1.5rem;
59
+ font-size: 1rem;
60
+ color: currentColor;
61
+ opacity: 0.7;
62
+ background-color: transparent;
63
+ border: none;
64
+ border-radius: 0.25rem;
65
+ cursor: pointer;
66
+ transition: opacity 150ms ease-in-out;
67
+ flex-shrink: 0;
68
+ margin-left: auto;
69
+ }
70
+
71
+ .alert-close:hover {
72
+ opacity: 1;
73
+ }
74
+
75
+ .alert-close:focus-visible {
76
+ outline: 2px solid currentColor;
77
+ outline-offset: 2px;
78
+ }
79
+
80
+ /* Type Variants */
81
+ .alert-info {
82
+ background-color: var(--color-info-container);
83
+ color: var(--color-on-info-container);
84
+ border-color: transparent;
85
+ }
86
+
87
+ .alert-success {
88
+ background-color: var(--color-success-container);
89
+ color: var(--color-on-success-container);
90
+ border-color: transparent;
91
+ }
92
+
93
+ .alert-warning {
94
+ background-color: var(--color-warning-container);
95
+ color: var(--color-on-warning-container);
96
+ border-color: transparent;
97
+ }
98
+
99
+ .alert-error {
100
+ background-color: var(--color-error-container);
101
+ color: var(--color-on-error-container);
102
+ border-color: transparent;
103
+ }
104
+
105
+ /* Filled Variants */
106
+ .alert-filled.alert-info {
107
+ background-color: var(--color-info);
108
+ color: var(--color-info-content);
109
+ }
110
+
111
+ .alert-filled.alert-success {
112
+ background-color: var(--color-success);
113
+ color: var(--color-success-content);
114
+ }
115
+
116
+ .alert-filled.alert-warning {
117
+ background-color: var(--color-warning);
118
+ color: var(--color-warning-content);
119
+ }
120
+
121
+ .alert-filled.alert-error {
122
+ background-color: var(--color-error);
123
+ color: var(--color-error-content);
124
+ }
125
+
126
+ /* Outlined Variants */
127
+ .alert-outlined {
128
+ background-color: transparent;
129
+ }
130
+
131
+ .alert-outlined.alert-info {
132
+ border-color: var(--color-info);
133
+ color: var(--color-info);
134
+ }
135
+
136
+ .alert-outlined.alert-success {
137
+ border-color: var(--color-success);
138
+ color: var(--color-success);
139
+ }
140
+
141
+ .alert-outlined.alert-warning {
142
+ border-color: var(--color-warning);
143
+ color: var(--color-warning);
144
+ }
145
+
146
+ .alert-outlined.alert-error {
147
+ border-color: var(--color-error);
148
+ color: var(--color-error);
149
+ }
150
+
151
+ /* Dismissible */
152
+ .alert-dismissible {
153
+ padding-right: 2.5rem;
154
+ position: relative;
155
+ }
156
+
157
+ .alert-dismissible .alert-close {
158
+ position: absolute;
159
+ top: 0.75rem;
160
+ right: 0.75rem;
161
+ }
162
+
163
+ /* Compact */
164
+ .alert-compact {
165
+ padding: 0.625rem 0.875rem;
166
+ gap: 0.5rem;
167
+ }
168
+
169
+ .alert-compact .alert-icon {
170
+ width: 1.25rem;
171
+ height: 1.25rem;
172
+ font-size: 1rem;
173
+ }
174
+
175
+ .alert-compact .alert-title,
176
+ .alert-compact .alert-description {
177
+ font-size: 0.8125rem;
178
+ }
179
+
180
+ /* Alert Actions */
181
+ .alert-actions {
182
+ display: flex;
183
+ gap: 0.5rem;
184
+ margin-top: 0.5rem;
185
+ }
186
+
187
+ /* Banner Style (full width) */
188
+ .alert-banner {
189
+ border-radius: 0;
190
+ border-left: none;
191
+ border-right: none;
192
+ }
193
+
194
+ /* Reduce Motion */
195
+ @media (prefers-reduced-motion: reduce) {
196
+ .alert-close {
197
+ transition: none;
198
+ }
199
+ }
200
+ }
201
+ `;
202
+
203
+ const sheet = new CSSStyleSheet();
204
+ sheet.replaceSync(css);
205
+ export const styles = sheet;
206
+ export default sheet;