@duskmoon-dev/core 1.12.4 → 1.14.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.
- package/dist/components/alert.css +64 -2
- package/dist/components/appbar.css +119 -21
- package/dist/components/autocomplete.css +63 -3
- package/dist/components/avatar.css +22 -2
- package/dist/components/button.css +101 -49
- package/dist/components/card.css +38 -2
- package/dist/components/cascader.css +59 -9
- package/dist/components/checkbox.css +15 -5
- package/dist/components/chip.css +122 -2
- package/dist/components/collapse.css +32 -0
- package/dist/components/datepicker.css +79 -6
- package/dist/components/divider.css +196 -121
- package/dist/components/file-upload.css +68 -8
- package/dist/components/form.css +2 -1
- package/dist/components/index.css +1835 -586
- package/dist/components/input.css +21 -67
- package/dist/components/multi-select.css +59 -9
- package/dist/components/navigation.css +1 -1
- package/dist/components/otp-input.css +48 -16
- package/dist/components/pin-input.css +50 -13
- package/dist/components/radio.css +12 -2
- package/dist/components/rating.css +35 -3
- package/dist/components/segment-control.css +23 -2
- package/dist/components/select.css +21 -37
- package/dist/components/slider.css +130 -6
- package/dist/components/switch.css +27 -4
- package/dist/components/textarea.css +21 -96
- package/dist/components/time-input.css +61 -12
- package/dist/components/toast.css +72 -3
- package/dist/components/toggle.css +63 -6
- package/dist/components/tooltip.css +84 -0
- package/dist/components/tree-select.css +60 -11
- package/dist/esm/components/alert.js +64 -2
- package/dist/esm/components/appbar.js +119 -21
- package/dist/esm/components/autocomplete.js +63 -3
- package/dist/esm/components/avatar.js +22 -2
- package/dist/esm/components/button.js +101 -49
- package/dist/esm/components/card.js +38 -2
- package/dist/esm/components/cascader.js +59 -9
- package/dist/esm/components/checkbox.js +15 -5
- package/dist/esm/components/chip.js +122 -2
- package/dist/esm/components/collapse.js +32 -0
- package/dist/esm/components/datepicker.js +79 -6
- package/dist/esm/components/divider.js +196 -121
- package/dist/esm/components/file-upload.js +68 -8
- package/dist/esm/components/form.js +2 -1
- package/dist/esm/components/input.js +21 -67
- package/dist/esm/components/multi-select.js +59 -9
- package/dist/esm/components/navigation.js +1 -1
- package/dist/esm/components/otp-input.js +48 -16
- package/dist/esm/components/pin-input.js +50 -13
- package/dist/esm/components/radio.js +12 -2
- package/dist/esm/components/rating.js +35 -3
- package/dist/esm/components/segment-control.js +23 -2
- package/dist/esm/components/select.js +21 -37
- package/dist/esm/components/slider.js +130 -6
- package/dist/esm/components/switch.js +27 -4
- package/dist/esm/components/textarea.js +21 -96
- package/dist/esm/components/time-input.js +61 -12
- package/dist/esm/components/toast.js +72 -3
- package/dist/esm/components/toggle.js +63 -6
- package/dist/esm/components/tooltip.js +84 -0
- package/dist/esm/components/tree-select.js +60 -11
- package/dist/index.css +1835 -586
- package/dist/index.min.css +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,7 @@ export const css = `/**
|
|
|
14
14
|
height: 2.5rem;
|
|
15
15
|
touch-action: none;
|
|
16
16
|
user-select: none;
|
|
17
|
+
color: var(--color-on-surface);
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
/* Slider Track */
|
|
@@ -74,7 +75,7 @@ export const css = `/**
|
|
|
74
75
|
margin-bottom: 0.5rem;
|
|
75
76
|
font-size: 0.75rem;
|
|
76
77
|
font-weight: 500;
|
|
77
|
-
color: var(--color-
|
|
78
|
+
color: var(--color-primary-content);
|
|
78
79
|
background-color: var(--color-primary);
|
|
79
80
|
border-radius: 0.25rem;
|
|
80
81
|
white-space: nowrap;
|
|
@@ -128,7 +129,7 @@ export const css = `/**
|
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
.slider-mark-active {
|
|
131
|
-
background-color: var(--color-
|
|
132
|
+
background-color: var(--color-primary-content);
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
/* Mark Label */
|
|
@@ -179,6 +180,27 @@ export const css = `/**
|
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
/* Color Variants */
|
|
183
|
+
.slider-primary .slider-track-filled,
|
|
184
|
+
.slider-primary .slider-thumb {
|
|
185
|
+
background-color: var(--color-primary);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.slider-primary .slider-mark-active { background-color: var(--color-primary-content); }
|
|
189
|
+
|
|
190
|
+
.slider-primary .slider-thumb:hover,
|
|
191
|
+
.slider-primary .slider-thumb:focus-visible {
|
|
192
|
+
box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px rgb(0 0 0 / 0.2);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.slider-primary .slider-thumb-label {
|
|
196
|
+
background-color: var(--color-primary);
|
|
197
|
+
color: var(--color-primary-content);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.slider-primary .slider-thumb-label::after {
|
|
201
|
+
border-top-color: var(--color-primary);
|
|
202
|
+
}
|
|
203
|
+
|
|
182
204
|
.slider-secondary .slider-track-filled,
|
|
183
205
|
.slider-secondary .slider-thumb {
|
|
184
206
|
background-color: var(--color-secondary);
|
|
@@ -189,9 +211,11 @@ export const css = `/**
|
|
|
189
211
|
box-shadow: 0 0 0 8px var(--color-secondary-container), 0 2px 4px rgb(0 0 0 / 0.2);
|
|
190
212
|
}
|
|
191
213
|
|
|
214
|
+
.slider-secondary .slider-mark-active { background-color: var(--color-secondary-content); }
|
|
215
|
+
|
|
192
216
|
.slider-secondary .slider-thumb-label {
|
|
193
217
|
background-color: var(--color-secondary);
|
|
194
|
-
color: var(--color-
|
|
218
|
+
color: var(--color-secondary-content);
|
|
195
219
|
}
|
|
196
220
|
|
|
197
221
|
.slider-secondary .slider-thumb-label::after {
|
|
@@ -208,15 +232,105 @@ export const css = `/**
|
|
|
208
232
|
box-shadow: 0 0 0 8px var(--color-tertiary-container), 0 2px 4px rgb(0 0 0 / 0.2);
|
|
209
233
|
}
|
|
210
234
|
|
|
235
|
+
.slider-tertiary .slider-mark-active { background-color: var(--color-tertiary-content); }
|
|
236
|
+
|
|
211
237
|
.slider-tertiary .slider-thumb-label {
|
|
212
238
|
background-color: var(--color-tertiary);
|
|
213
|
-
color: var(--color-
|
|
239
|
+
color: var(--color-tertiary-content);
|
|
214
240
|
}
|
|
215
241
|
|
|
216
242
|
.slider-tertiary .slider-thumb-label::after {
|
|
217
243
|
border-top-color: var(--color-tertiary);
|
|
218
244
|
}
|
|
219
245
|
|
|
246
|
+
/* Info */
|
|
247
|
+
.slider-info .slider-track-filled,
|
|
248
|
+
.slider-info .slider-thumb {
|
|
249
|
+
background-color: var(--color-info);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.slider-info .slider-thumb:hover,
|
|
253
|
+
.slider-info .slider-thumb:focus-visible {
|
|
254
|
+
box-shadow: 0 0 0 8px var(--color-info-container), 0 2px 4px rgb(0 0 0 / 0.2);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.slider-info .slider-mark-active { background-color: var(--color-info-content); }
|
|
258
|
+
|
|
259
|
+
.slider-info .slider-thumb-label {
|
|
260
|
+
background-color: var(--color-info);
|
|
261
|
+
color: var(--color-info-content);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.slider-info .slider-thumb-label::after {
|
|
265
|
+
border-top-color: var(--color-info);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/* Success */
|
|
269
|
+
.slider-success .slider-track-filled,
|
|
270
|
+
.slider-success .slider-thumb {
|
|
271
|
+
background-color: var(--color-success);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.slider-success .slider-thumb:hover,
|
|
275
|
+
.slider-success .slider-thumb:focus-visible {
|
|
276
|
+
box-shadow: 0 0 0 8px var(--color-success-container), 0 2px 4px rgb(0 0 0 / 0.2);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.slider-success .slider-mark-active { background-color: var(--color-success-content); }
|
|
280
|
+
|
|
281
|
+
.slider-success .slider-thumb-label {
|
|
282
|
+
background-color: var(--color-success);
|
|
283
|
+
color: var(--color-success-content);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.slider-success .slider-thumb-label::after {
|
|
287
|
+
border-top-color: var(--color-success);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/* Warning */
|
|
291
|
+
.slider-warning .slider-track-filled,
|
|
292
|
+
.slider-warning .slider-thumb {
|
|
293
|
+
background-color: var(--color-warning);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.slider-warning .slider-thumb:hover,
|
|
297
|
+
.slider-warning .slider-thumb:focus-visible {
|
|
298
|
+
box-shadow: 0 0 0 8px var(--color-warning-container), 0 2px 4px rgb(0 0 0 / 0.2);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.slider-warning .slider-mark-active { background-color: var(--color-warning-content); }
|
|
302
|
+
|
|
303
|
+
.slider-warning .slider-thumb-label {
|
|
304
|
+
background-color: var(--color-warning);
|
|
305
|
+
color: var(--color-warning-content);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.slider-warning .slider-thumb-label::after {
|
|
309
|
+
border-top-color: var(--color-warning);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/* Error */
|
|
313
|
+
.slider-error .slider-track-filled,
|
|
314
|
+
.slider-error .slider-thumb {
|
|
315
|
+
background-color: var(--color-error);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.slider-error .slider-thumb:hover,
|
|
319
|
+
.slider-error .slider-thumb:focus-visible {
|
|
320
|
+
box-shadow: 0 0 0 8px var(--color-error-container), 0 2px 4px rgb(0 0 0 / 0.2);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.slider-error .slider-mark-active { background-color: var(--color-error-content); }
|
|
324
|
+
|
|
325
|
+
.slider-error .slider-thumb-label {
|
|
326
|
+
background-color: var(--color-error);
|
|
327
|
+
color: var(--color-error-content);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.slider-error .slider-thumb-label::after {
|
|
331
|
+
border-top-color: var(--color-error);
|
|
332
|
+
}
|
|
333
|
+
|
|
220
334
|
/* Disabled State */
|
|
221
335
|
.slider-disabled {
|
|
222
336
|
opacity: 0.6;
|
|
@@ -273,9 +387,18 @@ export const css = `/**
|
|
|
273
387
|
right: 100%;
|
|
274
388
|
transform: translateY(-50%);
|
|
275
389
|
border-top-color: transparent;
|
|
276
|
-
border-right-color: var(--color-primary);
|
|
390
|
+
border-right-color: var(--color-primary); /* overridden per-variant below */
|
|
277
391
|
}
|
|
278
392
|
|
|
393
|
+
/* Variant-specific vertical arrow colors (border-right-color cannot use currentColor
|
|
394
|
+
since it must match the label background, not the text color) */
|
|
395
|
+
.slider-secondary.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-secondary); }
|
|
396
|
+
.slider-tertiary.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-tertiary); }
|
|
397
|
+
.slider-info.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-info); }
|
|
398
|
+
.slider-success.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-success); }
|
|
399
|
+
.slider-warning.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-warning); }
|
|
400
|
+
.slider-error.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-error); }
|
|
401
|
+
|
|
279
402
|
.slider-vertical .slider-marks {
|
|
280
403
|
flex-direction: column;
|
|
281
404
|
top: 0;
|
|
@@ -315,7 +438,8 @@ export const css = `/**
|
|
|
315
438
|
|
|
316
439
|
.slider-input:focus {
|
|
317
440
|
outline: none;
|
|
318
|
-
border-color:
|
|
441
|
+
border-color: currentColor;
|
|
442
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
319
443
|
}
|
|
320
444
|
|
|
321
445
|
/* Reduce Motion */
|
|
@@ -12,8 +12,11 @@ export const css = `/**
|
|
|
12
12
|
.switch {
|
|
13
13
|
--switch-width: 3.25rem;
|
|
14
14
|
--switch-height: 2rem;
|
|
15
|
+
color: var(--color-on-surface);
|
|
15
16
|
--switch-thumb-size: 1rem;
|
|
16
17
|
--switch-color: var(--color-primary);
|
|
18
|
+
--switch-content-color: var(--color-primary-content);
|
|
19
|
+
--switch-container-color: var(--color-primary-container);
|
|
17
20
|
--switch-track-color: var(--color-surface-container-highest);
|
|
18
21
|
--switch-border-color: var(--color-outline);
|
|
19
22
|
--switch-thumb-color: var(--color-outline);
|
|
@@ -59,7 +62,7 @@ export const css = `/**
|
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
.switch:checked::before {
|
|
62
|
-
background-color: var(--
|
|
65
|
+
background-color: var(--switch-content-color);
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
/* Hover State (unchecked) */
|
|
@@ -78,13 +81,13 @@ export const css = `/**
|
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
.switch:checked:hover:not(:disabled)::before {
|
|
81
|
-
background-color: var(--
|
|
84
|
+
background-color: var(--switch-container-color);
|
|
82
85
|
}
|
|
83
86
|
|
|
84
87
|
/* Focus State */
|
|
85
88
|
.switch:focus-visible {
|
|
86
|
-
outline:
|
|
87
|
-
|
|
89
|
+
outline: none;
|
|
90
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--switch-color) 20%, transparent);
|
|
88
91
|
}
|
|
89
92
|
|
|
90
93
|
/* Pressed/Active State - expand thumb slightly */
|
|
@@ -161,30 +164,50 @@ export const css = `/**
|
|
|
161
164
|
|
|
162
165
|
.switch-primary {
|
|
163
166
|
--switch-color: var(--color-primary);
|
|
167
|
+
--switch-content-color: var(--color-primary-content);
|
|
168
|
+
--switch-container-color: var(--color-primary-container);
|
|
164
169
|
}
|
|
165
170
|
|
|
166
171
|
.switch-secondary {
|
|
167
172
|
--switch-color: var(--color-secondary);
|
|
173
|
+
--switch-content-color: var(--color-secondary-content);
|
|
174
|
+
--switch-container-color: var(--color-secondary-container);
|
|
168
175
|
}
|
|
169
176
|
|
|
170
177
|
.switch-tertiary {
|
|
171
178
|
--switch-color: var(--color-tertiary);
|
|
179
|
+
--switch-content-color: var(--color-tertiary-content);
|
|
180
|
+
--switch-container-color: var(--color-tertiary-container);
|
|
172
181
|
}
|
|
173
182
|
|
|
174
183
|
.switch-success {
|
|
175
184
|
--switch-color: var(--color-success);
|
|
185
|
+
--switch-content-color: var(--color-success-content);
|
|
186
|
+
--switch-container-color: var(--color-success-container);
|
|
176
187
|
}
|
|
177
188
|
|
|
178
189
|
.switch-warning {
|
|
179
190
|
--switch-color: var(--color-warning);
|
|
191
|
+
--switch-content-color: var(--color-warning-content);
|
|
192
|
+
--switch-container-color: var(--color-warning-container);
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
.switch-error {
|
|
183
196
|
--switch-color: var(--color-error);
|
|
197
|
+
--switch-content-color: var(--color-error-content);
|
|
198
|
+
--switch-container-color: var(--color-error-container);
|
|
184
199
|
}
|
|
185
200
|
|
|
186
201
|
.switch-info {
|
|
187
202
|
--switch-color: var(--color-info);
|
|
203
|
+
--switch-content-color: var(--color-info-content);
|
|
204
|
+
--switch-container-color: var(--color-info-container);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* Ghost Variant — borderless track */
|
|
208
|
+
.switch-ghost {
|
|
209
|
+
--switch-border-color: transparent;
|
|
210
|
+
--switch-track-color: transparent;
|
|
188
211
|
}
|
|
189
212
|
|
|
190
213
|
/* ========================================
|
|
@@ -93,7 +93,7 @@ export const css = `/**
|
|
|
93
93
|
font-family: inherit;
|
|
94
94
|
color: var(--color-on-surface);
|
|
95
95
|
background-color: var(--color-surface);
|
|
96
|
-
border: 1px solid
|
|
96
|
+
border: 1px solid currentColor;
|
|
97
97
|
border-radius: 0.5rem;
|
|
98
98
|
outline: none;
|
|
99
99
|
resize: vertical;
|
|
@@ -106,7 +106,7 @@ export const css = `/**
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
.textarea:hover:not(:disabled) {
|
|
109
|
-
|
|
109
|
+
background-color: var(--color-surface-container);
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
.textarea:focus {
|
|
@@ -114,8 +114,7 @@ export const css = `/**
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
.textarea:focus-visible {
|
|
117
|
-
|
|
118
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
117
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
.textarea:disabled {
|
|
@@ -157,6 +156,14 @@ export const css = `/**
|
|
|
157
156
|
box-shadow: none;
|
|
158
157
|
}
|
|
159
158
|
|
|
159
|
+
.textarea-filled.textarea-primary:focus-visible { border-bottom-color: var(--color-primary); }
|
|
160
|
+
.textarea-filled.textarea-secondary:focus-visible { border-bottom-color: var(--color-secondary); }
|
|
161
|
+
.textarea-filled.textarea-tertiary:focus-visible { border-bottom-color: var(--color-tertiary); }
|
|
162
|
+
.textarea-filled.textarea-info:focus-visible { border-bottom-color: var(--color-info); }
|
|
163
|
+
.textarea-filled.textarea-success:focus-visible { border-bottom-color: var(--color-success); }
|
|
164
|
+
.textarea-filled.textarea-warning:focus-visible { border-bottom-color: var(--color-warning); }
|
|
165
|
+
.textarea-filled.textarea-error:focus-visible { border-bottom-color: var(--color-error); }
|
|
166
|
+
|
|
160
167
|
/* Outlined Variant (default) */
|
|
161
168
|
.textarea-outlined {
|
|
162
169
|
background-color: transparent;
|
|
@@ -178,109 +185,27 @@ export const css = `/**
|
|
|
178
185
|
.textarea-ghost:focus-visible {
|
|
179
186
|
background-color: var(--color-surface-container);
|
|
180
187
|
border-color: transparent;
|
|
181
|
-
box-shadow:
|
|
188
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
182
189
|
}
|
|
183
190
|
|
|
184
191
|
/* ============================================
|
|
185
192
|
* COLOR VARIANTS
|
|
186
193
|
* ============================================ */
|
|
187
194
|
|
|
188
|
-
/*
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
.textarea-primary:focus-visible {
|
|
194
|
-
border-color: var(--color-primary);
|
|
195
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.textarea-filled.textarea-primary {
|
|
199
|
-
border-bottom-color: var(--color-primary);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
.textarea-filled.textarea-primary:focus-visible {
|
|
203
|
-
border-bottom-color: var(--color-primary);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/* Secondary */
|
|
207
|
-
.textarea-secondary {
|
|
208
|
-
border-color: var(--color-secondary);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
.textarea-secondary:focus-visible {
|
|
212
|
-
border-color: var(--color-secondary);
|
|
213
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.textarea-filled.textarea-secondary {
|
|
217
|
-
border-bottom-color: var(--color-secondary);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.textarea-filled.textarea-secondary:focus-visible {
|
|
221
|
-
border-bottom-color: var(--color-secondary);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/* Tertiary */
|
|
225
|
-
.textarea-tertiary {
|
|
226
|
-
border-color: var(--color-tertiary);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
.textarea-tertiary:focus-visible {
|
|
230
|
-
border-color: var(--color-tertiary);
|
|
231
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
.textarea-filled.textarea-tertiary {
|
|
235
|
-
border-bottom-color: var(--color-tertiary);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
.textarea-filled.textarea-tertiary:focus-visible {
|
|
239
|
-
border-bottom-color: var(--color-tertiary);
|
|
240
|
-
}
|
|
195
|
+
/* Color Variants — base .textarea:focus-visible uses currentColor 20%, so no per-variant
|
|
196
|
+
focus-visible overrides needed; setting color: here is sufficient. */
|
|
197
|
+
.textarea-primary { color: var(--color-primary); }
|
|
198
|
+
.textarea-secondary { color: var(--color-secondary); }
|
|
199
|
+
.textarea-tertiary { color: var(--color-tertiary); }
|
|
241
200
|
|
|
242
201
|
/* ============================================
|
|
243
202
|
* SEMANTIC COLORS
|
|
244
203
|
* ============================================ */
|
|
245
204
|
|
|
246
|
-
.textarea-
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
.textarea-error:focus-visible {
|
|
251
|
-
border-color: var(--color-error);
|
|
252
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
.textarea-filled.textarea-error {
|
|
256
|
-
border-bottom-color: var(--color-error);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
.textarea-success {
|
|
260
|
-
border-color: var(--color-success);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
.textarea-success:focus-visible {
|
|
264
|
-
border-color: var(--color-success);
|
|
265
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
.textarea-filled.textarea-success {
|
|
269
|
-
border-bottom-color: var(--color-success);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
.textarea-warning {
|
|
273
|
-
border-color: var(--color-warning);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
.textarea-warning:focus-visible {
|
|
277
|
-
border-color: var(--color-warning);
|
|
278
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
.textarea-filled.textarea-warning {
|
|
282
|
-
border-bottom-color: var(--color-warning);
|
|
283
|
-
}
|
|
205
|
+
.textarea-info { color: var(--color-info); }
|
|
206
|
+
.textarea-success { color: var(--color-success); }
|
|
207
|
+
.textarea-warning { color: var(--color-warning); }
|
|
208
|
+
.textarea-error { color: var(--color-error); }
|
|
284
209
|
|
|
285
210
|
/* ============================================
|
|
286
211
|
* SIZE VARIANTS
|
|
@@ -21,19 +21,18 @@ export const css = `/**
|
|
|
21
21
|
line-height: 1.5rem;
|
|
22
22
|
color: var(--color-on-surface);
|
|
23
23
|
background-color: var(--color-surface);
|
|
24
|
-
border: 1px solid
|
|
24
|
+
border: 1px solid currentColor;
|
|
25
25
|
border-radius: 0.5rem;
|
|
26
26
|
outline: none;
|
|
27
27
|
transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.time-input-field:hover:not(:disabled) {
|
|
31
|
-
|
|
31
|
+
background-color: var(--color-surface-container);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.time-input-field:focus {
|
|
35
|
-
|
|
36
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
35
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
.time-input-field:disabled {
|
|
@@ -62,7 +61,7 @@ export const css = `/**
|
|
|
62
61
|
gap: 0.125rem;
|
|
63
62
|
padding: 0.75rem 1rem;
|
|
64
63
|
background-color: var(--color-surface);
|
|
65
|
-
border: 1px solid
|
|
64
|
+
border: 1px solid currentColor;
|
|
66
65
|
border-radius: 0.5rem;
|
|
67
66
|
}
|
|
68
67
|
|
|
@@ -155,37 +154,87 @@ export const css = `/**
|
|
|
155
154
|
|
|
156
155
|
.time-input-filled .time-input-field:focus,
|
|
157
156
|
.time-input-filled .time-input-segments:focus-within {
|
|
158
|
-
border-bottom-color:
|
|
157
|
+
border-bottom-color: currentColor;
|
|
159
158
|
box-shadow: none;
|
|
160
159
|
}
|
|
161
160
|
|
|
162
161
|
/* Color Variants */
|
|
162
|
+
.time-input-primary .time-input-field,
|
|
163
|
+
.time-input-primary .time-input-segments {
|
|
164
|
+
color: var(--color-primary);
|
|
165
|
+
}
|
|
166
|
+
|
|
163
167
|
.time-input-primary .time-input-field:focus {
|
|
164
|
-
border-color: var(--color-primary);
|
|
165
168
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
166
169
|
}
|
|
167
170
|
|
|
171
|
+
.time-input-secondary .time-input-field,
|
|
172
|
+
.time-input-secondary .time-input-segments {
|
|
173
|
+
color: var(--color-secondary);
|
|
174
|
+
}
|
|
175
|
+
|
|
168
176
|
.time-input-secondary .time-input-field:focus {
|
|
169
|
-
border-color: var(--color-secondary);
|
|
170
177
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
|
|
171
178
|
}
|
|
172
179
|
|
|
180
|
+
.time-input-tertiary .time-input-field,
|
|
181
|
+
.time-input-tertiary .time-input-segments {
|
|
182
|
+
color: var(--color-tertiary);
|
|
183
|
+
}
|
|
184
|
+
|
|
173
185
|
.time-input-tertiary .time-input-field:focus {
|
|
174
|
-
border-color: var(--color-tertiary);
|
|
175
186
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
|
|
176
187
|
}
|
|
177
188
|
|
|
178
|
-
|
|
189
|
+
.time-input-info .time-input-field,
|
|
190
|
+
.time-input-info .time-input-segments {
|
|
191
|
+
color: var(--color-info);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.time-input-info .time-input-field:focus {
|
|
195
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.time-input-success .time-input-field,
|
|
199
|
+
.time-input-success .time-input-segments {
|
|
200
|
+
color: var(--color-success);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.time-input-success .time-input-field:focus {
|
|
204
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.time-input-warning .time-input-field,
|
|
208
|
+
.time-input-warning .time-input-segments {
|
|
209
|
+
color: var(--color-warning);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.time-input-warning .time-input-field:focus {
|
|
213
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
|
|
214
|
+
}
|
|
215
|
+
|
|
179
216
|
.time-input-error .time-input-field,
|
|
180
217
|
.time-input-error .time-input-segments {
|
|
181
|
-
|
|
218
|
+
color: var(--color-error);
|
|
182
219
|
}
|
|
183
220
|
|
|
184
221
|
.time-input-error .time-input-field:focus {
|
|
185
|
-
border-color: var(--color-error);
|
|
186
222
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
187
223
|
}
|
|
188
224
|
|
|
225
|
+
/* Ghost Variant */
|
|
226
|
+
.time-input-ghost .time-input-field,
|
|
227
|
+
.time-input-ghost .time-input-segments {
|
|
228
|
+
background-color: transparent;
|
|
229
|
+
border-color: transparent;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.time-input-ghost .time-input-field:focus {
|
|
233
|
+
background-color: var(--color-surface-container);
|
|
234
|
+
border-color: transparent;
|
|
235
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
236
|
+
}
|
|
237
|
+
|
|
189
238
|
/* Time Picker Dropdown */
|
|
190
239
|
.time-picker-dropdown {
|
|
191
240
|
position: absolute;
|
|
@@ -149,8 +149,8 @@ export const css = `/**
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
.toast-close:focus-visible {
|
|
152
|
-
outline:
|
|
153
|
-
|
|
152
|
+
outline: none;
|
|
153
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
/* Toast Actions */
|
|
@@ -193,6 +193,30 @@ export const css = `/**
|
|
|
193
193
|
color: var(--color-error);
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
+
.toast-primary {
|
|
197
|
+
border-color: var(--color-primary);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.toast-primary .toast-icon {
|
|
201
|
+
color: var(--color-primary);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.toast-secondary {
|
|
205
|
+
border-color: var(--color-secondary);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.toast-secondary .toast-icon {
|
|
209
|
+
color: var(--color-secondary);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.toast-tertiary {
|
|
213
|
+
border-color: var(--color-tertiary);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.toast-tertiary .toast-icon {
|
|
217
|
+
color: var(--color-tertiary);
|
|
218
|
+
}
|
|
219
|
+
|
|
196
220
|
/* Filled Variants */
|
|
197
221
|
.toast-filled.toast-info {
|
|
198
222
|
background-color: var(--color-info-container);
|
|
@@ -218,13 +242,58 @@ export const css = `/**
|
|
|
218
242
|
color: var(--color-on-error-container);
|
|
219
243
|
}
|
|
220
244
|
|
|
245
|
+
.toast-filled.toast-primary {
|
|
246
|
+
background-color: var(--color-primary-container);
|
|
247
|
+
border-color: transparent;
|
|
248
|
+
color: var(--color-on-primary-container);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.toast-filled.toast-secondary {
|
|
252
|
+
background-color: var(--color-secondary-container);
|
|
253
|
+
border-color: transparent;
|
|
254
|
+
color: var(--color-on-secondary-container);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.toast-filled.toast-tertiary {
|
|
258
|
+
background-color: var(--color-tertiary-container);
|
|
259
|
+
border-color: transparent;
|
|
260
|
+
color: var(--color-on-tertiary-container);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/* Filled variant sub-element color inheritance fix.
|
|
264
|
+
.toast-title and .toast-message have explicit color rules that would otherwise
|
|
265
|
+
override the filled variant's inherited on-container color. */
|
|
266
|
+
.toast-filled .toast-title,
|
|
267
|
+
.toast-filled .toast-message {
|
|
268
|
+
color: inherit;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* Ghost Variant */
|
|
272
|
+
.toast-ghost {
|
|
273
|
+
background-color: transparent;
|
|
274
|
+
border-color: transparent;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.toast-ghost.toast-primary { color: var(--color-primary); }
|
|
278
|
+
.toast-ghost.toast-secondary { color: var(--color-secondary); }
|
|
279
|
+
.toast-ghost.toast-tertiary { color: var(--color-tertiary); }
|
|
280
|
+
.toast-ghost.toast-info { color: var(--color-info); }
|
|
281
|
+
.toast-ghost.toast-success { color: var(--color-success); }
|
|
282
|
+
.toast-ghost.toast-warning { color: var(--color-warning); }
|
|
283
|
+
.toast-ghost.toast-error { color: var(--color-error); }
|
|
284
|
+
|
|
285
|
+
.toast-ghost .toast-title,
|
|
286
|
+
.toast-ghost .toast-message {
|
|
287
|
+
color: inherit;
|
|
288
|
+
}
|
|
289
|
+
|
|
221
290
|
/* Progress Bar (for auto-dismiss) */
|
|
222
291
|
.toast-progress {
|
|
223
292
|
position: absolute;
|
|
224
293
|
bottom: 0;
|
|
225
294
|
left: 0;
|
|
226
295
|
height: 3px;
|
|
227
|
-
background-color:
|
|
296
|
+
background-color: currentColor;
|
|
228
297
|
border-radius: 0 0 0.75rem 0.75rem;
|
|
229
298
|
animation: toast-progress linear forwards;
|
|
230
299
|
}
|