@wwtdev/bsds-css 3.0.0-rc.41 → 3.0.0-rc.43

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.
@@ -3326,6 +3326,80 @@ data-autosize-icons="true" - see above
3326
3326
  --box-shadow: var(--bs-negative-base);
3327
3327
  --outline-color: var(--bs-negative-base);
3328
3328
  }
3329
+ /*
3330
+ HEADS-UP! Styling to look like an input is inherited from .bs-input
3331
+ */
3332
+ .bs-input-button {
3333
+ display: grid;
3334
+ grid-template-columns: auto 1fr auto auto;
3335
+ align-items: center;
3336
+ cursor: pointer;
3337
+ }
3338
+ /* -- Multiselect Count -- */
3339
+ .bs-input-button-count {
3340
+ grid-column-start: 1;
3341
+ margin-right: var(--bs-space-2);
3342
+ }
3343
+ /* -- Placeholder -- */
3344
+ .bs-input-button-placeholder {
3345
+ grid-column-start: 2;
3346
+ color: var(--input-placeholder, var(--bs-violet-100));
3347
+ text-align: left;
3348
+ text-overflow: ellipsis;
3349
+ overflow: hidden;
3350
+ white-space: nowrap;
3351
+ }
3352
+ :where(.dark) .bs-input-button-placeholder {
3353
+ --input-placeholder: var(--bs-violet-200);
3354
+ }
3355
+ /* -- Display Value -- */
3356
+ /* ...more will be coming here to handle multiselect pill display inside of input. */
3357
+ .bs-input-button-value {
3358
+ grid-column-start: 2;
3359
+ text-align: left;
3360
+ text-overflow: ellipsis;
3361
+ overflow: hidden;
3362
+ white-space: nowrap;
3363
+ }
3364
+ /* -- Clear Button -- */
3365
+ .bs-input-button-clear {
3366
+ grid-column-start: 3;
3367
+ display: flex;
3368
+ align-items: center;
3369
+ justify-content: center;
3370
+ height: 100%;
3371
+ padding: 0 var(--bs-space-3);
3372
+ cursor: pointer;
3373
+ background-color: inherit;
3374
+ transition: transform var(--bs-transition-fast) var(--bs-transition-ease);
3375
+ }
3376
+ .bs-input-button-clear:where(:focus-visible) {
3377
+ outline: none;
3378
+ border-radius: .25rem;
3379
+ box-shadow: var(--bs-blue-base) 0px 0px 0px 1px inset;
3380
+ }
3381
+ /* -- Caret Indicator -- */
3382
+ .bs-input-button-caret {
3383
+ grid-column-start: 4;
3384
+ margin-left: var(--bs-space-2);
3385
+ transition: rotate var(--bs-transition-medium) var(--bs-transition-ease);
3386
+ }
3387
+ .bs-input-button-clear + .bs-input-button-caret {
3388
+ margin-left: var(--bs-space-1);
3389
+ }
3390
+ .bs-input-button:where([aria-expanded="true"]) :where(.bs-input-button-caret) {
3391
+ rotate: 180deg;
3392
+ }
3393
+ /* -- Disabled -- */
3394
+ .bs-input-button:where([aria-disabled="true"]) {
3395
+ cursor: default;
3396
+ }
3397
+ .bs-input-button:where([aria-disabled="true"]) :where(.bs-badge) {
3398
+ --badge-bg: var(--bs-ink-disabled);
3399
+ }
3400
+ .bs-input-button:where([aria-disabled="true"]) :where(.bs-input-button-caret, .bs-input-button-placeholder) {
3401
+ display: none;
3402
+ }
3329
3403
  .bs-input-phone :where(.bs-input-addon) > button {
3330
3404
  align-items: center;
3331
3405
  background-color: inherit;
@@ -3492,13 +3566,13 @@ Custom properties:
3492
3566
  outline-width: 0px;
3493
3567
  }
3494
3568
  /* DISABLED state */
3495
- :is(.bs-input, .bs-textarea):where(:disabled) {
3569
+ :is(.bs-input, .bs-textarea):where(:disabled, [aria-disabled="true"]) {
3496
3570
  --input-border: var(--bs-ink-disabled);
3497
3571
  --input-bg: var(--bs-bg-disabled);
3498
3572
  color: var(--bs-ink-disabled);
3499
3573
  }
3500
3574
  /* Text inputs should not have a border when disabled */
3501
- :is(.bs-input, .bs-textarea):where(:disabled) {
3575
+ :is(.bs-input, .bs-textarea):where(:disabled, [aria-disabled="true"]) {
3502
3576
  --input-border-width: 0px;
3503
3577
  }
3504
3578
  /* Errors and Messages */
@@ -3533,6 +3607,9 @@ label:where(.bs-label) {
3533
3607
  font-weight: 600;
3534
3608
  line-height: var(--bs-leading-lg);
3535
3609
  }
3610
+ :where(.bs-label + .bs-input, .bs-label > .bs-input) {
3611
+ margin-top: 0.25rem;
3612
+ }
3536
3613
  /* Required asterisk */
3537
3614
  .bs-label :where([data-required="true"]) {
3538
3615
  color: var(--label-asterisk-color, var(--bs-ink-negative));
@@ -3672,7 +3749,6 @@ label:where(.bs-label) {
3672
3749
  top: 0;
3673
3750
  }
3674
3751
  .bs-option {
3675
- /* did not use "flex, flex-col, gap" in order to avoid gap spacing pain for consumers with custom cases */
3676
3752
  padding: var(--bs-space-1) var(--bs-space-2);
3677
3753
  color: var(--bs-ink-base);
3678
3754
  cursor: pointer;
@@ -5265,8 +5341,8 @@ a.bs-text-button {
5265
5341
  left: 0;
5266
5342
  width: var(--bs-popover-width, -moz-fit-content);
5267
5343
  width: var(--bs-popover-width, fit-content);
5268
- height:var(--bs-popover-height, -moz-fit-content);
5269
- height:var(--bs-popover-height, fit-content);
5344
+ height: var(--bs-popover-height, -moz-fit-content);
5345
+ height: var(--bs-popover-height, fit-content);
5270
5346
  max-width: calc(100dvw - 3rem);
5271
5347
  max-height: calc(100dvh - 3rem);
5272
5348
  padding: var(--bs-space-6);
@@ -5377,89 +5453,6 @@ a.bs-text-button {
5377
5453
  opacity: 0;
5378
5454
  transform: scale(.95);
5379
5455
  }
5380
- /*
5381
- HEADS-UP:
5382
- BsDropdown inherits base styles from its BsPopover root element
5383
- ...so some of these styles override those defaults.
5384
- */
5385
- .bs-dropdown {
5386
- background-color: var(--bs-bg-base-to-medium);
5387
- max-height: 20rem;
5388
- padding: 0;
5389
- }
5390
- /* filter could be "display: none" if mounted for it's logic, yet hidden due to using an outside input/model */
5391
- .bs-dropdown:where(:has(.bs-dropdown-filter:not([style*="display: none"]))) {
5392
- padding-top: 0;
5393
- }
5394
- .bs-dropdown :where(hr) {
5395
- margin: var(--bs-space-3) 0;
5396
- }
5397
- .bs-dropdown:where(:focus-visible) {
5398
- outline: none;
5399
- }
5400
- .bs-dropdown-list {
5401
- max-height: 20rem;
5402
- overflow-y: auto;
5403
- overscroll-behavior: contain;
5404
- padding: var(--bs-space-3) 0;
5405
- }
5406
- .bs-dropdown-list:where(:focus-visible) {
5407
- outline: none;
5408
- }
5409
- .bs-dropdown:where(:has(.bs-dropdown-filter)) :where(.bs-dropdown-list) {
5410
- padding-top: 0;
5411
- /* filter input is 4rem, so 20rem (default) - 4rem = 16rem */
5412
- max-height: 16rem;
5413
- }
5414
- /* -- FILTER -- */
5415
- .bs-dropdown-filter {
5416
- position: sticky;
5417
- top: 0;
5418
- padding: var(--bs-space-3);
5419
- /* fade to transparent in bottom padding area, so scrolling menu items under filter looks better */
5420
- background-image: linear-gradient(
5421
- var(--bs-bg-base-to-medium) calc(100% - var(--bs-space-3)),
5422
- transparent 100%
5423
- );
5424
- z-index: 1;
5425
- }
5426
- .bs-dropdown-filter-icon {
5427
- margin-left: var(--bs-space-3);
5428
- }
5429
- .bs-dropdown-filter-input {
5430
- padding-inline: var(--bs-space-2);
5431
- }
5432
- /* override form-text-fields.css style that hides placeholder when inputs are focused */
5433
- .bs-dropdown-filter-input::-moz-placeholder {
5434
- opacity: 1;
5435
- }
5436
- .bs-dropdown-filter-input::placeholder {
5437
- opacity: 1;
5438
- }
5439
- .bs-dropdown-filter-button {
5440
- border-color: transparent;
5441
- color: inherit;
5442
- cursor: pointer;
5443
- font-family: inherit;
5444
- font-size: var(--bs-text-base);
5445
- padding: 0 var(--bs-space-3);
5446
- position: relative;
5447
- text-decoration: none;
5448
- }
5449
- .bs-dropdown-filter-button:where(:focus-visible) {
5450
- border-radius: var(--bs-space-1);
5451
- box-shadow: 0px 0px 0px 1px inset var(--bs-primary-base);
5452
- }
5453
- /* -- SIZING -- */
5454
- .bs-dropdown:where([data-size="sm"]) {
5455
- --bs-popover-width: 10rem; /* 160px */
5456
- }
5457
- .bs-dropdown:where([data-size="md"]) {
5458
- --bs-popover-width: 20rem; /* 320px */
5459
- }
5460
- .bs-dropdown:where([data-size="lg"]) {
5461
- --bs-popover-width: 28rem; /* 448px */
5462
- }
5463
5456
  /*
5464
5457
  HEADS-UP:
5465
5458
  Most BsFlyout base styles come from its BsPopover root element,
@@ -5887,6 +5880,89 @@ a.bs-text-button {
5887
5880
  opacity: 0;
5888
5881
  transform: var(--toast-transform);
5889
5882
  }
5883
+ /*
5884
+ HEADS-UP:
5885
+ BsDropdown inherits base styles from its BsPopover root element
5886
+ ...so some of these styles override those defaults.
5887
+ */
5888
+ .bs-dropdown {
5889
+ background-color: var(--bs-bg-base-to-medium);
5890
+ max-height: 20rem;
5891
+ padding: 0;
5892
+ }
5893
+ /* filter could be "display: none" if mounted for it's logic, yet hidden due to using an outside input/model */
5894
+ .bs-dropdown:where(:has(.bs-dropdown-filter:not([style*="display: none"]))) {
5895
+ padding-top: 0;
5896
+ }
5897
+ .bs-dropdown :where(hr) {
5898
+ margin: var(--bs-space-3) 0;
5899
+ }
5900
+ .bs-dropdown:where(:focus-visible) {
5901
+ outline: none;
5902
+ }
5903
+ .bs-dropdown-list {
5904
+ max-height: 20rem;
5905
+ overflow-y: auto;
5906
+ overscroll-behavior: contain;
5907
+ padding: var(--bs-space-3) 0;
5908
+ }
5909
+ .bs-dropdown-list:where(:focus-visible) {
5910
+ outline: none;
5911
+ }
5912
+ .bs-dropdown:where(:has(.bs-dropdown-filter)) :where(.bs-dropdown-list) {
5913
+ padding-top: 0;
5914
+ /* filter input is 4rem, so 20rem (default) - 4rem = 16rem */
5915
+ max-height: 16rem;
5916
+ }
5917
+ /* -- FILTER -- */
5918
+ .bs-dropdown-filter {
5919
+ position: sticky;
5920
+ top: 0;
5921
+ padding: var(--bs-space-3);
5922
+ /* fade to transparent in bottom padding area, so scrolling menu items under filter looks better */
5923
+ background-image: linear-gradient(
5924
+ var(--bs-bg-base-to-medium) calc(100% - var(--bs-space-3)),
5925
+ transparent 100%
5926
+ );
5927
+ z-index: 1;
5928
+ }
5929
+ .bs-dropdown-filter-icon {
5930
+ margin-left: var(--bs-space-3);
5931
+ }
5932
+ .bs-dropdown-filter-input {
5933
+ padding-inline: var(--bs-space-2);
5934
+ }
5935
+ /* override form-text-fields.css style that hides placeholder when inputs are focused */
5936
+ .bs-dropdown-filter-input::-moz-placeholder {
5937
+ opacity: 1;
5938
+ }
5939
+ .bs-dropdown-filter-input::placeholder {
5940
+ opacity: 1;
5941
+ }
5942
+ .bs-dropdown-filter-button {
5943
+ border-color: transparent;
5944
+ color: inherit;
5945
+ cursor: pointer;
5946
+ font-family: inherit;
5947
+ font-size: var(--bs-text-base);
5948
+ padding: 0 var(--bs-space-3);
5949
+ position: relative;
5950
+ text-decoration: none;
5951
+ }
5952
+ .bs-dropdown-filter-button:where(:focus-visible) {
5953
+ border-radius: var(--bs-space-1);
5954
+ box-shadow: 0px 0px 0px 1px inset var(--bs-primary-base);
5955
+ }
5956
+ /* -- SIZING -- */
5957
+ .bs-dropdown:where([data-size="sm"]) {
5958
+ --bs-popover-width: 10rem; /* 160px */
5959
+ }
5960
+ .bs-dropdown:where([data-size="md"]) {
5961
+ --bs-popover-width: 20rem; /* 320px */
5962
+ }
5963
+ .bs-dropdown:where([data-size="lg"]) {
5964
+ --bs-popover-width: 28rem; /* 448px */
5965
+ }
5890
5966
  /*
5891
5967
  HEADS-UP:
5892
5968
  Most BsTooltip base styles come from its BsPopover root element,