@slexkit/theme-shadcn 0.3.0 → 0.3.1

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.
@@ -154,8 +154,8 @@
154
154
  transform: none;
155
155
  }
156
156
 
157
- .slex-checkbox-field:has(.slex-checkbox:disabled),
158
- .slex-radio-field:has(.slex-radio:disabled) {
157
+ .slex-checkbox-field[data-disabled="true"],
158
+ .slex-radio-field[data-disabled="true"] {
159
159
  cursor: not-allowed;
160
160
  opacity: 0.65;
161
161
  }
@@ -79,7 +79,7 @@
79
79
  display: block;
80
80
  }
81
81
 
82
- .slex-stat-character[data-stat-change] {
82
+ .slex-stat-character[data-stat-kind="digit"][data-stat-change] {
83
83
  overflow: hidden;
84
84
  }
85
85
 
@@ -164,53 +164,62 @@
164
164
  .slex-slider {
165
165
  box-sizing: border-box;
166
166
  width: 100%;
167
- height: 0.5rem;
167
+ height: 1rem;
168
+ padding: 0;
169
+ border: 0;
168
170
  border-radius: 999px;
169
171
  -webkit-appearance: none;
170
172
  appearance: none;
171
- background: linear-gradient(
172
- to right,
173
- var(--primary) 0%,
174
- var(--primary) var(--slex-slider-progress, 0%),
175
- var(--secondary) var(--slex-slider-progress, 0%),
176
- var(--secondary) 100%
177
- );
173
+ background: transparent;
178
174
  accent-color: var(--primary);
179
175
  cursor: pointer;
176
+ overflow: visible;
180
177
  transition: box-shadow 150ms ease, filter 150ms ease;
181
178
  }
182
179
 
183
- .slex-slider:hover {
184
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
185
- }
186
-
187
- .slex-slider:active {
188
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
189
- }
190
-
191
180
  .slex-slider:focus-visible {
192
181
  outline: 2px solid var(--ring);
193
182
  outline-offset: 4px;
194
183
  }
195
184
 
196
185
  .slex-slider::-webkit-slider-thumb {
186
+ box-sizing: border-box;
197
187
  width: 1rem;
198
188
  height: 1rem;
189
+ margin-top: -0.25rem;
199
190
  border: 2px solid var(--primary);
200
191
  border-radius: 999px;
201
- background: var(--background) !important;
192
+ background-color: var(--background);
193
+ background-clip: padding-box;
202
194
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
203
195
  -webkit-appearance: none;
204
196
  appearance: none;
205
197
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
206
198
  }
207
199
 
200
+ .slex-slider::-webkit-slider-runnable-track {
201
+ box-sizing: border-box;
202
+ width: 100%;
203
+ height: 0.5rem;
204
+ border: 0;
205
+ border-radius: 999px;
206
+ background: linear-gradient(
207
+ to right,
208
+ var(--primary) 0%,
209
+ var(--primary) var(--slex-slider-progress, 0%),
210
+ var(--secondary) var(--slex-slider-progress, 0%),
211
+ var(--secondary) 100%
212
+ );
213
+ }
214
+
208
215
  .slex-slider::-moz-range-thumb {
216
+ box-sizing: border-box;
209
217
  width: 1rem;
210
218
  height: 1rem;
211
219
  border: 2px solid var(--primary);
212
220
  border-radius: 999px;
213
- background: var(--background) !important;
221
+ background-color: var(--background);
222
+ background-clip: padding-box;
214
223
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
215
224
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
216
225
  }
@@ -363,12 +372,12 @@
363
372
  opacity: 0.55;
364
373
  }
365
374
 
366
- .slex-switch:has(.slex-switch-input:disabled) {
375
+ .slex-switch[data-disabled="true"] {
367
376
  cursor: not-allowed;
368
377
  }
369
378
 
370
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control,
371
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control::after {
379
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control,
380
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control::after {
372
381
  box-shadow: none;
373
382
  }
374
383
 
@@ -421,16 +430,18 @@
421
430
  border: 1px solid var(--input);
422
431
  border-radius: var(--radius);
423
432
  background: var(--background);
433
+ background-clip: padding-box;
424
434
  color: var(--foreground);
425
435
  font-family: inherit;
426
436
  font-size: 0.875rem;
427
437
  line-height: 1.5;
428
438
  outline: none;
439
+ -webkit-appearance: none;
440
+ appearance: none;
429
441
  transition: border-color 150ms ease, box-shadow 150ms ease;
430
442
  }
431
443
 
432
- .slex-input-control[data-has-unit="true"] .slex-input,
433
- .slex-input-control[data-has-controls="true"] .slex-input {
444
+ .slex-input-control[data-has-unit="true"] .slex-input {
434
445
  border-top-right-radius: 0;
435
446
  border-bottom-right-radius: 0;
436
447
  }
@@ -454,79 +465,16 @@
454
465
  transition: border-color 150ms ease, box-shadow 150ms ease;
455
466
  }
456
467
 
457
- .slex-input-control[data-has-controls="true"] .slex-input-unit {
458
- border-radius: 0;
459
- }
460
-
461
- .slex-input-controls {
462
- box-sizing: border-box;
463
- display: inline-grid;
464
- grid-template-rows: repeat(2, minmax(0, 1fr));
465
- align-items: stretch;
466
- flex: 0 0 auto;
467
- width: 1.875rem;
468
- min-width: 1.875rem;
469
- min-height: 2.5625rem;
470
- overflow: hidden;
471
- border: 1px solid var(--input);
472
- border-left: 0;
473
- border-radius: 0 var(--radius) var(--radius) 0;
474
- background: var(--background);
475
- transition: border-color 150ms ease, box-shadow 150ms ease;
476
- }
477
-
478
- .slex-input-step {
479
- box-sizing: border-box;
480
- display: inline-flex;
481
- align-items: center;
482
- justify-content: center;
483
- width: 100%;
484
- min-width: 0;
485
- min-height: 0;
486
- padding: 0;
487
- border: 0;
488
- border-top: 1px solid var(--input);
489
- border-radius: 0;
490
- background: transparent;
491
- color: var(--foreground);
492
- font: inherit;
493
- font-size: 0.75rem;
494
- font-weight: 600;
495
- line-height: 1;
496
- cursor: pointer;
497
- transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
498
- }
499
-
500
- .slex-input-step:first-child {
501
- border-top: 0;
502
- }
503
-
504
- .slex-input-step:last-child {
505
- border-radius: 0;
506
- }
507
-
508
- .slex-input-step:hover:not(:disabled) {
509
- background: color-mix(in oklab, var(--muted) 52%, var(--background));
510
- }
511
-
512
- .slex-input-step:focus-visible {
513
- z-index: 1;
514
- outline: none;
515
- background: color-mix(in oklab, var(--muted) 58%, var(--background));
516
- box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--ring) 34%, transparent);
517
- }
518
-
519
- .slex-input-step:disabled {
520
- opacity: 0.45;
521
- cursor: not-allowed;
522
- }
523
-
524
468
  .slex-input::placeholder {
525
469
  color: var(--muted-foreground);
526
470
  }
527
471
 
528
472
  .slex-input:focus {
529
473
  border-color: var(--ring);
474
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 18%, transparent);
475
+ }
476
+
477
+ .slex-input-control[data-has-unit="true"] .slex-input:focus {
530
478
  box-shadow: none;
531
479
  }
532
480
 
@@ -551,6 +499,10 @@
551
499
 
552
500
  .slex-input-field[data-invalid="true"] .slex-input:focus {
553
501
  border-color: var(--destructive);
502
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
503
+ }
504
+
505
+ .slex-input-field[data-invalid="true"] .slex-input-control[data-has-unit="true"] .slex-input:focus {
554
506
  box-shadow: none;
555
507
  }
556
508
 
@@ -558,13 +510,12 @@
558
510
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
559
511
  }
560
512
 
561
- .slex-input-control:focus-within .slex-input,
562
- .slex-input-control:focus-within .slex-input-unit,
563
- .slex-input-control:focus-within .slex-input-controls {
564
- border-color: var(--ring);
513
+ .slex-input-control:not([data-has-unit]):focus-within {
514
+ box-shadow: none;
565
515
  }
566
516
 
567
- .slex-input-control:focus-within .slex-input-step {
517
+ .slex-input-control:focus-within .slex-input,
518
+ .slex-input-control:focus-within .slex-input-unit {
568
519
  border-color: var(--ring);
569
520
  }
570
521
 
@@ -573,22 +524,16 @@
573
524
  color: color-mix(in oklab, var(--destructive) 84%, var(--muted-foreground));
574
525
  }
575
526
 
576
- .slex-input-field[data-invalid="true"] .slex-input-step {
577
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
578
- }
579
-
580
- .slex-input-field[data-invalid="true"] .slex-input-controls {
581
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
582
- }
583
-
584
527
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within {
585
528
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
586
529
  }
587
530
 
531
+ .slex-input-field[data-invalid="true"] .slex-input-control:not([data-has-unit]):focus-within {
532
+ box-shadow: none;
533
+ }
534
+
588
535
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input,
589
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit,
590
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls,
591
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-step {
536
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
592
537
  border-color: var(--destructive);
593
538
  }
594
539
 
@@ -602,11 +547,6 @@
602
547
  cursor: not-allowed;
603
548
  }
604
549
 
605
- .slex-input[disabled] ~ .slex-input-controls,
606
- .slex-input[readonly] ~ .slex-input-controls {
607
- opacity: 0.6;
608
- }
609
-
610
550
  .slex-input-description {
611
551
  color: var(--muted-foreground);
612
552
  font-size: 0.75rem;
@@ -734,7 +674,6 @@
734
674
  border: 0;
735
675
  overflow: hidden;
736
676
  clip: rect(0 0 0 0);
737
- clip-path: inset(50%);
738
677
  white-space: nowrap;
739
678
  }
740
679
 
@@ -793,11 +732,6 @@
793
732
  color: var(--accent-foreground);
794
733
  }
795
734
 
796
- .slex-select-menu:has(.slex-select-option:hover) .slex-select-option--active:not(:hover) {
797
- background: transparent;
798
- color: var(--popover-foreground, var(--foreground));
799
- }
800
-
801
735
  .slex-select-option--selected {
802
736
  font-weight: 500;
803
737
  }
@@ -1236,8 +1170,8 @@
1236
1170
  transform: none;
1237
1171
  }
1238
1172
 
1239
- .slex-checkbox-field:has(.slex-checkbox:disabled),
1240
- .slex-radio-field:has(.slex-radio:disabled) {
1173
+ .slex-checkbox-field[data-disabled="true"],
1174
+ .slex-radio-field[data-disabled="true"] {
1241
1175
  cursor: not-allowed;
1242
1176
  opacity: 0.65;
1243
1177
  }
@@ -110,7 +110,6 @@
110
110
  border: 0;
111
111
  overflow: hidden;
112
112
  clip: rect(0 0 0 0);
113
- clip-path: inset(50%);
114
113
  white-space: nowrap;
115
114
  }
116
115
 
@@ -169,11 +168,6 @@
169
168
  color: var(--accent-foreground);
170
169
  }
171
170
 
172
- .slex-select-menu:has(.slex-select-option:hover) .slex-select-option--active:not(:hover) {
173
- background: transparent;
174
- color: var(--popover-foreground, var(--foreground));
175
- }
176
-
177
171
  .slex-select-option--selected {
178
172
  font-weight: 500;
179
173
  }
@@ -33,53 +33,62 @@
33
33
  .slex-slider {
34
34
  box-sizing: border-box;
35
35
  width: 100%;
36
- height: 0.5rem;
36
+ height: 1rem;
37
+ padding: 0;
38
+ border: 0;
37
39
  border-radius: 999px;
38
40
  -webkit-appearance: none;
39
41
  appearance: none;
40
- background: linear-gradient(
41
- to right,
42
- var(--primary) 0%,
43
- var(--primary) var(--slex-slider-progress, 0%),
44
- var(--secondary) var(--slex-slider-progress, 0%),
45
- var(--secondary) 100%
46
- );
42
+ background: transparent;
47
43
  accent-color: var(--primary);
48
44
  cursor: pointer;
45
+ overflow: visible;
49
46
  transition: box-shadow 150ms ease, filter 150ms ease;
50
47
  }
51
48
 
52
- .slex-slider:hover {
53
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
54
- }
55
-
56
- .slex-slider:active {
57
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
58
- }
59
-
60
49
  .slex-slider:focus-visible {
61
50
  outline: 2px solid var(--ring);
62
51
  outline-offset: 4px;
63
52
  }
64
53
 
65
54
  .slex-slider::-webkit-slider-thumb {
55
+ box-sizing: border-box;
66
56
  width: 1rem;
67
57
  height: 1rem;
58
+ margin-top: -0.25rem;
68
59
  border: 2px solid var(--primary);
69
60
  border-radius: 999px;
70
- background: var(--background) !important;
61
+ background-color: var(--background);
62
+ background-clip: padding-box;
71
63
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
72
64
  -webkit-appearance: none;
73
65
  appearance: none;
74
66
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
75
67
  }
76
68
 
69
+ .slex-slider::-webkit-slider-runnable-track {
70
+ box-sizing: border-box;
71
+ width: 100%;
72
+ height: 0.5rem;
73
+ border: 0;
74
+ border-radius: 999px;
75
+ background: linear-gradient(
76
+ to right,
77
+ var(--primary) 0%,
78
+ var(--primary) var(--slex-slider-progress, 0%),
79
+ var(--secondary) var(--slex-slider-progress, 0%),
80
+ var(--secondary) 100%
81
+ );
82
+ }
83
+
77
84
  .slex-slider::-moz-range-thumb {
85
+ box-sizing: border-box;
78
86
  width: 1rem;
79
87
  height: 1rem;
80
88
  border: 2px solid var(--primary);
81
89
  border-radius: 999px;
82
- background: var(--background) !important;
90
+ background-color: var(--background);
91
+ background-clip: padding-box;
83
92
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
84
93
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
85
94
  }
@@ -104,11 +104,11 @@
104
104
  opacity: 0.55;
105
105
  }
106
106
 
107
- .slex-switch:has(.slex-switch-input:disabled) {
107
+ .slex-switch[data-disabled="true"] {
108
108
  cursor: not-allowed;
109
109
  }
110
110
 
111
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control,
112
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control::after {
111
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control,
112
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control::after {
113
113
  box-shadow: none;
114
114
  }
@@ -45,16 +45,18 @@
45
45
  border: 1px solid var(--input);
46
46
  border-radius: var(--radius);
47
47
  background: var(--background);
48
+ background-clip: padding-box;
48
49
  color: var(--foreground);
49
50
  font-family: inherit;
50
51
  font-size: 0.875rem;
51
52
  line-height: 1.5;
52
53
  outline: none;
54
+ -webkit-appearance: none;
55
+ appearance: none;
53
56
  transition: border-color 150ms ease, box-shadow 150ms ease;
54
57
  }
55
58
 
56
- .slex-input-control[data-has-unit="true"] .slex-input,
57
- .slex-input-control[data-has-controls="true"] .slex-input {
59
+ .slex-input-control[data-has-unit="true"] .slex-input {
58
60
  border-top-right-radius: 0;
59
61
  border-bottom-right-radius: 0;
60
62
  }
@@ -78,79 +80,16 @@
78
80
  transition: border-color 150ms ease, box-shadow 150ms ease;
79
81
  }
80
82
 
81
- .slex-input-control[data-has-controls="true"] .slex-input-unit {
82
- border-radius: 0;
83
- }
84
-
85
- .slex-input-controls {
86
- box-sizing: border-box;
87
- display: inline-grid;
88
- grid-template-rows: repeat(2, minmax(0, 1fr));
89
- align-items: stretch;
90
- flex: 0 0 auto;
91
- width: 1.875rem;
92
- min-width: 1.875rem;
93
- min-height: 2.5625rem;
94
- overflow: hidden;
95
- border: 1px solid var(--input);
96
- border-left: 0;
97
- border-radius: 0 var(--radius) var(--radius) 0;
98
- background: var(--background);
99
- transition: border-color 150ms ease, box-shadow 150ms ease;
100
- }
101
-
102
- .slex-input-step {
103
- box-sizing: border-box;
104
- display: inline-flex;
105
- align-items: center;
106
- justify-content: center;
107
- width: 100%;
108
- min-width: 0;
109
- min-height: 0;
110
- padding: 0;
111
- border: 0;
112
- border-top: 1px solid var(--input);
113
- border-radius: 0;
114
- background: transparent;
115
- color: var(--foreground);
116
- font: inherit;
117
- font-size: 0.75rem;
118
- font-weight: 600;
119
- line-height: 1;
120
- cursor: pointer;
121
- transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
122
- }
123
-
124
- .slex-input-step:first-child {
125
- border-top: 0;
126
- }
127
-
128
- .slex-input-step:last-child {
129
- border-radius: 0;
130
- }
131
-
132
- .slex-input-step:hover:not(:disabled) {
133
- background: color-mix(in oklab, var(--muted) 52%, var(--background));
134
- }
135
-
136
- .slex-input-step:focus-visible {
137
- z-index: 1;
138
- outline: none;
139
- background: color-mix(in oklab, var(--muted) 58%, var(--background));
140
- box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--ring) 34%, transparent);
141
- }
142
-
143
- .slex-input-step:disabled {
144
- opacity: 0.45;
145
- cursor: not-allowed;
146
- }
147
-
148
83
  .slex-input::placeholder {
149
84
  color: var(--muted-foreground);
150
85
  }
151
86
 
152
87
  .slex-input:focus {
153
88
  border-color: var(--ring);
89
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 18%, transparent);
90
+ }
91
+
92
+ .slex-input-control[data-has-unit="true"] .slex-input:focus {
154
93
  box-shadow: none;
155
94
  }
156
95
 
@@ -175,6 +114,10 @@
175
114
 
176
115
  .slex-input-field[data-invalid="true"] .slex-input:focus {
177
116
  border-color: var(--destructive);
117
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
118
+ }
119
+
120
+ .slex-input-field[data-invalid="true"] .slex-input-control[data-has-unit="true"] .slex-input:focus {
178
121
  box-shadow: none;
179
122
  }
180
123
 
@@ -182,13 +125,12 @@
182
125
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
183
126
  }
184
127
 
185
- .slex-input-control:focus-within .slex-input,
186
- .slex-input-control:focus-within .slex-input-unit,
187
- .slex-input-control:focus-within .slex-input-controls {
188
- border-color: var(--ring);
128
+ .slex-input-control:not([data-has-unit]):focus-within {
129
+ box-shadow: none;
189
130
  }
190
131
 
191
- .slex-input-control:focus-within .slex-input-step {
132
+ .slex-input-control:focus-within .slex-input,
133
+ .slex-input-control:focus-within .slex-input-unit {
192
134
  border-color: var(--ring);
193
135
  }
194
136
 
@@ -197,22 +139,16 @@
197
139
  color: color-mix(in oklab, var(--destructive) 84%, var(--muted-foreground));
198
140
  }
199
141
 
200
- .slex-input-field[data-invalid="true"] .slex-input-step {
201
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
202
- }
203
-
204
- .slex-input-field[data-invalid="true"] .slex-input-controls {
205
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
206
- }
207
-
208
142
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within {
209
143
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
210
144
  }
211
145
 
146
+ .slex-input-field[data-invalid="true"] .slex-input-control:not([data-has-unit]):focus-within {
147
+ box-shadow: none;
148
+ }
149
+
212
150
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input,
213
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit,
214
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls,
215
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-step {
151
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
216
152
  border-color: var(--destructive);
217
153
  }
218
154
 
@@ -226,11 +162,6 @@
226
162
  cursor: not-allowed;
227
163
  }
228
164
 
229
- .slex-input[disabled] ~ .slex-input-controls,
230
- .slex-input[readonly] ~ .slex-input-controls {
231
- opacity: 0.6;
232
- }
233
-
234
165
  .slex-input-description {
235
166
  color: var(--muted-foreground);
236
167
  font-size: 0.75rem;
@@ -572,7 +572,6 @@
572
572
  overflow: hidden;
573
573
  clip: rect(0 0 0 0);
574
574
  white-space: nowrap;
575
- clip-path: inset(50%);
576
575
  }
577
576
 
578
577
  .slex-playground-error {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slexkit/theme-shadcn",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Official shadcn-token theme CSS for SlexKit.",
5
5
  "author": "SlexKit contributors",
6
6
  "type": "module",
package/style.css CHANGED
@@ -1846,7 +1846,6 @@ body[data-mobile-nav-open] {
1846
1846
  overflow: hidden;
1847
1847
  clip: rect(0 0 0 0);
1848
1848
  white-space: nowrap;
1849
- clip-path: inset(50%);
1850
1849
  }
1851
1850
 
1852
1851
  .slex-playground-error {
@@ -2365,7 +2364,7 @@ body[data-mobile-nav-open] {
2365
2364
  display: block;
2366
2365
  }
2367
2366
 
2368
- .slex-stat-character[data-stat-change] {
2367
+ .slex-stat-character[data-stat-kind="digit"][data-stat-change] {
2369
2368
  overflow: hidden;
2370
2369
  }
2371
2370
 
@@ -3210,53 +3209,62 @@ body[data-mobile-nav-open] {
3210
3209
  .slex-slider {
3211
3210
  box-sizing: border-box;
3212
3211
  width: 100%;
3213
- height: 0.5rem;
3212
+ height: 1rem;
3213
+ padding: 0;
3214
+ border: 0;
3214
3215
  border-radius: 999px;
3215
3216
  -webkit-appearance: none;
3216
3217
  appearance: none;
3217
- background: linear-gradient(
3218
- to right,
3219
- var(--primary) 0%,
3220
- var(--primary) var(--slex-slider-progress, 0%),
3221
- var(--secondary) var(--slex-slider-progress, 0%),
3222
- var(--secondary) 100%
3223
- );
3218
+ background: transparent;
3224
3219
  accent-color: var(--primary);
3225
3220
  cursor: pointer;
3221
+ overflow: visible;
3226
3222
  transition: box-shadow 150ms ease, filter 150ms ease;
3227
3223
  }
3228
3224
 
3229
- .slex-slider:hover {
3230
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
3231
- }
3232
-
3233
- .slex-slider:active {
3234
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
3235
- }
3236
-
3237
3225
  .slex-slider:focus-visible {
3238
3226
  outline: 2px solid var(--ring);
3239
3227
  outline-offset: 4px;
3240
3228
  }
3241
3229
 
3242
3230
  .slex-slider::-webkit-slider-thumb {
3231
+ box-sizing: border-box;
3243
3232
  width: 1rem;
3244
3233
  height: 1rem;
3234
+ margin-top: -0.25rem;
3245
3235
  border: 2px solid var(--primary);
3246
3236
  border-radius: 999px;
3247
- background: var(--background) !important;
3237
+ background-color: var(--background);
3238
+ background-clip: padding-box;
3248
3239
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3249
3240
  -webkit-appearance: none;
3250
3241
  appearance: none;
3251
3242
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3252
3243
  }
3253
3244
 
3245
+ .slex-slider::-webkit-slider-runnable-track {
3246
+ box-sizing: border-box;
3247
+ width: 100%;
3248
+ height: 0.5rem;
3249
+ border: 0;
3250
+ border-radius: 999px;
3251
+ background: linear-gradient(
3252
+ to right,
3253
+ var(--primary) 0%,
3254
+ var(--primary) var(--slex-slider-progress, 0%),
3255
+ var(--secondary) var(--slex-slider-progress, 0%),
3256
+ var(--secondary) 100%
3257
+ );
3258
+ }
3259
+
3254
3260
  .slex-slider::-moz-range-thumb {
3261
+ box-sizing: border-box;
3255
3262
  width: 1rem;
3256
3263
  height: 1rem;
3257
3264
  border: 2px solid var(--primary);
3258
3265
  border-radius: 999px;
3259
- background: var(--background) !important;
3266
+ background-color: var(--background);
3267
+ background-clip: padding-box;
3260
3268
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
3261
3269
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
3262
3270
  }
@@ -3409,12 +3417,12 @@ body[data-mobile-nav-open] {
3409
3417
  opacity: 0.55;
3410
3418
  }
3411
3419
 
3412
- .slex-switch:has(.slex-switch-input:disabled) {
3420
+ .slex-switch[data-disabled="true"] {
3413
3421
  cursor: not-allowed;
3414
3422
  }
3415
3423
 
3416
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control,
3417
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control::after {
3424
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control,
3425
+ .slex-switch[data-disabled="true"]:hover .slex-switch-control::after {
3418
3426
  box-shadow: none;
3419
3427
  }
3420
3428
 
@@ -3467,16 +3475,18 @@ body[data-mobile-nav-open] {
3467
3475
  border: 1px solid var(--input);
3468
3476
  border-radius: var(--radius);
3469
3477
  background: var(--background);
3478
+ background-clip: padding-box;
3470
3479
  color: var(--foreground);
3471
3480
  font-family: inherit;
3472
3481
  font-size: 0.875rem;
3473
3482
  line-height: 1.5;
3474
3483
  outline: none;
3484
+ -webkit-appearance: none;
3485
+ appearance: none;
3475
3486
  transition: border-color 150ms ease, box-shadow 150ms ease;
3476
3487
  }
3477
3488
 
3478
- .slex-input-control[data-has-unit="true"] .slex-input,
3479
- .slex-input-control[data-has-controls="true"] .slex-input {
3489
+ .slex-input-control[data-has-unit="true"] .slex-input {
3480
3490
  border-top-right-radius: 0;
3481
3491
  border-bottom-right-radius: 0;
3482
3492
  }
@@ -3500,79 +3510,16 @@ body[data-mobile-nav-open] {
3500
3510
  transition: border-color 150ms ease, box-shadow 150ms ease;
3501
3511
  }
3502
3512
 
3503
- .slex-input-control[data-has-controls="true"] .slex-input-unit {
3504
- border-radius: 0;
3505
- }
3506
-
3507
- .slex-input-controls {
3508
- box-sizing: border-box;
3509
- display: inline-grid;
3510
- grid-template-rows: repeat(2, minmax(0, 1fr));
3511
- align-items: stretch;
3512
- flex: 0 0 auto;
3513
- width: 1.875rem;
3514
- min-width: 1.875rem;
3515
- min-height: 2.5625rem;
3516
- overflow: hidden;
3517
- border: 1px solid var(--input);
3518
- border-left: 0;
3519
- border-radius: 0 var(--radius) var(--radius) 0;
3520
- background: var(--background);
3521
- transition: border-color 150ms ease, box-shadow 150ms ease;
3522
- }
3523
-
3524
- .slex-input-step {
3525
- box-sizing: border-box;
3526
- display: inline-flex;
3527
- align-items: center;
3528
- justify-content: center;
3529
- width: 100%;
3530
- min-width: 0;
3531
- min-height: 0;
3532
- padding: 0;
3533
- border: 0;
3534
- border-top: 1px solid var(--input);
3535
- border-radius: 0;
3536
- background: transparent;
3537
- color: var(--foreground);
3538
- font: inherit;
3539
- font-size: 0.75rem;
3540
- font-weight: 600;
3541
- line-height: 1;
3542
- cursor: pointer;
3543
- transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
3544
- }
3545
-
3546
- .slex-input-step:first-child {
3547
- border-top: 0;
3548
- }
3549
-
3550
- .slex-input-step:last-child {
3551
- border-radius: 0;
3552
- }
3553
-
3554
- .slex-input-step:hover:not(:disabled) {
3555
- background: color-mix(in oklab, var(--muted) 52%, var(--background));
3556
- }
3557
-
3558
- .slex-input-step:focus-visible {
3559
- z-index: 1;
3560
- outline: none;
3561
- background: color-mix(in oklab, var(--muted) 58%, var(--background));
3562
- box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--ring) 34%, transparent);
3563
- }
3564
-
3565
- .slex-input-step:disabled {
3566
- opacity: 0.45;
3567
- cursor: not-allowed;
3568
- }
3569
-
3570
3513
  .slex-input::placeholder {
3571
3514
  color: var(--muted-foreground);
3572
3515
  }
3573
3516
 
3574
3517
  .slex-input:focus {
3575
3518
  border-color: var(--ring);
3519
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 18%, transparent);
3520
+ }
3521
+
3522
+ .slex-input-control[data-has-unit="true"] .slex-input:focus {
3576
3523
  box-shadow: none;
3577
3524
  }
3578
3525
 
@@ -3597,6 +3544,10 @@ body[data-mobile-nav-open] {
3597
3544
 
3598
3545
  .slex-input-field[data-invalid="true"] .slex-input:focus {
3599
3546
  border-color: var(--destructive);
3547
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
3548
+ }
3549
+
3550
+ .slex-input-field[data-invalid="true"] .slex-input-control[data-has-unit="true"] .slex-input:focus {
3600
3551
  box-shadow: none;
3601
3552
  }
3602
3553
 
@@ -3604,13 +3555,12 @@ body[data-mobile-nav-open] {
3604
3555
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
3605
3556
  }
3606
3557
 
3607
- .slex-input-control:focus-within .slex-input,
3608
- .slex-input-control:focus-within .slex-input-unit,
3609
- .slex-input-control:focus-within .slex-input-controls {
3610
- border-color: var(--ring);
3558
+ .slex-input-control:not([data-has-unit]):focus-within {
3559
+ box-shadow: none;
3611
3560
  }
3612
3561
 
3613
- .slex-input-control:focus-within .slex-input-step {
3562
+ .slex-input-control:focus-within .slex-input,
3563
+ .slex-input-control:focus-within .slex-input-unit {
3614
3564
  border-color: var(--ring);
3615
3565
  }
3616
3566
 
@@ -3619,22 +3569,16 @@ body[data-mobile-nav-open] {
3619
3569
  color: color-mix(in oklab, var(--destructive) 84%, var(--muted-foreground));
3620
3570
  }
3621
3571
 
3622
- .slex-input-field[data-invalid="true"] .slex-input-step {
3623
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
3624
- }
3625
-
3626
- .slex-input-field[data-invalid="true"] .slex-input-controls {
3627
- border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
3628
- }
3629
-
3630
3572
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within {
3631
3573
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
3632
3574
  }
3633
3575
 
3576
+ .slex-input-field[data-invalid="true"] .slex-input-control:not([data-has-unit]):focus-within {
3577
+ box-shadow: none;
3578
+ }
3579
+
3634
3580
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input,
3635
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit,
3636
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls,
3637
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-step {
3581
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
3638
3582
  border-color: var(--destructive);
3639
3583
  }
3640
3584
 
@@ -3648,11 +3592,6 @@ body[data-mobile-nav-open] {
3648
3592
  cursor: not-allowed;
3649
3593
  }
3650
3594
 
3651
- .slex-input[disabled] ~ .slex-input-controls,
3652
- .slex-input[readonly] ~ .slex-input-controls {
3653
- opacity: 0.6;
3654
- }
3655
-
3656
3595
  .slex-input-description {
3657
3596
  color: var(--muted-foreground);
3658
3597
  font-size: 0.75rem;
@@ -3780,7 +3719,6 @@ body[data-mobile-nav-open] {
3780
3719
  border: 0;
3781
3720
  overflow: hidden;
3782
3721
  clip: rect(0 0 0 0);
3783
- clip-path: inset(50%);
3784
3722
  white-space: nowrap;
3785
3723
  }
3786
3724
 
@@ -3839,11 +3777,6 @@ body[data-mobile-nav-open] {
3839
3777
  color: var(--accent-foreground);
3840
3778
  }
3841
3779
 
3842
- .slex-select-menu:has(.slex-select-option:hover) .slex-select-option--active:not(:hover) {
3843
- background: transparent;
3844
- color: var(--popover-foreground, var(--foreground));
3845
- }
3846
-
3847
3780
  .slex-select-option--selected {
3848
3781
  font-weight: 500;
3849
3782
  }
@@ -4282,8 +4215,8 @@ body[data-mobile-nav-open] {
4282
4215
  transform: none;
4283
4216
  }
4284
4217
 
4285
- .slex-checkbox-field:has(.slex-checkbox:disabled),
4286
- .slex-radio-field:has(.slex-radio:disabled) {
4218
+ .slex-checkbox-field[data-disabled="true"],
4219
+ .slex-radio-field[data-disabled="true"] {
4287
4220
  cursor: not-allowed;
4288
4221
  opacity: 0.65;
4289
4222
  }