@duskmoon-dev/core 1.0.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 (36) hide show
  1. package/dist/esm/components/accordion.js +251 -0
  2. package/dist/esm/components/alert.js +206 -0
  3. package/dist/esm/components/appbar.js +315 -0
  4. package/dist/esm/components/autocomplete.js +276 -0
  5. package/dist/esm/components/avatar.js +174 -0
  6. package/dist/esm/components/badge.js +185 -0
  7. package/dist/esm/components/bottom-navigation.js +270 -0
  8. package/dist/esm/components/bottomsheet.js +341 -0
  9. package/dist/esm/components/button.js +481 -0
  10. package/dist/esm/components/card.js +227 -0
  11. package/dist/esm/components/chip.js +218 -0
  12. package/dist/esm/components/collapse.js +261 -0
  13. package/dist/esm/components/datepicker.js +354 -0
  14. package/dist/esm/components/dialog.js +180 -0
  15. package/dist/esm/components/divider.js +291 -0
  16. package/dist/esm/components/drawer.js +378 -0
  17. package/dist/esm/components/file-upload.js +328 -0
  18. package/dist/esm/components/form.js +448 -0
  19. package/dist/esm/components/input.js +247 -0
  20. package/dist/esm/components/list.js +195 -0
  21. package/dist/esm/components/markdown-body.js +412 -0
  22. package/dist/esm/components/modal.js +298 -0
  23. package/dist/esm/components/navigation.js +399 -0
  24. package/dist/esm/components/popover.js +333 -0
  25. package/dist/esm/components/progress.js +245 -0
  26. package/dist/esm/components/rating.js +237 -0
  27. package/dist/esm/components/skeleton.js +223 -0
  28. package/dist/esm/components/slider.js +334 -0
  29. package/dist/esm/components/snackbar.js +318 -0
  30. package/dist/esm/components/stepper.js +320 -0
  31. package/dist/esm/components/switch.js +284 -0
  32. package/dist/esm/components/table.js +206 -0
  33. package/dist/esm/components/timeline.js +360 -0
  34. package/dist/esm/components/toast.js +258 -0
  35. package/dist/esm/components/tooltip.js +291 -0
  36. package/package.json +108 -38
@@ -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;