@vanduo-oss/framework 1.6.0 → 1.7.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/vanduo.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Vanduo v1.6.0 | Built: 2026-06-27T15:48:08.659Z | git:9384f14 | development */
1
+ /*! Vanduo v1.7.0 | Built: 2026-06-29T06:28:14.462Z | git:c12c685 | development */
2
2
  *, :before, :after {
3
3
  box-sizing: border-box;
4
4
  }
@@ -7061,6 +7061,22 @@ pre code {
7061
7061
  --vd-radius-fib-21: 2.625rem;
7062
7062
  }
7063
7063
 
7064
+ .vd-muted {
7065
+ color: var(--vd-text-muted);
7066
+ }
7067
+
7068
+ .vd-visually-hidden {
7069
+ clip: rect(0, 0, 0, 0);
7070
+ white-space: nowrap;
7071
+ border: 0;
7072
+ width: 1px;
7073
+ height: 1px;
7074
+ margin: -1px;
7075
+ padding: 0;
7076
+ overflow: hidden;
7077
+ position: absolute !important;
7078
+ }
7079
+
7064
7080
  @font-face {
7065
7081
  font-family: Phosphor;
7066
7082
  src: url("./icons/phosphor/regular/Phosphor.woff2") format("woff2"), url("./icons/phosphor/regular/Phosphor.woff") format("woff"), url("./icons/phosphor/regular/Phosphor.ttf") format("truetype"), url("./icons/phosphor/regular/Phosphor.svg#Phosphor") format("svg");
@@ -19951,6 +19967,14 @@ pre code {
19951
19967
  margin-bottom: 1rem;
19952
19968
  }
19953
19969
 
19970
+ .vd-table-caption {
19971
+ padding: var(--vd-table-padding-y) var(--vd-table-padding-x);
19972
+ color: var(--vd-text-muted);
19973
+ font-size: var(--vd-font-size-sm);
19974
+ text-align: left;
19975
+ caption-side: top;
19976
+ }
19977
+
19954
19978
  .vd-table th, .vd-table td, .table th, .table td {
19955
19979
  padding: var(--vd-table-padding-y) var(--vd-table-padding-x);
19956
19980
  vertical-align: middle;
@@ -21684,6 +21708,39 @@ a.vd-btn, a.vd-btn:hover {
21684
21708
  }
21685
21709
  }
21686
21710
 
21711
+ .vd-btn.is-loading:has(.vd-btn-spinner):after {
21712
+ content: none;
21713
+ }
21714
+
21715
+ .vd-btn-spinner {
21716
+ border: 2px solid var(--vd-color-primary);
21717
+ border-right-color: #0000;
21718
+ border-radius: 50%;
21719
+ width: 1em;
21720
+ height: 1em;
21721
+ margin: -.5em 0 0 -.5em;
21722
+ animation: .6s linear infinite btn-spinner;
21723
+ position: absolute;
21724
+ top: 50%;
21725
+ left: 50%;
21726
+ }
21727
+
21728
+ .vd-btn-primary .vd-btn-spinner, .vd-btn-secondary .vd-btn-spinner, .vd-btn-success .vd-btn-spinner, .vd-btn-danger .vd-btn-spinner, .vd-btn-error .vd-btn-spinner, .vd-btn-info .vd-btn-spinner {
21729
+ border-color: var(--vd-color-white);
21730
+ border-right-color: #0000;
21731
+ }
21732
+
21733
+ .vd-btn-warning .vd-btn-spinner {
21734
+ border-color: var(--vd-color-black);
21735
+ border-right-color: #0000;
21736
+ }
21737
+
21738
+ @media (prefers-reduced-motion: reduce) {
21739
+ .vd-btn-spinner {
21740
+ animation-duration: 1.2s;
21741
+ }
21742
+ }
21743
+
21687
21744
  :root {
21688
21745
  --vd-input-padding-x-sm: .5rem;
21689
21746
  --vd-input-padding-y-sm: .3125rem;
@@ -21801,11 +21858,11 @@ a.vd-btn, a.vd-btn:hover {
21801
21858
  border-radius: var(--vd-input-border-radius-lg);
21802
21859
  }
21803
21860
 
21804
- .vd-input-error, input.vd-input-error, .vd-input.is-error, input.is-error, .vd-input-invalid, input.vd-input-invalid {
21861
+ .vd-input-error, input.vd-input-error, .vd-input-danger, input.vd-input-danger, .vd-input.is-error, input.is-error, .vd-input-invalid, input.vd-input-invalid {
21805
21862
  border-color: var(--vd-color-error);
21806
21863
  }
21807
21864
 
21808
- .vd-input-error:focus, input.vd-input-error:focus, .vd-input.is-error:focus, input.is-error:focus, .vd-input-invalid:focus, input.vd-input-invalid:focus {
21865
+ .vd-input-error:focus, input.vd-input-error:focus, .vd-input-danger:focus, input.vd-input-danger:focus, .vd-input.is-error:focus, input.is-error:focus, .vd-input-invalid:focus, input.vd-input-invalid:focus {
21809
21866
  border-color: var(--vd-color-error);
21810
21867
  box-shadow: 0 0 0 3px var(--vd-color-error-alpha-10);
21811
21868
  }
@@ -21837,7 +21894,7 @@ a.vd-btn, a.vd-btn:hover {
21837
21894
  box-shadow: 0 0 0 3px var(--vd-color-success-alpha-10);
21838
21895
  }
21839
21896
 
21840
- .label, label {
21897
+ .label, .vd-form-label, label {
21841
21898
  font-size: var(--vd-font-size-sm);
21842
21899
  font-weight: var(--vd-font-weight-medium);
21843
21900
  color: var(--vd-text-primary);
@@ -21851,6 +21908,11 @@ a.vd-btn, a.vd-btn:hover {
21851
21908
  color: var(--vd-color-error);
21852
21909
  }
21853
21910
 
21911
+ .vd-form-radio-icon {
21912
+ vertical-align: -.125em;
21913
+ margin-right: .375rem;
21914
+ }
21915
+
21854
21916
  .label-sm, label.label-sm {
21855
21917
  font-size: var(--vd-font-size-xs);
21856
21918
  }
@@ -23294,6 +23356,231 @@ a.vd-card:active {
23294
23356
  }
23295
23357
  }
23296
23358
 
23359
+ .vd-card-interactive {
23360
+ cursor: pointer;
23361
+ transition: transform .2s, box-shadow .2s;
23362
+ }
23363
+
23364
+ .vd-card-interactive:hover {
23365
+ box-shadow: var(--vd-shadow-lg);
23366
+ transform: translateY(-2px) translateZ(0);
23367
+ }
23368
+
23369
+ .vd-card-interactive:focus-visible {
23370
+ outline: 2px solid var(--vd-color-primary);
23371
+ outline-offset: 2px;
23372
+ }
23373
+
23374
+ @media (prefers-reduced-motion: reduce) {
23375
+ .vd-card-interactive {
23376
+ transition: none;
23377
+ }
23378
+
23379
+ .vd-card-interactive:hover {
23380
+ transform: none;
23381
+ }
23382
+ }
23383
+
23384
+ :root {
23385
+ --vd-accordion-border-color: var(--vd-border-color);
23386
+ --vd-accordion-header-bg: transparent;
23387
+ --vd-accordion-header-bg-hover: var(--vd-bg-secondary);
23388
+ --vd-accordion-padding-x: 1.3125rem;
23389
+ --vd-accordion-padding-y: .8125rem;
23390
+ }
23391
+
23392
+ .vd-accordion {
23393
+ border: 1px solid var(--vd-accordion-border-color);
23394
+ border-radius: var(--vd-btn-border-radius);
23395
+ margin: 0;
23396
+ padding: 0;
23397
+ list-style: none;
23398
+ overflow: hidden;
23399
+ }
23400
+
23401
+ .vd-accordion-item {
23402
+ border-top: 1px solid var(--vd-accordion-border-color);
23403
+ }
23404
+
23405
+ .vd-accordion-item:first-child {
23406
+ border-top: none;
23407
+ }
23408
+
23409
+ .vd-accordion-header {
23410
+ width: 100%;
23411
+ padding: var(--vd-accordion-padding-y) var(--vd-accordion-padding-x);
23412
+ background: var(--vd-accordion-header-bg);
23413
+ cursor: pointer;
23414
+ font-size: var(--vd-font-size-base);
23415
+ font-weight: var(--vd-font-weight-medium);
23416
+ color: var(--vd-text-primary);
23417
+ text-align: left;
23418
+ border: none;
23419
+ justify-content: space-between;
23420
+ align-items: center;
23421
+ gap: .75rem;
23422
+ transition: background-color .15s;
23423
+ display: flex;
23424
+ }
23425
+
23426
+ .vd-accordion-header:hover {
23427
+ background: var(--vd-accordion-header-bg-hover);
23428
+ }
23429
+
23430
+ .vd-accordion-header:focus-visible {
23431
+ outline: 2px solid var(--vd-color-primary);
23432
+ outline-offset: -2px;
23433
+ }
23434
+
23435
+ .vd-accordion-icon {
23436
+ color: var(--vd-text-secondary);
23437
+ flex-shrink: 0;
23438
+ font-size: 1.25rem;
23439
+ line-height: 1;
23440
+ }
23441
+
23442
+ .vd-accordion-panel {
23443
+ padding: var(--vd-accordion-padding-y) var(--vd-accordion-padding-x);
23444
+ color: var(--vd-text-primary);
23445
+ border-top: 1px solid var(--vd-accordion-border-color);
23446
+ }
23447
+
23448
+ @media (prefers-reduced-motion: reduce) {
23449
+ .vd-accordion-header {
23450
+ transition: none;
23451
+ }
23452
+ }
23453
+
23454
+ :root {
23455
+ --vd-separator-color: var(--vd-border-color);
23456
+ --vd-separator-spacing: 1.3125rem;
23457
+ }
23458
+
23459
+ .vd-separator {
23460
+ width: 100%;
23461
+ height: 0;
23462
+ margin: var(--vd-separator-spacing) 0;
23463
+ border: none;
23464
+ border-top: 1px solid var(--vd-separator-color);
23465
+ }
23466
+
23467
+ .vd-separator-vertical {
23468
+ width: 0;
23469
+ height: auto;
23470
+ min-height: 1em;
23471
+ margin: 0 var(--vd-separator-spacing);
23472
+ border-top: none;
23473
+ border-left: 1px solid var(--vd-separator-color);
23474
+ align-self: stretch;
23475
+ }
23476
+
23477
+ .vd-separator-labeled {
23478
+ width: 100%;
23479
+ margin: var(--vd-separator-spacing) 0;
23480
+ color: var(--vd-text-muted);
23481
+ font-size: var(--vd-font-size-sm);
23482
+ border: none;
23483
+ align-items: center;
23484
+ gap: .75rem;
23485
+ display: flex;
23486
+ }
23487
+
23488
+ .vd-separator-labeled:before, .vd-separator-labeled:after {
23489
+ content: "";
23490
+ border-top: 1px solid var(--vd-separator-color);
23491
+ flex: auto;
23492
+ }
23493
+
23494
+ .vd-separator-label {
23495
+ flex-shrink: 0;
23496
+ }
23497
+
23498
+ :root {
23499
+ --vd-slider-track-height: .375rem;
23500
+ --vd-slider-track-bg: var(--vd-bg-tertiary, #e9ecef);
23501
+ --vd-slider-thumb-size: 1.125rem;
23502
+ --vd-slider-thumb-bg: var(--vd-color-primary);
23503
+ }
23504
+
23505
+ .vd-slider-field {
23506
+ flex-direction: column;
23507
+ gap: .375rem;
23508
+ width: 100%;
23509
+ display: flex;
23510
+ }
23511
+
23512
+ .vd-slider-row {
23513
+ align-items: center;
23514
+ gap: .75rem;
23515
+ display: flex;
23516
+ }
23517
+
23518
+ .vd-slider-value {
23519
+ text-align: right;
23520
+ min-width: 3ch;
23521
+ font-size: var(--vd-font-size-sm);
23522
+ font-variant-numeric: tabular-nums;
23523
+ color: var(--vd-text-secondary);
23524
+ flex-shrink: 0;
23525
+ }
23526
+
23527
+ .vd-slider {
23528
+ -webkit-appearance: none;
23529
+ appearance: none;
23530
+ width: 100%;
23531
+ height: var(--vd-slider-track-height);
23532
+ border-radius: calc(var(--vd-slider-track-height) / 2);
23533
+ background-color: var(--vd-slider-track-bg);
23534
+ cursor: pointer;
23535
+ outline-offset: 4px;
23536
+ }
23537
+
23538
+ .vd-slider:disabled {
23539
+ opacity: .6;
23540
+ cursor: not-allowed;
23541
+ }
23542
+
23543
+ .vd-slider:focus-visible {
23544
+ outline: 2px solid var(--vd-color-primary);
23545
+ }
23546
+
23547
+ .vd-slider::-webkit-slider-thumb {
23548
+ -webkit-appearance: none;
23549
+ appearance: none;
23550
+ width: var(--vd-slider-thumb-size);
23551
+ height: var(--vd-slider-thumb-size);
23552
+ border: 2px solid var(--vd-color-white);
23553
+ background-color: var(--vd-slider-thumb-bg);
23554
+ box-shadow: var(--vd-shadow-sm);
23555
+ border-radius: 50%;
23556
+ transition: transform .1s;
23557
+ }
23558
+
23559
+ .vd-slider::-webkit-slider-thumb:active {
23560
+ transform: scale(1.15);
23561
+ }
23562
+
23563
+ .vd-slider::-moz-range-thumb {
23564
+ width: var(--vd-slider-thumb-size);
23565
+ height: var(--vd-slider-thumb-size);
23566
+ border: 2px solid var(--vd-color-white);
23567
+ background-color: var(--vd-slider-thumb-bg);
23568
+ box-shadow: var(--vd-shadow-sm);
23569
+ border-radius: 50%;
23570
+ }
23571
+
23572
+ .vd-slider::-moz-range-track {
23573
+ height: var(--vd-slider-track-height);
23574
+ border-radius: calc(var(--vd-slider-track-height) / 2);
23575
+ background-color: var(--vd-slider-track-bg);
23576
+ }
23577
+
23578
+ @media (prefers-reduced-motion: reduce) {
23579
+ .vd-slider::-webkit-slider-thumb {
23580
+ transition: none;
23581
+ }
23582
+ }
23583
+
23297
23584
  .vd-expanding-cards {
23298
23585
  flex-direction: row;
23299
23586
  align-items: stretch;
@@ -25534,6 +25821,68 @@ a.vd-card:active {
25534
25821
  overflow: hidden;
25535
25822
  }
25536
25823
 
25824
+ .vd-modal.vd-modal-open {
25825
+ opacity: 1;
25826
+ justify-content: center;
25827
+ align-items: center;
25828
+ display: flex;
25829
+ }
25830
+
25831
+ .vd-modal-open .vd-modal-backdrop {
25832
+ opacity: 1;
25833
+ pointer-events: auto;
25834
+ }
25835
+
25836
+ .vd-modal-panel {
25837
+ width: min(calc(100% - 3.5rem), var(--vd-modal-dialog-max-width));
25838
+ max-width: var(--vd-modal-dialog-max-width);
25839
+ pointer-events: auto;
25840
+ background-color: var(--vd-modal-bg);
25841
+ border: 1px solid var(--vd-modal-border-color);
25842
+ border-radius: var(--vd-btn-border-radius-lg);
25843
+ box-shadow: var(--vd-shadow-2xl);
25844
+ transition: var(--vd-modal-dialog-transition);
25845
+ z-index: 1060;
25846
+ background-clip: padding-box;
25847
+ outline: 0;
25848
+ flex-direction: column;
25849
+ margin: 1.75rem auto;
25850
+ display: flex;
25851
+ position: relative;
25852
+ transform: scale(.95);
25853
+ }
25854
+
25855
+ .vd-modal.vd-modal-open .vd-modal-panel {
25856
+ transform: scale(1);
25857
+ }
25858
+
25859
+ .vd-modal-panel-sm {
25860
+ --vd-modal-dialog-max-width: var(--vd-modal-width-sm);
25861
+ }
25862
+
25863
+ .vd-modal-panel-md {
25864
+ --vd-modal-dialog-max-width: var(--vd-modal-width);
25865
+ }
25866
+
25867
+ .vd-modal-panel-lg {
25868
+ --vd-modal-dialog-max-width: var(--vd-modal-width-lg);
25869
+ }
25870
+
25871
+ .vd-modal-glass .vd-modal-panel {
25872
+ background: var(--vd-glass-bg-light);
25873
+ border-color: var(--vd-glass-border-light);
25874
+ box-shadow: var(--vd-glass-shadow);
25875
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
25876
+ }
25877
+
25878
+ @media (width <= 575.98px) {
25879
+ .vd-modal-panel {
25880
+ width: calc(100% - 1rem);
25881
+ max-width: calc(100% - 1rem);
25882
+ margin: .5rem;
25883
+ }
25884
+ }
25885
+
25537
25886
  :root {
25538
25887
  --vd-badge-padding-y: .3em;
25539
25888
  --vd-badge-padding-x: .48em;
@@ -25606,7 +25955,7 @@ a.vd-card:active {
25606
25955
  color: var(--vd-color-gray-900);
25607
25956
  }
25608
25957
 
25609
- .vd-badge-error {
25958
+ .vd-badge-error, .vd-badge-danger {
25610
25959
  background-color: var(--vd-color-error);
25611
25960
  color: var(--vd-color-white);
25612
25961
  }
@@ -25959,6 +26308,21 @@ h1 .vd-badge, h2 .vd-badge, h3 .vd-badge, h4 .vd-badge, h5 .vd-badge, h6 .vd-bad
25959
26308
  }
25960
26309
  }
25961
26310
 
26311
+ .vd-collection-list {
26312
+ flex-direction: column;
26313
+ margin: 0;
26314
+ padding: 0;
26315
+ list-style: none;
26316
+ display: flex;
26317
+ }
26318
+
26319
+ .vd-collection-text-secondary {
26320
+ font-size: var(--vd-font-size-sm);
26321
+ color: var(--vd-text-secondary);
26322
+ margin-top: .125rem;
26323
+ display: block;
26324
+ }
26325
+
25962
26326
  :root {
25963
26327
  --vd-pagination-bg: var(--vd-color-white);
25964
26328
  --vd-pagination-border-color: var(--vd-border-color);
@@ -26517,6 +26881,31 @@ h1 .vd-badge, h2 .vd-badge, h3 .vd-badge, h4 .vd-badge, h5 .vd-badge, h6 .vd-bad
26517
26881
  }
26518
26882
  }
26519
26883
 
26884
+ .vd-preloader:has(.vd-preloader-spinner) {
26885
+ border: none;
26886
+ border-radius: 0;
26887
+ width: auto;
26888
+ height: auto;
26889
+ animation: none;
26890
+ display: inline-flex;
26891
+ }
26892
+
26893
+ .vd-preloader-spinner {
26894
+ width: var(--vd-spinner-size, 2rem);
26895
+ height: var(--vd-spinner-size, 2rem);
26896
+ border: var(--vd-spinner-border-width, 3px) solid var(--vd-border-color, #e9ecef);
26897
+ border-top-color: var(--vd-spinner-color, var(--vd-color-primary));
26898
+ animation: spinner-rotate var(--vd-spinner-speed, .65s) linear infinite;
26899
+ border-radius: 50%;
26900
+ display: inline-block;
26901
+ }
26902
+
26903
+ @media (prefers-reduced-motion: reduce) {
26904
+ .vd-preloader-spinner {
26905
+ animation-duration: 1.5s;
26906
+ }
26907
+ }
26908
+
26520
26909
  :root {
26521
26910
  --vd-alert-padding-x: 1.3125rem;
26522
26911
  --vd-alert-padding-y: .8125rem;
@@ -26597,6 +26986,22 @@ h1 .vd-badge, h2 .vd-badge, h3 .vd-badge, h4 .vd-badge, h5 .vd-badge, h6 .vd-bad
26597
26986
  color: var(--vd-alert-info-text);
26598
26987
  }
26599
26988
 
26989
+ .vd-alert-secondary {
26990
+ background-color: var(--vd-color-secondary-alpha-10);
26991
+ border-color: var(--vd-color-secondary);
26992
+ color: var(--vd-color-secondary-dark);
26993
+ }
26994
+
26995
+ [data-theme="dark"] .vd-alert-secondary {
26996
+ color: var(--vd-color-secondary-light);
26997
+ }
26998
+
26999
+ @media (prefers-color-scheme: dark) {
27000
+ :root:not([data-theme]) .vd-alert-secondary {
27001
+ color: var(--vd-color-secondary-light);
27002
+ }
27003
+ }
27004
+
26600
27005
  .vd-alert-icon {
26601
27006
  align-items: flex-start;
26602
27007
  gap: .75rem;
@@ -26712,6 +27117,48 @@ h1 .vd-badge, h2 .vd-badge, h3 .vd-badge, h4 .vd-badge, h5 .vd-badge, h6 .vd-bad
26712
27117
  }
26713
27118
  }
26714
27119
 
27120
+ .vd-alert:has(.vd-alert-body) {
27121
+ align-items: flex-start;
27122
+ gap: .75rem;
27123
+ display: flex;
27124
+ }
27125
+
27126
+ .vd-alert:has(.vd-alert-body) > .vd-alert-icon {
27127
+ flex-shrink: 0;
27128
+ }
27129
+
27130
+ .vd-alert-body {
27131
+ flex: auto;
27132
+ min-width: 0;
27133
+ }
27134
+
27135
+ .vd-alert-dismiss {
27136
+ cursor: pointer;
27137
+ opacity: .5;
27138
+ color: inherit;
27139
+ background: none;
27140
+ border: none;
27141
+ flex-shrink: 0;
27142
+ padding: 0;
27143
+ line-height: 1;
27144
+ transition: opacity .15s;
27145
+ }
27146
+
27147
+ .vd-alert-dismiss:hover {
27148
+ opacity: 1;
27149
+ }
27150
+
27151
+ .vd-alert-dismiss:focus-visible {
27152
+ outline-offset: 2px;
27153
+ outline: 2px solid;
27154
+ }
27155
+
27156
+ @media (prefers-reduced-motion: reduce) {
27157
+ .vd-alert-dismiss {
27158
+ transition: none;
27159
+ }
27160
+ }
27161
+
26715
27162
  :root {
26716
27163
  --vd-chip-padding-x: .8125rem;
26717
27164
  --vd-chip-padding-y: .3125rem;
@@ -26959,7 +27406,7 @@ h1 .vd-badge, h2 .vd-badge, h3 .vd-badge, h4 .vd-badge, h5 .vd-badge, h6 .vd-bad
26959
27406
  overflow: hidden;
26960
27407
  }
26961
27408
 
26962
- .vd-avatar img {
27409
+ .vd-avatar img, .vd-avatar-img {
26963
27410
  object-fit: cover;
26964
27411
  border-radius: inherit;
26965
27412
  width: 100%;
@@ -27453,6 +27900,52 @@ a.vd-avatar:focus-visible, button.vd-avatar:focus-visible {
27453
27900
  }
27454
27901
  }
27455
27902
 
27903
+ .vd-skeleton-lines {
27904
+ flex-direction: column;
27905
+ gap: .5rem;
27906
+ display: flex;
27907
+ }
27908
+
27909
+ .vd-skeleton-lines .vd-skeleton-text {
27910
+ margin-bottom: 0;
27911
+ }
27912
+
27913
+ .vd-skeleton-text-short {
27914
+ width: 60%;
27915
+ }
27916
+
27917
+ .vd-skeleton-card-header {
27918
+ width: 100%;
27919
+ height: 8rem;
27920
+ margin-bottom: .8125rem;
27921
+ }
27922
+
27923
+ .vd-skeleton-card-body {
27924
+ flex-direction: column;
27925
+ gap: .5rem;
27926
+ display: flex;
27927
+ }
27928
+
27929
+ .vd-skeleton-card-body .vd-skeleton-text {
27930
+ margin-bottom: 0;
27931
+ }
27932
+
27933
+ .vd-skeleton-card-sm .vd-skeleton-card-header {
27934
+ height: 5rem;
27935
+ }
27936
+
27937
+ .vd-skeleton-card-md .vd-skeleton-card-header {
27938
+ height: 8rem;
27939
+ }
27940
+
27941
+ .vd-skeleton-card-lg .vd-skeleton-card-header {
27942
+ height: 12rem;
27943
+ }
27944
+
27945
+ .vd-skeleton-card-xl .vd-skeleton-card-header {
27946
+ height: 16rem;
27947
+ }
27948
+
27456
27949
  :root {
27457
27950
  --vd-tab-padding-x: 1.3125rem;
27458
27951
  --vd-tab-padding-y: .8125rem;
@@ -27743,6 +28236,47 @@ a.vd-avatar:focus-visible, button.vd-avatar:focus-visible {
27743
28236
  }
27744
28237
  }
27745
28238
 
28239
+ .vd-tab {
28240
+ padding: var(--vd-tab-padding-y) var(--vd-tab-padding-x);
28241
+ font-size: var(--vd-font-size-base);
28242
+ font-weight: var(--vd-font-weight-medium);
28243
+ color: var(--vd-tab-text);
28244
+ border: none;
28245
+ border-bottom: var(--vd-tab-border-width) solid transparent;
28246
+ cursor: pointer;
28247
+ white-space: nowrap;
28248
+ background: none;
28249
+ align-items: center;
28250
+ gap: .5rem;
28251
+ transition: color .15s, border-color .15s, background-color .15s;
28252
+ display: inline-flex;
28253
+ }
28254
+
28255
+ .vd-tab:hover {
28256
+ color: var(--vd-tab-text-hover);
28257
+ background-color: var(--vd-tab-bg-hover);
28258
+ }
28259
+
28260
+ .vd-tab:focus-visible {
28261
+ outline: 2px solid var(--vd-color-primary);
28262
+ outline-offset: -2px;
28263
+ }
28264
+
28265
+ .vd-tab.is-active {
28266
+ color: var(--vd-tab-text-active);
28267
+ border-bottom-color: var(--vd-tab-border-active);
28268
+ }
28269
+
28270
+ .vd-tab-panels {
28271
+ padding-top: 1rem;
28272
+ }
28273
+
28274
+ @media (prefers-reduced-motion: reduce) {
28275
+ .vd-tab {
28276
+ transition: none;
28277
+ }
28278
+ }
28279
+
27746
28280
  :root {
27747
28281
  --vd-toast-width: 377px;
27748
28282
  --vd-toast-max-width: 90vw;
@@ -28570,6 +29104,25 @@ a.vd-avatar:focus-visible, button.vd-avatar:focus-visible {
28570
29104
  }
28571
29105
  }
28572
29106
 
29107
+ .vd-code-snippet-pre {
29108
+ padding: var(--vd-code-padding-y) var(--vd-code-padding-x);
29109
+ -webkit-overflow-scrolling: touch;
29110
+ background-color: var(--vd-code-bg);
29111
+ font-family: var(--vd-font-family-mono, "JetBrains Mono", "Fira Code", "Consolas", monospace);
29112
+ font-size: var(--vd-code-font-size);
29113
+ line-height: var(--vd-code-line-height);
29114
+ color: var(--vd-code-text);
29115
+ margin: 0;
29116
+ overflow-x: auto;
29117
+ }
29118
+
29119
+ .vd-code-snippet-pre code {
29120
+ font: inherit;
29121
+ color: inherit;
29122
+ white-space: pre;
29123
+ tab-size: 2;
29124
+ }
29125
+
28573
29126
  :root {
28574
29127
  --vd-progress-height: 8px;
28575
29128
  --vd-progress-bg: var(--vd-bg-tertiary, #e9ecef);
@@ -28685,6 +29238,45 @@ a.vd-avatar:focus-visible, button.vd-avatar:focus-visible {
28685
29238
  }
28686
29239
  }
28687
29240
 
29241
+ .vd-progress:has(.vd-progress-track) {
29242
+ background-color: #0000;
29243
+ height: auto;
29244
+ display: block;
29245
+ overflow: visible;
29246
+ }
29247
+
29248
+ .vd-progress-track {
29249
+ height: var(--vd-progress-height);
29250
+ background-color: var(--vd-progress-bg);
29251
+ border-radius: var(--vd-progress-border-radius);
29252
+ display: flex;
29253
+ overflow: hidden;
29254
+ }
29255
+
29256
+ .vd-progress-fill {
29257
+ background-color: var(--vd-progress-bar-bg);
29258
+ border-radius: var(--vd-progress-border-radius);
29259
+ height: 100%;
29260
+ transition: width .4s;
29261
+ display: block;
29262
+ }
29263
+
29264
+ .vd-progress.is-indeterminate .vd-progress-fill {
29265
+ width: 30%;
29266
+ animation: 1.5s ease-in-out infinite progress-indeterminate;
29267
+ }
29268
+
29269
+ .vd-progress-label {
29270
+ margin-top: .375rem;
29271
+ display: block;
29272
+ }
29273
+
29274
+ @media (prefers-reduced-motion: reduce) {
29275
+ .vd-progress.is-indeterminate .vd-progress-fill {
29276
+ animation: none;
29277
+ }
29278
+ }
29279
+
28688
29280
  :root {
28689
29281
  --vd-spinner-size: 2rem;
28690
29282
  --vd-spinner-border-width: 3px;
@@ -31006,6 +31598,21 @@ input.vd-doc-search-input {
31006
31598
  }
31007
31599
  }
31008
31600
 
31601
+ .vd-flow-controls {
31602
+ justify-content: center;
31603
+ align-items: center;
31604
+ gap: .75rem;
31605
+ margin-top: .8125rem;
31606
+ display: flex;
31607
+ }
31608
+
31609
+ .vd-flow-position {
31610
+ min-width: 4ch;
31611
+ font-size: var(--vd-font-size-sm);
31612
+ color: var(--vd-text-secondary);
31613
+ text-align: center;
31614
+ }
31615
+
31009
31616
  :root {
31010
31617
  --vd-bubble-bg: var(--vd-card-bg, #fff);
31011
31618
  --vd-bubble-text: var(--vd-text-primary, #212529);