@wwtdev/bsds-css 3.0.17 → 3.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/README.md CHANGED
@@ -100,7 +100,7 @@ Alternatively, you can leverage native CSS `@layer` to ensure TW utilities will
100
100
 
101
101
  ### 3. Dark Mode-compatible "semantic" color utilities
102
102
 
103
- We've extended the TW theme with color utilities that will automatically adjust when using dark mode. These classes require the CSS custom properties defined in the global stylesheet (`wwt-bsds.css`). If you're not bringing that stylesheet in, either disregard these classes or manually include the properties from [tokens.css](https://github.wwt.com/custom-apps/wwt-blue-steel/blob/main/packages/css-framework/src/styles/tokens.css) and [global.css](https://github.wwt.com/custom-apps/wwt-blue-steel/blob/main/packages/css-framework/src/styles/global.css) in your project.
103
+ We've extended the TW theme with color utilities that will automatically adjust when using dark mode. These classes require the CSS custom properties defined in the global stylesheet (`wwt-bsds.css`). If you're not bringing that stylesheet in, either disregard these classes or manually include the properties from [tokens.css](https://github.com/wwt-custom-apps/wwt-blue-steel/blob/main/packages/css-framework/src/styles/tokens.css) and [global.css](https://github.com/wwt-custom-apps/wwt-blue-steel/blob/main/packages/css-framework/src/styles/global.css) in your project.
104
104
 
105
105
 
106
106
  ### Browser Support
@@ -221,7 +221,6 @@
221
221
  }
222
222
  /* Backdrop for mobile bottom sheet */
223
223
  .bs-dropdown-deprecated-backdrop {
224
- -webkit-backdrop-filter: blur(4px);
225
224
  backdrop-filter: blur(4px);
226
225
  background: rgba(29, 30, 72, 0.05);
227
226
  bottom: 0;
@@ -658,7 +657,7 @@ Custom properties:
658
657
  padding-inline: var(--input-padding-inline, 0.75rem);
659
658
  text-overflow: ellipsis;
660
659
  }
661
- :where(.dark) .bs-select-deprecated {
660
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-select-deprecated {
662
661
  --input-bg: transparent;
663
662
  }
664
663
  .bs-select-deprecated {
@@ -671,11 +670,11 @@ Custom properties:
671
670
  .bs-select-deprecated:where([data-placeholder="true"]) {
672
671
  color: var(--input-placeholder, var(--bs-violet-100));
673
672
  }
674
- :where(.dark) .bs-select-deprecated::-moz-placeholder {
673
+ :is(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-select-deprecated::-moz-placeholder {
675
674
  --input-placeholder: var(--bs-violet-200);
676
675
  }
677
- :where(.dark) .bs-select-deprecated::placeholder,
678
- :where(.dark) .bs-select-deprecated:where([data-placeholder="true"]) {
676
+ :is(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-select-deprecated::placeholder,
677
+ :is(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-select-deprecated:where([data-placeholder="true"]) {
679
678
  --input-placeholder: var(--bs-violet-200);
680
679
  }
681
680
  .bs-select-deprecated:where(:focus-visible)::-moz-placeholder {
@@ -728,11 +727,11 @@ Custom properties:
728
727
  background-image: none;
729
728
  height: auto;
730
729
  }
731
- :where(.dark) .bs-select-deprecated {
730
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-select-deprecated {
732
731
  /* URL Encoded SVG dropdown caret so there is something there */
733
732
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
734
733
  }
735
- :where(.dark) .bs-select-deprecated:where(:disabled) {
734
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-select-deprecated:where(:disabled) {
736
735
  /* URL Encoded SVG dropdown caret so there is something there */
737
736
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23555775' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
738
737
  }
@@ -745,8 +744,8 @@ Custom properties:
745
744
  display: flex;
746
745
  padding-right: var(--input-padding-inline, 0.75rem);
747
746
  }
748
- :where(.dark) :where(button).bs-select-deprecated,
749
- :where(.dark) :where(button).bs-select-deprecated:where(:disabled) {
747
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :where(button).bs-select-deprecated,
748
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :where(button).bs-select-deprecated:where(:disabled) {
750
749
  background-image: none;
751
750
  }
752
751
  :where(button).bs-select-deprecated :where(*:first-child) {
@@ -942,7 +941,7 @@ Custom properties:
942
941
  width: max-content;
943
942
  z-index: 999;
944
943
  }
945
- :where(.dark) .bs-tooltip :where(.bs-tooltip-text) {
944
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-tooltip-deprecated :where(.bs-tooltip-deprecated-text) {
946
945
  color: var(--bs-ink-base);
947
946
  }
948
947
  /* -------------------- POSITION: UNDEFINED / TOP -------------------- */
@@ -1272,12 +1271,16 @@ This must go last to properly override the other classes
1272
1271
  margin-top: 0;
1273
1272
  }
1274
1273
  }
1275
- /* COLOR VARIANTS */
1276
- .bs-alert:where([data-variant="success"]) {
1274
+ /* COLOR VARIANTS
1275
+ 'success' has been deprecated in favor of 'positive' naming convention.
1276
+ */
1277
+ .bs-alert:where([data-variant="success"]),
1278
+ .bs-alert:where([data-variant="positive"]) {
1277
1279
  background-color: var(--bs-positive-highlight);
1278
1280
  border-color: var(--bs-ink-positive);
1279
1281
  }
1280
- .bs-alert:where([data-variant="success"]) :where(.bs-alert-icon) {
1282
+ .bs-alert:where([data-variant="success"]) :where(.bs-alert-icon),
1283
+ .bs-alert:where([data-variant="positive"]) :where(.bs-alert-icon) {
1281
1284
  color: var(--bs-ink-positive);
1282
1285
  }
1283
1286
  .bs-alert:where([data-variant="warning"]) {
@@ -1295,16 +1298,15 @@ This must go last to properly override the other classes
1295
1298
  color: var(--bs-ink-negative);
1296
1299
  }
1297
1300
  /* DARK MODE SPECIAL CASE */
1298
- .dark .bs-alert :where(.bs-alert-action) {
1299
- --btn-border-color-focused: var(--bs-text-base);
1300
- --btn-text-color: var(--bs-text-base);
1301
- --btn-text-color-hovered: var(--bs-text-base);
1301
+ :is(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-alert :where(.bs-alert-action) {
1302
+ --btn-border-color-focused: var(--bs-ink-base);
1303
+ --btn-text-color: var(--bs-ink-base);
1304
+ --btn-text-color-hovered: var(--bs-ink-base);
1302
1305
  }
1303
1306
  .bs-backdrop {
1304
1307
  position: fixed;
1305
1308
  inset: 0;
1306
- -webkit-backdrop-filter: blur(4px);
1307
- backdrop-filter: blur(4px);
1309
+ backdrop-filter: blur(4px);
1308
1310
  background: rgba(29, 30, 72, 0.05);
1309
1311
  transition-property: opacity;
1310
1312
  transition-duration: var(--bs-backdrop-transition-duration);
@@ -1498,7 +1500,7 @@ This must go last to properly override the other classes
1498
1500
  }
1499
1501
  /*
1500
1502
  Workaround for BsPopover shifting issue on BsButton scale down
1501
- See: https://github.wwt.com/custom-apps/wwt-blue-steel/pull/917
1503
+ See: https://github.com/wwt-custom-apps/wwt-blue-steel/pull/917
1502
1504
  */
1503
1505
  .bs-button:where(.bs-button-no-scale:active) {
1504
1506
  transform: scale(1);
@@ -1664,6 +1666,8 @@ See: https://github.wwt.com/custom-apps/wwt-blue-steel/pull/917
1664
1666
  --btn-padding: .25rem .75rem .375rem;
1665
1667
  /* Std button size="sm" text size is same across all media sizes */
1666
1668
  --btn-text-size: var(--bs-text-sm);
1669
+ /* Override height to ensure consistent sizing */
1670
+ height: var(--btn-height);
1667
1671
  }
1668
1672
  /* DEPRECATED */
1669
1673
  /* Text buttons: For now, text size not dependent on media size */
@@ -2157,11 +2161,11 @@ a.bs-circle-button {
2157
2161
  font-weight: var(--description-weight);
2158
2162
  line-height: var(--description-line-height);
2159
2163
  }
2160
- .bs-empty-state :where(a) {
2164
+ .bs-empty-state :where(a:not(.bs-button)) {
2161
2165
  color: var(--bs-ink-primary);
2162
2166
  text-decoration: underline;
2163
2167
  }
2164
- .bs-empty-state :where(a:hover) {
2168
+ .bs-empty-state :where(a:hover:not(.bs-button)) {
2165
2169
  cursor: pointer;
2166
2170
  }
2167
2171
  /* Call to Actions */
@@ -2302,7 +2306,7 @@ button:where(.bs-filter-button) {
2302
2306
  .bs-filter-button :where(.bs-badge) {
2303
2307
  --badge-bg: var(--bs-ink-primary);
2304
2308
  }
2305
- :where(.dark) .bs-filter-button :where(.bs-badge) {
2309
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-filter-button :where(.bs-badge) {
2306
2310
  --badge-bg: var(--bs-primary-medium);
2307
2311
  }
2308
2312
  .bs-filter-button:hover :where(.bs-badge) {
@@ -2885,8 +2889,12 @@ button:where(.bs-filter-button) {
2885
2889
  color: var(--bs-ink-white);
2886
2890
  background-color: var(--bs-neutral-base);
2887
2891
  }
2892
+ /* Size */
2893
+ .bs-inline-tab:where([data-size="sm"]) {
2894
+ height: 1.75rem;
2895
+ }
2888
2896
  /* -- Dark Mode Overrides -- */
2889
- :where(.dark .bs-inline-tab) {
2897
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-inline-tab {
2890
2898
 
2891
2899
  /* Selected & Disabled */
2892
2900
  &[data-selected]:where(:disabled, [aria-disabled="true"]) {
@@ -2910,7 +2918,7 @@ button:where(.bs-filter-button) {
2910
2918
  pointer-events: none;
2911
2919
  position: relative;
2912
2920
  }
2913
- :where(.dark) .bs-input-addon {
2921
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-input-addon {
2914
2922
  background-color: var(--input-bg, transparent);
2915
2923
  }
2916
2924
  .bs-input-addon * {
@@ -3155,6 +3163,10 @@ data-autosize-icons="true" - see above
3155
3163
  .bs-input-addon:where([data-variant="combobox"]) > :where(button:focus-visible) {
3156
3164
  outline: 1px solid var(--focus-border);
3157
3165
  }
3166
+ /* -- Small size variant -- */
3167
+ .bs-input-addon:where([data-size="sm"]) {
3168
+ --input-addon-height: 1.75rem;
3169
+ }
3158
3170
  /* !! Some styles duplicated to base/input-booleans.css !! */
3159
3171
  .bs-boolean {
3160
3172
  display: inline-flex;
@@ -3321,7 +3333,7 @@ data-autosize-icons="true" - see above
3321
3333
  overflow: hidden;
3322
3334
  white-space: nowrap;
3323
3335
  }
3324
- :where(.dark) .bs-input-button-placeholder {
3336
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-input-button-placeholder {
3325
3337
  --input-placeholder: var(--bs-violet-200);
3326
3338
  }
3327
3339
  /* -- Display Value -- */
@@ -3370,7 +3382,7 @@ data-autosize-icons="true" - see above
3370
3382
  --badge-bg: var(--bs-ink-disabled);
3371
3383
  }
3372
3384
  .bs-input-button:where([aria-disabled="true"]) :where(.bs-input-button-caret, .bs-input-button-placeholder) {
3373
- display: none;
3385
+ display: none;
3374
3386
  }
3375
3387
  .bs-input-phone :where(.bs-input-addon) > button {
3376
3388
  align-items: center;
@@ -3396,20 +3408,28 @@ data-autosize-icons="true" - see above
3396
3408
  min-width: 7.5rem;
3397
3409
  }
3398
3410
  .bs-input-search {
3411
+ align-items: center;
3412
+ background-color: var(--input-bg, var(--bs-bg-base));
3399
3413
  display: grid;
3400
3414
  grid-template-columns: 1fr 2.5rem;
3401
- align-items: center;
3402
- width: 100%;
3403
3415
  height: var(--input-search-height, 2.5rem);
3416
+ width: 100%;
3417
+
3418
+ :where(:has(.bs-input-search-input:disabled)) {
3419
+ --input-bg: var(--bs-bg-disabled);
3420
+ }
3421
+ }
3422
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-input-search {
3423
+ --input-bg: transparent;
3404
3424
  }
3405
3425
  /* -- Icon -- */
3406
3426
  .bs-input-search-icon {
3407
3427
  --icon-size: var(--search-icon-size, 1.75rem);
3408
- position: relative;
3409
3428
  grid-area: 1 / 1;
3410
- padding: var(--search-icon-padding, 0 0 0 .75rem);
3411
3429
  height: 100%;
3430
+ padding: var(--search-icon-padding, 0 0 0 .75rem);
3412
3431
  pointer-events: none;
3432
+ position: relative;
3413
3433
  z-index: 1;
3414
3434
  }
3415
3435
  .bs-input-search-icon :where(svg) {
@@ -3417,6 +3437,7 @@ data-autosize-icons="true" - see above
3417
3437
  }
3418
3438
  /* -- Input -- */
3419
3439
  .bs-input-search-input {
3440
+ --input-bg: transparent;
3420
3441
  --input-padding-inline: .75rem;
3421
3442
  grid-area: 1 / 1 / 1 / -1;
3422
3443
  pointer-events: auto;
@@ -3436,19 +3457,19 @@ data-autosize-icons="true" - see above
3436
3457
  }
3437
3458
  /* -- Button -- */
3438
3459
  .bs-input-search-button {
3439
- grid-area: 1 / 2 / 1 / -1;
3440
- display: flex;
3441
3460
  align-items: center;
3442
- justify-content: center;
3443
- height: 100%;
3444
- cursor: pointer;
3445
3461
  background-color: inherit;
3462
+ cursor: pointer;
3463
+ display: flex;
3464
+ grid-area: 1 / 2 / 1 / -1;
3465
+ height: 100%;
3466
+ justify-content: center;
3446
3467
  transition: transform var(--bs-transition-fast) var(--bs-transition-ease);
3447
3468
  }
3448
3469
  .bs-input-search-button:where(:focus-visible) {
3449
- outline: none;
3450
3470
  border-radius: .25rem;
3451
3471
  box-shadow: var(--bs-blue-base) 0px 0px 0px 1px inset;
3472
+ outline: none;
3452
3473
  }
3453
3474
  /* -- Disabled -- */
3454
3475
  .bs-input-search:where(:has(:disabled)) {
@@ -3457,30 +3478,41 @@ data-autosize-icons="true" - see above
3457
3478
  /* -- Filter Variant -- */
3458
3479
  .bs-input-search:where([data-variant="filter"]) :where(.bs-input-search-input) {
3459
3480
  --focus-border: transparent;
3460
- --input-border: transparent;
3461
3481
  --input-addon-height: 1.5rem;
3482
+ --input-border: transparent;
3462
3483
  --input-caret: var(--bs-blue-base);
3463
3484
  --input-padding-block: 0 0.125rem;
3464
3485
  --input-padding-inline: 2.5rem 0.5rem;
3465
3486
  --input-placeholder: var(--bs-ink-light);
3466
3487
  --input-text-size: var(--bs-text-sm);
3467
- --search-icon-size: 1rem;
3468
3488
  --search-icon-padding: 0;
3489
+ --search-icon-size: 1rem;
3469
3490
  }
3470
3491
  .bs-input-search:where([data-variant="filter"]):where(:focus-within) .bs-input-search-input {
3471
3492
  --input-border: transparent;
3472
3493
  }
3473
- :where(.dark) .bs-input-search:where([data-variant="filter"]) .bs-input-search-input::-moz-placeholder {
3494
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-input-search:where([data-variant="filter"]) .bs-input-search-input::-moz-placeholder {
3474
3495
  --input-placeholder: var(--bs-ink-light);
3475
3496
  }
3476
- :where(.dark) .bs-input-search:where([data-variant="filter"]) .bs-input-search-input::placeholder {
3497
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-input-search:where([data-variant="filter"]) .bs-input-search-input::placeholder {
3477
3498
  --input-placeholder: var(--bs-ink-light);
3478
3499
  }
3479
3500
  .bs-input-search:where([data-variant="filter"]):where(:has(:disabled)) .bs-input-search-input {
3480
3501
  --input-bg: var(--bs-bg-base);
3481
3502
  --input-border: transparent;
3482
3503
  }
3483
- /* !! Styles duplicated to base/input-general.css !! */
3504
+ /* -- Small size variant -- */
3505
+ .bs-input-search:where([data-size="sm"]) {
3506
+ --input-search-height: 1.75rem;
3507
+ --search-icon-size: 1.5rem;
3508
+ }
3509
+ .bs-input-search:where([data-size="sm"]) .bs-input-search-icon + .bs-input-search-input {
3510
+ padding-inline-start: 2rem;
3511
+ }
3512
+ .bs-input-search:where([data-size="sm"]) .bs-input-search-input:has(+ .bs-input-search-button) {
3513
+ padding-inline-end: 2rem;
3514
+ }
3515
+ /* !! Styles duplicated to base/input-text.css !! */
3484
3516
  /* Includes text inputs & textarea */
3485
3517
  /*
3486
3518
  Custom properties:
@@ -3506,12 +3538,12 @@ Custom properties:
3506
3538
  color: var(--bs-ink-base);
3507
3539
  font-size: var(--input-text-size, var(--bs-text-base));
3508
3540
  font-weight: 400;
3509
- height: 2.5rem;
3541
+ height: var(--input-height, 2.5rem);
3510
3542
  line-height: var(--bs-leading-lg);
3511
3543
  padding-block: var(--input-padding-block, 0.0625rem);
3512
3544
  padding-inline: var(--input-padding-inline, 0.75rem);
3513
3545
  }
3514
- :where(.dark) :is(.bs-input, .bs-textarea) {
3546
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :is(.bs-input, .bs-textarea) {
3515
3547
  --input-bg: transparent;
3516
3548
  }
3517
3549
  :is(.bs-input, .bs-textarea) {
@@ -3533,11 +3565,11 @@ Custom properties:
3533
3565
  :is(.bs-input, .bs-textarea):where([data-placeholder="true"]) {
3534
3566
  color: var(--input-placeholder, var(--bs-violet-100));
3535
3567
  }
3536
- :where(.dark) :is(.bs-input, .bs-textarea)::-moz-placeholder {
3568
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :is(.bs-input, .bs-textarea)::-moz-placeholder {
3537
3569
  --input-placeholder: var(--bs-violet-200);
3538
3570
  }
3539
- :where(.dark) :is(.bs-input, .bs-textarea)::placeholder,
3540
- :where(.dark) :is(.bs-input, .bs-textarea):where([data-placeholder="true"]) {
3571
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :is(.bs-input, .bs-textarea)::placeholder,
3572
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :is(.bs-input, .bs-textarea):where([data-placeholder="true"]) {
3541
3573
  --input-placeholder: var(--bs-violet-200);
3542
3574
  }
3543
3575
  :is(.bs-input, .bs-textarea):where(:focus-visible)::-moz-placeholder {
@@ -3581,6 +3613,14 @@ see https://bugs.chromium.org/p/chromium/issues/detail?id=89530
3581
3613
  :is(.bs-input, .bs-textarea)[disabled]::placeholder {
3582
3614
  opacity: 0;
3583
3615
  }
3616
+ /* -- Small size variant -- */
3617
+ .bs-input:where([data-size="sm"]),
3618
+ :where([data-size="sm"]) .bs-input {
3619
+ --input-height: 1.75rem;
3620
+ --input-padding-block: 0.125rem;
3621
+ --input-padding-inline: 0.5rem;
3622
+ --input-text-size: var(--bs-text-sm);
3623
+ }
3584
3624
  /* !! Some styles duplicated to base/labels.css !! */
3585
3625
  label:where(.bs-label) {
3586
3626
  display: inline-block;
@@ -3855,7 +3895,6 @@ label:where(.bs-label) {
3855
3895
  padding-top: 0.125rem;
3856
3896
  }
3857
3897
  .bs-overlay {
3858
- -webkit-backdrop-filter: blur(4px);
3859
3898
  backdrop-filter: blur(4px);
3860
3899
  background: rgba(29, 30, 72, 0.05);
3861
3900
  bottom: 0;
@@ -4053,7 +4092,7 @@ label:where(.bs-label) {
4053
4092
  --pill-background: var(--bs-purple-100);
4054
4093
  }
4055
4094
  /* Dark mode selector for complete */
4056
- :where(.dark) .bs-pill:where([data-status^="complete"]) {
4095
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-pill:where([data-status^="complete"]) {
4057
4096
  --status-color: var(--bs-purple-100);
4058
4097
  --pill-background: var(--bs-purple-400);
4059
4098
  }
@@ -4079,7 +4118,7 @@ label:where(.bs-label) {
4079
4118
  content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.5 4.5V8h1V4.5H8v-1H4.5V0h-1v3.5H0v1h3.5Z' fill='%230A0B19'/%3E%3C/svg%3E");
4080
4119
  }
4081
4120
  /* White + */
4082
- :where(.dark) .bs-pill:where([data-variant^="filter"][data-variant*="add"]):not(:disabled, [aria-disabled="true"])::after{
4121
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-pill:where([data-variant^="filter"][data-variant*="add"]):not(:disabled, [aria-disabled="true"])::after{
4083
4122
  content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3.5 4.5V8h1V4.5H8v-1H4.5V0h-1v3.5H0v1h3.5Z' fill='%23ffffff'/%3E%3C/svg%3E");
4084
4123
  }
4085
4124
  /* ------------------------------ Variant: "Filter Remove" Styles ------------------------------ */
@@ -4088,7 +4127,7 @@ label:where(.bs-label) {
4088
4127
  content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%230A0B19'/%3E%3C/svg%3E%0A");
4089
4128
  }
4090
4129
  /* White X */
4091
- :where(.dark) .bs-pill:where([data-variant^="filter"][data-variant*="remove"]):not(:disabled, [aria-disabled="true"])::after {
4130
+ :where(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) .bs-pill:where([data-variant^="filter"][data-variant*="remove"]):not(:disabled, [aria-disabled="true"])::after {
4092
4131
  content: url("data:image/svg+xml,%3Csvg width='8' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 .703 7.297 0 4 3.297.703 0 0 .703 3.297 4 0 7.297.703 8 4 4.703 7.297 8 8 7.297 4.703 4 8 .703Z' fill='%23ffffff'/%3E%3C/svg%3E%0A");
4093
4132
  }
4094
4133
  /* ------------------------------ Variant: "Filter Active" Styles DEPRECATED ------------------------------ */
@@ -4200,6 +4239,7 @@ label:where(.bs-label) {
4200
4239
 
4201
4240
  aspect-ratio: 1/1;
4202
4241
  border-radius: 50%;
4242
+ color: var(--bs-ink-primary);
4203
4243
  height: var(--profile-size);
4204
4244
  overflow: hidden;
4205
4245
  position: relative;
@@ -4235,7 +4275,7 @@ label:where(.bs-label) {
4235
4275
  .bs-profile-img:where([data-no-img]:not([data-no-img="false"]))::after {
4236
4276
  align-items: center;
4237
4277
  border: 1px solid currentColor;
4238
- color: var(--bs-ink-primary);
4278
+ color: currentColor;
4239
4279
  content: attr(data-initials);
4240
4280
  display: flex;
4241
4281
  font-size: var(--profile-text);
@@ -4486,6 +4526,79 @@ a.bs-profile:where([data-layout]):hover {
4486
4526
  .bs-switch input:where(:disabled) {
4487
4527
  cursor: default;
4488
4528
  }
4529
+ .bs-switch-button-group {
4530
+ display: flex;
4531
+ background-color: var(--bs-bg-base);
4532
+ position: relative;
4533
+ align-items: stretch;
4534
+ }
4535
+ .bs-switch-button {
4536
+ display: flex;
4537
+ flex: 1 0 0;
4538
+ height: 100%;
4539
+ justify-content: center;
4540
+ align-items: center;
4541
+ padding: 0 var(--bs-space-3);
4542
+ border: 1px solid var(--bs-border-base);
4543
+ font-weight: var(--bs-font-normal);
4544
+ background: transparent;
4545
+ font-size: var(--bs-text-sm);
4546
+ line-height:var(--bs-leading-lg);
4547
+ font-family: inherit;
4548
+ color: var(--bs-ink-base);
4549
+ cursor: pointer;
4550
+ box-sizing: border-box;
4551
+ position: relative;
4552
+ }
4553
+ .bs-switch-button:where(:first-child) {
4554
+ border-radius: 0.25rem 0 0 0.25rem;
4555
+ }
4556
+ .bs-switch-button:where(:last-child) {
4557
+ border-radius: 0 0.25rem 0.25rem 0;
4558
+ }
4559
+ .bs-switch-button:where(:not(:first-child)) {
4560
+ border-left: none;
4561
+ }
4562
+ .bs-switch-button:where(:not([data-selected]):hover) {
4563
+ color: var(--bs-ink-primary);
4564
+ }
4565
+ /* focus */
4566
+ .bs-switch-button:where(:focus-visible) {
4567
+ border: 1px solid var(--bs-border-active);
4568
+ }
4569
+ .bs-switch-button:where(:last-child):where(:focus-visible) {
4570
+ border-right: 1px solid var(--bs-border-active);
4571
+ }
4572
+ /* Selected state */
4573
+ .bs-switch-button:where([data-selected]) {
4574
+ background-color: var(--bs-primary-highlight);
4575
+ border: 1px solid var(--bs-border-active);
4576
+ color: var(--bs-ink-primary);
4577
+ font-weight: var(--bs-font-semibold);
4578
+ }
4579
+ .bs-switch-button:where(:has(+ .bs-switch-button:where([data-selected="true"]))) {
4580
+ border-right-color: transparent;
4581
+ }
4582
+ /* Size variants */
4583
+ .bs-switch-button-group:where([data-size="sm"]) {
4584
+ height: 28px;
4585
+ }
4586
+ .bs-switch-button-group:where([data-size="md"]) {
4587
+ height: 40px;
4588
+ }
4589
+ /* disabled styling */
4590
+ /* .bs-switch-button-group[data-disabled] .bs-switch-button { */
4591
+ .bs-switch-button:where(:disabled) {
4592
+ cursor: default;
4593
+ color: var(--bs-ink-disabled);
4594
+ pointer-events: none;
4595
+ }
4596
+ /* .bs-switch-button-group[data-disabled] .bs-switch-button[data-selected] { */
4597
+ .bs-switch-button:where(:disabled):where([data-selected]) {
4598
+ background-color: var(--bs-bg-disabled);
4599
+ border: 1px solid var(--bs-ink-disabled);
4600
+ color: var(--bs-ink-disabled);
4601
+ }
4489
4602
  .bs-tab-list {
4490
4603
  --active-line-max-width: 0;
4491
4604
  --active-line-offset: 0;
@@ -5117,7 +5230,11 @@ a.bs-text-button {
5117
5230
  --step-color: var(--bs-ink-warning);
5118
5231
  --progress-step-bg: var(--bs-warning-base);
5119
5232
  }
5233
+ /*
5234
+ 'error' status is deprecated, use 'negative' instead
5235
+ */
5120
5236
  :is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="error"]),
5237
+ :is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="negative"]),
5121
5238
  :is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="cancelled"]) {
5122
5239
  --step-color: var(--bs-ink-negative);
5123
5240
  --progress-step-bg: var(--bs-negative-base);
@@ -5134,12 +5251,12 @@ a.bs-text-button {
5134
5251
  --toggle-color: var(--bs-white);
5135
5252
  --top-offset: 48px;
5136
5253
  }
5137
- .dark :where(.bs-vertical-nav-wrapper) {
5254
+ :is(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :where(.bs-vertical-nav-wrapper) {
5138
5255
  --bg-color: var(--bs-bg-base);
5139
5256
  --border-color: var(--bs-border-medium);
5140
5257
  }
5141
5258
  .bs-vertical-nav-wrapper:where([data-bg-variant="bg-base"]),
5142
- .dark :where(.bs-vertical-nav-wrapper:where([data-bg-variant="bg-base"])) {
5259
+ :is(.dark, [data-theme="wwt-dark"], [data-theme="softchoice-dark"]) :where(.bs-vertical-nav-wrapper:where([data-bg-variant="bg-base"])) {
5143
5260
  --active-color: var(--bs-blue-10);
5144
5261
  --bg-color: var(--bs-bg-base);
5145
5262
  --border-color: var(--bs-border-medium);