@slexkit/theme-shadcn 0.2.0 → 0.3.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.
@@ -1,106 +1,106 @@
1
1
  /* components/button.css */
2
2
 
3
- .slex-button {
4
- display: inline-flex;
5
- align-items: center;
6
- justify-content: center;
7
- gap: 0.5rem;
8
- max-width: 100%;
9
- min-width: 0;
10
- padding: 0.5rem 1rem;
11
- border: 1px solid transparent;
12
- border-radius: var(--radius);
13
- font-family: inherit;
14
- font-size: 0.875rem;
15
- font-weight: 500;
16
- line-height: 1.25;
17
- white-space: nowrap;
18
- text-overflow: ellipsis;
19
- overflow: hidden;
20
- cursor: pointer;
21
- user-select: none;
22
- transition:
23
- background 150ms ease,
24
- border-color 150ms ease,
25
- color 150ms ease,
26
- box-shadow 150ms ease,
27
- transform 150ms ease;
28
- }
29
-
30
- .slex-button--primary {
31
- background: var(--primary);
32
- color: var(--primary-foreground);
33
- border-color: var(--primary);
34
- }
35
-
36
- .slex-button--primary:hover:not(:disabled):not(.slex-button--disabled) {
37
- background: color-mix(in oklab, var(--primary) 90%, transparent);
38
- border-color: color-mix(in oklab, var(--primary) 90%, transparent);
39
- color: var(--primary-foreground);
40
- transform: translateY(-1px);
41
- box-shadow: var(--shadow-md);
42
- }
43
-
44
- .slex-button--secondary {
45
- background: var(--secondary);
46
- color: var(--secondary-foreground);
47
- border-color: var(--border);
48
- }
49
-
50
- .slex-button--secondary:hover:not(:disabled):not(.slex-button--disabled) {
51
- background: var(--accent);
52
- color: var(--accent-foreground);
53
- border-color: var(--border);
54
- }
55
-
56
- .slex-button--danger {
57
- background: var(--destructive);
58
- color: var(--destructive-foreground);
59
- border-color: var(--destructive);
60
- }
61
-
62
- .slex-button--danger:hover:not(:disabled):not(.slex-button--disabled) {
63
- background: color-mix(in oklab, var(--destructive) 90%, transparent);
64
- border-color: color-mix(in oklab, var(--destructive) 90%, transparent);
65
- }
66
-
67
- .slex-button--ghost {
68
- background: transparent;
69
- color: var(--muted-foreground);
70
- border-color: transparent;
71
- }
72
-
73
- .slex-button--ghost:hover:not(:disabled):not(.slex-button--disabled) {
74
- background: var(--accent);
75
- color: var(--accent-foreground);
76
- }
77
-
78
- .slex-button:disabled,
79
- .slex-button[disabled],
80
- .slex-button--disabled {
81
- opacity: 0.5;
82
- cursor: not-allowed;
83
- pointer-events: none;
84
- transform: none;
85
- box-shadow: none;
86
- }
87
-
88
- .slex-button:active:not(:disabled):not(.slex-button--disabled) {
89
- transform: translateY(0);
90
- box-shadow: var(--shadow-sm);
91
- }
92
-
93
- .slex-button:focus-visible {
94
- outline: 2px solid var(--ring);
95
- outline-offset: 2px;
96
- }
97
-
98
- .slex-button--icon {
99
- width: var(--slex-control-height, 2.25rem);
100
- min-height: var(--slex-control-height, 2.25rem);
101
- padding-inline: 0;
102
- }
103
-
3
+ .slex-button {
4
+ display: inline-flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ gap: 0.5rem;
8
+ max-width: 100%;
9
+ min-width: 0;
10
+ padding: 0.5rem 1rem;
11
+ border: 1px solid transparent;
12
+ border-radius: var(--radius);
13
+ font-family: inherit;
14
+ font-size: 0.875rem;
15
+ font-weight: 500;
16
+ line-height: 1.25;
17
+ white-space: nowrap;
18
+ text-overflow: ellipsis;
19
+ overflow: hidden;
20
+ cursor: pointer;
21
+ user-select: none;
22
+ transition:
23
+ background 150ms ease,
24
+ border-color 150ms ease,
25
+ color 150ms ease,
26
+ box-shadow 150ms ease,
27
+ transform 150ms ease;
28
+ }
29
+
30
+ .slex-button--primary {
31
+ background: var(--primary);
32
+ color: var(--primary-foreground);
33
+ border-color: var(--primary);
34
+ }
35
+
36
+ .slex-button--primary:hover:not(:disabled):not(.slex-button--disabled) {
37
+ background: color-mix(in oklab, var(--primary) 90%, transparent);
38
+ border-color: color-mix(in oklab, var(--primary) 90%, transparent);
39
+ color: var(--primary-foreground);
40
+ transform: translateY(-1px);
41
+ box-shadow: var(--shadow-md);
42
+ }
43
+
44
+ .slex-button--secondary {
45
+ background: var(--secondary);
46
+ color: var(--secondary-foreground);
47
+ border-color: var(--border);
48
+ }
49
+
50
+ .slex-button--secondary:hover:not(:disabled):not(.slex-button--disabled) {
51
+ background: var(--accent);
52
+ color: var(--accent-foreground);
53
+ border-color: var(--border);
54
+ }
55
+
56
+ .slex-button--danger {
57
+ background: var(--destructive);
58
+ color: var(--destructive-foreground);
59
+ border-color: var(--destructive);
60
+ }
61
+
62
+ .slex-button--danger:hover:not(:disabled):not(.slex-button--disabled) {
63
+ background: color-mix(in oklab, var(--destructive) 90%, transparent);
64
+ border-color: color-mix(in oklab, var(--destructive) 90%, transparent);
65
+ }
66
+
67
+ .slex-button--ghost {
68
+ background: transparent;
69
+ color: var(--muted-foreground);
70
+ border-color: transparent;
71
+ }
72
+
73
+ .slex-button--ghost:hover:not(:disabled):not(.slex-button--disabled) {
74
+ background: var(--accent);
75
+ color: var(--accent-foreground);
76
+ }
77
+
78
+ .slex-button:disabled,
79
+ .slex-button[disabled],
80
+ .slex-button--disabled {
81
+ opacity: 0.5;
82
+ cursor: not-allowed;
83
+ pointer-events: none;
84
+ transform: none;
85
+ box-shadow: none;
86
+ }
87
+
88
+ .slex-button:active:not(:disabled):not(.slex-button--disabled) {
89
+ transform: translateY(0);
90
+ box-shadow: var(--shadow-sm);
91
+ }
92
+
93
+ .slex-button:focus-visible {
94
+ outline: 2px solid var(--ring);
95
+ outline-offset: 2px;
96
+ }
97
+
98
+ .slex-button--icon {
99
+ width: var(--slex-control-height, 2.25rem);
100
+ min-height: var(--slex-control-height, 2.25rem);
101
+ padding-inline: 0;
102
+ }
103
+
104
104
  .slex-button-icon {
105
105
  display: inline-flex;
106
106
  width: 1.125rem;
@@ -117,135 +117,135 @@
117
117
 
118
118
  /* components/submit.css */
119
119
 
120
- .slex-submit-bar {
121
- display: flex;
122
- align-items: center;
123
- justify-content: flex-end;
124
- gap: 0.75rem;
125
- flex-wrap: wrap;
126
- padding-top: 0.75rem;
127
- border-top: 1px solid var(--border);
120
+ .slex-submit-bar {
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: flex-end;
124
+ gap: 0.75rem;
125
+ flex-wrap: wrap;
126
+ padding-top: 0.75rem;
127
+ border-top: 1px solid var(--border);
128
128
  }
129
129
 
130
130
  /* components/slider.css */
131
131
 
132
- .slex-slider-container,
133
- .slex-slider-field {
134
- display: flex;
135
- flex-direction: column;
136
- gap: 0.5rem;
137
- width: 100%;
138
- }
139
-
140
- .slex-slider-field {
141
- padding: 0.25rem 0;
142
- }
143
-
132
+ .slex-slider-container,
133
+ .slex-slider-field {
134
+ display: flex;
135
+ flex-direction: column;
136
+ gap: 0.5rem;
137
+ width: 100%;
138
+ }
139
+
140
+ .slex-slider-field {
141
+ padding: 0.25rem 0;
142
+ }
143
+
144
144
  .slex-slider-label {
145
- display: flex;
146
- align-items: center;
147
- justify-content: space-between;
148
- color: var(--muted-foreground);
149
- font-size: 0.875rem;
150
- font-weight: 500;
151
- }
152
-
153
- .slex-slider-value {
154
- padding: 0.125rem 0.5rem;
155
- border: 1px solid var(--border);
156
- border-radius: calc(var(--radius) - 2px);
157
- background: var(--secondary);
158
- color: var(--secondary-foreground);
159
- font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
160
- font-size: 0.875rem;
161
- font-weight: 600;
162
- }
163
-
164
- .slex-slider {
165
- box-sizing: border-box;
166
- width: 100%;
167
- height: 0.5rem;
168
- border-radius: 999px;
169
- -webkit-appearance: none;
170
- 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
- );
178
- accent-color: var(--primary);
179
- cursor: pointer;
180
- transition: box-shadow 150ms ease, filter 150ms ease;
181
- }
182
-
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
- .slex-slider:focus-visible {
192
- outline: 2px solid var(--ring);
193
- outline-offset: 4px;
194
- }
195
-
196
- .slex-slider::-webkit-slider-thumb {
197
- width: 1rem;
198
- height: 1rem;
199
- border: 2px solid var(--primary);
200
- border-radius: 999px;
201
- background: var(--background) !important;
202
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
203
- -webkit-appearance: none;
204
- appearance: none;
205
- transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
206
- }
207
-
208
- .slex-slider::-moz-range-thumb {
209
- width: 1rem;
210
- height: 1rem;
211
- border: 2px solid var(--primary);
212
- border-radius: 999px;
213
- background: var(--background) !important;
214
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
215
- transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
216
- }
217
-
218
- .slex-slider:hover::-webkit-slider-thumb {
219
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
220
- transform: scale(1.06);
221
- }
222
-
223
- .slex-slider:hover::-moz-range-thumb {
224
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
225
- transform: scale(1.06);
226
- }
227
-
228
- .slex-slider:active::-webkit-slider-thumb {
229
- box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
230
- transform: scale(1.12);
231
- }
232
-
233
- .slex-slider:active::-moz-range-thumb {
234
- box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
235
- transform: scale(1.12);
236
- }
237
-
238
- .slex-slider::-moz-range-track {
239
- height: 0.5rem;
240
- border: 0;
241
- border-radius: 999px;
242
- background: var(--secondary);
243
- }
244
-
245
- .slex-slider::-moz-range-progress {
246
- height: 0.5rem;
247
- border-radius: 999px;
248
- background: var(--primary);
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: space-between;
148
+ color: var(--muted-foreground);
149
+ font-size: 0.875rem;
150
+ font-weight: 500;
151
+ }
152
+
153
+ .slex-slider-value {
154
+ padding: 0.125rem 0.5rem;
155
+ border: 1px solid var(--border);
156
+ border-radius: calc(var(--radius) - 2px);
157
+ background: var(--secondary);
158
+ color: var(--secondary-foreground);
159
+ font-family: var(--font-mono, "Geist Mono", "Noto Sans Mono", "Noto Sans Mono CJK SC", "SFMono-Regular", "Cascadia Code", Consolas, monospace);
160
+ font-size: 0.875rem;
161
+ font-weight: 600;
162
+ }
163
+
164
+ .slex-slider {
165
+ box-sizing: border-box;
166
+ width: 100%;
167
+ height: 0.5rem;
168
+ border-radius: 999px;
169
+ -webkit-appearance: none;
170
+ 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
+ );
178
+ accent-color: var(--primary);
179
+ cursor: pointer;
180
+ transition: box-shadow 150ms ease, filter 150ms ease;
181
+ }
182
+
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
+ .slex-slider:focus-visible {
192
+ outline: 2px solid var(--ring);
193
+ outline-offset: 4px;
194
+ }
195
+
196
+ .slex-slider::-webkit-slider-thumb {
197
+ width: 1rem;
198
+ height: 1rem;
199
+ border: 2px solid var(--primary);
200
+ border-radius: 999px;
201
+ background: var(--background) !important;
202
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
203
+ -webkit-appearance: none;
204
+ appearance: none;
205
+ transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
206
+ }
207
+
208
+ .slex-slider::-moz-range-thumb {
209
+ width: 1rem;
210
+ height: 1rem;
211
+ border: 2px solid var(--primary);
212
+ border-radius: 999px;
213
+ background: var(--background) !important;
214
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 14%, transparent);
215
+ transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 120ms ease;
216
+ }
217
+
218
+ .slex-slider:hover::-webkit-slider-thumb {
219
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
220
+ transform: scale(1.06);
221
+ }
222
+
223
+ .slex-slider:hover::-moz-range-thumb {
224
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
225
+ transform: scale(1.06);
226
+ }
227
+
228
+ .slex-slider:active::-webkit-slider-thumb {
229
+ box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
230
+ transform: scale(1.12);
231
+ }
232
+
233
+ .slex-slider:active::-moz-range-thumb {
234
+ box-shadow: 0 0 0 6px color-mix(in oklab, var(--primary) 16%, transparent);
235
+ transform: scale(1.12);
236
+ }
237
+
238
+ .slex-slider::-moz-range-track {
239
+ height: 0.5rem;
240
+ border: 0;
241
+ border-radius: 999px;
242
+ background: var(--secondary);
243
+ }
244
+
245
+ .slex-slider::-moz-range-progress {
246
+ height: 0.5rem;
247
+ border-radius: 999px;
248
+ background: var(--primary);
249
249
  }
250
250
 
251
251
  .slex-slider-label-text {
@@ -257,119 +257,119 @@
257
257
 
258
258
  /* components/switch.css */
259
259
 
260
- .slex-switch {
261
- display: inline-flex;
262
- align-items: center;
263
- gap: 0.5rem;
264
- cursor: pointer;
265
- }
266
-
267
- .slex-switch-event-layer {
268
- display: inline-flex;
269
- }
270
-
271
- .slex-choice-event-layer {
272
- display: inline-flex;
273
- }
274
-
260
+ .slex-switch {
261
+ display: inline-flex;
262
+ align-items: center;
263
+ gap: 0.5rem;
264
+ cursor: pointer;
265
+ }
266
+
267
+ .slex-switch-event-layer {
268
+ display: inline-flex;
269
+ }
270
+
271
+ .slex-choice-event-layer {
272
+ display: inline-flex;
273
+ }
274
+
275
275
  .slex-switch-label {
276
276
  display: inline-flex;
277
277
  align-items: center;
278
278
  gap: 0.375rem;
279
279
  min-width: 0;
280
280
  color: var(--foreground);
281
- font-size: 0.8125rem;
282
- font-weight: 500;
283
- }
284
-
285
- .slex-switch-input {
286
- position: absolute;
287
- width: 1px;
288
- height: 1px;
289
- padding: 0;
290
- margin: -1px;
291
- overflow: hidden;
292
- clip: rect(0, 0, 0, 0);
293
- white-space: nowrap;
294
- border: 0;
295
- }
296
-
297
- .slex-switch-control {
298
- box-sizing: border-box;
299
- position: relative;
300
- display: inline-flex;
301
- align-items: center;
302
- flex: 0 0 auto;
303
- width: 2.75rem;
304
- height: 1.5rem;
305
- margin-inline-end: 0;
306
- padding: 0;
307
- border: 2px solid transparent;
281
+ font-size: 0.8125rem;
282
+ font-weight: 500;
283
+ }
284
+
285
+ .slex-switch-input {
286
+ position: absolute;
287
+ width: 1px;
288
+ height: 1px;
289
+ padding: 0;
290
+ margin: -1px;
291
+ overflow: hidden;
292
+ clip: rect(0, 0, 0, 0);
293
+ white-space: nowrap;
294
+ border: 0;
295
+ }
296
+
297
+ .slex-switch-control {
298
+ box-sizing: border-box;
299
+ position: relative;
300
+ display: inline-flex;
301
+ align-items: center;
302
+ flex: 0 0 auto;
303
+ width: 2.75rem;
304
+ height: 1.5rem;
305
+ margin-inline-end: 0;
306
+ padding: 0;
307
+ border: 2px solid transparent;
308
308
  border-radius: 9999px;
309
- background: var(--input);
310
- transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
311
- }
312
-
313
- .slex-switch-control::after {
314
- content: "";
315
- display: block;
316
- width: 1.25rem;
317
- height: 1.25rem;
318
- border: 0;
309
+ background: var(--input);
310
+ transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
311
+ }
312
+
313
+ .slex-switch-control::after {
314
+ content: "";
315
+ display: block;
316
+ width: 1.25rem;
317
+ height: 1.25rem;
318
+ border: 0;
319
319
  border-radius: 9999px;
320
- background: var(--background);
321
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 12%, transparent);
322
- transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
323
- transform: translateX(0);
324
- will-change: transform;
325
- }
326
-
327
- .slex-switch:hover .slex-switch-control {
328
- border-color: color-mix(in oklab, var(--primary) 42%, var(--input));
329
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
330
- }
331
-
332
- .slex-switch:hover .slex-switch-control::after {
333
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 10%, transparent);
334
- }
335
-
336
- .slex-switch:active .slex-switch-control::after {
337
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 16%, transparent);
338
- }
339
-
340
- .slex-switch-input:checked + .slex-switch-control {
341
- border-color: var(--primary);
342
- background: var(--primary);
343
- }
344
-
345
- .slex-switch:hover .slex-switch-input:checked + .slex-switch-control {
346
- background: color-mix(in oklab, var(--primary) 88%, var(--background));
347
- }
348
-
349
- .slex-switch-input:checked + .slex-switch-control::after {
350
- background: var(--background);
351
- transform: translateX(1.25rem);
352
- }
353
-
354
- .slexkit-root[dir="rtl"] .slex-switch-input:checked + .slex-switch-control::after {
355
- transform: translateX(-1.25rem);
356
- }
357
-
358
- .slex-switch-input:focus-visible + .slex-switch-control {
359
- box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 18%, transparent);
360
- }
361
-
362
- .slex-switch-input:disabled + .slex-switch-control {
363
- opacity: 0.55;
364
- }
365
-
366
- .slex-switch:has(.slex-switch-input:disabled) {
367
- cursor: not-allowed;
368
- }
369
-
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 {
372
- box-shadow: none;
320
+ background: var(--background);
321
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 12%, transparent);
322
+ transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
323
+ transform: translateX(0);
324
+ will-change: transform;
325
+ }
326
+
327
+ .slex-switch:hover .slex-switch-control {
328
+ border-color: color-mix(in oklab, var(--primary) 42%, var(--input));
329
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
330
+ }
331
+
332
+ .slex-switch:hover .slex-switch-control::after {
333
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 10%, transparent);
334
+ }
335
+
336
+ .slex-switch:active .slex-switch-control::after {
337
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 16%, transparent);
338
+ }
339
+
340
+ .slex-switch-input:checked + .slex-switch-control {
341
+ border-color: var(--primary);
342
+ background: var(--primary);
343
+ }
344
+
345
+ .slex-switch:hover .slex-switch-input:checked + .slex-switch-control {
346
+ background: color-mix(in oklab, var(--primary) 88%, var(--background));
347
+ }
348
+
349
+ .slex-switch-input:checked + .slex-switch-control::after {
350
+ background: var(--background);
351
+ transform: translateX(1.25rem);
352
+ }
353
+
354
+ .slexkit-root[dir="rtl"] .slex-switch-input:checked + .slex-switch-control::after {
355
+ transform: translateX(-1.25rem);
356
+ }
357
+
358
+ .slex-switch-input:focus-visible + .slex-switch-control {
359
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 18%, transparent);
360
+ }
361
+
362
+ .slex-switch-input:disabled + .slex-switch-control {
363
+ opacity: 0.55;
364
+ }
365
+
366
+ .slex-switch:has(.slex-switch-input:disabled) {
367
+ cursor: not-allowed;
368
+ }
369
+
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 {
372
+ box-shadow: none;
373
373
  }
374
374
 
375
375
  /* components/text-input.css */
@@ -401,10 +401,13 @@
401
401
  }
402
402
 
403
403
  .slex-input-control {
404
+ position: relative;
404
405
  display: flex;
405
406
  align-items: stretch;
406
407
  width: 100%;
407
408
  min-width: 0;
409
+ border-radius: var(--radius);
410
+ transition: box-shadow 150ms ease;
408
411
  }
409
412
 
410
413
  .slex-input {
@@ -458,11 +461,11 @@
458
461
  .slex-input-controls {
459
462
  box-sizing: border-box;
460
463
  display: inline-grid;
461
- grid-template-columns: repeat(2, minmax(0, 1fr));
464
+ grid-template-rows: repeat(2, minmax(0, 1fr));
462
465
  align-items: stretch;
463
466
  flex: 0 0 auto;
464
- width: 3.75rem;
465
- min-width: 3.75rem;
467
+ width: 1.875rem;
468
+ min-width: 1.875rem;
466
469
  min-height: 2.5625rem;
467
470
  overflow: hidden;
468
471
  border: 1px solid var(--input);
@@ -479,15 +482,15 @@
479
482
  justify-content: center;
480
483
  width: 100%;
481
484
  min-width: 0;
482
- min-height: 100%;
485
+ min-height: 0;
483
486
  padding: 0;
484
487
  border: 0;
485
- border-left: 1px solid var(--input);
488
+ border-top: 1px solid var(--input);
486
489
  border-radius: 0;
487
490
  background: transparent;
488
491
  color: var(--foreground);
489
492
  font: inherit;
490
- font-size: 0.875rem;
493
+ font-size: 0.75rem;
491
494
  font-weight: 600;
492
495
  line-height: 1;
493
496
  cursor: pointer;
@@ -495,7 +498,7 @@
495
498
  }
496
499
 
497
500
  .slex-input-step:first-child {
498
- border-left: 0;
501
+ border-top: 0;
499
502
  }
500
503
 
501
504
  .slex-input-step:last-child {
@@ -508,9 +511,9 @@
508
511
 
509
512
  .slex-input-step:focus-visible {
510
513
  z-index: 1;
511
- border-color: var(--ring);
512
514
  outline: none;
513
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
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);
514
517
  }
515
518
 
516
519
  .slex-input-step:disabled {
@@ -524,7 +527,7 @@
524
527
 
525
528
  .slex-input:focus {
526
529
  border-color: var(--ring);
527
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
530
+ box-shadow: none;
528
531
  }
529
532
 
530
533
  .slex-input[type="number"] {
@@ -548,21 +551,21 @@
548
551
 
549
552
  .slex-input-field[data-invalid="true"] .slex-input:focus {
550
553
  border-color: var(--destructive);
551
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
554
+ box-shadow: none;
552
555
  }
553
556
 
554
- .slex-input-control:focus-within .slex-input-unit {
555
- border-color: var(--ring);
557
+ .slex-input-control:focus-within {
556
558
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
557
559
  }
558
560
 
559
- .slex-input-control:focus-within .slex-input-step {
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 {
560
564
  border-color: var(--ring);
561
565
  }
562
566
 
563
- .slex-input-control:focus-within .slex-input-controls {
567
+ .slex-input-control:focus-within .slex-input-step {
564
568
  border-color: var(--ring);
565
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
566
569
  }
567
570
 
568
571
  .slex-input-field[data-invalid="true"] .slex-input-unit {
@@ -578,20 +581,17 @@
578
581
  border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
579
582
  }
580
583
 
581
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
582
- border-color: var(--destructive);
584
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within {
583
585
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
584
586
  }
585
587
 
588
+ .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,
586
591
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-step {
587
592
  border-color: var(--destructive);
588
593
  }
589
594
 
590
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls {
591
- border-color: var(--destructive);
592
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
593
- }
594
-
595
595
  .slex-input[disabled] {
596
596
  opacity: 0.5;
597
597
  cursor: not-allowed;
@@ -622,133 +622,133 @@
622
622
 
623
623
  /* components/select.css */
624
624
 
625
- .slex-select {
626
- position: relative;
627
- display: flex;
628
- width: 100%;
629
- min-width: 0;
630
- flex-direction: column;
631
- gap: 0.5rem;
632
- }
633
-
625
+ .slex-select {
626
+ position: relative;
627
+ display: flex;
628
+ width: 100%;
629
+ min-width: 0;
630
+ flex-direction: column;
631
+ gap: 0.5rem;
632
+ }
633
+
634
634
  .slex-select-label {
635
635
  display: inline-flex;
636
636
  align-items: center;
637
637
  gap: 0.375rem;
638
638
  min-width: 0;
639
639
  color: var(--foreground);
640
- font-size: 0.875rem;
641
- font-weight: 500;
642
- line-height: 1;
643
- }
644
-
645
- .slex-select-control {
646
- width: 100%;
647
- min-width: 0;
648
- }
649
-
650
- .slex-select .slex-select-trigger {
651
- box-sizing: border-box;
652
- display: flex;
653
- align-items: center;
654
- justify-content: space-between;
655
- gap: 0.75rem;
656
- width: 100%;
657
- min-width: 0;
658
- min-height: 2.5rem;
659
- margin: 0;
640
+ font-size: 0.875rem;
641
+ font-weight: 500;
642
+ line-height: 1;
643
+ }
644
+
645
+ .slex-select-control {
646
+ width: 100%;
647
+ min-width: 0;
648
+ }
649
+
650
+ .slex-select .slex-select-trigger {
651
+ box-sizing: border-box;
652
+ display: flex;
653
+ align-items: center;
654
+ justify-content: space-between;
655
+ gap: 0.75rem;
656
+ width: 100%;
657
+ min-width: 0;
658
+ min-height: 2.5rem;
659
+ margin: 0;
660
660
  padding: 0.5rem 1rem;
661
- border: 1px solid var(--input);
662
- border-radius: var(--radius);
663
- background: var(--background);
664
- color: var(--foreground);
665
- font: inherit;
666
- font-size: 0.875rem;
667
- line-height: 1.25rem;
668
- outline: none;
669
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 8%, transparent);
670
- cursor: pointer;
671
- transition:
672
- border-color 150ms ease,
673
- background-color 150ms ease,
674
- box-shadow 150ms ease,
675
- color 150ms ease;
676
- appearance: none;
677
- text-align: left;
678
- }
679
-
680
- .slex-select .slex-select-trigger:hover:not(:disabled) {
681
- background: color-mix(in oklab, var(--accent) 34%, var(--background));
682
- }
683
-
684
- .slex-select .slex-select-trigger:focus-visible {
685
- border-color: var(--ring);
686
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 20%, transparent);
687
- }
688
-
689
- .slex-select .slex-select-trigger:disabled {
690
- cursor: not-allowed;
691
- opacity: 0.5;
692
- }
693
-
661
+ border: 1px solid var(--input);
662
+ border-radius: var(--radius);
663
+ background: var(--background);
664
+ color: var(--foreground);
665
+ font: inherit;
666
+ font-size: 0.875rem;
667
+ line-height: 1.25rem;
668
+ outline: none;
669
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 8%, transparent);
670
+ cursor: pointer;
671
+ transition:
672
+ border-color 150ms ease,
673
+ background-color 150ms ease,
674
+ box-shadow 150ms ease,
675
+ color 150ms ease;
676
+ appearance: none;
677
+ text-align: left;
678
+ }
679
+
680
+ .slex-select .slex-select-trigger:hover:not(:disabled) {
681
+ background: color-mix(in oklab, var(--accent) 34%, var(--background));
682
+ }
683
+
684
+ .slex-select .slex-select-trigger:focus-visible {
685
+ border-color: var(--ring);
686
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 20%, transparent);
687
+ }
688
+
689
+ .slex-select .slex-select-trigger:disabled {
690
+ cursor: not-allowed;
691
+ opacity: 0.5;
692
+ }
693
+
694
694
  .slex-select-value {
695
695
  display: inline-flex;
696
696
  align-items: center;
697
697
  gap: 0.375rem;
698
698
  min-width: 0;
699
699
  overflow: hidden;
700
- text-overflow: ellipsis;
701
- white-space: nowrap;
702
- }
703
-
704
- .slex-select-value[data-placeholder] {
705
- color: var(--muted-foreground);
706
- }
707
-
708
- .slex-select-icon {
709
- position: relative;
710
- flex: 0 0 auto;
711
- width: 0.75rem;
712
- height: 0.75rem;
713
- opacity: 0.72;
714
- }
715
-
716
- .slex-select-icon::before {
717
- position: absolute;
718
- top: 0.2rem;
719
- left: 0.125rem;
720
- width: 0.45rem;
721
- height: 0.45rem;
722
- border-right: 1.5px solid currentColor;
723
- border-bottom: 1.5px solid currentColor;
724
- content: "";
725
- transform: rotate(45deg);
726
- }
727
-
728
- .slex-select-native {
729
- position: absolute;
730
- width: 1px;
731
- height: 1px;
732
- margin: -1px;
733
- padding: 0;
734
- border: 0;
735
- overflow: hidden;
736
- clip: rect(0 0 0 0);
737
- clip-path: inset(50%);
738
- white-space: nowrap;
739
- }
740
-
741
- .slex-select-menu {
742
- position: absolute;
743
- z-index: 40;
744
- top: calc(100% + 0.375rem);
745
- left: 0;
746
- right: 0;
747
- width: 100%;
748
- max-height: 14rem;
749
- margin: 0;
750
- padding: 0.25rem;
751
- overflow-y: auto;
700
+ text-overflow: ellipsis;
701
+ white-space: nowrap;
702
+ }
703
+
704
+ .slex-select-value[data-placeholder] {
705
+ color: var(--muted-foreground);
706
+ }
707
+
708
+ .slex-select-icon {
709
+ position: relative;
710
+ flex: 0 0 auto;
711
+ width: 0.75rem;
712
+ height: 0.75rem;
713
+ opacity: 0.72;
714
+ }
715
+
716
+ .slex-select-icon::before {
717
+ position: absolute;
718
+ top: 0.2rem;
719
+ left: 0.125rem;
720
+ width: 0.45rem;
721
+ height: 0.45rem;
722
+ border-right: 1.5px solid currentColor;
723
+ border-bottom: 1.5px solid currentColor;
724
+ content: "";
725
+ transform: rotate(45deg);
726
+ }
727
+
728
+ .slex-select-native {
729
+ position: absolute;
730
+ width: 1px;
731
+ height: 1px;
732
+ margin: -1px;
733
+ padding: 0;
734
+ border: 0;
735
+ overflow: hidden;
736
+ clip: rect(0 0 0 0);
737
+ clip-path: inset(50%);
738
+ white-space: nowrap;
739
+ }
740
+
741
+ .slex-select-menu {
742
+ position: absolute;
743
+ z-index: 40;
744
+ top: calc(100% + 0.375rem);
745
+ left: 0;
746
+ right: 0;
747
+ width: 100%;
748
+ max-height: 14rem;
749
+ margin: 0;
750
+ padding: 0.25rem;
751
+ overflow-y: auto;
752
752
  border: 1px solid color-mix(in oklab, var(--border) 82%, transparent);
753
753
  border-radius: var(--radius);
754
754
  background: var(--popover, var(--background));
@@ -760,23 +760,23 @@
760
760
  );
761
761
  list-style: none;
762
762
  }
763
-
764
- .slexkit-root .slex-select-menu {
765
- margin: 0;
766
- padding: 0.25rem;
767
- list-style: none;
768
- }
769
-
763
+
764
+ .slexkit-root .slex-select-menu {
765
+ margin: 0;
766
+ padding: 0.25rem;
767
+ list-style: none;
768
+ }
769
+
770
770
  .slexkit-root .slex-select-menu li {
771
771
  margin: 0;
772
772
  list-style: none;
773
773
  }
774
-
775
- .slex-select-option {
776
- display: flex;
777
- align-items: center;
778
- justify-content: space-between;
779
- gap: 0.75rem;
774
+
775
+ .slex-select-option {
776
+ display: flex;
777
+ align-items: center;
778
+ justify-content: space-between;
779
+ gap: 0.75rem;
780
780
  min-height: 2rem;
781
781
  padding: 0.5rem 0.75rem;
782
782
  border-radius: calc(var(--radius) - 2px);
@@ -784,9 +784,9 @@
784
784
  font-size: 0.875rem;
785
785
  line-height: 1.25rem;
786
786
  cursor: pointer;
787
- user-select: none;
788
- }
789
-
787
+ user-select: none;
788
+ }
789
+
790
790
  .slex-select-option:hover:not([data-disabled]),
791
791
  .slex-select-option--active:not([data-disabled]) {
792
792
  background: var(--accent);
@@ -797,27 +797,27 @@
797
797
  background: transparent;
798
798
  color: var(--popover-foreground, var(--foreground));
799
799
  }
800
-
801
- .slex-select-option--selected {
802
- font-weight: 500;
803
- }
804
-
805
- .slex-select-option[data-disabled] {
806
- color: var(--muted-foreground);
807
- cursor: not-allowed;
808
- opacity: 0.52;
809
- }
810
-
800
+
801
+ .slex-select-option--selected {
802
+ font-weight: 500;
803
+ }
804
+
805
+ .slex-select-option[data-disabled] {
806
+ color: var(--muted-foreground);
807
+ cursor: not-allowed;
808
+ opacity: 0.52;
809
+ }
810
+
811
811
  .slex-select-option-label {
812
812
  display: inline-flex;
813
813
  align-items: center;
814
814
  gap: 0.375rem;
815
815
  min-width: 0;
816
- overflow: hidden;
817
- text-overflow: ellipsis;
818
- white-space: nowrap;
819
- }
820
-
816
+ overflow: hidden;
817
+ text-overflow: ellipsis;
818
+ white-space: nowrap;
819
+ }
820
+
821
821
  .slex-select-check {
822
822
  position: relative;
823
823
  flex: 0 0 auto;
@@ -837,35 +837,35 @@
837
837
  content: "";
838
838
  transform: rotate(-45deg);
839
839
  }
840
-
841
- .slex-select[data-variant="toolbar"] {
842
- height: 100%;
843
- gap: 0;
844
- }
845
-
846
- .slex-select[data-variant="toolbar"] .slex-select-trigger {
847
- height: var(--slex-control-height, 2.25rem);
848
- min-height: 0;
849
- border-width: 0 1px 0 0;
850
- border-color: color-mix(in oklab, var(--border) 58%, transparent);
851
- border-radius: 0;
852
- background: transparent;
853
- padding: 0 0.75rem 0 0.875rem;
854
- font-size: 0.8125rem;
855
- line-height: 1;
856
- box-shadow: none;
857
- }
858
-
859
- .slex-select[data-variant="toolbar"] .slex-select-trigger:hover:not(:disabled) {
860
- background: color-mix(in oklab, var(--muted) 36%, var(--background));
861
- }
862
-
863
- .slex-select[data-variant="toolbar"] .slex-select-menu {
864
- top: calc(100% + 0.25rem);
865
- left: 0;
866
- right: auto;
867
- width: 100%;
868
- min-width: 100%;
840
+
841
+ .slex-select[data-variant="toolbar"] {
842
+ height: 100%;
843
+ gap: 0;
844
+ }
845
+
846
+ .slex-select[data-variant="toolbar"] .slex-select-trigger {
847
+ height: var(--slex-control-height, 2.25rem);
848
+ min-height: 0;
849
+ border-width: 0 1px 0 0;
850
+ border-color: color-mix(in oklab, var(--border) 58%, transparent);
851
+ border-radius: 0;
852
+ background: transparent;
853
+ padding: 0 0.75rem 0 0.875rem;
854
+ font-size: 0.8125rem;
855
+ line-height: 1;
856
+ box-shadow: none;
857
+ }
858
+
859
+ .slex-select[data-variant="toolbar"] .slex-select-trigger:hover:not(:disabled) {
860
+ background: color-mix(in oklab, var(--muted) 36%, var(--background));
861
+ }
862
+
863
+ .slex-select[data-variant="toolbar"] .slex-select-menu {
864
+ top: calc(100% + 0.25rem);
865
+ left: 0;
866
+ right: auto;
867
+ width: 100%;
868
+ min-width: 100%;
869
869
  border-color: color-mix(in oklab, var(--border) 76%, transparent);
870
870
  border-radius: calc(var(--radius) - 2px);
871
871
  padding: 0.25rem;
@@ -875,9 +875,9 @@
875
875
  0 1px 3px rgb(0 0 0 / 0.06)
876
876
  );
877
877
  }
878
-
879
- .slex-select[data-variant="toolbar"] .slex-select-option {
880
- height: 1.875rem;
878
+
879
+ .slex-select[data-variant="toolbar"] .slex-select-option {
880
+ height: 1.875rem;
881
881
  border-radius: calc(var(--radius) - 4px);
882
882
  font-size: 0.8125rem;
883
883
  padding-inline: 0.75rem;
@@ -885,46 +885,46 @@
885
885
 
886
886
  /* components/tabs.css */
887
887
 
888
- .slex-tabs {
889
- display: flex;
890
- flex-direction: column;
891
- width: 100%;
892
- }
893
-
894
- .slex-tabs[data-orientation="vertical"] {
895
- flex-direction: row;
896
- }
897
-
888
+ .slex-tabs {
889
+ display: flex;
890
+ flex-direction: column;
891
+ width: 100%;
892
+ }
893
+
894
+ .slex-tabs[data-orientation="vertical"] {
895
+ flex-direction: row;
896
+ }
897
+
898
898
  .slex-tabs-list {
899
899
  --slex-tabs-indicator-inline-inset: 12px;
900
900
  --slex-tabs-indicator-block-inset: 8px;
901
901
  position: relative;
902
902
  display: flex;
903
- gap: 0;
904
- margin: 0;
905
- padding: 0;
906
- list-style: none;
907
- overflow: hidden;
908
- border-bottom: 1px solid var(--border);
909
- }
910
-
911
- .slexkit-root .slex-tabs-list {
912
- display: flex;
913
- gap: 0;
914
- margin: 0;
915
- padding: 0;
916
- list-style: none;
917
- }
918
-
919
- .slexkit-root .slex-tabs-list li {
920
- margin: 0;
921
- padding: 0;
922
- color: inherit;
923
- font: inherit;
924
- line-height: inherit;
925
- list-style: none;
926
- }
927
-
903
+ gap: 0;
904
+ margin: 0;
905
+ padding: 0;
906
+ list-style: none;
907
+ overflow: hidden;
908
+ border-bottom: 1px solid var(--border);
909
+ }
910
+
911
+ .slexkit-root .slex-tabs-list {
912
+ display: flex;
913
+ gap: 0;
914
+ margin: 0;
915
+ padding: 0;
916
+ list-style: none;
917
+ }
918
+
919
+ .slexkit-root .slex-tabs-list li {
920
+ margin: 0;
921
+ padding: 0;
922
+ color: inherit;
923
+ font: inherit;
924
+ line-height: inherit;
925
+ list-style: none;
926
+ }
927
+
928
928
  .slex-tabs-selected-indicator {
929
929
  position: absolute;
930
930
  z-index: 20;
@@ -950,25 +950,25 @@
950
950
  .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
951
951
  flex-direction: column;
952
952
  border-right: 1px solid var(--border);
953
- border-bottom: none;
954
- }
955
-
956
- .slex-tabs-trigger {
957
- position: relative;
958
- padding: 0.5rem 1rem;
959
- border: none;
960
- border-radius: 0;
961
- background: transparent;
962
- color: var(--muted-foreground);
963
- font-family: inherit;
964
- font-size: 0.875rem;
965
- font-weight: 500;
966
- white-space: nowrap;
953
+ border-bottom: none;
954
+ }
955
+
956
+ .slex-tabs-trigger {
957
+ position: relative;
958
+ padding: 0.5rem 1rem;
959
+ border: none;
960
+ border-radius: 0;
961
+ background: transparent;
962
+ color: var(--muted-foreground);
963
+ font-family: inherit;
964
+ font-size: 0.875rem;
965
+ font-weight: 500;
966
+ white-space: nowrap;
967
967
  cursor: pointer;
968
968
  outline: none;
969
969
  user-select: none;
970
970
  }
971
-
971
+
972
972
  .slex-tabs-trigger--icon {
973
973
  display: inline-grid;
974
974
  width: var(--slex-control-height, 2.25rem);
@@ -1010,17 +1010,17 @@
1010
1010
  .slex-tabs-trigger.slex-tabs-trigger--selected:hover:not([data-disabled]) {
1011
1011
  color: var(--primary);
1012
1012
  }
1013
-
1014
- .slex-tabs-trigger[data-disabled] {
1015
- opacity: 0.4;
1016
- cursor: not-allowed;
1017
- }
1018
-
1019
- .slex-tabs-trigger:focus-visible {
1020
- outline: 2px solid var(--ring);
1021
- outline-offset: -2px;
1022
- }
1023
-
1013
+
1014
+ .slex-tabs-trigger[data-disabled] {
1015
+ opacity: 0.4;
1016
+ cursor: not-allowed;
1017
+ }
1018
+
1019
+ .slex-tabs-trigger:focus-visible {
1020
+ outline: 2px solid var(--ring);
1021
+ outline-offset: -2px;
1022
+ }
1023
+
1024
1024
  .slex-tabs-content {
1025
1025
  margin-top: 0.75rem !important;
1026
1026
  border-radius: 0 !important;
@@ -1042,56 +1042,56 @@
1042
1042
  }
1043
1043
 
1044
1044
  @keyframes slex-tabs-content-in {
1045
- from {
1046
- opacity: 0;
1047
- transform: translateY(2px);
1048
- }
1049
- to {
1050
- opacity: 1;
1051
- transform: translateY(0);
1052
- }
1053
- }
1054
-
1055
- .slex-tabs-content[hidden] {
1056
- display: none;
1057
- }
1058
-
1059
- @media (max-width: 640px) {
1060
- .slex-tabs-list {
1061
- overflow-x: auto;
1062
- scrollbar-width: none;
1063
- }
1064
-
1065
- .slex-tabs-list::-webkit-scrollbar {
1066
- display: none;
1067
- }
1068
-
1069
- .slex-tabs[data-orientation="vertical"] {
1070
- flex-direction: column;
1071
- }
1072
-
1073
- .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
1074
- flex-direction: row;
1075
- border-right: 0;
1076
- border-bottom: 1px solid var(--border);
1077
- }
1078
-
1045
+ from {
1046
+ opacity: 0;
1047
+ transform: translateY(2px);
1048
+ }
1049
+ to {
1050
+ opacity: 1;
1051
+ transform: translateY(0);
1052
+ }
1053
+ }
1054
+
1055
+ .slex-tabs-content[hidden] {
1056
+ display: none;
1057
+ }
1058
+
1059
+ @media (max-width: 640px) {
1060
+ .slex-tabs-list {
1061
+ overflow-x: auto;
1062
+ scrollbar-width: none;
1063
+ }
1064
+
1065
+ .slex-tabs-list::-webkit-scrollbar {
1066
+ display: none;
1067
+ }
1068
+
1069
+ .slex-tabs[data-orientation="vertical"] {
1070
+ flex-direction: column;
1071
+ }
1072
+
1073
+ .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
1074
+ flex-direction: row;
1075
+ border-right: 0;
1076
+ border-bottom: 1px solid var(--border);
1077
+ }
1078
+
1079
1079
  }
1080
1080
 
1081
1081
  /* components/choice.css */
1082
1082
 
1083
- .slex-checkbox-field,
1084
- .slex-radio-field {
1085
- display: inline-flex;
1086
- align-items: center;
1087
- gap: 0.5rem;
1088
- color: var(--foreground);
1089
- font-size: 0.875rem;
1090
- cursor: pointer;
1091
- user-select: none;
1092
- transition: color 150ms ease, opacity 150ms ease;
1093
- }
1094
-
1083
+ .slex-checkbox-field,
1084
+ .slex-radio-field {
1085
+ display: inline-flex;
1086
+ align-items: center;
1087
+ gap: 0.5rem;
1088
+ color: var(--foreground);
1089
+ font-size: 0.875rem;
1090
+ cursor: pointer;
1091
+ user-select: none;
1092
+ transition: color 150ms ease, opacity 150ms ease;
1093
+ }
1094
+
1095
1095
  .slex-checkbox-label,
1096
1096
  .slex-radio-label {
1097
1097
  display: inline-flex;
@@ -1099,149 +1099,149 @@
1099
1099
  gap: 0.375rem;
1100
1100
  min-width: 0;
1101
1101
  color: var(--foreground);
1102
- line-height: 1.35;
1103
- transition: color 150ms ease;
1104
- }
1105
-
1106
- .slex-checkbox,
1107
- .slex-radio {
1108
- box-sizing: border-box;
1109
- position: relative;
1110
- display: inline-grid;
1111
- place-items: center;
1112
- flex: 0 0 auto;
1113
- width: 1rem;
1114
- height: 1rem;
1115
- margin: 0;
1116
- border: 1.5px solid var(--input);
1117
- color: var(--primary);
1118
- accent-color: var(--primary);
1119
- background: var(--background);
1120
- cursor: pointer;
1121
- appearance: none;
1122
- -webkit-appearance: none;
1123
- transition:
1124
- background-color 150ms ease,
1125
- border-color 150ms ease,
1126
- box-shadow 150ms ease,
1127
- transform 120ms ease;
1128
- }
1129
-
1130
- .slex-checkbox {
1131
- border-radius: calc(var(--radius) - 4px);
1132
- }
1133
-
1134
- .slex-radio {
1135
- border-radius: 999px;
1136
- }
1137
-
1138
- .slex-checkbox::after,
1139
- .slex-radio::after {
1140
- content: "";
1141
- display: block;
1142
- opacity: 0;
1143
- transform: scale(0.5);
1144
- transition: opacity 120ms ease, transform 140ms ease;
1145
- }
1146
-
1147
- .slex-checkbox::after {
1148
- width: 0.55rem;
1149
- height: 0.34rem;
1150
- border: solid var(--primary-foreground);
1151
- border-width: 0 0 2px 2px;
1152
- transform: translateY(-0.08rem) rotate(-45deg) scale(0.5);
1153
- }
1154
-
1155
- .slex-radio::after {
1156
- width: 0.45rem;
1157
- height: 0.45rem;
1158
- border-radius: 999px;
1159
- background: var(--primary-foreground);
1160
- }
1161
-
1162
- .slex-checkbox-field:hover .slex-checkbox:not(:disabled),
1163
- .slex-radio-field:hover .slex-radio:not(:disabled) {
1164
- border-color: color-mix(in oklab, var(--primary) 48%, var(--input));
1165
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
1166
- }
1167
-
1168
- .slex-checkbox-field:active .slex-checkbox:not(:disabled),
1169
- .slex-radio-field:active .slex-radio:not(:disabled) {
1170
- transform: scale(0.92);
1171
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
1172
- }
1173
-
1174
- .slex-checkbox:checked,
1175
- .slex-radio:checked {
1176
- border-color: var(--primary);
1177
- background: var(--primary);
1178
- }
1179
-
1180
- .slex-checkbox:checked::after,
1181
- .slex-radio:checked::after {
1182
- opacity: 1;
1183
- }
1184
-
1185
- .slex-checkbox:checked::after {
1186
- transform: translateY(-0.08rem) rotate(-45deg) scale(1);
1187
- }
1188
-
1189
- .slex-radio:checked::after {
1190
- transform: scale(1);
1191
- }
1192
-
1193
- .slex-checkbox-field:hover .slex-checkbox-label,
1194
- .slex-radio-field:hover .slex-radio-label {
1195
- color: var(--foreground);
1196
- }
1197
-
1198
- .slex-checkbox:focus-visible,
1199
- .slex-radio:focus-visible {
1200
- outline: 2px solid var(--ring);
1201
- outline-offset: 2px;
1202
- }
1203
-
1204
- .slex-radio-group {
1205
- display: flex;
1206
- flex-direction: column;
1207
- gap: 0.625rem;
1208
- }
1209
-
1102
+ line-height: 1.35;
1103
+ transition: color 150ms ease;
1104
+ }
1105
+
1106
+ .slex-checkbox,
1107
+ .slex-radio {
1108
+ box-sizing: border-box;
1109
+ position: relative;
1110
+ display: inline-grid;
1111
+ place-items: center;
1112
+ flex: 0 0 auto;
1113
+ width: 1rem;
1114
+ height: 1rem;
1115
+ margin: 0;
1116
+ border: 1.5px solid var(--input);
1117
+ color: var(--primary);
1118
+ accent-color: var(--primary);
1119
+ background: var(--background);
1120
+ cursor: pointer;
1121
+ appearance: none;
1122
+ -webkit-appearance: none;
1123
+ transition:
1124
+ background-color 150ms ease,
1125
+ border-color 150ms ease,
1126
+ box-shadow 150ms ease,
1127
+ transform 120ms ease;
1128
+ }
1129
+
1130
+ .slex-checkbox {
1131
+ border-radius: calc(var(--radius) - 4px);
1132
+ }
1133
+
1134
+ .slex-radio {
1135
+ border-radius: 999px;
1136
+ }
1137
+
1138
+ .slex-checkbox::after,
1139
+ .slex-radio::after {
1140
+ content: "";
1141
+ display: block;
1142
+ opacity: 0;
1143
+ transform: scale(0.5);
1144
+ transition: opacity 120ms ease, transform 140ms ease;
1145
+ }
1146
+
1147
+ .slex-checkbox::after {
1148
+ width: 0.55rem;
1149
+ height: 0.34rem;
1150
+ border: solid var(--primary-foreground);
1151
+ border-width: 0 0 2px 2px;
1152
+ transform: translateY(-0.08rem) rotate(-45deg) scale(0.5);
1153
+ }
1154
+
1155
+ .slex-radio::after {
1156
+ width: 0.45rem;
1157
+ height: 0.45rem;
1158
+ border-radius: 999px;
1159
+ background: var(--primary-foreground);
1160
+ }
1161
+
1162
+ .slex-checkbox-field:hover .slex-checkbox:not(:disabled),
1163
+ .slex-radio-field:hover .slex-radio:not(:disabled) {
1164
+ border-color: color-mix(in oklab, var(--primary) 48%, var(--input));
1165
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
1166
+ }
1167
+
1168
+ .slex-checkbox-field:active .slex-checkbox:not(:disabled),
1169
+ .slex-radio-field:active .slex-radio:not(:disabled) {
1170
+ transform: scale(0.92);
1171
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 12%, transparent);
1172
+ }
1173
+
1174
+ .slex-checkbox:checked,
1175
+ .slex-radio:checked {
1176
+ border-color: var(--primary);
1177
+ background: var(--primary);
1178
+ }
1179
+
1180
+ .slex-checkbox:checked::after,
1181
+ .slex-radio:checked::after {
1182
+ opacity: 1;
1183
+ }
1184
+
1185
+ .slex-checkbox:checked::after {
1186
+ transform: translateY(-0.08rem) rotate(-45deg) scale(1);
1187
+ }
1188
+
1189
+ .slex-radio:checked::after {
1190
+ transform: scale(1);
1191
+ }
1192
+
1193
+ .slex-checkbox-field:hover .slex-checkbox-label,
1194
+ .slex-radio-field:hover .slex-radio-label {
1195
+ color: var(--foreground);
1196
+ }
1197
+
1198
+ .slex-checkbox:focus-visible,
1199
+ .slex-radio:focus-visible {
1200
+ outline: 2px solid var(--ring);
1201
+ outline-offset: 2px;
1202
+ }
1203
+
1204
+ .slex-radio-group {
1205
+ display: flex;
1206
+ flex-direction: column;
1207
+ gap: 0.625rem;
1208
+ }
1209
+
1210
1210
  .slex-radio-group-label {
1211
1211
  display: inline-flex;
1212
1212
  align-items: center;
1213
1213
  gap: 0.375rem;
1214
1214
  min-width: 0;
1215
1215
  color: var(--foreground);
1216
- font-size: 0.875rem;
1217
- font-weight: 500;
1218
- }
1219
-
1220
- .slex-radio-group-list {
1221
- display: flex;
1222
- flex-direction: column;
1223
- gap: 0.5rem;
1224
- }
1225
-
1226
- .slex-radio-group[data-orientation="horizontal"] .slex-radio-group-list {
1227
- flex-direction: row;
1228
- flex-wrap: wrap;
1229
- }
1230
-
1231
- .slex-checkbox:disabled,
1232
- .slex-radio:disabled {
1233
- cursor: not-allowed;
1234
- opacity: 0.5;
1235
- box-shadow: none;
1236
- transform: none;
1237
- }
1238
-
1239
- .slex-checkbox-field:has(.slex-checkbox:disabled),
1240
- .slex-radio-field:has(.slex-radio:disabled) {
1241
- cursor: not-allowed;
1242
- opacity: 0.65;
1243
- }
1244
-
1245
- .slex-radio-indicator {
1246
- display: none;
1216
+ font-size: 0.875rem;
1217
+ font-weight: 500;
1218
+ }
1219
+
1220
+ .slex-radio-group-list {
1221
+ display: flex;
1222
+ flex-direction: column;
1223
+ gap: 0.5rem;
1224
+ }
1225
+
1226
+ .slex-radio-group[data-orientation="horizontal"] .slex-radio-group-list {
1227
+ flex-direction: row;
1228
+ flex-wrap: wrap;
1229
+ }
1230
+
1231
+ .slex-checkbox:disabled,
1232
+ .slex-radio:disabled {
1233
+ cursor: not-allowed;
1234
+ opacity: 0.5;
1235
+ box-shadow: none;
1236
+ transform: none;
1237
+ }
1238
+
1239
+ .slex-checkbox-field:has(.slex-checkbox:disabled),
1240
+ .slex-radio-field:has(.slex-radio:disabled) {
1241
+ cursor: not-allowed;
1242
+ opacity: 0.65;
1243
+ }
1244
+
1245
+ .slex-radio-indicator {
1246
+ display: none;
1247
1247
  }