@bioturing/components 0.14.0 → 0.15.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.
Files changed (83) hide show
  1. package/dist/Badge.css +6 -0
  2. package/dist/Breadcrumb.css +83 -0
  3. package/dist/Checkbox.css +13 -0
  4. package/dist/CodeBlock.css +213 -0
  5. package/dist/CodeBlock.js +11 -8
  6. package/dist/Collapse.css +21 -0
  7. package/dist/DSRoot.css +667 -0
  8. package/dist/DSRoot.js +264 -17
  9. package/dist/DropdownMenu.css +95 -0
  10. package/dist/Empty.css +19 -0
  11. package/dist/Field.css +14 -0
  12. package/dist/Form.css +64 -0
  13. package/dist/IconButton.css +52 -0
  14. package/dist/Modal.css +317 -0
  15. package/dist/Modal.js +256 -9
  16. package/dist/PopupPanel.css +156 -102
  17. package/dist/Radio.css +14 -0
  18. package/dist/ScrollArea.css +64 -0
  19. package/dist/ScrollArea.js +4 -4
  20. package/dist/Segmented.css +16 -0
  21. package/dist/Select.css +24 -0
  22. package/dist/Select.js +4 -3
  23. package/dist/Spin.css +36 -0
  24. package/dist/Splitter.css +6 -0
  25. package/dist/Switch.css +7 -0
  26. package/dist/Table.css +116 -0
  27. package/dist/Tag.css +17 -0
  28. package/dist/ThemeProvider.css +39 -0
  29. package/dist/Toast.css +622 -0
  30. package/dist/Toast.js +264 -17
  31. package/dist/Tooltip.css +6 -0
  32. package/dist/Tour.css +73 -0
  33. package/dist/Tour.js +1 -1
  34. package/dist/Truncate.css +31 -0
  35. package/dist/Truncate.js +75 -19
  36. package/dist/Upload.css +144 -0
  37. package/dist/Upload.js +75 -19
  38. package/dist/VerticalCollapsiblePanel.css +193 -0
  39. package/dist/VerticalCollapsiblePanel.js +75 -19
  40. package/dist/components/Badge/component.d.ts +1 -0
  41. package/dist/components/Breadcrumb/component.d.ts +1 -0
  42. package/dist/components/Button/component.d.ts +1 -0
  43. package/dist/components/Checkbox/component.d.ts +1 -0
  44. package/dist/components/CodeBlock/component.d.ts +2 -1
  45. package/dist/components/CodeBlock/types.d.ts +12 -0
  46. package/dist/components/Collapse/component.d.ts +1 -0
  47. package/dist/components/DSRoot/component.d.ts +1 -0
  48. package/dist/components/DropdownMenu/component.d.ts +1 -0
  49. package/dist/components/Empty/component.d.ts +1 -0
  50. package/dist/components/Field/component.d.ts +1 -0
  51. package/dist/components/Form/component.d.ts +1 -0
  52. package/dist/components/IconButton/component.d.ts +1 -0
  53. package/dist/components/Modal/index.d.ts +1 -0
  54. package/dist/components/Radio/component.d.ts +1 -0
  55. package/dist/components/ScrollArea/component.d.ts +26 -4
  56. package/dist/components/Segmented/component.d.ts +1 -0
  57. package/dist/components/Select/component.d.ts +2 -1
  58. package/dist/components/Spin/component.d.ts +1 -0
  59. package/dist/components/Splitter/component.d.ts +1 -0
  60. package/dist/components/Stack/Stack.d.ts +39 -0
  61. package/dist/components/Stack/StackChild.d.ts +30 -0
  62. package/dist/components/Stack/index.d.ts +8 -0
  63. package/dist/components/Switch/component.d.ts +1 -0
  64. package/dist/components/Table/component.d.ts +1 -0
  65. package/dist/components/Tag/component.d.ts +1 -0
  66. package/dist/components/ThemeProvider/component.d.ts +1 -0
  67. package/dist/components/Toast/component.d.ts +1 -0
  68. package/dist/components/Tooltip/component.d.ts +1 -0
  69. package/dist/components/Tour/component.d.ts +1 -0
  70. package/dist/components/Truncate/component.d.ts +3 -0
  71. package/dist/components/Upload/index.d.ts +1 -0
  72. package/dist/components/VerticalCollapsiblePanel/component.d.ts +1 -0
  73. package/dist/components/index.d.ts +1 -0
  74. package/dist/hooks.js +1 -1
  75. package/dist/index.css +1469 -114
  76. package/dist/index.d.ts +1 -0
  77. package/dist/index.js +788 -159
  78. package/dist/metadata.d.ts +363 -0
  79. package/dist/tailwind.css +118 -1
  80. package/package.json +2 -2
  81. package/dist/style.css +0 -1392
  82. package/dist/style.js +0 -0
  83. package/dist/tailwind.js +0 -0
@@ -0,0 +1,667 @@
1
+ :root {
2
+ --ds-modal-padding: 24px;
3
+ --ds-modal-edge-padding: 16px;
4
+ --ds-popup-panel-padding: 16px;
5
+ --ds-scrollbar-width: auto;
6
+ --ds-scrollbar-width-legacy: 15;
7
+ --ds-box-shadow-popover-arrow: 0px 0px 1px 0px var(--ds-color-border-modal), 2px 2px 5px #0000000d;
8
+ --ds-inter: "Inter", Helvetica, Arial, sans-serif;
9
+ --ds-roboto-mono: "Roboto Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
10
+ }
11
+
12
+ @supports (font-variation-settings: normal) {
13
+ :root {
14
+ --ds-inter: "InterVariable", Inter, Helvetica, Arial, sans-serif;
15
+ --ds-roboto-mono: "Roboto Mono Variable", Roboto Mono, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
16
+ font-optical-sizing: auto;
17
+ }
18
+ }
19
+
20
+ @layer components {
21
+ .ds-theme-provider {
22
+ --ds-color-bg-segment-active: #fff;
23
+ --ds-scrollbar-color-thumb: #0003;
24
+ --ds-scrollbar-color-track: #0000;
25
+ --ds-color-base-solid: #000;
26
+ --ds-color-table-fixed-column-shadow: #0000001a;
27
+ --ds-color-border-modal: #0000003d;
28
+ }
29
+
30
+ .ds-theme-provider.dark {
31
+ --ds-color-border-modal: #ffffff8c;
32
+ --ds-color-bg-segment-active: #424248;
33
+ --ds-scrollbar-color-thumb: #fff3;
34
+ --ds-scrollbar-color-track: #0000;
35
+ --ds-color-base-solid: #fff;
36
+ --ds-color-table-fixed-column-shadow: #0003;
37
+ }
38
+ }
39
+
40
+ @layer components {
41
+ .ds-stack {
42
+ display: flex;
43
+ }
44
+
45
+ .ds-stack-hug {
46
+ display: inline-flex;
47
+ }
48
+
49
+ .ds-stack-horizontal {
50
+ flex-direction: row;
51
+ }
52
+
53
+ .ds-stack-vertical {
54
+ flex-direction: column;
55
+ }
56
+
57
+ .ds-stack-fill.ds-stack-vertical {
58
+ height: 100%;
59
+ }
60
+
61
+ .ds-stack-fill.ds-stack-horizontal {
62
+ width: 100%;
63
+ }
64
+
65
+ .ds-stack-wrap {
66
+ flex-wrap: wrap;
67
+ }
68
+
69
+ .ds-stack-gap-0 {
70
+ gap: 0;
71
+ }
72
+
73
+ .ds-stack-gap-1 {
74
+ gap: 1px;
75
+ }
76
+
77
+ .ds-stack-gap-2 {
78
+ gap: 2px;
79
+ }
80
+
81
+ .ds-stack-gap-4 {
82
+ gap: 4px;
83
+ }
84
+
85
+ .ds-stack-gap-8 {
86
+ gap: 8px;
87
+ }
88
+
89
+ .ds-stack-gap-12 {
90
+ gap: 12px;
91
+ }
92
+
93
+ .ds-stack-gap-16 {
94
+ gap: 16px;
95
+ }
96
+
97
+ .ds-stack-gap-24, .ds-stack-gap-32 {
98
+ gap: 24px;
99
+ }
100
+
101
+ .ds-stack-align-flex-start {
102
+ align-items: flex-start;
103
+ }
104
+
105
+ .ds-stack-align-flex-end {
106
+ align-items: flex-end;
107
+ }
108
+
109
+ .ds-stack-align-center {
110
+ align-items: center;
111
+ }
112
+
113
+ .ds-stack-align-stretch {
114
+ align-items: stretch;
115
+ }
116
+
117
+ .ds-stack-align-baseline {
118
+ align-items: baseline;
119
+ }
120
+
121
+ .ds-stack-justify-flex-start {
122
+ justify-content: flex-start;
123
+ }
124
+
125
+ .ds-stack-justify-flex-end {
126
+ justify-content: flex-end;
127
+ }
128
+
129
+ .ds-stack-justify-center {
130
+ justify-content: center;
131
+ }
132
+
133
+ .ds-stack-justify-space-between {
134
+ justify-content: space-between;
135
+ }
136
+
137
+ .ds-stack-justify-space-around {
138
+ justify-content: space-around;
139
+ }
140
+
141
+ .ds-stack-justify-space-evenly {
142
+ justify-content: space-evenly;
143
+ }
144
+
145
+ .ds-stack-child {
146
+ min-width: 0;
147
+ min-height: 0;
148
+ }
149
+
150
+ .ds-stack-child-flex-0 {
151
+ flex: 0;
152
+ }
153
+
154
+ .ds-stack-child-flex-1 {
155
+ flex: 1;
156
+ }
157
+
158
+ .ds-stack-child-grow {
159
+ flex-grow: 1;
160
+ }
161
+
162
+ .ds-stack-child-shrink {
163
+ flex-shrink: 1;
164
+ }
165
+ }
166
+
167
+ @layer components {
168
+ .ds-truncate {
169
+ white-space: nowrap;
170
+ flex-grow: 1;
171
+ width: 100%;
172
+ min-width: 0;
173
+ max-width: 100%;
174
+ display: block;
175
+ overflow: hidden;
176
+ }
177
+
178
+ .ds-truncate-end {
179
+ text-overflow: ellipsis;
180
+ }
181
+
182
+ .ds-truncate-middle {
183
+ text-overflow: clip;
184
+ }
185
+
186
+ .ds-truncate-multiline {
187
+ -webkit-line-clamp: var(--ds-line-clamp, 2);
188
+ line-clamp: var(--ds-line-clamp, 2);
189
+ white-space: normal;
190
+ text-overflow: ellipsis;
191
+ word-break: break-word;
192
+ -webkit-box-orient: vertical;
193
+ display: -webkit-box;
194
+ overflow: hidden;
195
+ }
196
+ }
197
+
198
+ @layer components {
199
+ .ds-icon-button {
200
+ cursor: pointer;
201
+ color: var(--ds-color-icon);
202
+ background-color: #0000;
203
+ border: none;
204
+ border-radius: 999px;
205
+ justify-content: center;
206
+ align-items: center;
207
+ transition: all .2s;
208
+ display: inline-flex;
209
+ }
210
+
211
+ .ds-icon-button:hover {
212
+ background-color: var(--ds-color-fill-secondary);
213
+ color: var(--ds-color-icon-hover);
214
+ }
215
+
216
+ .ds-icon-button:active, .ds-icon-button.ds-popover-open {
217
+ background-color: var(--ds-color-primary-bg);
218
+ color: var(--ds-color-primary);
219
+ }
220
+
221
+ .ds-icon-button:focus {
222
+ outline: none;
223
+ }
224
+
225
+ .ds-icon-button:disabled {
226
+ cursor: not-allowed;
227
+ pointer-events: none;
228
+ color: var(--ds-color-text-disabled);
229
+ }
230
+
231
+ .ds-icon-button.ds-icon-button-medium {
232
+ width: 1.5rem;
233
+ height: 1.5rem;
234
+ padding: .125rem;
235
+ font-size: 1.25rem;
236
+ }
237
+
238
+ .ds-icon-button.ds-icon-button-small {
239
+ width: 1.25rem;
240
+ height: 1.25rem;
241
+ padding: .125rem;
242
+ font-size: 1rem;
243
+ }
244
+
245
+ .ds-icon-button.ds-icon-button-negative-margin {
246
+ margin: -.125rem;
247
+ }
248
+ }
249
+
250
+ @layer components {
251
+ .ds-modal-wrap {
252
+ max-height: 100vh;
253
+ }
254
+
255
+ .ds-modal-wrap .ds-modal-close-x {
256
+ width: 100%;
257
+ display: flex;
258
+ }
259
+
260
+ .ds-modal-wrap .ds-modal {
261
+ max-height: 100vh;
262
+ margin-top: 0;
263
+ margin-bottom: 0;
264
+ padding-bottom: 0;
265
+ top: 0;
266
+ }
267
+
268
+ :is(.ds-modal-wrap .ds-modal) .ds-modal-content {
269
+ box-shadow: var(--ds-box-shadow-secondary);
270
+ background: var(--ds-modal-bg);
271
+ flex-direction: column;
272
+ padding: 0;
273
+ display: flex;
274
+ }
275
+
276
+ :is(.ds-modal-wrap .ds-modal) .ds-modal-body {
277
+ padding: var(--ds-modal-content-padding);
278
+ flex-grow: 1;
279
+ flex-shrink: 1;
280
+ min-height: 0;
281
+ overflow: auto;
282
+ }
283
+
284
+ :is(.ds-modal-wrap .ds-modal) .ds-modal-header {
285
+ padding: calc(var(--ds-modal-padding) * 2 / 3) var(--ds-modal-padding) 0 var(--ds-modal-padding);
286
+ background: none;
287
+ margin-bottom: 0;
288
+ }
289
+
290
+ :is(.ds-modal-wrap .ds-modal) .ds-modal-footer {
291
+ padding: 0 var(--ds-modal-padding) var(--ds-modal-padding) var(--ds-modal-padding);
292
+ background: none;
293
+ margin-top: 0;
294
+ }
295
+
296
+ :is(.ds-modal-wrap .ds-modal) .ds-modal-close {
297
+ top: calc(var(--ds-modal-padding) * 2 / 3 - 4px);
298
+ }
299
+
300
+ .ds-modal-wrap:not(.ds-modal-centered) .ds-modal-inner {
301
+ margin-top: 4rem;
302
+ }
303
+
304
+ .ds-modal-wrap:not(.ds-modal-fullscreen) .ds-modal-content {
305
+ max-height: calc(100vh - var(--ds-modal-edge-padding) * 2);
306
+ margin: var(--ds-modal-edge-padding);
307
+ }
308
+
309
+ .ds-modal-wrap:not(.ds-modal-fullscreen) .ds-modal > div[tabindex="0"] {
310
+ max-height: calc(100vh - var(--ds-modal-edge-padding) * 2);
311
+ }
312
+
313
+ .ds-modal-no-body-scroll .ds-modal {
314
+ max-height: 100%;
315
+ }
316
+
317
+ :is(.ds-modal-no-body-scroll .ds-modal) .ds-modal-body {
318
+ display: grid;
319
+ overflow: hidden;
320
+ }
321
+
322
+ :is(:is(.ds-modal-no-body-scroll .ds-modal) .ds-modal-body) > * {
323
+ min-height: 0;
324
+ }
325
+
326
+ .ds-modal-fullscreen .ds-modal > div[tabindex="0"], .ds-modal-fullscreen .ds-modal .ds-modal-inner {
327
+ height: 100%;
328
+ }
329
+
330
+ .ds-modal-fullscreen .ds-modal .ds-modal-content {
331
+ border-radius: 0;
332
+ width: 100%;
333
+ height: 100%;
334
+ }
335
+
336
+ :is(.ds-modal-fixed .ds-modal) .ds-modal-footer {
337
+ border-top: 1px solid var(--ds-color-split);
338
+ padding: calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding);
339
+ margin-top: 0;
340
+ }
341
+
342
+ :is(.ds-modal-fixed .ds-modal) .ds-modal-header {
343
+ border-bottom: 1px solid var(--ds-color-split);
344
+ padding: calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding);
345
+ margin-bottom: 0;
346
+ }
347
+
348
+ :is(.ds-modal-fixed .ds-modal) .ds-modal-close {
349
+ top: 8px;
350
+ }
351
+
352
+ :is(.ds-modal-content-overflow .ds-modal) .ds-modal-inner {
353
+ margin-top: 0;
354
+ }
355
+ }
356
+
357
+ @layer theme, base, antd;
358
+
359
+ @layer components {
360
+ .ds-root {
361
+ display: contents;
362
+ }
363
+ }
364
+
365
+ @layer utilities;
366
+
367
+ @supports (scrollbar-width: auto) {
368
+ * {
369
+ scrollbar-color: var(--ds-scrollbar-color-thumb) var(--ds-scrollbar-color-track);
370
+ scrollbar-width: var(--ds-scrollbar-width);
371
+ }
372
+ }
373
+
374
+ @supports selector(::-webkit-scrollbar) {
375
+ ::-webkit-scrollbar-thumb {
376
+ background: var(--ds-scrollbar-color-thumb);
377
+ }
378
+
379
+ ::-webkit-scrollbar-track {
380
+ background: var(--ds-scrollbar-color-track);
381
+ }
382
+
383
+ ::-webkit-scrollbar {
384
+ max-width: var(--ds-scrollbar-width-legacy);
385
+ max-height: var(--ds-scrollbar-width-legacy);
386
+ }
387
+ }
388
+
389
+ body {
390
+ margin: 0;
391
+ padding: 0;
392
+ }
393
+
394
+ a[href], button:not(:disabled) {
395
+ cursor: pointer;
396
+ }
397
+
398
+ svg {
399
+ vertical-align: baseline;
400
+ }
401
+
402
+ @layer components {
403
+ span.ds-btn-icon {
404
+ align-items: center;
405
+ display: flex;
406
+ }
407
+ }
408
+
409
+ @layer components {
410
+ .ds-toast-viewport {
411
+ z-index: 2001;
412
+ justify-content: center;
413
+ width: 100%;
414
+ max-width: 30rem;
415
+ margin: 0 auto;
416
+ display: flex;
417
+ position: fixed;
418
+ top: auto;
419
+ bottom: 2rem;
420
+ left: 50%;
421
+ transform: translateX(-50%);
422
+ }
423
+
424
+ .ds-toast {
425
+ --gap: .5rem;
426
+ --offset-y: calc(var(--toast-offset-y) * -1 + (var(--toast-index) * var(--gap) * -1) + var(--toast-swipe-movement-y));
427
+ font-family: var(--font-sans);
428
+ box-sizing: border-box;
429
+ background: var(--ds-color-bg-elevated);
430
+ color: var(--ds-color-text);
431
+ gap: var(--gap);
432
+ max-width: 100%;
433
+ box-shadow: var(--ds-box-shadow-secondary);
434
+ -webkit-user-select: none;
435
+ user-select: none;
436
+ cursor: default;
437
+ z-index: calc(1000 - var(--toast-index));
438
+ transform: translateX(var(--toast-swipe-movement-x)) translateY(calc(var(--toast-swipe-movement-y) + (var(--toast-index) * -20%))) scale(calc(1 - (var(--toast-index) * .1)));
439
+ background-clip: padding-box;
440
+ border-radius: .5rem;
441
+ margin-right: 0;
442
+ padding: .75rem 1rem;
443
+ transition: transform .5s cubic-bezier(.22, 1, .36, 1), opacity .5s;
444
+ display: inline-flex;
445
+ position: absolute;
446
+ bottom: 0;
447
+ }
448
+
449
+ .ds-toast:after {
450
+ top: 100%;
451
+ }
452
+
453
+ .ds-toast[data-expanded] {
454
+ transform: translateX(var(--toast-swipe-movement-x)) translateY(var(--offset-y));
455
+ }
456
+
457
+ .ds-toast[data-starting-style], .ds-toast[data-ending-style]:not([data-limited]) {
458
+ transform: translateY(150%);
459
+ }
460
+
461
+ .ds-toast[data-ending-style] {
462
+ opacity: 0;
463
+ }
464
+
465
+ .ds-toast[data-ending-style][data-swipe-direction="up"] {
466
+ transform: translateY(calc(var(--toast-swipe-movement-y) - 150%));
467
+ }
468
+
469
+ .ds-toast[data-ending-style][data-swipe-direction="left"] {
470
+ transform: translateX(calc(var(--toast-swipe-movement-x) - 150%)) translateY(var(--offset-y));
471
+ }
472
+
473
+ .ds-toast[data-ending-style][data-swipe-direction="right"] {
474
+ transform: translateX(calc(var(--toast-swipe-movement-x) + 150%)) translateY(var(--offset-y));
475
+ }
476
+
477
+ .ds-toast[data-ending-style][data-swipe-direction="down"] {
478
+ transform: translateY(calc(var(--toast-swipe-movement-y) + 150%));
479
+ }
480
+
481
+ .ds-toast:after {
482
+ content: "";
483
+ width: 100%;
484
+ height: calc(var(--gap) + 1px);
485
+ position: absolute;
486
+ left: 0;
487
+ }
488
+
489
+ .ds-toast-content {
490
+ flex-direction: column;
491
+ flex: 1;
492
+ gap: 2px;
493
+ display: flex;
494
+ }
495
+
496
+ .ds-toast-title {
497
+ font-size: var(--text-ds-h5);
498
+ font-weight: var(--text-ds-h5--font-weight);
499
+ line-height: var(--text-ds-h5--line-height);
500
+ }
501
+
502
+ .ds-toast-description {
503
+ font-size: var(--ds-font-size);
504
+ line-height: var(--ds-line-height);
505
+ }
506
+
507
+ .ds-toast-description-traceback p:not(:first-child) {
508
+ margin-top: .5rem;
509
+ }
510
+
511
+ .ds-toast-icon-wrap {
512
+ flex: 0;
513
+ width: 1.25rem;
514
+ font-size: 1.25rem;
515
+ display: block;
516
+ }
517
+
518
+ .ds-toast-icon {
519
+ width: 1.25rem;
520
+ height: 1.25rem;
521
+ display: block;
522
+ }
523
+
524
+ .ds-toast-icon.ds-toast-icon-info {
525
+ color: var(--ds-color-primary);
526
+ }
527
+
528
+ .ds-toast-icon.ds-toast-icon-success {
529
+ color: var(--ds-color-success);
530
+ }
531
+
532
+ .ds-toast-icon.ds-toast-icon-warning {
533
+ color: var(--ds-color-warning);
534
+ }
535
+
536
+ .ds-toast-icon.ds-toast-icon-error {
537
+ color: var(--ds-color-error);
538
+ }
539
+
540
+ .ds-toast-icon.ds-toast-icon-progress {
541
+ color: var(--ds-color-primary);
542
+ animation: var(--ds-animate-spin);
543
+ }
544
+ }
545
+
546
+ @layer components {
547
+ .ds-code-block {
548
+ background: var(--ds-color-bg-layout);
549
+ box-shadow: 0 0 0 1px inset var(--ds-color-split);
550
+ border-radius: var(--ds-border-radius);
551
+ font-family: var(--font-mono);
552
+ padding: 1rem;
553
+ position: relative;
554
+ }
555
+
556
+ .ds-code-block-header {
557
+ justify-items: start;
558
+ margin-bottom: .75rem;
559
+ display: flex;
560
+ }
561
+
562
+ .ds-code-block-copy {
563
+ opacity: 0;
564
+ transition: opacity .2s ease-in-out;
565
+ position: absolute;
566
+ top: 1rem;
567
+ right: .75rem;
568
+ }
569
+
570
+ .ds-code-block:hover .ds-code-block-copy {
571
+ opacity: 100;
572
+ }
573
+
574
+ .ds-code-block-content {
575
+ flex-direction: column;
576
+ flex: 1;
577
+ min-height: 0;
578
+ padding-right: 1.5rem;
579
+ display: flex;
580
+ overflow: hidden;
581
+ }
582
+
583
+ .ds-code-block-content .ds-scoll-area {
584
+ max-height: 30rem;
585
+ }
586
+ }
587
+
588
+ @layer components {
589
+ .ds-segmented .ds-segmented-item-label {
590
+ justify-content: center;
591
+ align-items: center;
592
+ display: flex;
593
+ }
594
+
595
+ .ds-segmented .ds-segmented-item-icon {
596
+ justify-content: center;
597
+ align-items: center;
598
+ height: 100%;
599
+ font-size: 1rem;
600
+ display: flex;
601
+ }
602
+ }
603
+
604
+ @layer components {
605
+ .ds-scroll-area {
606
+ flex-direction: column;
607
+ flex: 1;
608
+ height: 100%;
609
+ min-height: 0;
610
+ display: flex;
611
+ }
612
+
613
+ .ds-scroll-area .ds-scroll-area-viewport {
614
+ overscroll-behavior: contain;
615
+ flex-shrink: 1;
616
+ height: 100%;
617
+ max-height: 100%;
618
+ overflow: hidden;
619
+ }
620
+
621
+ :is(.ds-scroll-area .ds-scroll-area-viewport):focus-visible {
622
+ outline-offset: 4px;
623
+ outline-width: 2px;
624
+ outline-color: var(--ds-color-primary);
625
+ }
626
+
627
+ .ds-scroll-area .ds-scroll-area-scrollbar {
628
+ opacity: 0;
629
+ background-color: #0000;
630
+ justify-content: center;
631
+ padding: .25rem;
632
+ transition-property: opacity;
633
+ transition-delay: .1s;
634
+ display: flex;
635
+ }
636
+
637
+ :is(.ds-scroll-area .ds-scroll-area-scrollbar) .ds-scroll-area-thumb {
638
+ background-color: var(--ds-color-bg-fill-tertiary);
639
+ border: 1px solid var(--ds-color-border);
640
+ border-radius: 9999px;
641
+ }
642
+
643
+ [data-orientation="vertical"]:is(.ds-scroll-area .ds-scroll-area-scrollbar) {
644
+ width: .875rem;
645
+ }
646
+
647
+ [data-orientation="vertical"]:is(.ds-scroll-area .ds-scroll-area-scrollbar) .ds-scroll-area-thumb {
648
+ width: 100%;
649
+ }
650
+
651
+ [data-orientation="horizontal"]:is(.ds-scroll-area .ds-scroll-area-scrollbar) {
652
+ flex-direction: column;
653
+ width: 100%;
654
+ height: .875rem;
655
+ }
656
+
657
+ [data-orientation="horizontal"]:is(.ds-scroll-area .ds-scroll-area-scrollbar) .ds-scroll-area-thumb {
658
+ height: 100%;
659
+ }
660
+
661
+ [data-hovering]:is(.ds-scroll-area .ds-scroll-area-scrollbar), [data-scrolling]:is(.ds-scroll-area .ds-scroll-area-scrollbar) {
662
+ opacity: 1;
663
+ transition-duration: .2s;
664
+ transition-delay: 0s;
665
+ }
666
+ }
667
+