@wwtdev/bsds-css 3.2.2 → 3.4.0-rc.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.
@@ -848,10 +848,10 @@ Custom properties:
848
848
  }
849
849
  /* Negative Toast Styles */
850
850
  .bs-toast-deprecated:where([data-variant^='negative']) {
851
- border-top: 4px solid var(--bs-negative-dark);
851
+ border-top: 4px solid var(--bs-negative-base);
852
852
  }
853
853
  .bs-toast-deprecated:where([data-variant^='negative']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
854
- color: var(--bs-negative-dark);
854
+ color: var(--bs-negative-base);
855
855
  }
856
856
  @media (min-width: 440px) {
857
857
  .bs-toast-deprecated {
@@ -1073,15 +1073,13 @@ This must go last to properly override the other classes
1073
1073
  transform: translateY(-50%) scale(0.5);
1074
1074
  }
1075
1075
  .bs-accordion {
1076
- --accordion-link-color: var(--bs-positive-base-fixed);
1077
- --accordion-link-outline-color: var(--bs-primary-base);
1078
1076
  --accordion-outline-color: transparent;
1079
1077
  --accordion-padding-inline: 0;
1080
1078
  --accordion-text-size: var(--bs-text-sm);
1081
1079
  border-block: 1px solid var(--bs-border-base);
1082
1080
  display: block;
1083
1081
  }
1084
- @media (min-width: 957px) {
1082
+ @media (min-width: 752px) {
1085
1083
  .bs-accordion {
1086
1084
  --accordion-padding-inline: var(--bs-space-2);
1087
1085
  --accordion-text-size: var(--bs-text-base);
@@ -1129,7 +1127,7 @@ This must go last to properly override the other classes
1129
1127
  .bs-accordion > :where(header) > :where(button) > * {
1130
1128
  vertical-align: middle;
1131
1129
  }
1132
- @media (min-width: 957px) {
1130
+ @media (min-width: 752px) {
1133
1131
  .bs-accordion :where(.bs-accordion-toggle) > * ,
1134
1132
  .bs-accordion > :where(header) > :where(button) > * {
1135
1133
  margin-right: var(--bs-space-3);
@@ -1167,7 +1165,7 @@ This must go last to properly override the other classes
1167
1165
  }
1168
1166
  .bs-accordion :where(.bs-accordion-content[data-open]:not([data-open="false"])) {
1169
1167
  grid-template-rows: 1fr;
1170
- padding-block-end: var(--bs-space-f-2);
1168
+ padding-block-end: var(--bs-space-2);
1171
1169
  }
1172
1170
  /* Accordion Group */
1173
1171
  :where(.bs-accordion[data-stacked]:not([data-stacked="false"])) + .bs-accordion:where([data-stacked]:not([data-stacked="false"])) {
@@ -1199,7 +1197,7 @@ This must go last to properly override the other classes
1199
1197
  .bs-alert:where([data-horizontal="true"]) {
1200
1198
  padding: 1rem 1.5rem;
1201
1199
  grid-template-areas: "icon title action close";
1202
- grid-template-columns: 1.125rem max-content 1fr 1rem;
1200
+ grid-template-columns: 1.125rem auto 1fr 1rem;
1203
1201
  }
1204
1202
  }
1205
1203
  .bs-alert :where(.bs-alert-icon) {
@@ -1225,6 +1223,7 @@ This must go last to properly override the other classes
1225
1223
  .bs-alert:where([data-horizontal="true"]) :where(.bs-alert-title) {
1226
1224
  font-size: 1.125rem;
1227
1225
  line-height: 1.5;
1226
+ overflow-wrap: break-word;
1228
1227
  }
1229
1228
 
1230
1229
  .bs-alert:where(:not([data-horizontal="true"])) :where(.bs-alert-icon) {
@@ -1265,6 +1264,7 @@ This must go last to properly override the other classes
1265
1264
  .bs-alert :where(.bs-alert-action) {
1266
1265
  grid-area: action;
1267
1266
  margin-top: 1rem;
1267
+ white-space: nowrap;
1268
1268
  }
1269
1269
  @media (min-width: 752px) {
1270
1270
  .bs-alert:where([data-horizontal="true"]) :where(.bs-alert-action) {
@@ -1447,7 +1447,7 @@ This must go last to properly override the other classes
1447
1447
  .bs-banner:where([data-variant="negative"]) {
1448
1448
  --banner-bg: var(--bs-accent-6-medium);
1449
1449
  }
1450
- @media (min-width: 957px) {
1450
+ @media (min-width: 752px) {
1451
1451
  .bs-banner {
1452
1452
  --banner-icon-display: inline-flex;
1453
1453
  --banner-padding: var(--banner-padding-dt);
@@ -1994,8 +1994,8 @@ a.bs-circle-button {
1994
1994
  .bs-circle-button:where([data-ghost]:not([data-ghost="false"])) {
1995
1995
  --btn-icon-bg-color: transparent;
1996
1996
  --btn-icon-stroke-color: var(--btn-main);
1997
- --btn-light: var(--bs-primary-10);
1998
- --btn-secondary: var(--bs-primary-10);
1997
+ --btn-light: transparent;
1998
+ --btn-secondary: transparent;
1999
1999
  }
2000
2000
  /* Active, Hover, Focus states */
2001
2001
  .bs-circle-button:active, .bs-circle-button:hover {
@@ -3318,6 +3318,12 @@ data-autosize-icons="true" - see above
3318
3318
  grid-template-columns: auto 1fr auto auto;
3319
3319
  align-items: center;
3320
3320
  cursor: pointer;
3321
+
3322
+ &:where([data-show-pill-group="true"]) {
3323
+ --input-height: auto;
3324
+ --input-padding-block: var(--bs-space-2);
3325
+ min-height: var(--bs-space-10);
3326
+ }
3321
3327
  }
3322
3328
  /* -- Multiselect Count -- */
3323
3329
  .bs-input-button-count {
@@ -3831,7 +3837,7 @@ label:where(.bs-label) {
3831
3837
  .bs-option:where(:not([data-multiple="true"])[aria-selected="true"]) {
3832
3838
  --description-color: var(--bs-ink-primary);
3833
3839
  background: var(--bs-bg-medium-to-light);
3834
- border-left-color: var(--bs-ink-primary);
3840
+ border-left-color: var(--bs-primary-base);
3835
3841
  color: var(--bs-ink-primary);
3836
3842
  }
3837
3843
  /* selected yet disabled...should be a very rare scenario, but need to handle it */
@@ -4015,8 +4021,9 @@ label:where(.bs-label) {
4015
4021
  font-family: inherit;
4016
4022
  font-size: var(--bs-text-sm);
4017
4023
  gap: var(--pill-gap);
4018
- height: 1.5rem;
4019
4024
  line-height: 1rem;
4025
+ max-width: 100%;
4026
+ min-height: var(--bs-pill-height);
4020
4027
  padding: 0 .375rem;
4021
4028
  position: relative;
4022
4029
  text-decoration: none;
@@ -4188,6 +4195,23 @@ label:where(.bs-label) {
4188
4195
  .bs-pill:where([data-variant^="filter"])[data-active="false"]:is(:disabled, [aria-disabled="true"]) {
4189
4196
  --pill-border: var(--bs-gray-400);
4190
4197
  }
4198
+ .bs-pill-group {
4199
+ --pill-group-max-lines: 3;
4200
+ }
4201
+ .bs-pill-group-pills {
4202
+ /* Mainly for css-component-only usage */
4203
+ --default-max-height: calc(var(--pill-group-max-lines) * (var(--bs-pill-height) + var(--bs-space-2)));
4204
+ display: flex;
4205
+ flex-wrap: wrap;
4206
+ gap: var(--bs-space-2);
4207
+ max-height: var(--pill-group-max-height, var(--default-max-height));
4208
+ overflow: hidden;
4209
+ }
4210
+ .bs-pill-group-pills:where([data-expanded="true"]) {
4211
+ margin-bottom: var(--bs-space-2);
4212
+ max-height: none;
4213
+ overflow: visible;
4214
+ }
4191
4215
  .bs-profile-details {
4192
4216
  color: var(--bs-ink-light);
4193
4217
  font-size: var(--bs-text-sm);
@@ -4359,14 +4383,14 @@ a.bs-profile:where([data-layout]):hover {
4359
4383
  --bs-spinner-color-1: white;
4360
4384
  --bs-spinner-color-2: white;
4361
4385
  }
4362
- :where(#bs-spinner-gradient stop) {
4386
+ .bs-spinner:where([data-variant="gradient"]) :where(linearGradient stop) {
4363
4387
  stop-color: var(--bs-secondary-base-fixed);
4364
4388
  }
4365
- :where(#bs-spinner-gradient stop:first-child) {
4389
+ .bs-spinner:where([data-variant="gradient"]) :where(linearGradient stop:first-child) {
4366
4390
  stop-color: var(--bs-primary-base-fixed);
4367
4391
  }
4368
- :where(#bs-spinner-gradient stop:last-child) {
4369
- stop-color: var(--bs-negative-dark);
4392
+ .bs-spinner:where([data-variant="gradient"]) :where(linearGradient stop:last-child) {
4393
+ stop-color: var(--bs-negative-base);
4370
4394
  }
4371
4395
  @keyframes bs-spin {
4372
4396
  0% {
@@ -5942,65 +5966,90 @@ a.bs-text-button {
5942
5966
  --bs-pop-header-padding: var(--bs-space-6);
5943
5967
  --bs-pop-body-padding: var(--bs-space-6);
5944
5968
  --bs-pop-footer-padding: var(--bs-space-6);
5945
- margin: 0;
5969
+ --bs-popover-height: 100dvh;
5970
+ --bs-popover-width: 100dvw;
5946
5971
  border-radius: 0;
5972
+ margin: 0;
5973
+ max-height: unset;
5974
+ max-width: 100dvw;
5975
+
5976
+ /* -- SHADOWS -- */
5977
+ &:where([data-place-self="left"]) {
5978
+ box-shadow: var(--bs-shadow-drawerRight);
5979
+ }
5980
+
5981
+ &:where([data-place-self="right"]) {
5982
+ box-shadow: var(--bs-shadow-drawerLeft);
5983
+ }
5984
+
5985
+ /* -- RESIZING -- */
5986
+ &:where([data-resize]) {
5987
+ /* using clip instead of hidden, to allow resizer hover target
5988
+ to extend outside of the flyout bounds via overflow-clip-margin */
5989
+ overflow: clip;
5990
+ }
5991
+
5992
+ /* right flyout */
5993
+ &:where([data-resize="right"]) {
5994
+ overflow-clip-margin: 5px;
5995
+ }
5996
+
5997
+ /* left flyout - not using same as right flyout, to avoid overlapping potential scrollbar too much */
5998
+ &:where([data-resize="left"]) {
5999
+ overflow-clip-margin: 7px;
6000
+ }
6001
+
6002
+ /*
6003
+ Everything below is desktop-only. Sizing and resize values are gated to
6004
+ widths above the mobile breakpoint, so at mobile widths the flyout falls
6005
+ back to the full-screen defaults above with no JS cleanup needed. The
6006
+ resizer writes its values to the --bs-flyout-resize-* custom properties.
6007
+ */
6008
+ @media (min-width: 752px) {
6009
+ &:where([data-size="sm"]) {
6010
+ --bs-popover-width: 22.5rem; /* 360px */
6011
+ }
6012
+
6013
+ &:where([data-size="md"]) {
6014
+ --bs-popover-width: 28.75rem; /* 460px */
6015
+ }
6016
+
6017
+ &:where([data-size="lg"]) {
6018
+ --bs-popover-width: 33.4375rem; /* 535px */
6019
+ }
6020
+
6021
+ &:where([data-size="fit-content"]) {
6022
+ --bs-popover-width: fit-content;
6023
+ }
6024
+
6025
+ &:where([data-resize]) {
6026
+ max-width: var(--bs-flyout-resize-max);
6027
+ min-width: var(--bs-flyout-resize-min);
6028
+ transform: translateX(var(--bs-flyout-resize-pushed, 0px));
6029
+ width: var(--bs-flyout-resize-width, var(--bs-popover-width));
6030
+ }
6031
+ }
5947
6032
  }
5948
6033
  /* targeting header too, so consumer could just do: <BsPopHeader>My Title</BsPopHeader> */
5949
6034
  .bs-flyout :where(.bs-pop-header, .bs-pop-title) {
5950
6035
  font-size: var(--bs-text-lg);
5951
6036
  }
5952
- /* -- SIZING -- */
5953
- .bs-flyout {
5954
- --bs-popover-height: 100dvh;
5955
- max-height: unset;
5956
- max-width: 100dvw;
5957
- }
5958
- .bs-flyout:where([data-size="sm"]) {
5959
- --bs-popover-width: 22.5rem; /* 360px */
5960
- }
5961
- .bs-flyout:where([data-size="md"]) {
5962
- --bs-popover-width: 28.75rem; /* 460px */
5963
- }
5964
- .bs-flyout:where([data-size="lg"]) {
5965
- --bs-popover-width: 33.4375rem; /* 535px */
5966
- }
5967
- /* -- RESIZING -- */
5968
- .bs-flyout:where([data-resize]) {
5969
- /* using clip instead of hidden, to allow resizer hover target
5970
- to extend outside of the flyout bounds via overflow-clip-margin */
5971
- overflow: clip;
5972
- transform: translateX(var(--bs-flyout-resize-pushed, 0px));
5973
- }
6037
+ /* -- RESIZER -- */
5974
6038
  .bs-flyout-resizer {
5975
6039
  cursor: col-resize;
5976
6040
  inset-block: 0;
5977
6041
  position: absolute;
5978
- width: 10px;
5979
- z-index: 1;
5980
6042
  /* prevents browser from trying to hijack touch interactions to handle on its own */
5981
6043
  touch-action: none;
5982
- }
5983
- /* right flyout */
5984
- .bs-flyout:where([data-resize="right"]) {
5985
- overflow-clip-margin: 5px;
6044
+ width: 10px;
6045
+ z-index: 1;
5986
6046
  }
5987
6047
  .bs-flyout:where([data-resize="right"]) :where(.bs-flyout-resizer) {
5988
6048
  left: -5px;
5989
6049
  }
5990
- /* left flyout - not using same as right flyout, to avoid overlapping potential scrollbar too much */
5991
- .bs-flyout:where([data-resize="left"]) {
5992
- overflow-clip-margin: 7px;
5993
- }
5994
6050
  .bs-flyout:where([data-resize="left"]) :where(.bs-flyout-resizer) {
5995
6051
  right: -7px;
5996
6052
  }
5997
- /* -- SHADOWS -- */
5998
- .bs-flyout:where([data-place-self="left"]) {
5999
- box-shadow: var(--bs-shadow-drawerRight);
6000
- }
6001
- .bs-flyout:where([data-place-self="right"]) {
6002
- box-shadow: var(--bs-shadow-drawerLeft);
6003
- }
6004
6053
  /* -- TRANSITIONS -- */
6005
6054
  .bs-flyout-enter-active,
6006
6055
  .bs-flyout-leave-active {
@@ -6011,18 +6060,27 @@ a.bs-text-button {
6011
6060
  }
6012
6061
  .bs-flyout-enter-active .bs-flyout,
6013
6062
  .bs-flyout-leave-active .bs-flyout {
6014
- transition-property: transform;
6015
6063
  transition-duration: var(--bs-popover-transition-duration);
6064
+ transition-property: transform;
6016
6065
  transition-timing-function: var(--bs-transition-cubic);
6017
6066
  }
6018
6067
  /* The 105% is so the huge shadow on the flyout ends-up off-screen too, otherwise at 100%, you notice it cut out when the panel closes */
6019
6068
  .bs-flyout-enter-from .bs-flyout[data-place-self="left"],
6020
6069
  .bs-flyout-leave-to .bs-flyout[data-place-self="left"] {
6021
- transform: translate(calc(-105% + var(--bs-flyout-resize-pushed, 0px)));
6070
+ transform: translate(-105%);
6071
+
6072
+ /* preserve any resize push offset while sliding in/out (desktop-only, matching the resize sizing above) */
6073
+ @media (min-width: 752px) {
6074
+ transform: translate(calc(-105% + var(--bs-flyout-resize-pushed, 0px)));
6075
+ }
6022
6076
  }
6023
6077
  .bs-flyout-enter-from .bs-flyout[data-place-self="right"],
6024
6078
  .bs-flyout-leave-to .bs-flyout[data-place-self="right"] {
6025
- transform: translate(calc(105% + var(--bs-flyout-resize-pushed, 0px)));
6079
+ transform: translate(105%);
6080
+
6081
+ @media (min-width: 752px) {
6082
+ transform: translate(calc(105% + var(--bs-flyout-resize-pushed, 0px)));
6083
+ }
6026
6084
  }
6027
6085
  /*
6028
6086
  HEADS-UP: