@duskmoon-dev/core 1.12.4 → 1.13.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/file-upload.css +68 -8
- package/dist/components/form.css +2 -1
- package/dist/components/index.css +1583 -409
- package/dist/components/input.css +21 -67
- package/dist/components/multi-select.css +59 -9
- 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/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/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 +1583 -409
- package/dist/index.min.css +1 -1
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
line-height: 1.5rem;
|
|
14
14
|
background-color: var(--color-surface);
|
|
15
15
|
color: var(--color-on-surface);
|
|
16
|
-
border: 1px solid
|
|
16
|
+
border: 1px solid currentColor;
|
|
17
17
|
border-radius: 0.5rem;
|
|
18
18
|
transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
|
|
19
19
|
}
|
|
@@ -28,8 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.input:focus-visible {
|
|
31
|
-
|
|
32
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
31
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
33
32
|
outline: none;
|
|
34
33
|
}
|
|
35
34
|
|
|
@@ -49,70 +48,17 @@
|
|
|
49
48
|
border-color: var(--color-outline-variant);
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
/* Color Variants
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.input-primary:focus-visible {
|
|
58
|
-
border-color: var(--color-primary);
|
|
59
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.input-secondary {
|
|
63
|
-
border-color: var(--color-secondary);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.input-secondary:focus-visible {
|
|
67
|
-
border-color: var(--color-secondary);
|
|
68
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.input-tertiary {
|
|
72
|
-
border-color: var(--color-tertiary);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.input-tertiary:focus-visible {
|
|
76
|
-
border-color: var(--color-tertiary);
|
|
77
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
|
|
78
|
-
}
|
|
51
|
+
/* Color Variants — base .input:focus-visible uses currentColor 20%, so no per-variant
|
|
52
|
+
focus-visible overrides needed; setting color: here is sufficient. */
|
|
53
|
+
.input-primary { color: var(--color-primary); }
|
|
54
|
+
.input-secondary { color: var(--color-secondary); }
|
|
55
|
+
.input-tertiary { color: var(--color-tertiary); }
|
|
79
56
|
|
|
80
57
|
/* Semantic Colors */
|
|
81
|
-
.input-info
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.input-info:focus-visible {
|
|
86
|
-
border-color: var(--color-info);
|
|
87
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.input-success {
|
|
91
|
-
border-color: var(--color-success);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.input-success:focus-visible {
|
|
95
|
-
border-color: var(--color-success);
|
|
96
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.input-warning {
|
|
100
|
-
border-color: var(--color-warning);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.input-warning:focus-visible {
|
|
104
|
-
border-color: var(--color-warning);
|
|
105
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.input-error {
|
|
109
|
-
border-color: var(--color-error);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.input-error:focus-visible {
|
|
113
|
-
border-color: var(--color-error);
|
|
114
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
115
|
-
}
|
|
58
|
+
.input-info { color: var(--color-info); }
|
|
59
|
+
.input-success { color: var(--color-success); }
|
|
60
|
+
.input-warning { color: var(--color-warning); }
|
|
61
|
+
.input-error { color: var(--color-error); }
|
|
116
62
|
|
|
117
63
|
/* Size Variants */
|
|
118
64
|
.input-xs {
|
|
@@ -148,7 +94,7 @@
|
|
|
148
94
|
.input-ghost:focus-visible {
|
|
149
95
|
background-color: var(--color-surface-container);
|
|
150
96
|
border-color: transparent;
|
|
151
|
-
box-shadow:
|
|
97
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
152
98
|
}
|
|
153
99
|
|
|
154
100
|
/* Filled Input */
|
|
@@ -164,6 +110,14 @@
|
|
|
164
110
|
box-shadow: none;
|
|
165
111
|
}
|
|
166
112
|
|
|
113
|
+
.input-filled.input-primary:focus-visible { border-bottom-color: var(--color-primary); }
|
|
114
|
+
.input-filled.input-secondary:focus-visible { border-bottom-color: var(--color-secondary); }
|
|
115
|
+
.input-filled.input-tertiary:focus-visible { border-bottom-color: var(--color-tertiary); }
|
|
116
|
+
.input-filled.input-info:focus-visible { border-bottom-color: var(--color-info); }
|
|
117
|
+
.input-filled.input-success:focus-visible { border-bottom-color: var(--color-success); }
|
|
118
|
+
.input-filled.input-warning:focus-visible { border-bottom-color: var(--color-warning); }
|
|
119
|
+
.input-filled.input-error:focus-visible { border-bottom-color: var(--color-error); }
|
|
120
|
+
|
|
167
121
|
/* Input with Icon */
|
|
168
122
|
.input-group {
|
|
169
123
|
display: flex;
|
|
@@ -234,7 +188,7 @@
|
|
|
234
188
|
}
|
|
235
189
|
|
|
236
190
|
.file-input:focus-visible {
|
|
237
|
-
|
|
191
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
238
192
|
outline: none;
|
|
239
193
|
}
|
|
240
194
|
}
|
|
@@ -24,20 +24,19 @@
|
|
|
24
24
|
line-height: 1.5rem;
|
|
25
25
|
color: var(--color-on-surface);
|
|
26
26
|
background-color: var(--color-surface);
|
|
27
|
-
border: 1px solid
|
|
27
|
+
border: 1px solid currentColor;
|
|
28
28
|
border-radius: 0.5rem;
|
|
29
29
|
cursor: pointer;
|
|
30
30
|
transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.multi-select-trigger:hover:not(:disabled) {
|
|
34
|
-
|
|
34
|
+
background-color: var(--color-surface-container);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.multi-select-trigger:focus-within {
|
|
38
38
|
outline: none;
|
|
39
|
-
|
|
40
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
39
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
/* Placeholder */
|
|
@@ -431,20 +430,71 @@
|
|
|
431
430
|
}
|
|
432
431
|
|
|
433
432
|
.multi-select-filled .multi-select-trigger:focus-within {
|
|
434
|
-
border-bottom-color:
|
|
433
|
+
border-bottom-color: currentColor;
|
|
435
434
|
box-shadow: none;
|
|
436
435
|
}
|
|
437
436
|
|
|
438
|
-
/*
|
|
439
|
-
.multi-select-
|
|
440
|
-
|
|
437
|
+
/* Color Variants */
|
|
438
|
+
.multi-select-primary .multi-select-trigger {
|
|
439
|
+
color: var(--color-primary);
|
|
440
|
+
}
|
|
441
|
+
.multi-select-primary .multi-select-trigger:focus-within {
|
|
442
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.multi-select-secondary .multi-select-trigger {
|
|
446
|
+
color: var(--color-secondary);
|
|
447
|
+
}
|
|
448
|
+
.multi-select-secondary .multi-select-trigger:focus-within {
|
|
449
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
.multi-select-tertiary .multi-select-trigger {
|
|
453
|
+
color: var(--color-tertiary);
|
|
454
|
+
}
|
|
455
|
+
.multi-select-tertiary .multi-select-trigger:focus-within {
|
|
456
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
.multi-select-info .multi-select-trigger {
|
|
460
|
+
color: var(--color-info);
|
|
461
|
+
}
|
|
462
|
+
.multi-select-info .multi-select-trigger:focus-within {
|
|
463
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
.multi-select-success .multi-select-trigger {
|
|
467
|
+
color: var(--color-success);
|
|
468
|
+
}
|
|
469
|
+
.multi-select-success .multi-select-trigger:focus-within {
|
|
470
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.multi-select-warning .multi-select-trigger {
|
|
474
|
+
color: var(--color-warning);
|
|
475
|
+
}
|
|
476
|
+
.multi-select-warning .multi-select-trigger:focus-within {
|
|
477
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
|
|
441
478
|
}
|
|
442
479
|
|
|
480
|
+
.multi-select-error .multi-select-trigger {
|
|
481
|
+
color: var(--color-error);
|
|
482
|
+
}
|
|
443
483
|
.multi-select-error .multi-select-trigger:focus-within {
|
|
444
|
-
border-color: var(--color-error);
|
|
445
484
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
446
485
|
}
|
|
447
486
|
|
|
487
|
+
/* Ghost Variant */
|
|
488
|
+
.multi-select-ghost .multi-select-trigger {
|
|
489
|
+
background-color: transparent;
|
|
490
|
+
border-color: transparent;
|
|
491
|
+
}
|
|
492
|
+
.multi-select-ghost .multi-select-trigger:focus-within {
|
|
493
|
+
background-color: var(--color-surface-container);
|
|
494
|
+
border-color: transparent;
|
|
495
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
496
|
+
}
|
|
497
|
+
|
|
448
498
|
/* Disabled State */
|
|
449
499
|
.multi-select-disabled .multi-select-trigger {
|
|
450
500
|
cursor: not-allowed;
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
text-align: center;
|
|
22
22
|
color: var(--color-on-surface);
|
|
23
23
|
background-color: var(--color-surface);
|
|
24
|
-
border: 2px solid
|
|
24
|
+
border: 2px 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;
|
|
@@ -34,12 +34,11 @@
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.otp-input-field:hover:not(:disabled):not(:focus) {
|
|
37
|
-
|
|
37
|
+
background-color: var(--color-surface-container);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.otp-input-field:focus {
|
|
41
|
-
|
|
42
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
41
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
.otp-input-field:disabled {
|
|
@@ -122,41 +121,74 @@
|
|
|
122
121
|
}
|
|
123
122
|
|
|
124
123
|
/* Color Variants */
|
|
124
|
+
.otp-input-primary .otp-input-field {
|
|
125
|
+
color: var(--color-primary);
|
|
126
|
+
}
|
|
127
|
+
|
|
125
128
|
.otp-input-primary .otp-input-field:focus {
|
|
126
|
-
border-color: var(--color-primary);
|
|
127
129
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
128
130
|
}
|
|
129
131
|
|
|
132
|
+
.otp-input-secondary .otp-input-field {
|
|
133
|
+
color: var(--color-secondary);
|
|
134
|
+
}
|
|
135
|
+
|
|
130
136
|
.otp-input-secondary .otp-input-field:focus {
|
|
131
|
-
border-color: var(--color-secondary);
|
|
132
137
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
|
|
133
138
|
}
|
|
134
139
|
|
|
140
|
+
.otp-input-tertiary .otp-input-field {
|
|
141
|
+
color: var(--color-tertiary);
|
|
142
|
+
}
|
|
143
|
+
|
|
135
144
|
.otp-input-tertiary .otp-input-field:focus {
|
|
136
|
-
border-color: var(--color-tertiary);
|
|
137
145
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
|
|
138
146
|
}
|
|
139
147
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
border-color: var(--color-error);
|
|
148
|
+
.otp-input-info .otp-input-field {
|
|
149
|
+
color: var(--color-info);
|
|
143
150
|
}
|
|
144
151
|
|
|
145
|
-
.otp-input-
|
|
146
|
-
|
|
147
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
152
|
+
.otp-input-info .otp-input-field:focus {
|
|
153
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
|
|
148
154
|
}
|
|
149
155
|
|
|
150
|
-
/* Success State */
|
|
151
156
|
.otp-input-success .otp-input-field {
|
|
152
|
-
|
|
157
|
+
color: var(--color-success);
|
|
153
158
|
}
|
|
154
159
|
|
|
155
160
|
.otp-input-success .otp-input-field:focus {
|
|
156
|
-
border-color: var(--color-success);
|
|
157
161
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
|
|
158
162
|
}
|
|
159
163
|
|
|
164
|
+
.otp-input-warning .otp-input-field {
|
|
165
|
+
color: var(--color-warning);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.otp-input-warning .otp-input-field:focus {
|
|
169
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.otp-input-error .otp-input-field {
|
|
173
|
+
color: var(--color-error);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.otp-input-error .otp-input-field:focus {
|
|
177
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* Ghost Variant */
|
|
181
|
+
.otp-input-ghost .otp-input-field {
|
|
182
|
+
background-color: transparent;
|
|
183
|
+
border-color: transparent;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.otp-input-ghost .otp-input-field:focus {
|
|
187
|
+
background-color: var(--color-surface-container);
|
|
188
|
+
border-color: transparent;
|
|
189
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
190
|
+
}
|
|
191
|
+
|
|
160
192
|
/* Masked Input (dots) */
|
|
161
193
|
.otp-input-masked .otp-input-field {
|
|
162
194
|
-webkit-text-security: disc;
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
text-align: center;
|
|
22
22
|
color: var(--color-on-surface);
|
|
23
23
|
background-color: var(--color-surface);
|
|
24
|
-
border: 2px solid
|
|
24
|
+
border: 2px 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;
|
|
@@ -35,12 +35,11 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.pin-input-field:hover:not(:disabled):not(:focus) {
|
|
38
|
-
|
|
38
|
+
background-color: var(--color-surface-container);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.pin-input-field:focus {
|
|
42
|
-
|
|
43
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
42
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
.pin-input-field:disabled {
|
|
@@ -111,29 +110,60 @@
|
|
|
111
110
|
}
|
|
112
111
|
|
|
113
112
|
/* Color Variants */
|
|
113
|
+
.pin-input-primary .pin-input-field {
|
|
114
|
+
color: var(--color-primary);
|
|
115
|
+
}
|
|
116
|
+
|
|
114
117
|
.pin-input-primary .pin-input-field:focus {
|
|
115
|
-
border-color: var(--color-primary);
|
|
116
118
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
117
119
|
}
|
|
118
120
|
|
|
121
|
+
.pin-input-secondary .pin-input-field {
|
|
122
|
+
color: var(--color-secondary);
|
|
123
|
+
}
|
|
124
|
+
|
|
119
125
|
.pin-input-secondary .pin-input-field:focus {
|
|
120
|
-
border-color: var(--color-secondary);
|
|
121
126
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
|
|
122
127
|
}
|
|
123
128
|
|
|
129
|
+
.pin-input-tertiary .pin-input-field {
|
|
130
|
+
color: var(--color-tertiary);
|
|
131
|
+
}
|
|
132
|
+
|
|
124
133
|
.pin-input-tertiary .pin-input-field:focus {
|
|
125
|
-
border-color: var(--color-tertiary);
|
|
126
134
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
|
|
127
135
|
}
|
|
128
136
|
|
|
129
|
-
|
|
137
|
+
.pin-input-info .pin-input-field {
|
|
138
|
+
color: var(--color-info);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.pin-input-info .pin-input-field:focus {
|
|
142
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.pin-input-success .pin-input-field {
|
|
146
|
+
color: var(--color-success);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.pin-input-success .pin-input-field:focus {
|
|
150
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.pin-input-warning .pin-input-field {
|
|
154
|
+
color: var(--color-warning);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.pin-input-warning .pin-input-field:focus {
|
|
158
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
|
|
159
|
+
}
|
|
160
|
+
|
|
130
161
|
.pin-input-error .pin-input-field {
|
|
131
|
-
|
|
162
|
+
color: var(--color-error);
|
|
132
163
|
animation: pin-shake 300ms ease-in-out;
|
|
133
164
|
}
|
|
134
165
|
|
|
135
166
|
.pin-input-error .pin-input-field:focus {
|
|
136
|
-
border-color: var(--color-error);
|
|
137
167
|
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
138
168
|
}
|
|
139
169
|
|
|
@@ -143,9 +173,16 @@
|
|
|
143
173
|
40%, 80% { transform: translateX(4px); }
|
|
144
174
|
}
|
|
145
175
|
|
|
146
|
-
/*
|
|
147
|
-
.pin-input-
|
|
148
|
-
|
|
176
|
+
/* Ghost Variant */
|
|
177
|
+
.pin-input-ghost .pin-input-field {
|
|
178
|
+
background-color: transparent;
|
|
179
|
+
border-color: transparent;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.pin-input-ghost .pin-input-field:focus {
|
|
183
|
+
background-color: var(--color-surface-container);
|
|
184
|
+
border-color: transparent;
|
|
185
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
149
186
|
}
|
|
150
187
|
|
|
151
188
|
/* PIN Group with Label */
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
--radio-size: 1.25rem;
|
|
13
13
|
--radio-color: var(--color-primary);
|
|
14
14
|
--radio-border-color: var(--color-on-surface-variant);
|
|
15
|
+
color: var(--color-on-surface);
|
|
15
16
|
|
|
16
17
|
position: relative;
|
|
17
18
|
display: inline-grid;
|
|
@@ -62,8 +63,8 @@
|
|
|
62
63
|
|
|
63
64
|
/* Focus State */
|
|
64
65
|
.radio:focus-visible {
|
|
65
|
-
outline:
|
|
66
|
-
|
|
66
|
+
outline: none;
|
|
67
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--radio-color) 20%, transparent);
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
/* Disabled State */
|
|
@@ -128,6 +129,15 @@
|
|
|
128
129
|
--radio-color: var(--color-info);
|
|
129
130
|
}
|
|
130
131
|
|
|
132
|
+
/* Ghost Variant — borderless unchecked state */
|
|
133
|
+
.radio-ghost {
|
|
134
|
+
--radio-border-color: transparent;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.radio-ghost:hover:not(:disabled):not(:checked) {
|
|
138
|
+
border-color: transparent;
|
|
139
|
+
}
|
|
140
|
+
|
|
131
141
|
/* ========================================
|
|
132
142
|
* Radio with Label (wrapper pattern)
|
|
133
143
|
* ======================================== */
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
display: inline-flex;
|
|
10
10
|
align-items: center;
|
|
11
11
|
gap: 0.125rem;
|
|
12
|
+
color: var(--color-on-surface);
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
/* Rating Item */
|
|
@@ -112,6 +113,21 @@
|
|
|
112
113
|
color: var(--color-success);
|
|
113
114
|
}
|
|
114
115
|
|
|
116
|
+
.rating-tertiary .rating-item.filled {
|
|
117
|
+
color: var(--color-tertiary);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.rating-info .rating-item.filled {
|
|
121
|
+
color: var(--color-info);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Note: .rating-warning is explicit even though the default rating filled color is
|
|
125
|
+
already --color-warning. This allows resetting to warning after applying another
|
|
126
|
+
color variant (e.g. class="rating rating-primary rating-warning"). */
|
|
127
|
+
.rating-warning .rating-item.filled {
|
|
128
|
+
color: var(--color-warning);
|
|
129
|
+
}
|
|
130
|
+
|
|
115
131
|
/* Read Only */
|
|
116
132
|
.rating-readonly .rating-item {
|
|
117
133
|
cursor: default;
|
|
@@ -155,13 +171,29 @@
|
|
|
155
171
|
color: var(--color-warning);
|
|
156
172
|
}
|
|
157
173
|
|
|
158
|
-
|
|
174
|
+
.rating-primary:not(.rating-readonly):hover .rating-item { color: var(--color-primary); }
|
|
175
|
+
.rating-secondary:not(.rating-readonly):hover .rating-item { color: var(--color-secondary); }
|
|
176
|
+
.rating-tertiary:not(.rating-readonly):hover .rating-item { color: var(--color-tertiary); }
|
|
177
|
+
.rating-info:not(.rating-readonly):hover .rating-item { color: var(--color-info); }
|
|
178
|
+
.rating-success:not(.rating-readonly):hover .rating-item { color: var(--color-success); }
|
|
179
|
+
.rating-error:not(.rating-readonly):hover .rating-item { color: var(--color-error); }
|
|
180
|
+
|
|
181
|
+
/* Focus Visible — use warning (the default fill color) for the base ring;
|
|
182
|
+
per-variant overrides below match the active fill color for each variant. */
|
|
159
183
|
.rating-item:focus-visible {
|
|
160
|
-
outline:
|
|
161
|
-
|
|
184
|
+
outline: none;
|
|
185
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 20%, transparent);
|
|
162
186
|
border-radius: 0.25rem;
|
|
163
187
|
}
|
|
164
188
|
|
|
189
|
+
.rating-primary .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 20%, transparent); }
|
|
190
|
+
.rating-secondary .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 20%, transparent); }
|
|
191
|
+
.rating-tertiary .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 20%, transparent); }
|
|
192
|
+
.rating-info .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 20%, transparent); }
|
|
193
|
+
.rating-success .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 20%, transparent); }
|
|
194
|
+
.rating-error .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 20%, transparent); }
|
|
195
|
+
.rating-warning .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 20%, transparent); }
|
|
196
|
+
|
|
165
197
|
/* Rating Display (static) */
|
|
166
198
|
.rating-display {
|
|
167
199
|
display: inline-flex;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
.segment-control {
|
|
9
9
|
display: inline-flex;
|
|
10
10
|
align-items: stretch;
|
|
11
|
+
color: var(--color-on-surface);
|
|
11
12
|
background-color: var(--color-surface-container);
|
|
12
13
|
border: 1px solid var(--color-outline);
|
|
13
14
|
border-radius: 1.25rem;
|
|
@@ -41,8 +42,8 @@
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
.segment-item:focus-visible {
|
|
44
|
-
outline:
|
|
45
|
-
|
|
45
|
+
outline: none;
|
|
46
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
.segment-item:disabled {
|
|
@@ -112,6 +113,26 @@
|
|
|
112
113
|
color: var(--color-on-tertiary-container);
|
|
113
114
|
}
|
|
114
115
|
|
|
116
|
+
.segment-control-info .segment-item-active {
|
|
117
|
+
background-color: var(--color-info-container);
|
|
118
|
+
color: var(--color-on-info-container);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.segment-control-success .segment-item-active {
|
|
122
|
+
background-color: var(--color-success-container);
|
|
123
|
+
color: var(--color-on-success-container);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.segment-control-warning .segment-item-active {
|
|
127
|
+
background-color: var(--color-warning-container);
|
|
128
|
+
color: var(--color-on-warning-container);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.segment-control-error .segment-item-active {
|
|
132
|
+
background-color: var(--color-error-container);
|
|
133
|
+
color: var(--color-on-error-container);
|
|
134
|
+
}
|
|
135
|
+
|
|
115
136
|
/* Full Width */
|
|
116
137
|
.segment-control-full {
|
|
117
138
|
display: flex;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
line-height: 1.5rem;
|
|
14
14
|
color: var(--color-on-surface);
|
|
15
15
|
background-color: var(--color-surface);
|
|
16
|
-
border: 1px solid
|
|
16
|
+
border: 1px solid currentColor;
|
|
17
17
|
border-radius: 0.5rem;
|
|
18
18
|
outline: none;
|
|
19
19
|
cursor: pointer;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
.select:hover:not(:disabled) {
|
|
29
|
-
|
|
29
|
+
background-color: var(--color-surface-container);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.select:focus {
|
|
@@ -34,8 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.select:focus-visible {
|
|
37
|
-
|
|
38
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
|
|
37
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
.select:disabled {
|
|
@@ -62,6 +61,14 @@
|
|
|
62
61
|
box-shadow: none;
|
|
63
62
|
}
|
|
64
63
|
|
|
64
|
+
.select-filled.select-primary:focus-visible { border-bottom-color: var(--color-primary); }
|
|
65
|
+
.select-filled.select-secondary:focus-visible { border-bottom-color: var(--color-secondary); }
|
|
66
|
+
.select-filled.select-tertiary:focus-visible { border-bottom-color: var(--color-tertiary); }
|
|
67
|
+
.select-filled.select-info:focus-visible { border-bottom-color: var(--color-info); }
|
|
68
|
+
.select-filled.select-success:focus-visible { border-bottom-color: var(--color-success); }
|
|
69
|
+
.select-filled.select-warning:focus-visible { border-bottom-color: var(--color-warning); }
|
|
70
|
+
.select-filled.select-error:focus-visible { border-bottom-color: var(--color-error); }
|
|
71
|
+
|
|
65
72
|
/* Outlined Variant (default is outlined) */
|
|
66
73
|
.select-outlined {
|
|
67
74
|
background-color: transparent;
|
|
@@ -69,40 +76,17 @@
|
|
|
69
76
|
border-radius: 0.5rem;
|
|
70
77
|
}
|
|
71
78
|
|
|
72
|
-
/* Color Variants
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.select-secondary:focus-visible {
|
|
79
|
-
border-color: var(--color-secondary);
|
|
80
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.select-tertiary:focus-visible {
|
|
84
|
-
border-color: var(--color-tertiary);
|
|
85
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
|
|
86
|
-
}
|
|
79
|
+
/* Color Variants — base .select:focus-visible uses currentColor 20%, so no per-variant
|
|
80
|
+
focus-visible overrides needed; setting color: here is sufficient. */
|
|
81
|
+
.select-primary { color: var(--color-primary); }
|
|
82
|
+
.select-secondary { color: var(--color-secondary); }
|
|
83
|
+
.select-tertiary { color: var(--color-tertiary); }
|
|
87
84
|
|
|
88
85
|
/* Semantic Colors */
|
|
89
|
-
.select-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.select-error:focus-visible {
|
|
94
|
-
border-color: var(--color-error);
|
|
95
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.select-success {
|
|
99
|
-
border-color: var(--color-success);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.select-success:focus-visible {
|
|
103
|
-
border-color: var(--color-success);
|
|
104
|
-
box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
|
|
105
|
-
}
|
|
86
|
+
.select-info { color: var(--color-info); }
|
|
87
|
+
.select-success { color: var(--color-success); }
|
|
88
|
+
.select-warning { color: var(--color-warning); }
|
|
89
|
+
.select-error { color: var(--color-error); }
|
|
106
90
|
|
|
107
91
|
/* Size Variants */
|
|
108
92
|
.select-xs {
|
|
@@ -193,7 +177,7 @@
|
|
|
193
177
|
.select-ghost:focus-visible {
|
|
194
178
|
background-color: var(--color-surface-container);
|
|
195
179
|
border-color: transparent;
|
|
196
|
-
box-shadow:
|
|
180
|
+
box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
|
|
197
181
|
}
|
|
198
182
|
|
|
199
183
|
/* Reduce Motion */
|