@wwtdev/bsds-css 3.2.2 → 3.3.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/wwt-bsds.css CHANGED
@@ -33,7 +33,7 @@
33
33
  --bs-gold-500: #997958;
34
34
  --bs-gray-50: #f7f7fc;
35
35
  --bs-gray-100: #f0f0fa;
36
- --bs-gray-150: #e4e4eb;
36
+ --bs-gray-150: #dcdde9;
37
37
  --bs-gray-200: #c9cad9;
38
38
  --bs-gray-300: #a3a4b7;
39
39
  --bs-gray-400: #4e4f5f;
@@ -227,28 +227,29 @@
227
227
  rgba(22, 47, 180, 0.05) 283.2deg,
228
228
  rgba(227, 28, 121, 0.05) 414.4deg
229
229
  );
230
- --bs-space-0: 0;
231
- --bs-space-1: 0.25rem;
232
- --bs-space-2: 0.5rem;
233
- --bs-space-3: 0.75rem;
234
- --bs-space-4: 1rem;
235
- --bs-space-6: 1.5rem;
236
- --bs-space-8: 2rem;
237
- --bs-space-12: 3rem;
238
- --bs-space-16: 4rem;
239
- --bs-space-24: 6rem;
240
- --bs-space-32: 8rem;
241
- --bs-space-none: 0;
242
- --bs-space-3xs: 0.25rem;
243
- --bs-space-2xs: 0.5rem;
244
- --bs-space-xs: 0.75rem;
245
- --bs-space-sm: 1rem;
246
- --bs-space-md: 1.5rem;
247
- --bs-space-lg: 2rem;
248
- --bs-space-xl: 3rem;
249
- --bs-space-2xl: 4rem;
250
- --bs-space-3xl: 6rem;
251
- --bs-space-4xl: 8rem;
230
+ --bs-space-0: calc(var(--bs-space) * 0);
231
+ --bs-space-1: calc(var(--bs-space) * 1);
232
+ --bs-space-2: calc(var(--bs-space) * 2);
233
+ --bs-space-3: calc(var(--bs-space) * 3);
234
+ --bs-space-4: calc(var(--bs-space) * 4);
235
+ --bs-space-6: calc(var(--bs-space) * 6);
236
+ --bs-space-8: calc(var(--bs-space) * 8);
237
+ --bs-space-12: calc(var(--bs-space) * 12);
238
+ --bs-space-16: calc(var(--bs-space) * 16);
239
+ --bs-space-24: calc(var(--bs-space) * 24);
240
+ --bs-space-32: calc(var(--bs-space) * 32);
241
+ --bs-space: 0.25rem;
242
+ --bs-space-none: var(--bs-space-0);
243
+ --bs-space-3xs: var(--bs-space-1);
244
+ --bs-space-2xs: var(--bs-space-2);
245
+ --bs-space-xs: var(--bs-space-3);
246
+ --bs-space-sm: var(--bs-space-4);
247
+ --bs-space-md: var(--bs-space-6);
248
+ --bs-space-lg: var(--bs-space-8);
249
+ --bs-space-xl: var(--bs-space-12);
250
+ --bs-space-2xl: var(--bs-space-16);
251
+ --bs-space-3xl: var(--bs-space-24);
252
+ --bs-space-4xl: var(--bs-space-32);
252
253
  --bs-text-xs: 0.75rem;
253
254
  --bs-text-sm: 0.875rem;
254
255
  --bs-text-base: 1rem;
@@ -302,6 +303,9 @@
302
303
  /* Dynamic width set by the navigation component for page layout */
303
304
  --bs-page-nav-width: 0px;
304
305
 
306
+ /* Pill */
307
+ --bs-pill-height: 1.5rem;
308
+
305
309
  /* Table */
306
310
  --bs-table-cell-padding-xs: var(--bs-space-2);
307
311
  --bs-table-cell-padding-sm: var(--bs-space-3);
@@ -405,7 +409,7 @@ html:where(:has(.dark, [data-theme="wwt-dark"])),
405
409
  /* Ink */
406
410
  --bs-ink-base: var(--bs-white);
407
411
  --bs-ink-medium: var(--bs-gray-100);
408
- --bs-ink-light: var(--bs-gray-200);
412
+ --bs-ink-light: var(--bs-gray-150);
409
413
  --bs-ink-disabled: rgba(163, 164, 183, 0.7); /* gray-300 at 70% */
410
414
  --bs-ink-primary: var(--bs-blue-100);
411
415
  --bs-ink-secondary: var(--bs-plum-100);
@@ -570,7 +574,7 @@ html:where(:has(.dark, [data-theme="wwt-dark"])),
570
574
  --bs-ink-disabled: rgba(78, 79, 95, 0.6); /* gray-400 at 60% */
571
575
  --bs-ink-invert-base: var(--bs-white);
572
576
  --bs-ink-invert-medium: var(--bs-gray-100);
573
- --bs-ink-invert-light: var(--bs-gray-200);
577
+ --bs-ink-invert-light: var(--bs-gray-150);
574
578
  --bs-ink-primary: var(--bs-blue-500);
575
579
  --bs-ink-secondary: var(--bs-plum-400);
576
580
  --bs-ink-accent-1: var(--bs-royal-400);
@@ -1395,7 +1399,7 @@ table {
1395
1399
  }
1396
1400
  thead {
1397
1401
  color: var(--bs-ink-base);
1398
- font-size: var(--bs-font-base);
1402
+ font-size: var(--bs-text-base);
1399
1403
  font-weight: 600;
1400
1404
  }
1401
1405
  tbody {
@@ -2305,10 +2309,10 @@ Custom properties:
2305
2309
  }
2306
2310
  /* Negative Toast Styles */
2307
2311
  .bs-toast-deprecated:where([data-variant^='negative']) {
2308
- border-top: 4px solid var(--bs-negative-dark);
2312
+ border-top: 4px solid var(--bs-negative-base);
2309
2313
  }
2310
2314
  .bs-toast-deprecated:where([data-variant^='negative']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
2311
- color: var(--bs-negative-dark);
2315
+ color: var(--bs-negative-base);
2312
2316
  }
2313
2317
  @media (min-width: 440px) {
2314
2318
  .bs-toast-deprecated {
@@ -2530,15 +2534,13 @@ This must go last to properly override the other classes
2530
2534
  transform: translateY(-50%) scale(0.5);
2531
2535
  }
2532
2536
  .bs-accordion {
2533
- --accordion-link-color: var(--bs-positive-base-fixed);
2534
- --accordion-link-outline-color: var(--bs-primary-base);
2535
2537
  --accordion-outline-color: transparent;
2536
2538
  --accordion-padding-inline: 0;
2537
2539
  --accordion-text-size: var(--bs-text-sm);
2538
2540
  border-block: 1px solid var(--bs-border-base);
2539
2541
  display: block;
2540
2542
  }
2541
- @media (min-width: 957px) {
2543
+ @media (min-width: 752px) {
2542
2544
  .bs-accordion {
2543
2545
  --accordion-padding-inline: var(--bs-space-2);
2544
2546
  --accordion-text-size: var(--bs-text-base);
@@ -2586,7 +2588,7 @@ This must go last to properly override the other classes
2586
2588
  .bs-accordion > :where(header) > :where(button) > * {
2587
2589
  vertical-align: middle;
2588
2590
  }
2589
- @media (min-width: 957px) {
2591
+ @media (min-width: 752px) {
2590
2592
  .bs-accordion :where(.bs-accordion-toggle) > * ,
2591
2593
  .bs-accordion > :where(header) > :where(button) > * {
2592
2594
  margin-right: var(--bs-space-3);
@@ -2624,7 +2626,7 @@ This must go last to properly override the other classes
2624
2626
  }
2625
2627
  .bs-accordion :where(.bs-accordion-content[data-open]:not([data-open="false"])) {
2626
2628
  grid-template-rows: 1fr;
2627
- padding-block-end: var(--bs-space-f-2);
2629
+ padding-block-end: var(--bs-space-2);
2628
2630
  }
2629
2631
  /* Accordion Group */
2630
2632
  :where(.bs-accordion[data-stacked]:not([data-stacked="false"])) + .bs-accordion:where([data-stacked]:not([data-stacked="false"])) {
@@ -2656,7 +2658,7 @@ This must go last to properly override the other classes
2656
2658
  .bs-alert:where([data-horizontal="true"]) {
2657
2659
  padding: 1rem 1.5rem;
2658
2660
  grid-template-areas: "icon title action close";
2659
- grid-template-columns: 1.125rem max-content 1fr 1rem;
2661
+ grid-template-columns: 1.125rem auto 1fr 1rem;
2660
2662
  }
2661
2663
  }
2662
2664
  .bs-alert :where(.bs-alert-icon) {
@@ -2682,6 +2684,7 @@ This must go last to properly override the other classes
2682
2684
  .bs-alert:where([data-horizontal="true"]) :where(.bs-alert-title) {
2683
2685
  font-size: 1.125rem;
2684
2686
  line-height: 1.5;
2687
+ overflow-wrap: break-word;
2685
2688
  }
2686
2689
 
2687
2690
  .bs-alert:where(:not([data-horizontal="true"])) :where(.bs-alert-icon) {
@@ -2722,6 +2725,7 @@ This must go last to properly override the other classes
2722
2725
  .bs-alert :where(.bs-alert-action) {
2723
2726
  grid-area: action;
2724
2727
  margin-top: 1rem;
2728
+ white-space: nowrap;
2725
2729
  }
2726
2730
  @media (min-width: 752px) {
2727
2731
  .bs-alert:where([data-horizontal="true"]) :where(.bs-alert-action) {
@@ -2904,7 +2908,7 @@ This must go last to properly override the other classes
2904
2908
  .bs-banner:where([data-variant="negative"]) {
2905
2909
  --banner-bg: var(--bs-accent-6-medium);
2906
2910
  }
2907
- @media (min-width: 957px) {
2911
+ @media (min-width: 752px) {
2908
2912
  .bs-banner {
2909
2913
  --banner-icon-display: inline-flex;
2910
2914
  --banner-padding: var(--banner-padding-dt);
@@ -3451,8 +3455,8 @@ a.bs-circle-button {
3451
3455
  .bs-circle-button:where([data-ghost]:not([data-ghost="false"])) {
3452
3456
  --btn-icon-bg-color: transparent;
3453
3457
  --btn-icon-stroke-color: var(--btn-main);
3454
- --btn-light: var(--bs-primary-10);
3455
- --btn-secondary: var(--bs-primary-10);
3458
+ --btn-light: transparent;
3459
+ --btn-secondary: transparent;
3456
3460
  }
3457
3461
  /* Active, Hover, Focus states */
3458
3462
  .bs-circle-button:active, .bs-circle-button:hover {
@@ -5288,7 +5292,7 @@ label:where(.bs-label) {
5288
5292
  .bs-option:where(:not([data-multiple="true"])[aria-selected="true"]) {
5289
5293
  --description-color: var(--bs-ink-primary);
5290
5294
  background: var(--bs-bg-medium-to-light);
5291
- border-left-color: var(--bs-ink-primary);
5295
+ border-left-color: var(--bs-primary-base);
5292
5296
  color: var(--bs-ink-primary);
5293
5297
  }
5294
5298
  /* selected yet disabled...should be a very rare scenario, but need to handle it */
@@ -5472,8 +5476,9 @@ label:where(.bs-label) {
5472
5476
  font-family: inherit;
5473
5477
  font-size: var(--bs-text-sm);
5474
5478
  gap: var(--pill-gap);
5475
- height: 1.5rem;
5476
5479
  line-height: 1rem;
5480
+ max-width: 100%;
5481
+ min-height: var(--bs-pill-height);
5477
5482
  padding: 0 .375rem;
5478
5483
  position: relative;
5479
5484
  text-decoration: none;
@@ -5645,6 +5650,23 @@ label:where(.bs-label) {
5645
5650
  .bs-pill:where([data-variant^="filter"])[data-active="false"]:is(:disabled, [aria-disabled="true"]) {
5646
5651
  --pill-border: var(--bs-gray-400);
5647
5652
  }
5653
+ .bs-pill-group {
5654
+ --pill-group-max-lines: 3;
5655
+ }
5656
+ .bs-pill-group-pills {
5657
+ /* Mainly for css-component-only usage */
5658
+ --default-max-height: calc(var(--pill-group-max-lines) * (var(--bs-pill-height) + var(--bs-space-2)));
5659
+ display: flex;
5660
+ flex-wrap: wrap;
5661
+ gap: var(--bs-space-2);
5662
+ max-height: var(--pill-group-max-height, var(--default-max-height));
5663
+ overflow: hidden;
5664
+ }
5665
+ .bs-pill-group-pills:where([data-expanded="true"]) {
5666
+ margin-bottom: var(--bs-space-2);
5667
+ max-height: none;
5668
+ overflow: visible;
5669
+ }
5648
5670
  .bs-profile-details {
5649
5671
  color: var(--bs-ink-light);
5650
5672
  font-size: var(--bs-text-sm);
@@ -5816,14 +5838,14 @@ a.bs-profile:where([data-layout]):hover {
5816
5838
  --bs-spinner-color-1: white;
5817
5839
  --bs-spinner-color-2: white;
5818
5840
  }
5819
- :where(#bs-spinner-gradient stop) {
5841
+ .bs-spinner:where([data-variant="gradient"]) :where(linearGradient stop) {
5820
5842
  stop-color: var(--bs-secondary-base-fixed);
5821
5843
  }
5822
- :where(#bs-spinner-gradient stop:first-child) {
5844
+ .bs-spinner:where([data-variant="gradient"]) :where(linearGradient stop:first-child) {
5823
5845
  stop-color: var(--bs-primary-base-fixed);
5824
5846
  }
5825
- :where(#bs-spinner-gradient stop:last-child) {
5826
- stop-color: var(--bs-negative-dark);
5847
+ .bs-spinner:where([data-variant="gradient"]) :where(linearGradient stop:last-child) {
5848
+ stop-color: var(--bs-negative-base);
5827
5849
  }
5828
5850
  @keyframes bs-spin {
5829
5851
  0% {
@@ -7399,65 +7421,90 @@ a.bs-text-button {
7399
7421
  --bs-pop-header-padding: var(--bs-space-6);
7400
7422
  --bs-pop-body-padding: var(--bs-space-6);
7401
7423
  --bs-pop-footer-padding: var(--bs-space-6);
7402
- margin: 0;
7424
+ --bs-popover-height: 100dvh;
7425
+ --bs-popover-width: 100dvw;
7403
7426
  border-radius: 0;
7427
+ margin: 0;
7428
+ max-height: unset;
7429
+ max-width: 100dvw;
7430
+
7431
+ /* -- SHADOWS -- */
7432
+ &:where([data-place-self="left"]) {
7433
+ box-shadow: var(--bs-shadow-drawerRight);
7434
+ }
7435
+
7436
+ &:where([data-place-self="right"]) {
7437
+ box-shadow: var(--bs-shadow-drawerLeft);
7438
+ }
7439
+
7440
+ /* -- RESIZING -- */
7441
+ &:where([data-resize]) {
7442
+ /* using clip instead of hidden, to allow resizer hover target
7443
+ to extend outside of the flyout bounds via overflow-clip-margin */
7444
+ overflow: clip;
7445
+ }
7446
+
7447
+ /* right flyout */
7448
+ &:where([data-resize="right"]) {
7449
+ overflow-clip-margin: 5px;
7450
+ }
7451
+
7452
+ /* left flyout - not using same as right flyout, to avoid overlapping potential scrollbar too much */
7453
+ &:where([data-resize="left"]) {
7454
+ overflow-clip-margin: 7px;
7455
+ }
7456
+
7457
+ /*
7458
+ Everything below is desktop-only. Sizing and resize values are gated to
7459
+ widths above the mobile breakpoint, so at mobile widths the flyout falls
7460
+ back to the full-screen defaults above with no JS cleanup needed. The
7461
+ resizer writes its values to the --bs-flyout-resize-* custom properties.
7462
+ */
7463
+ @media (min-width: 752px) {
7464
+ &:where([data-size="sm"]) {
7465
+ --bs-popover-width: 22.5rem; /* 360px */
7466
+ }
7467
+
7468
+ &:where([data-size="md"]) {
7469
+ --bs-popover-width: 28.75rem; /* 460px */
7470
+ }
7471
+
7472
+ &:where([data-size="lg"]) {
7473
+ --bs-popover-width: 33.4375rem; /* 535px */
7474
+ }
7475
+
7476
+ &:where([data-size="fit-content"]) {
7477
+ --bs-popover-width: fit-content;
7478
+ }
7479
+
7480
+ &:where([data-resize]) {
7481
+ max-width: var(--bs-flyout-resize-max);
7482
+ min-width: var(--bs-flyout-resize-min);
7483
+ transform: translateX(var(--bs-flyout-resize-pushed, 0px));
7484
+ width: var(--bs-flyout-resize-width, var(--bs-popover-width));
7485
+ }
7486
+ }
7404
7487
  }
7405
7488
  /* targeting header too, so consumer could just do: <BsPopHeader>My Title</BsPopHeader> */
7406
7489
  .bs-flyout :where(.bs-pop-header, .bs-pop-title) {
7407
7490
  font-size: var(--bs-text-lg);
7408
7491
  }
7409
- /* -- SIZING -- */
7410
- .bs-flyout {
7411
- --bs-popover-height: 100dvh;
7412
- max-height: unset;
7413
- max-width: 100dvw;
7414
- }
7415
- .bs-flyout:where([data-size="sm"]) {
7416
- --bs-popover-width: 22.5rem; /* 360px */
7417
- }
7418
- .bs-flyout:where([data-size="md"]) {
7419
- --bs-popover-width: 28.75rem; /* 460px */
7420
- }
7421
- .bs-flyout:where([data-size="lg"]) {
7422
- --bs-popover-width: 33.4375rem; /* 535px */
7423
- }
7424
- /* -- RESIZING -- */
7425
- .bs-flyout:where([data-resize]) {
7426
- /* using clip instead of hidden, to allow resizer hover target
7427
- to extend outside of the flyout bounds via overflow-clip-margin */
7428
- overflow: clip;
7429
- transform: translateX(var(--bs-flyout-resize-pushed, 0px));
7430
- }
7492
+ /* -- RESIZER -- */
7431
7493
  .bs-flyout-resizer {
7432
7494
  cursor: col-resize;
7433
7495
  inset-block: 0;
7434
7496
  position: absolute;
7435
- width: 10px;
7436
- z-index: 1;
7437
7497
  /* prevents browser from trying to hijack touch interactions to handle on its own */
7438
7498
  touch-action: none;
7439
- }
7440
- /* right flyout */
7441
- .bs-flyout:where([data-resize="right"]) {
7442
- overflow-clip-margin: 5px;
7499
+ width: 10px;
7500
+ z-index: 1;
7443
7501
  }
7444
7502
  .bs-flyout:where([data-resize="right"]) :where(.bs-flyout-resizer) {
7445
7503
  left: -5px;
7446
7504
  }
7447
- /* left flyout - not using same as right flyout, to avoid overlapping potential scrollbar too much */
7448
- .bs-flyout:where([data-resize="left"]) {
7449
- overflow-clip-margin: 7px;
7450
- }
7451
7505
  .bs-flyout:where([data-resize="left"]) :where(.bs-flyout-resizer) {
7452
7506
  right: -7px;
7453
7507
  }
7454
- /* -- SHADOWS -- */
7455
- .bs-flyout:where([data-place-self="left"]) {
7456
- box-shadow: var(--bs-shadow-drawerRight);
7457
- }
7458
- .bs-flyout:where([data-place-self="right"]) {
7459
- box-shadow: var(--bs-shadow-drawerLeft);
7460
- }
7461
7508
  /* -- TRANSITIONS -- */
7462
7509
  .bs-flyout-enter-active,
7463
7510
  .bs-flyout-leave-active {
@@ -7468,18 +7515,27 @@ a.bs-text-button {
7468
7515
  }
7469
7516
  .bs-flyout-enter-active .bs-flyout,
7470
7517
  .bs-flyout-leave-active .bs-flyout {
7471
- transition-property: transform;
7472
7518
  transition-duration: var(--bs-popover-transition-duration);
7519
+ transition-property: transform;
7473
7520
  transition-timing-function: var(--bs-transition-cubic);
7474
7521
  }
7475
7522
  /* 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 */
7476
7523
  .bs-flyout-enter-from .bs-flyout[data-place-self="left"],
7477
7524
  .bs-flyout-leave-to .bs-flyout[data-place-self="left"] {
7478
- transform: translate(calc(-105% + var(--bs-flyout-resize-pushed, 0px)));
7525
+ transform: translate(-105%);
7526
+
7527
+ /* preserve any resize push offset while sliding in/out (desktop-only, matching the resize sizing above) */
7528
+ @media (min-width: 752px) {
7529
+ transform: translate(calc(-105% + var(--bs-flyout-resize-pushed, 0px)));
7530
+ }
7479
7531
  }
7480
7532
  .bs-flyout-enter-from .bs-flyout[data-place-self="right"],
7481
7533
  .bs-flyout-leave-to .bs-flyout[data-place-self="right"] {
7482
- transform: translate(calc(105% + var(--bs-flyout-resize-pushed, 0px)));
7534
+ transform: translate(105%);
7535
+
7536
+ @media (min-width: 752px) {
7537
+ transform: translate(calc(105% + var(--bs-flyout-resize-pushed, 0px)));
7538
+ }
7483
7539
  }
7484
7540
  /*
7485
7541
  HEADS-UP:
@@ -8849,12 +8905,6 @@ a.bs-text-button {
8849
8905
  .bs-bg-ink-positive {
8850
8906
  background-color: var(--bs-ink-positive);
8851
8907
  }
8852
- .bs-text-ink-ecomm-positive {
8853
- color: var(--bs-ink-ecomm-positive);
8854
- }
8855
- .bs-bg-ink-ecomm-positive {
8856
- background-color: var(--bs-ink-ecomm-positive);
8857
- }
8858
8908
  .bs-text-ink-warning {
8859
8909
  color: var(--bs-ink-warning);
8860
8910
  }