@blankjs/react 0.1.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/style.css ADDED
@@ -0,0 +1,1161 @@
1
+ :root, [data-bk-theme="dark"] {
2
+ color-scheme: dark;
3
+ --bk-gray-50: oklch(97% .005 275);
4
+ --bk-gray-100: oklch(93% .007 275);
5
+ --bk-gray-200: oklch(86% .009 275);
6
+ --bk-gray-300: oklch(74% .012 275);
7
+ --bk-gray-400: oklch(60% .016 275);
8
+ --bk-gray-500: oklch(48% .018 275);
9
+ --bk-gray-600: oklch(38% .02 275);
10
+ --bk-gray-700: oklch(29% .02 275);
11
+ --bk-gray-800: oklch(22% .018 275);
12
+ --bk-gray-900: oklch(16% .016 275);
13
+ --bk-gray-950: oklch(12% .014 275);
14
+ --bk-indigo-300: oklch(78% .11 275);
15
+ --bk-indigo-400: oklch(70% .15 275);
16
+ --bk-indigo-500: oklch(62% .19 275);
17
+ --bk-indigo-600: oklch(55% .2 275);
18
+ --bk-indigo-700: oklch(46% .18 276);
19
+ --bk-red-300: oklch(78% .1 22);
20
+ --bk-red-400: oklch(68% .16 24);
21
+ --bk-red-500: oklch(60% .19 25);
22
+ --bk-red-600: oklch(50% .19 25);
23
+ --bk-radius-sm: 4px;
24
+ --bk-radius-md: 8px;
25
+ --bk-radius-lg: 12px;
26
+ --bk-space-1: 4px;
27
+ --bk-space-2: 8px;
28
+ --bk-space-3: 12px;
29
+ --bk-space-4: 16px;
30
+ --bk-space-5: 20px;
31
+ --bk-space-6: 24px;
32
+ --bk-space-8: 32px;
33
+ --bk-font-size-sm: .875rem;
34
+ --bk-font-size-md: .9375rem;
35
+ --bk-font-size-lg: 1.0625rem;
36
+ --bk-duration-fast: .12s;
37
+ --bk-duration-base: .18s;
38
+ --bk-color-surface: var(--bk-gray-900);
39
+ --bk-color-surface-muted: var(--bk-gray-800);
40
+ --bk-color-surface-raised: var(--bk-gray-800);
41
+ --bk-color-surface-hover: var(--bk-gray-700);
42
+ --bk-color-text: var(--bk-gray-50);
43
+ --bk-color-text-on-accent: var(--bk-gray-50);
44
+ --bk-color-text-muted: var(--bk-gray-400);
45
+ --bk-color-border: var(--bk-gray-600);
46
+ --bk-color-border-hover: var(--bk-gray-500);
47
+ --bk-color-border-focus: var(--bk-indigo-500);
48
+ --bk-color-accent: var(--bk-indigo-500);
49
+ --bk-color-accent-hover: var(--bk-indigo-400);
50
+ --bk-color-danger: var(--bk-red-500);
51
+ --bk-color-danger-text: var(--bk-red-300);
52
+ --bk-shadow-popover: 0 8px 24px #0006;
53
+ }
54
+
55
+ [data-bk-theme="light"] {
56
+ color-scheme: light;
57
+ --bk-color-surface: var(--bk-gray-50);
58
+ --bk-color-surface-muted: var(--bk-gray-100);
59
+ --bk-color-surface-raised: var(--bk-gray-50);
60
+ --bk-color-surface-hover: var(--bk-gray-100);
61
+ --bk-color-text: var(--bk-gray-950);
62
+ --bk-color-text-on-accent: var(--bk-gray-50);
63
+ --bk-color-text-muted: var(--bk-gray-500);
64
+ --bk-color-border: var(--bk-gray-300);
65
+ --bk-color-border-hover: var(--bk-gray-400);
66
+ --bk-color-border-focus: var(--bk-indigo-600);
67
+ --bk-color-accent: var(--bk-indigo-600);
68
+ --bk-color-accent-hover: var(--bk-indigo-700);
69
+ --bk-color-danger: var(--bk-red-500);
70
+ --bk-color-danger-text: var(--bk-red-600);
71
+ --bk-shadow-popover: 0 8px 24px #0000001f;
72
+ }
73
+
74
+ .bk-input {
75
+ box-sizing: border-box;
76
+ width: 100%;
77
+ padding: var(--bk-space-2) var(--bk-space-3);
78
+ font-size: var(--bk-font-size-md);
79
+ color: var(--bk-color-text);
80
+ background-color: var(--bk-color-surface-muted);
81
+ border: 1px solid var(--bk-color-border);
82
+ border-radius: var(--bk-radius-md);
83
+ transition: border-color var(--bk-duration-fast) ease,
84
+ box-shadow var(--bk-duration-fast) ease;
85
+ outline: none;
86
+ font-family: inherit;
87
+ line-height: 1.4;
88
+ display: block;
89
+ }
90
+
91
+ .bk-input::placeholder {
92
+ color: var(--bk-color-text-muted);
93
+ }
94
+
95
+ .bk-input:hover {
96
+ border-color: var(--bk-color-border-hover);
97
+ }
98
+
99
+ .bk-input:focus-visible {
100
+ border-color: var(--bk-color-border-focus);
101
+ box-shadow: 0 0 0 3px
102
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
103
+ }
104
+
105
+ .bk-input[aria-invalid="true"] {
106
+ border-color: var(--bk-color-danger);
107
+ }
108
+
109
+ .bk-input[aria-invalid="true"]:focus-visible {
110
+ border-color: var(--bk-color-danger);
111
+ box-shadow: 0 0 0 3px
112
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
113
+ }
114
+
115
+ .bk-input:disabled {
116
+ background-color: var(--bk-color-surface);
117
+ color: var(--bk-color-text-muted);
118
+ cursor: not-allowed;
119
+ opacity: .6;
120
+ }
121
+
122
+ .bk-input[data-size="sm"] {
123
+ padding: var(--bk-space-1) var(--bk-space-2);
124
+ font-size: var(--bk-font-size-sm);
125
+ }
126
+
127
+ .bk-input[data-size="lg"] {
128
+ padding: var(--bk-space-3) var(--bk-space-4);
129
+ font-size: var(--bk-font-size-lg);
130
+ }
131
+
132
+ .bk-textarea {
133
+ box-sizing: border-box;
134
+ width: 100%;
135
+ padding: var(--bk-space-2) var(--bk-space-3);
136
+ font-size: var(--bk-font-size-md);
137
+ color: var(--bk-color-text);
138
+ background-color: var(--bk-color-surface-muted);
139
+ border: 1px solid var(--bk-color-border);
140
+ border-radius: var(--bk-radius-md);
141
+ resize: vertical;
142
+ field-sizing: content;
143
+ min-height: calc(var(--bk-space-8) + var(--bk-space-2));
144
+ scrollbar-width: thin;
145
+ scrollbar-color: var(--bk-color-border) transparent;
146
+ max-height: 16rem;
147
+ transition: border-color var(--bk-duration-fast) ease,
148
+ box-shadow var(--bk-duration-fast) ease;
149
+ outline: none;
150
+ font-family: inherit;
151
+ line-height: 1.4;
152
+ display: block;
153
+ }
154
+
155
+ .bk-textarea::placeholder {
156
+ color: var(--bk-color-text-muted);
157
+ }
158
+
159
+ .bk-textarea:hover {
160
+ border-color: var(--bk-color-border-hover);
161
+ }
162
+
163
+ .bk-textarea:focus-visible {
164
+ border-color: var(--bk-color-border-focus);
165
+ box-shadow: 0 0 0 3px
166
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
167
+ }
168
+
169
+ .bk-textarea[aria-invalid="true"] {
170
+ border-color: var(--bk-color-danger);
171
+ }
172
+
173
+ .bk-textarea[aria-invalid="true"]:focus-visible {
174
+ border-color: var(--bk-color-danger);
175
+ box-shadow: 0 0 0 3px
176
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
177
+ }
178
+
179
+ .bk-textarea:disabled {
180
+ background-color: var(--bk-color-surface);
181
+ color: var(--bk-color-text-muted);
182
+ cursor: not-allowed;
183
+ opacity: .6;
184
+ resize: none;
185
+ }
186
+
187
+ .bk-textarea[data-size="sm"] {
188
+ padding: var(--bk-space-1) var(--bk-space-2);
189
+ font-size: var(--bk-font-size-sm);
190
+ }
191
+
192
+ .bk-textarea[data-size="lg"] {
193
+ padding: var(--bk-space-3) var(--bk-space-4);
194
+ font-size: var(--bk-font-size-lg);
195
+ }
196
+
197
+ .bk-password {
198
+ display: block;
199
+ position: relative;
200
+ }
201
+
202
+ .bk-password .bk-input {
203
+ padding-right: var(--bk-space-8);
204
+ }
205
+
206
+ .bk-password-toggle {
207
+ top: 50%;
208
+ right: var(--bk-space-1);
209
+ padding: var(--bk-space-1);
210
+ color: var(--bk-color-text-muted);
211
+ border-radius: var(--bk-radius-sm);
212
+ cursor: pointer;
213
+ transition: color var(--bk-duration-fast) ease,
214
+ box-shadow var(--bk-duration-fast) ease;
215
+ background: none;
216
+ border: none;
217
+ justify-content: center;
218
+ align-items: center;
219
+ display: inline-flex;
220
+ position: absolute;
221
+ transform: translateY(-50%);
222
+ }
223
+
224
+ .bk-password-toggle:hover {
225
+ color: var(--bk-color-text);
226
+ }
227
+
228
+ .bk-password-toggle:focus-visible {
229
+ color: var(--bk-color-text);
230
+ box-shadow: 0 0 0 3px
231
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
232
+ outline: none;
233
+ }
234
+
235
+ .bk-password-toggle:disabled {
236
+ opacity: .6;
237
+ cursor: not-allowed;
238
+ }
239
+
240
+ .bk-password[data-size="sm"] .bk-input {
241
+ padding-block: var(--bk-space-1);
242
+ padding-left: var(--bk-space-2);
243
+ font-size: var(--bk-font-size-sm);
244
+ }
245
+
246
+ .bk-password[data-size="lg"] .bk-input {
247
+ padding-block: var(--bk-space-3);
248
+ padding-left: var(--bk-space-4);
249
+ font-size: var(--bk-font-size-lg);
250
+ }
251
+
252
+ .bk-select-trigger {
253
+ align-items: center;
254
+ gap: var(--bk-space-2);
255
+ box-sizing: border-box;
256
+ width: 100%;
257
+ padding: var(--bk-space-2) var(--bk-space-3);
258
+ font-size: var(--bk-font-size-md);
259
+ text-align: left;
260
+ color: var(--bk-color-text);
261
+ background-color: var(--bk-color-surface-muted);
262
+ border: 1px solid var(--bk-color-border);
263
+ border-radius: var(--bk-radius-md);
264
+ cursor: pointer;
265
+ transition: border-color var(--bk-duration-fast) ease,
266
+ box-shadow var(--bk-duration-fast) ease;
267
+ outline: none;
268
+ font-family: inherit;
269
+ line-height: 1.4;
270
+ display: inline-flex;
271
+ }
272
+
273
+ .bk-select-trigger:hover {
274
+ border-color: var(--bk-color-border-hover);
275
+ }
276
+
277
+ .bk-select-trigger:focus-visible, .bk-select-trigger[aria-expanded="true"] {
278
+ border-color: var(--bk-color-border-focus);
279
+ box-shadow: 0 0 0 3px
280
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
281
+ }
282
+
283
+ .bk-select-trigger[aria-invalid="true"] {
284
+ border-color: var(--bk-color-danger);
285
+ }
286
+
287
+ .bk-select-trigger[aria-invalid="true"]:focus-visible, .bk-select-trigger[aria-invalid="true"][aria-expanded="true"] {
288
+ border-color: var(--bk-color-danger);
289
+ box-shadow: 0 0 0 3px
290
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
291
+ }
292
+
293
+ .bk-select-trigger[aria-disabled="true"], .bk-select-trigger:disabled {
294
+ background-color: var(--bk-color-surface);
295
+ color: var(--bk-color-text-muted);
296
+ cursor: not-allowed;
297
+ opacity: .6;
298
+ box-shadow: none;
299
+ }
300
+
301
+ .bk-select-arrow {
302
+ color: var(--bk-color-text-muted);
303
+ transition: transform var(--bk-duration-fast) ease;
304
+ flex-shrink: 0;
305
+ }
306
+
307
+ .bk-select-trigger[aria-expanded="true"] .bk-select-arrow {
308
+ transform: rotate(180deg);
309
+ }
310
+
311
+ .bk-select-value {
312
+ text-overflow: ellipsis;
313
+ white-space: nowrap;
314
+ flex: 1;
315
+ min-width: 0;
316
+ overflow: hidden;
317
+ }
318
+
319
+ .bk-select-value[data-placeholder] {
320
+ color: var(--bk-color-text-muted);
321
+ }
322
+
323
+ .bk-select-root {
324
+ width: 100%;
325
+ position: relative;
326
+ }
327
+
328
+ .bk-select-hidden-input {
329
+ z-index: -1;
330
+ opacity: 0;
331
+ pointer-events: none;
332
+ position: absolute;
333
+ inset: 0;
334
+ }
335
+
336
+ .bk-select-root:has(.bk-select-clear) .bk-select-value {
337
+ margin-right: calc(14px + var(--bk-space-2));
338
+ }
339
+
340
+ .bk-select-clear {
341
+ top: 50%;
342
+ right: calc(var(--bk-space-3) + 16px + var(--bk-space-1));
343
+ box-sizing: border-box;
344
+ padding: var(--bk-space-1);
345
+ color: var(--bk-color-text-muted);
346
+ border-radius: var(--bk-radius-sm);
347
+ cursor: pointer;
348
+ transition: color var(--bk-duration-fast) ease,
349
+ background-color var(--bk-duration-fast) ease,
350
+ box-shadow var(--bk-duration-fast) ease;
351
+ background: none;
352
+ border: none;
353
+ outline: none;
354
+ justify-content: center;
355
+ align-items: center;
356
+ display: inline-flex;
357
+ position: absolute;
358
+ translate: 0 -50%;
359
+ }
360
+
361
+ .bk-select-clear:hover {
362
+ color: var(--bk-color-text);
363
+ background-color: var(--bk-color-surface-hover);
364
+ }
365
+
366
+ .bk-select-clear:focus-visible {
367
+ box-shadow: 0 0 0 3px
368
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
369
+ }
370
+
371
+ .bk-select-content {
372
+ z-index: 50;
373
+ box-sizing: border-box;
374
+ scrollbar-width: thin;
375
+ scrollbar-color: var(--bk-color-border) transparent;
376
+ max-height: 16rem;
377
+ padding: var(--bk-space-1);
378
+ background-color: var(--bk-color-surface-raised);
379
+ border: 1px solid var(--bk-color-border);
380
+ border-radius: var(--bk-radius-md);
381
+ box-shadow: var(--bk-shadow-popover);
382
+ overflow: hidden auto;
383
+ }
384
+
385
+ .bk-select-item {
386
+ justify-content: space-between;
387
+ align-items: center;
388
+ gap: var(--bk-space-2);
389
+ padding: var(--bk-space-2) var(--bk-space-3);
390
+ font-size: var(--bk-font-size-md);
391
+ color: var(--bk-color-text);
392
+ border-radius: var(--bk-radius-sm);
393
+ cursor: pointer;
394
+ user-select: none;
395
+ display: flex;
396
+ }
397
+
398
+ .bk-select-item:hover, .bk-select-item[data-active] {
399
+ background-color: var(--bk-color-surface-hover);
400
+ }
401
+
402
+ .bk-select-check {
403
+ opacity: 0;
404
+ color: var(--bk-color-accent);
405
+ flex-shrink: 0;
406
+ }
407
+
408
+ .bk-select-item[aria-selected="true"] .bk-select-check {
409
+ opacity: 1;
410
+ }
411
+
412
+ .bk-select-root[data-size="sm"] .bk-select-trigger {
413
+ padding: var(--bk-space-1) var(--bk-space-2);
414
+ font-size: var(--bk-font-size-sm);
415
+ }
416
+
417
+ .bk-select-root[data-size="lg"] .bk-select-trigger {
418
+ padding: var(--bk-space-3) var(--bk-space-4);
419
+ font-size: var(--bk-font-size-lg);
420
+ }
421
+
422
+ .bk-select-content[data-size="sm"] .bk-select-item {
423
+ padding: var(--bk-space-1) var(--bk-space-2);
424
+ font-size: var(--bk-font-size-sm);
425
+ }
426
+
427
+ .bk-select-content[data-size="lg"] .bk-select-item {
428
+ padding: var(--bk-space-3) var(--bk-space-4);
429
+ font-size: var(--bk-font-size-lg);
430
+ }
431
+
432
+ .bk-combobox-group {
433
+ width: 100%;
434
+ display: inline-flex;
435
+ position: relative;
436
+ }
437
+
438
+ .bk-combobox-input {
439
+ box-sizing: border-box;
440
+ width: 100%;
441
+ padding: var(--bk-space-2) var(--bk-space-3);
442
+ padding-right: calc(var(--bk-space-3) * 2 + 16px);
443
+ font-size: var(--bk-font-size-md);
444
+ color: var(--bk-color-text);
445
+ background-color: var(--bk-color-surface-muted);
446
+ border: 1px solid var(--bk-color-border);
447
+ border-radius: var(--bk-radius-md);
448
+ transition: border-color var(--bk-duration-fast) ease,
449
+ box-shadow var(--bk-duration-fast) ease;
450
+ outline: none;
451
+ font-family: inherit;
452
+ line-height: 1.4;
453
+ display: block;
454
+ }
455
+
456
+ .bk-combobox-input::placeholder {
457
+ color: var(--bk-color-text-muted);
458
+ }
459
+
460
+ .bk-combobox-input:hover {
461
+ border-color: var(--bk-color-border-hover);
462
+ }
463
+
464
+ .bk-combobox-input:focus-visible, .bk-combobox-input[aria-expanded="true"] {
465
+ border-color: var(--bk-color-border-focus);
466
+ box-shadow: 0 0 0 3px
467
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
468
+ }
469
+
470
+ .bk-combobox-input[aria-invalid="true"] {
471
+ border-color: var(--bk-color-danger);
472
+ }
473
+
474
+ .bk-combobox-input[aria-invalid="true"]:focus-visible, .bk-combobox-input[aria-invalid="true"][aria-expanded="true"] {
475
+ border-color: var(--bk-color-danger);
476
+ box-shadow: 0 0 0 3px
477
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
478
+ }
479
+
480
+ .bk-combobox-input:disabled {
481
+ background-color: var(--bk-color-surface);
482
+ color: var(--bk-color-text-muted);
483
+ cursor: not-allowed;
484
+ opacity: .6;
485
+ box-shadow: none;
486
+ }
487
+
488
+ .bk-combobox-arrow {
489
+ top: 50%;
490
+ right: var(--bk-space-3);
491
+ pointer-events: none;
492
+ color: var(--bk-color-text-muted);
493
+ transition: transform var(--bk-duration-fast) ease;
494
+ position: absolute;
495
+ translate: 0 -50%;
496
+ }
497
+
498
+ .bk-combobox-input[aria-expanded="true"] + .bk-combobox-arrow {
499
+ transform: rotate(180deg);
500
+ }
501
+
502
+ .bk-combobox-input:disabled + .bk-combobox-arrow {
503
+ opacity: .6;
504
+ }
505
+
506
+ .bk-combobox-root {
507
+ width: 100%;
508
+ position: relative;
509
+ }
510
+
511
+ .bk-combobox-hidden-input {
512
+ z-index: -1;
513
+ opacity: 0;
514
+ pointer-events: none;
515
+ position: absolute;
516
+ inset: 0;
517
+ }
518
+
519
+ .bk-combobox-root:has(.bk-combobox-clear) .bk-combobox-input {
520
+ padding-right: calc(var(--bk-space-3) * 2 + 16px + 14px + var(--bk-space-2));
521
+ }
522
+
523
+ .bk-combobox-clear {
524
+ top: 50%;
525
+ right: calc(var(--bk-space-3) + 16px + var(--bk-space-1));
526
+ box-sizing: border-box;
527
+ padding: var(--bk-space-1);
528
+ color: var(--bk-color-text-muted);
529
+ border-radius: var(--bk-radius-sm);
530
+ cursor: pointer;
531
+ transition: color var(--bk-duration-fast) ease,
532
+ background-color var(--bk-duration-fast) ease,
533
+ box-shadow var(--bk-duration-fast) ease;
534
+ background: none;
535
+ border: none;
536
+ outline: none;
537
+ justify-content: center;
538
+ align-items: center;
539
+ display: inline-flex;
540
+ position: absolute;
541
+ translate: 0 -50%;
542
+ }
543
+
544
+ .bk-combobox-clear:hover {
545
+ color: var(--bk-color-text);
546
+ background-color: var(--bk-color-surface-hover);
547
+ }
548
+
549
+ .bk-combobox-clear:focus-visible {
550
+ box-shadow: 0 0 0 3px
551
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
552
+ }
553
+
554
+ .bk-combobox-content {
555
+ z-index: 50;
556
+ box-sizing: border-box;
557
+ scrollbar-width: thin;
558
+ scrollbar-color: var(--bk-color-border) transparent;
559
+ max-height: 16rem;
560
+ padding: var(--bk-space-1);
561
+ background-color: var(--bk-color-surface-raised);
562
+ border: 1px solid var(--bk-color-border);
563
+ border-radius: var(--bk-radius-md);
564
+ box-shadow: var(--bk-shadow-popover);
565
+ overflow: hidden auto;
566
+ }
567
+
568
+ .bk-combobox-content[data-empty] {
569
+ display: none;
570
+ }
571
+
572
+ .bk-combobox-item {
573
+ justify-content: space-between;
574
+ align-items: center;
575
+ gap: var(--bk-space-2);
576
+ padding: var(--bk-space-2) var(--bk-space-3);
577
+ font-size: var(--bk-font-size-md);
578
+ color: var(--bk-color-text);
579
+ border-radius: var(--bk-radius-sm);
580
+ cursor: pointer;
581
+ user-select: none;
582
+ display: flex;
583
+ }
584
+
585
+ .bk-combobox-item:hover, .bk-combobox-item[data-active] {
586
+ background-color: var(--bk-color-surface-hover);
587
+ }
588
+
589
+ .bk-combobox-check {
590
+ opacity: 0;
591
+ color: var(--bk-color-accent);
592
+ flex-shrink: 0;
593
+ }
594
+
595
+ .bk-combobox-item[aria-selected="true"] .bk-combobox-check {
596
+ opacity: 1;
597
+ }
598
+
599
+ .bk-combobox-root[data-size="sm"] .bk-combobox-input {
600
+ padding-block: var(--bk-space-1);
601
+ padding-left: var(--bk-space-2);
602
+ font-size: var(--bk-font-size-sm);
603
+ }
604
+
605
+ .bk-combobox-root[data-size="lg"] .bk-combobox-input {
606
+ padding-block: var(--bk-space-3);
607
+ padding-left: var(--bk-space-4);
608
+ font-size: var(--bk-font-size-lg);
609
+ }
610
+
611
+ .bk-combobox-content[data-size="sm"] .bk-combobox-item {
612
+ padding: var(--bk-space-1) var(--bk-space-2);
613
+ font-size: var(--bk-font-size-sm);
614
+ }
615
+
616
+ .bk-combobox-content[data-size="lg"] .bk-combobox-item {
617
+ padding: var(--bk-space-3) var(--bk-space-4);
618
+ font-size: var(--bk-font-size-lg);
619
+ }
620
+
621
+ .bk-button {
622
+ justify-content: center;
623
+ align-items: center;
624
+ gap: var(--bk-space-2);
625
+ border-radius: var(--bk-radius-md);
626
+ cursor: pointer;
627
+ user-select: none;
628
+ transition: background-color var(--bk-duration-base) ease,
629
+ border-color var(--bk-duration-base) ease,
630
+ box-shadow var(--bk-duration-base) ease;
631
+ border: 1px solid #0000;
632
+ outline: none;
633
+ font-family: inherit;
634
+ font-weight: 500;
635
+ line-height: 1.4;
636
+ display: inline-flex;
637
+ }
638
+
639
+ .bk-button[data-size="sm"] {
640
+ padding: var(--bk-space-1) var(--bk-space-2);
641
+ font-size: var(--bk-font-size-sm);
642
+ }
643
+
644
+ .bk-button[data-size="md"] {
645
+ padding: var(--bk-space-2) var(--bk-space-3);
646
+ font-size: var(--bk-font-size-md);
647
+ }
648
+
649
+ .bk-button[data-size="lg"] {
650
+ padding: var(--bk-space-3) var(--bk-space-4);
651
+ font-size: var(--bk-font-size-lg);
652
+ }
653
+
654
+ .bk-button[data-variant="solid"] {
655
+ background-color: var(--bk-color-accent);
656
+ color: var(--bk-color-text-on-accent);
657
+ }
658
+
659
+ .bk-button[data-variant="solid"]:hover {
660
+ background-color: var(--bk-color-accent-hover);
661
+ }
662
+
663
+ .bk-button[data-variant="outline"] {
664
+ border-color: var(--bk-color-border);
665
+ color: var(--bk-color-text);
666
+ background-color: #0000;
667
+ }
668
+
669
+ .bk-button[data-variant="outline"]:hover {
670
+ background-color: color-mix(in oklch,
671
+ var(--bk-color-accent) 12%,
672
+ transparent);
673
+ }
674
+
675
+ .bk-button[data-variant="ghost"] {
676
+ color: var(--bk-color-text);
677
+ background-color: #0000;
678
+ }
679
+
680
+ .bk-button[data-variant="ghost"]:hover {
681
+ background-color: var(--bk-color-surface-hover);
682
+ }
683
+
684
+ .bk-button:focus-visible {
685
+ box-shadow: 0 0 0 3px
686
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
687
+ }
688
+
689
+ .bk-button:disabled, .bk-button[aria-disabled="true"] {
690
+ cursor: not-allowed;
691
+ opacity: .6;
692
+ box-shadow: none;
693
+ }
694
+
695
+ .bk-checkbox {
696
+ appearance: none;
697
+ box-sizing: border-box;
698
+ cursor: pointer;
699
+ background-color: var(--bk-color-surface-muted);
700
+ border: 1px solid var(--bk-color-border);
701
+ border-radius: var(--bk-radius-sm);
702
+ width: 18px;
703
+ height: 18px;
704
+ transition: background-color var(--bk-duration-fast) ease,
705
+ border-color var(--bk-duration-fast) ease,
706
+ box-shadow var(--bk-duration-fast) ease;
707
+ background-position: center;
708
+ background-repeat: no-repeat;
709
+ background-size: 12px;
710
+ outline: none;
711
+ flex-shrink: 0;
712
+ margin: 0;
713
+ }
714
+
715
+ .bk-checkbox:hover {
716
+ border-color: var(--bk-color-border-hover);
717
+ }
718
+
719
+ .bk-checkbox:focus-visible {
720
+ border-color: var(--bk-color-border-focus);
721
+ box-shadow: 0 0 0 3px
722
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
723
+ }
724
+
725
+ .bk-checkbox:checked, .bk-checkbox:indeterminate {
726
+ background-color: var(--bk-color-accent);
727
+ border-color: var(--bk-color-accent);
728
+ }
729
+
730
+ .bk-checkbox:checked:hover, .bk-checkbox:indeterminate:hover {
731
+ background-color: var(--bk-color-accent-hover);
732
+ border-color: var(--bk-color-accent-hover);
733
+ }
734
+
735
+ .bk-checkbox:checked {
736
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3e%3cpath d='M2.5 6.5 5 9l4.5-5.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
737
+ }
738
+
739
+ .bk-checkbox:indeterminate {
740
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3e%3cpath d='M2.5 6h7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'/%3e%3c/svg%3e");
741
+ }
742
+
743
+ .bk-checkbox[aria-invalid="true"] {
744
+ border-color: var(--bk-color-danger);
745
+ }
746
+
747
+ .bk-checkbox[aria-invalid="true"]:checked, .bk-checkbox[aria-invalid="true"]:indeterminate {
748
+ background-color: var(--bk-color-danger);
749
+ border-color: var(--bk-color-danger);
750
+ }
751
+
752
+ .bk-checkbox[aria-invalid="true"]:focus-visible {
753
+ box-shadow: 0 0 0 3px
754
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
755
+ }
756
+
757
+ .bk-checkbox:disabled {
758
+ cursor: not-allowed;
759
+ opacity: .6;
760
+ }
761
+
762
+ .bk-checkbox[data-size="sm"] {
763
+ background-size: 10px;
764
+ width: 16px;
765
+ height: 16px;
766
+ }
767
+
768
+ .bk-checkbox[data-size="lg"] {
769
+ background-size: 14px;
770
+ width: 22px;
771
+ height: 22px;
772
+ }
773
+
774
+ .bk-switch {
775
+ flex-shrink: 0;
776
+ width: 36px;
777
+ height: 20px;
778
+ display: inline-flex;
779
+ position: relative;
780
+ }
781
+
782
+ .bk-switch-input {
783
+ appearance: none;
784
+ box-sizing: border-box;
785
+ cursor: pointer;
786
+ background-color: var(--bk-color-border);
787
+ width: 100%;
788
+ height: 100%;
789
+ transition: background-color var(--bk-duration-fast) ease,
790
+ box-shadow var(--bk-duration-fast) ease;
791
+ border: none;
792
+ border-radius: 999px;
793
+ outline: none;
794
+ margin: 0;
795
+ position: absolute;
796
+ inset: 0;
797
+ }
798
+
799
+ .bk-switch-input:hover {
800
+ background-color: var(--bk-color-border-hover);
801
+ }
802
+
803
+ .bk-switch-input:focus-visible {
804
+ box-shadow: 0 0 0 3px
805
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
806
+ }
807
+
808
+ .bk-switch-input:checked {
809
+ background-color: var(--bk-color-accent);
810
+ }
811
+
812
+ .bk-switch-input:checked:hover {
813
+ background-color: var(--bk-color-accent-hover);
814
+ }
815
+
816
+ .bk-switch-thumb {
817
+ pointer-events: none;
818
+ width: 16px;
819
+ height: 16px;
820
+ transition: translate var(--bk-duration-base) ease;
821
+ background-color: #fff;
822
+ border-radius: 50%;
823
+ position: absolute;
824
+ top: 2px;
825
+ left: 2px;
826
+ }
827
+
828
+ .bk-switch-input:checked + .bk-switch-thumb {
829
+ translate: 16px;
830
+ }
831
+
832
+ .bk-switch-input[aria-invalid="true"] {
833
+ box-shadow: 0 0 0 1px var(--bk-color-danger);
834
+ }
835
+
836
+ .bk-switch-input[aria-invalid="true"]:checked {
837
+ background-color: var(--bk-color-danger);
838
+ box-shadow: none;
839
+ }
840
+
841
+ .bk-switch-input[aria-invalid="true"]:focus-visible {
842
+ box-shadow: 0 0 0 3px
843
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
844
+ }
845
+
846
+ .bk-switch-input:disabled {
847
+ cursor: not-allowed;
848
+ opacity: .6;
849
+ }
850
+
851
+ .bk-switch-input:disabled + .bk-switch-thumb {
852
+ opacity: .6;
853
+ }
854
+
855
+ .bk-switch[data-size="sm"] {
856
+ width: 30px;
857
+ height: 16px;
858
+ }
859
+
860
+ .bk-switch[data-size="sm"] .bk-switch-thumb {
861
+ width: 12px;
862
+ height: 12px;
863
+ }
864
+
865
+ .bk-switch[data-size="sm"] .bk-switch-input:checked + .bk-switch-thumb {
866
+ translate: 14px;
867
+ }
868
+
869
+ .bk-switch[data-size="lg"] {
870
+ width: 44px;
871
+ height: 24px;
872
+ }
873
+
874
+ .bk-switch[data-size="lg"] .bk-switch-thumb {
875
+ width: 20px;
876
+ height: 20px;
877
+ }
878
+
879
+ .bk-switch[data-size="lg"] .bk-switch-input:checked + .bk-switch-thumb {
880
+ translate: 20px;
881
+ }
882
+
883
+ .bk-radio-group {
884
+ gap: var(--bk-space-2);
885
+ flex-direction: column;
886
+ display: flex;
887
+ }
888
+
889
+ .bk-radio-label {
890
+ align-items: center;
891
+ gap: var(--bk-space-2);
892
+ cursor: pointer;
893
+ font-size: var(--bk-font-size-md);
894
+ color: var(--bk-color-text);
895
+ display: inline-flex;
896
+ }
897
+
898
+ .bk-radio-label:has(.bk-radio-item:disabled) {
899
+ cursor: not-allowed;
900
+ color: var(--bk-color-text-muted);
901
+ }
902
+
903
+ .bk-radio-item {
904
+ appearance: none;
905
+ box-sizing: border-box;
906
+ cursor: pointer;
907
+ background-color: var(--bk-color-surface-muted);
908
+ border: 1px solid var(--bk-color-border);
909
+ width: 18px;
910
+ height: 18px;
911
+ transition: background-color var(--bk-duration-fast) ease,
912
+ border-color var(--bk-duration-fast) ease,
913
+ box-shadow var(--bk-duration-fast) ease;
914
+ background-position: center;
915
+ background-repeat: no-repeat;
916
+ background-size: 8px;
917
+ border-radius: 50%;
918
+ outline: none;
919
+ flex-shrink: 0;
920
+ margin: 0;
921
+ }
922
+
923
+ .bk-radio-item:hover {
924
+ border-color: var(--bk-color-border-hover);
925
+ }
926
+
927
+ .bk-radio-item:focus-visible {
928
+ border-color: var(--bk-color-border-focus);
929
+ box-shadow: 0 0 0 3px
930
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
931
+ }
932
+
933
+ .bk-radio-item:checked {
934
+ background-color: var(--bk-color-accent);
935
+ border-color: var(--bk-color-accent);
936
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3ccircle cx='4' cy='4' r='3' fill='white'/%3e%3c/svg%3e");
937
+ }
938
+
939
+ .bk-radio-item:checked:hover {
940
+ background-color: var(--bk-color-accent-hover);
941
+ border-color: var(--bk-color-accent-hover);
942
+ }
943
+
944
+ [aria-invalid="true"].bk-radio-group .bk-radio-item {
945
+ border-color: var(--bk-color-danger);
946
+ }
947
+
948
+ [aria-invalid="true"].bk-radio-group .bk-radio-item:checked {
949
+ background-color: var(--bk-color-danger);
950
+ border-color: var(--bk-color-danger);
951
+ }
952
+
953
+ [aria-invalid="true"].bk-radio-group .bk-radio-item:focus-visible {
954
+ box-shadow: 0 0 0 3px
955
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
956
+ }
957
+
958
+ .bk-radio-item:disabled {
959
+ cursor: not-allowed;
960
+ opacity: .6;
961
+ }
962
+
963
+ .bk-radio-group[data-size="sm"] .bk-radio-item {
964
+ background-size: 7px;
965
+ width: 16px;
966
+ height: 16px;
967
+ }
968
+
969
+ .bk-radio-group[data-size="sm"] .bk-radio-label {
970
+ font-size: var(--bk-font-size-sm);
971
+ }
972
+
973
+ .bk-radio-group[data-size="lg"] .bk-radio-item {
974
+ background-size: 9px;
975
+ width: 20px;
976
+ height: 20px;
977
+ }
978
+
979
+ .bk-radio-group[data-size="lg"] .bk-radio-label {
980
+ font-size: var(--bk-font-size-lg);
981
+ }
982
+
983
+ .bk-multi-select-trigger {
984
+ align-items: center;
985
+ gap: var(--bk-space-2);
986
+ box-sizing: border-box;
987
+ width: 100%;
988
+ padding: var(--bk-space-2) var(--bk-space-3);
989
+ font-size: var(--bk-font-size-md);
990
+ text-align: left;
991
+ color: var(--bk-color-text);
992
+ background-color: var(--bk-color-surface-muted);
993
+ border: 1px solid var(--bk-color-border);
994
+ border-radius: var(--bk-radius-md);
995
+ cursor: pointer;
996
+ transition: border-color var(--bk-duration-fast) ease,
997
+ box-shadow var(--bk-duration-fast) ease;
998
+ outline: none;
999
+ font-family: inherit;
1000
+ line-height: 1.4;
1001
+ display: inline-flex;
1002
+ }
1003
+
1004
+ .bk-multi-select-trigger:hover {
1005
+ border-color: var(--bk-color-border-hover);
1006
+ }
1007
+
1008
+ .bk-multi-select-trigger:focus-visible, .bk-multi-select-trigger[aria-expanded="true"] {
1009
+ border-color: var(--bk-color-border-focus);
1010
+ box-shadow: 0 0 0 3px
1011
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
1012
+ }
1013
+
1014
+ .bk-multi-select-trigger[aria-invalid="true"] {
1015
+ border-color: var(--bk-color-danger);
1016
+ }
1017
+
1018
+ .bk-multi-select-trigger[aria-invalid="true"]:focus-visible, .bk-multi-select-trigger[aria-invalid="true"][aria-expanded="true"] {
1019
+ border-color: var(--bk-color-danger);
1020
+ box-shadow: 0 0 0 3px
1021
+ color-mix(in oklch, var(--bk-color-danger) 30%, transparent);
1022
+ }
1023
+
1024
+ .bk-multi-select-trigger[aria-disabled="true"], .bk-multi-select-trigger:disabled {
1025
+ background-color: var(--bk-color-surface);
1026
+ color: var(--bk-color-text-muted);
1027
+ cursor: not-allowed;
1028
+ opacity: .6;
1029
+ box-shadow: none;
1030
+ }
1031
+
1032
+ .bk-multi-select-arrow {
1033
+ color: var(--bk-color-text-muted);
1034
+ transition: transform var(--bk-duration-fast) ease;
1035
+ flex-shrink: 0;
1036
+ }
1037
+
1038
+ .bk-multi-select-trigger[aria-expanded="true"] .bk-multi-select-arrow {
1039
+ transform: rotate(180deg);
1040
+ }
1041
+
1042
+ .bk-multi-select-value {
1043
+ text-overflow: ellipsis;
1044
+ white-space: nowrap;
1045
+ flex: 1;
1046
+ min-width: 0;
1047
+ overflow: hidden;
1048
+ }
1049
+
1050
+ .bk-multi-select-value[data-placeholder] {
1051
+ color: var(--bk-color-text-muted);
1052
+ }
1053
+
1054
+ .bk-multi-select-root {
1055
+ width: 100%;
1056
+ position: relative;
1057
+ }
1058
+
1059
+ .bk-multi-select-hidden-input {
1060
+ z-index: -1;
1061
+ opacity: 0;
1062
+ pointer-events: none;
1063
+ position: absolute;
1064
+ inset: 0;
1065
+ }
1066
+
1067
+ .bk-multi-select-root:has(.bk-multi-select-clear) .bk-multi-select-value {
1068
+ margin-right: calc(14px + var(--bk-space-2));
1069
+ }
1070
+
1071
+ .bk-multi-select-clear {
1072
+ top: 50%;
1073
+ right: calc(var(--bk-space-3) + 16px + var(--bk-space-1));
1074
+ box-sizing: border-box;
1075
+ padding: var(--bk-space-1);
1076
+ color: var(--bk-color-text-muted);
1077
+ border-radius: var(--bk-radius-sm);
1078
+ cursor: pointer;
1079
+ transition: color var(--bk-duration-fast) ease,
1080
+ background-color var(--bk-duration-fast) ease,
1081
+ box-shadow var(--bk-duration-fast) ease;
1082
+ background: none;
1083
+ border: none;
1084
+ outline: none;
1085
+ justify-content: center;
1086
+ align-items: center;
1087
+ display: inline-flex;
1088
+ position: absolute;
1089
+ translate: 0 -50%;
1090
+ }
1091
+
1092
+ .bk-multi-select-clear:hover {
1093
+ color: var(--bk-color-text);
1094
+ background-color: var(--bk-color-surface-hover);
1095
+ }
1096
+
1097
+ .bk-multi-select-clear:focus-visible {
1098
+ box-shadow: 0 0 0 3px
1099
+ color-mix(in oklch, var(--bk-color-accent) 30%, transparent);
1100
+ }
1101
+
1102
+ .bk-multi-select-content {
1103
+ z-index: 50;
1104
+ box-sizing: border-box;
1105
+ scrollbar-width: thin;
1106
+ scrollbar-color: var(--bk-color-border) transparent;
1107
+ max-height: 16rem;
1108
+ padding: var(--bk-space-1);
1109
+ background-color: var(--bk-color-surface-raised);
1110
+ border: 1px solid var(--bk-color-border);
1111
+ border-radius: var(--bk-radius-md);
1112
+ box-shadow: var(--bk-shadow-popover);
1113
+ overflow: hidden auto;
1114
+ }
1115
+
1116
+ .bk-multi-select-item {
1117
+ justify-content: space-between;
1118
+ align-items: center;
1119
+ gap: var(--bk-space-2);
1120
+ padding: var(--bk-space-2) var(--bk-space-3);
1121
+ font-size: var(--bk-font-size-md);
1122
+ color: var(--bk-color-text);
1123
+ border-radius: var(--bk-radius-sm);
1124
+ cursor: pointer;
1125
+ user-select: none;
1126
+ display: flex;
1127
+ }
1128
+
1129
+ .bk-multi-select-item:hover, .bk-multi-select-item[data-active] {
1130
+ background-color: var(--bk-color-surface-hover);
1131
+ }
1132
+
1133
+ .bk-multi-select-check {
1134
+ opacity: 0;
1135
+ color: var(--bk-color-accent);
1136
+ flex-shrink: 0;
1137
+ }
1138
+
1139
+ .bk-multi-select-item[aria-selected="true"] .bk-multi-select-check {
1140
+ opacity: 1;
1141
+ }
1142
+
1143
+ .bk-multi-select-root[data-size="sm"] .bk-multi-select-trigger {
1144
+ padding: var(--bk-space-1) var(--bk-space-2);
1145
+ font-size: var(--bk-font-size-sm);
1146
+ }
1147
+
1148
+ .bk-multi-select-root[data-size="lg"] .bk-multi-select-trigger {
1149
+ padding: var(--bk-space-3) var(--bk-space-4);
1150
+ font-size: var(--bk-font-size-lg);
1151
+ }
1152
+
1153
+ .bk-multi-select-content[data-size="sm"] .bk-multi-select-item {
1154
+ padding: var(--bk-space-1) var(--bk-space-2);
1155
+ font-size: var(--bk-font-size-sm);
1156
+ }
1157
+
1158
+ .bk-multi-select-content[data-size="lg"] .bk-multi-select-item {
1159
+ padding: var(--bk-space-3) var(--bk-space-4);
1160
+ font-size: var(--bk-font-size-lg);
1161
+ }