@duskmoon-dev/core 1.19.4 → 1.19.5

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.
@@ -0,0 +1,114 @@
1
+ // Auto-generated from loading.css
2
+ export const css = `/**
3
+ * Loading Component Styles
4
+ * CSS-only activity indicators. State, aria-busy, and disabling remain consumer-owned.
5
+ */
6
+
7
+ @layer components {
8
+ .loading {
9
+ --loading-size: 1.25rem;
10
+ display: inline-flex;
11
+ width: var(--loading-size);
12
+ height: var(--loading-size);
13
+ flex: 0 0 var(--loading-size);
14
+ color: currentColor;
15
+ vertical-align: middle;
16
+ }
17
+
18
+ .loading-spinner {
19
+ border: max(2px, calc(var(--loading-size) / 8)) solid color-mix(in oklch, currentColor 25%, transparent);
20
+ border-top-color: currentColor;
21
+ border-radius: var(--radius-full);
22
+ animation: loading-spin 800ms linear infinite;
23
+ }
24
+
25
+ .loading-dots,
26
+ .loading-bars {
27
+ align-items: center;
28
+ justify-content: center;
29
+ gap: max(2px, calc(var(--loading-size) / 8));
30
+ }
31
+
32
+ .loading-dots::before,
33
+ .loading-dots::after,
34
+ .loading-bars::before,
35
+ .loading-bars::after {
36
+ content: "";
37
+ display: block;
38
+ background: currentColor;
39
+ }
40
+
41
+ .loading-dots::before,
42
+ .loading-dots::after {
43
+ width: 25%;
44
+ height: 25%;
45
+ border-radius: var(--radius-full);
46
+ box-shadow: calc(var(--loading-size) / 3) 0 currentColor;
47
+ animation: loading-dots 900ms ease-in-out infinite;
48
+ }
49
+
50
+ .loading-dots::after {
51
+ display: none;
52
+ }
53
+
54
+ .loading-bars {
55
+ padding-inline: 10%;
56
+ }
57
+
58
+ .loading-bars::before,
59
+ .loading-bars::after {
60
+ width: 18%;
61
+ height: 65%;
62
+ border-radius: var(--radius-xs);
63
+ box-shadow: calc(var(--loading-size) / 3) 0 currentColor, calc(var(--loading-size) * 2 / 3) 0 currentColor;
64
+ animation: loading-bars 900ms ease-in-out infinite;
65
+ }
66
+
67
+ .loading-bars::after {
68
+ display: none;
69
+ }
70
+
71
+ .loading-xs { --loading-size: 0.75rem; }
72
+ .loading-sm { --loading-size: 1rem; }
73
+ .loading-md { --loading-size: 1.25rem; }
74
+ .loading-lg { --loading-size: 1.75rem; }
75
+ .loading-xl { --loading-size: 2.5rem; }
76
+
77
+ .loading-primary { color: var(--color-primary); }
78
+ .loading-secondary { color: var(--color-secondary); }
79
+ .loading-tertiary { color: var(--color-tertiary); }
80
+ .loading-info { color: var(--color-info); }
81
+ .loading-success { color: var(--color-success); }
82
+ .loading-warning { color: var(--color-warning); }
83
+ .loading-error { color: var(--color-error); }
84
+
85
+ @keyframes loading-spin {
86
+ to { transform: rotate(360deg); }
87
+ }
88
+
89
+ @keyframes loading-dots {
90
+ 0%, 100% { opacity: 0.35; transform: scale(0.75); }
91
+ 50% { opacity: 1; transform: scale(1); }
92
+ }
93
+
94
+ @keyframes loading-bars {
95
+ 0%, 100% { opacity: 0.35; transform: scaleY(0.65); }
96
+ 50% { opacity: 1; transform: scaleY(1); }
97
+ }
98
+
99
+ @media (prefers-reduced-motion: reduce) {
100
+ .loading-spinner,
101
+ .loading-dots::before,
102
+ .loading-bars::before {
103
+ animation: none;
104
+ }
105
+ }
106
+ }
107
+ `;
108
+
109
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
110
+ if (sheet) {
111
+ sheet.replaceSync(css);
112
+ }
113
+ export const styles = sheet;
114
+ export default sheet;
@@ -63,7 +63,8 @@ export const css = `/**
63
63
  }
64
64
 
65
65
  /* Modal Action */
66
- .modal-action {
66
+ .modal-action,
67
+ .modal-footer {
67
68
  display: flex;
68
69
  justify-content: flex-end;
69
70
  gap: 0.5rem;
@@ -94,10 +95,18 @@ export const css = `/**
94
95
  max-width: 20rem;
95
96
  }
96
97
 
98
+ .modal-md .modal-box {
99
+ max-width: 32rem;
100
+ }
101
+
97
102
  .modal-lg .modal-box {
98
103
  max-width: 48rem;
99
104
  }
100
105
 
106
+ .modal-xl .modal-box {
107
+ max-width: 64rem;
108
+ }
109
+
101
110
  .modal-full .modal-box {
102
111
  max-width: calc(100vw - 2rem);
103
112
  max-height: calc(100vh - 2rem);
@@ -120,6 +129,38 @@ export const css = `/**
120
129
  align-items: center;
121
130
  }
122
131
 
132
+ /* Animation Variants */
133
+ .modal-slide-up .modal-box {
134
+ transform: translateY(6rem) scale(0.95);
135
+ }
136
+
137
+ .modal-slide-down .modal-box {
138
+ transform: translateY(-6rem) scale(0.95);
139
+ }
140
+
141
+ .modal-zoom .modal-box {
142
+ transform: scale(0.75);
143
+ }
144
+
145
+ :is(.modal-slide-up, .modal-slide-down, .modal-zoom).modal-open .modal-box,
146
+ :is(.modal-slide-up, .modal-slide-down, .modal-zoom):target .modal-box {
147
+ transform: translateY(0) scale(1);
148
+ }
149
+
150
+ /* Backdrop Variants */
151
+ .modal-backdrop-light {
152
+ background-color: color-mix(in srgb, white 80%, transparent);
153
+ }
154
+
155
+ .modal-backdrop-blur {
156
+ background-color: color-mix(in srgb, var(--color-scrim) 30%, transparent);
157
+ backdrop-filter: blur(8px);
158
+ }
159
+
160
+ .modal-no-backdrop {
161
+ background-color: transparent;
162
+ }
163
+
123
164
  /* Modal Close Button */
124
165
  .modal-close {
125
166
  position: absolute;
@@ -168,6 +209,22 @@ export const css = `/**
168
209
  line-height: 1.5;
169
210
  }
170
211
 
212
+ .modal-scrollable .modal-body {
213
+ max-height: 60vh;
214
+ overflow-y: auto;
215
+ }
216
+
217
+ .modal-no-padding .modal-body {
218
+ padding: 0;
219
+ }
220
+
221
+ .modal-centered .modal-body {
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: center;
225
+ text-align: center;
226
+ }
227
+
171
228
  /* Responsive Modal */
172
229
  @media (max-width: 640px) {
173
230
  .modal-box {
@@ -289,6 +346,10 @@ export const css = `/**
289
346
  white-space: nowrap;
290
347
  border: 0;
291
348
  }
349
+
350
+ body.modal-open {
351
+ overflow: hidden;
352
+ }
292
353
  }
293
354
  `;
294
355
 
@@ -15,6 +15,36 @@ export const css = `/**
15
15
  overflow: hidden;
16
16
  }
17
17
 
18
+ /* Native progress keeps the platform's accessible value/max contract. */
19
+ progress.progress {
20
+ appearance: none;
21
+ border: 0;
22
+ display: block;
23
+ }
24
+
25
+ progress.progress::-webkit-progress-bar {
26
+ background: var(--color-surface-container-highest);
27
+ border-radius: var(--radius-full);
28
+ }
29
+
30
+ progress.progress::-webkit-progress-value {
31
+ background: var(--color-primary);
32
+ border-radius: var(--radius-full);
33
+ transition: width 300ms ease-in-out;
34
+ }
35
+
36
+ progress.progress::-moz-progress-bar {
37
+ background: var(--color-primary);
38
+ border-radius: var(--radius-full);
39
+ transition: width 300ms ease-in-out;
40
+ }
41
+
42
+ progress.progress:indeterminate::-webkit-progress-value,
43
+ progress.progress:indeterminate::-moz-progress-bar {
44
+ width: 30%;
45
+ animation: progress-indeterminate 1.5s infinite ease-in-out;
46
+ }
47
+
18
48
  /* Progress Bar */
19
49
  .progress-bar {
20
50
  position: absolute;
@@ -67,6 +97,21 @@ export const css = `/**
67
97
  background-color: var(--color-base-content);
68
98
  }
69
99
 
100
+ progress.progress-primary::-webkit-progress-value,
101
+ progress.progress-primary::-moz-progress-bar { background: var(--color-primary); }
102
+ progress.progress-secondary::-webkit-progress-value,
103
+ progress.progress-secondary::-moz-progress-bar { background: var(--color-secondary); }
104
+ progress.progress-tertiary::-webkit-progress-value,
105
+ progress.progress-tertiary::-moz-progress-bar { background: var(--color-tertiary); }
106
+ progress.progress-info::-webkit-progress-value,
107
+ progress.progress-info::-moz-progress-bar { background: var(--color-info); }
108
+ progress.progress-success::-webkit-progress-value,
109
+ progress.progress-success::-moz-progress-bar { background: var(--color-success); }
110
+ progress.progress-warning::-webkit-progress-value,
111
+ progress.progress-warning::-moz-progress-bar { background: var(--color-warning); }
112
+ progress.progress-error::-webkit-progress-value,
113
+ progress.progress-error::-moz-progress-bar { background: var(--color-error); }
114
+
70
115
  /* Size Variants */
71
116
  .progress-xs {
72
117
  height: 0.25rem;
@@ -142,6 +187,25 @@ export const css = `/**
142
187
  }
143
188
  }
144
189
 
190
+ /* Buffer tracks belong to custom markup, not native <progress>. */
191
+ .progress-buffer {
192
+ position: relative;
193
+ }
194
+
195
+ .progress-buffer-bar {
196
+ position: absolute;
197
+ inset-block: 0;
198
+ inset-inline-start: 0;
199
+ width: 0;
200
+ background: color-mix(in oklch, var(--color-primary) 30%, transparent);
201
+ border-radius: var(--radius-full);
202
+ transition: width 300ms ease-in-out;
203
+ }
204
+
205
+ .progress-buffer .progress-bar {
206
+ z-index: 1;
207
+ }
208
+
145
209
  /* Circular Progress */
146
210
  .progress-circular {
147
211
  position: relative;
@@ -241,7 +305,17 @@ export const css = `/**
241
305
 
242
306
  /* Reduce Motion */
243
307
  @media (prefers-reduced-motion: reduce) {
308
+ .progress-bar,
309
+ progress.progress::-webkit-progress-value,
310
+ progress.progress::-moz-progress-bar,
311
+ .progress-circular-bar,
312
+ .progress-buffer-bar {
313
+ transition: none;
314
+ }
315
+
244
316
  .progress-indeterminate .progress-bar,
317
+ progress.progress:indeterminate::-webkit-progress-value,
318
+ progress.progress:indeterminate::-moz-progress-bar,
245
319
  .progress-striped.progress-animated .progress-bar,
246
320
  .progress-circular-indeterminate svg,
247
321
  .progress-circular-indeterminate .progress-circular-bar {
@@ -0,0 +1,5 @@
1
+ // Auto-generated type declaration for radial-progress
2
+ export declare const css: string;
3
+ export declare const styles: CSSStyleSheet | null;
4
+ declare const sheet: CSSStyleSheet | null;
5
+ export default sheet;
@@ -0,0 +1,56 @@
1
+ // Auto-generated from radial-progress.css
2
+ export const css = `/**
3
+ * Radial Progress Component Styles
4
+ * Determinate percentage progress without circumference arithmetic.
5
+ */
6
+
7
+ @layer components {
8
+ .radial-progress {
9
+ --radial-progress-value: 0;
10
+ --radial-progress-size: 3rem;
11
+ --radial-progress-thickness: 0.375rem;
12
+ --radial-progress-track: var(--color-surface-container-highest);
13
+ position: relative;
14
+ display: inline-grid;
15
+ width: var(--radial-progress-size);
16
+ height: var(--radial-progress-size);
17
+ place-items: center;
18
+ color: var(--color-primary);
19
+ border-radius: var(--radius-full);
20
+ background: conic-gradient(currentColor calc(clamp(0, var(--radial-progress-value), 100) * 1%), var(--radial-progress-track) 0);
21
+ isolation: isolate;
22
+ }
23
+
24
+ .radial-progress::before {
25
+ content: "";
26
+ position: absolute;
27
+ inset: var(--radial-progress-thickness);
28
+ z-index: 0;
29
+ border-radius: inherit;
30
+ background: var(--color-surface);
31
+ }
32
+
33
+ .radial-progress-primary { color: var(--color-primary); }
34
+ .radial-progress-secondary { color: var(--color-secondary); }
35
+ .radial-progress-tertiary { color: var(--color-tertiary); }
36
+ .radial-progress-info { color: var(--color-info); }
37
+ .radial-progress-success { color: var(--color-success); }
38
+ .radial-progress-warning { color: var(--color-warning); }
39
+ .radial-progress-error { color: var(--color-error); }
40
+
41
+ .radial-progress-sm { --radial-progress-size: 2rem; --radial-progress-thickness: 0.25rem; }
42
+ .radial-progress-lg { --radial-progress-size: 4rem; --radial-progress-thickness: 0.5rem; }
43
+ .radial-progress-xl { --radial-progress-size: 6rem; --radial-progress-thickness: 0.625rem; }
44
+
45
+ @media (prefers-reduced-motion: reduce) {
46
+ .radial-progress { transition: none; }
47
+ }
48
+ }
49
+ `;
50
+
51
+ const sheet = typeof CSSStyleSheet !== 'undefined' ? new CSSStyleSheet() : null;
52
+ if (sheet) {
53
+ sheet.replaceSync(css);
54
+ }
55
+ export const styles = sheet;
56
+ export default sheet;
@@ -32,6 +32,10 @@ export const css = `/**
32
32
  border-radius: var(--radius-sm);
33
33
  }
34
34
 
35
+ .skeleton-static {
36
+ animation: none;
37
+ }
38
+
35
39
  /* Size Variants */
36
40
  .skeleton-xs {
37
41
  height: 0.5rem;
@@ -134,7 +138,7 @@ export const css = `/**
134
138
  background: linear-gradient(
135
139
  90deg,
136
140
  transparent,
137
- rgba(255, 255, 255, 0.3),
141
+ color-mix(in oklch, var(--color-surface-bright) 35%, transparent),
138
142
  transparent
139
143
  );
140
144
  animation: skeleton-wave 1.5s infinite;
@@ -212,6 +216,14 @@ export const css = `/**
212
216
 
213
217
  .skeleton-wave::after {
214
218
  animation: none;
219
+ transform: translateX(0);
220
+ opacity: 0.35;
221
+ }
222
+
223
+ .skeleton-static::after {
224
+ animation: none;
225
+ transform: translateX(0);
226
+ opacity: 0.35;
215
227
  }
216
228
  }
217
229
  }
@@ -211,49 +211,49 @@ export const css = `/**
211
211
 
212
212
  /* Color Variants */
213
213
  .snackbar-info {
214
- background-color: var(--color-info-container);
215
- color: var(--color-on-info-container);
214
+ background-color: var(--color-info);
215
+ color: var(--color-info-content);
216
216
  }
217
217
 
218
218
  .snackbar-success {
219
- background-color: var(--color-success-container);
220
- color: var(--color-on-success-container);
219
+ background-color: var(--color-success);
220
+ color: var(--color-success-content);
221
221
  }
222
222
 
223
223
  .snackbar-warning {
224
- background-color: var(--color-warning-container);
225
- color: var(--color-on-warning-container);
224
+ background-color: var(--color-warning);
225
+ color: var(--color-warning-content);
226
226
  }
227
227
 
228
228
  .snackbar-error {
229
- background-color: var(--color-error-container);
230
- color: var(--color-on-error-container);
229
+ background-color: var(--color-error);
230
+ color: var(--color-error-content);
231
231
  }
232
232
 
233
233
  /* Brand Color Variants */
234
234
  .snackbar-primary {
235
- background-color: var(--color-primary-container);
236
- color: var(--color-on-primary-container);
235
+ background-color: var(--color-primary);
236
+ color: var(--color-primary-content);
237
237
  }
238
238
 
239
239
  .snackbar-secondary {
240
- background-color: var(--color-secondary-container);
241
- color: var(--color-on-secondary-container);
240
+ background-color: var(--color-secondary);
241
+ color: var(--color-secondary-content);
242
242
  }
243
243
 
244
244
  .snackbar-tertiary {
245
- background-color: var(--color-tertiary-container);
246
- color: var(--color-on-tertiary-container);
245
+ background-color: var(--color-tertiary);
246
+ color: var(--color-tertiary-content);
247
247
  }
248
248
 
249
249
  .snackbar-accent {
250
- background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
251
- color: var(--color-on-surface);
250
+ background-color: var(--color-accent);
251
+ color: var(--color-accent-content);
252
252
  }
253
253
 
254
254
  .snackbar-neutral {
255
- background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
256
- color: var(--color-on-surface);
255
+ background-color: var(--color-neutral);
256
+ color: var(--color-neutral-content);
257
257
  }
258
258
 
259
259
  .snackbar-base {
@@ -261,6 +261,36 @@ export const css = `/**
261
261
  color: var(--color-base-content);
262
262
  }
263
263
 
264
+ :is(
265
+ .snackbar-info,
266
+ .snackbar-success,
267
+ .snackbar-warning,
268
+ .snackbar-error,
269
+ .snackbar-primary,
270
+ .snackbar-secondary,
271
+ .snackbar-tertiary,
272
+ .snackbar-accent,
273
+ .snackbar-neutral,
274
+ .snackbar-base
275
+ ) :is(.snackbar-action, .snackbar-close) {
276
+ color: inherit;
277
+ }
278
+
279
+ :is(
280
+ .snackbar-info,
281
+ .snackbar-success,
282
+ .snackbar-warning,
283
+ .snackbar-error,
284
+ .snackbar-primary,
285
+ .snackbar-secondary,
286
+ .snackbar-tertiary,
287
+ .snackbar-accent,
288
+ .snackbar-neutral,
289
+ .snackbar-base
290
+ ) :is(.snackbar-action, .snackbar-close):hover {
291
+ background-color: color-mix(in oklch, currentColor 12%, transparent);
292
+ }
293
+
264
294
  /* Dark Snackbar (default MD3 style) */
265
295
  .snackbar-dark {
266
296
  background-color: var(--color-on-surface);