@wwtdev/bsds-css 3.0.0-rc.45 → 3.0.0-rc.47

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.
@@ -765,129 +765,131 @@ Custom properties:
765
765
  }
766
766
  /* Base Toast Styles */
767
767
  .bs-toast-deprecated {
768
- --toast-transform: translate(0, calc(100% + 1.5rem));
768
+ --toast-transform: translate(0, calc(100% + 1.5rem));
769
769
 
770
- background-color: var(--bs-bg-base-to-light);
771
- border-top: 4px solid var(--bs-primary-base);
772
- bottom: 1.5rem;
773
- box-shadow: var(--bs-shadow-contentMedium);
774
- left: 0;
775
- margin-left: 1.5rem;
776
- margin-right: 1.5rem;
777
- opacity: 0;
778
- position: fixed;
779
- right: 0;
780
- transform: var(--toast-transform);
781
- transition-duration: var(--bs-transition-medium);
782
- transition-property: transform, opacity;
783
- transition-timing-function: var(--bs-transition-ease);
784
- /* Clamp width for mobile -> full screen */
785
- width: clamp(17rem, calc(100vw - 3rem), 25rem);
786
- z-index: 999;
770
+ background-color: var(--bs-bg-base-elevated);
771
+ border-top: 4px solid var(--bs-primary-base);
772
+ bottom: 1.5rem;
773
+ box-shadow: var(--bs-shadow-contentMedium);
774
+ left: 0;
775
+ margin-left: 1.5rem;
776
+ margin-right: 1.5rem;
777
+ opacity: 0;
778
+ position: fixed;
779
+ right: 0;
780
+ transform: var(--toast-transform);
781
+ transition-duration: 200ms;
782
+ transition-property: transform, opacity;
783
+ transition-timing-function: ease;
784
+ /* Clamp width for mobile -> full screen */
785
+ width: clamp(17rem, calc(100vw - 3rem), 25rem);
786
+ z-index: 999;
787
787
  }
788
788
  .bs-toast-deprecated:where([data-stacked]:not([data-stacked="false"])) {
789
- bottom: auto;
790
- left: auto;
791
- position: static;
792
- right: auto;
793
- z-index: auto;
789
+ bottom: auto;
790
+ left: auto;
791
+ position: static;
792
+ right: auto;
793
+ z-index: auto;
794
794
  }
795
795
  /* Mobile - Toast comes up from bottom */
796
796
  .bs-toast-deprecated:where([data-shown]:not([data-shown="false"])) {
797
- opacity: 1;
798
- transform: translate(0, 0);
797
+ opacity: 1;
798
+ transform: translate(0, 0);
799
799
  }
800
800
  .bs-toast-header-deprecated {
801
- align-items: center;
802
- color: var(--bs-ink-base);
803
- display: flex;
804
- gap: 0.5rem;
805
- padding: 1rem;
801
+ align-items: center;
802
+ color: var(--bs-ink-base);
803
+ display: flex;
804
+ gap: 0.5rem;
805
+ padding: 1rem;
806
806
  }
807
- .bs-toast-header-deprecated :where(.bs-toast-header-icon-deprecated) {
808
- color: var(--bs-primary-base);
807
+ .bs-toast-header-deprecated :where(.bs-toast-header-deprecated-icon) {
808
+ color: var(--bs-primary-base);
809
809
  }
810
- .bs-toast-header-deprecated :where(h5) {
811
- font-weight: 400;
810
+ .bs-toast-header-deprecated :where(.bs-toast-header-deprecated-text) {
811
+ font-size: var(--bs-text-md);
812
+ font-weight: var(--bs-font-normal);
813
+ line-height: var(--bs-leading-lg);
812
814
  }
813
815
  .bs-toast-body-deprecated {
814
- border-bottom: 1px solid var(--bs-border-base);
815
- color: var(--bs-ink-light);
816
- padding-bottom: 1rem;
817
- padding-left: 1rem;
818
- padding-right: 1rem;
816
+ border-bottom: 1px solid var(--bs-border-base);
817
+ color: var(--bs-ink-light);
818
+ padding-bottom: 1rem;
819
+ padding-left: 1rem;
820
+ padding-right: 1rem;
819
821
  }
820
822
  .bs-toast-actions-deprecated {
821
- /* Mobile - Buttons will be stacked */
822
- display: flex;
823
- flex-direction: row;
824
- gap: 1rem;
825
- justify-content: flex-end;
826
- padding-bottom: 0.5rem;
827
- padding-left: 1rem;
828
- padding-right: 1rem;
829
- padding-top: 0.5rem;
823
+ /* Mobile - Buttons will be stacked */
824
+ display: flex;
825
+ flex-direction: row;
826
+ gap: 1rem;
827
+ justify-content: flex-end;
828
+ padding-bottom: 0.5rem;
829
+ padding-left: 1rem;
830
+ padding-right: 1rem;
831
+ padding-top: 0.5rem;
830
832
  }
831
833
  .bs-toast-actions-deprecated:where([data-stacked]:not([data-stacked="false"])) {
832
- flex-direction: column-reverse;
834
+ flex-direction: column-reverse;
833
835
  }
834
836
  /* Warning Toast Styles */
835
837
  .bs-toast-deprecated:where([data-variant^='warning']) {
836
- border-top: 4px solid var(--bs-warning-base);
838
+ border-top: 4px solid var(--bs-warning-base);
837
839
  }
838
- .bs-toast-deprecated:where([data-variant^='warning']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
839
- color: var(--bs-ink-warning);
840
+ .bs-toast-deprecated:where([data-variant^='warning']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
841
+ color: var(--bs-ink-warning);
840
842
  }
841
843
  /* Positive Toast Styles */
842
844
  .bs-toast-deprecated:where([data-variant^='positive']) {
843
- border-top: 4px solid var(--bs-positive-base);
845
+ border-top: 4px solid var(--bs-positive-base);
844
846
  }
845
- .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
846
- color: var(--bs-ink-positive);
847
+ .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
848
+ color: var(--bs-ink-positive);
847
849
  }
848
850
  :where(.dark) .bs-toast-deprecated:where([data-variant^='positive']) {
849
- border-top: 4px solid var(--bs-positive-light);
851
+ border-top: 4px solid var(--bs-positive-light);
850
852
  }
851
- :where(.dark) .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
852
- color: var(--bs-positive-light);
853
+ :where(.dark) .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
854
+ color: var(--bs-positive-light);
853
855
  }
854
856
  /* Negative Toast Styles */
855
857
  .bs-toast-deprecated:where([data-variant^='negative']) {
856
- border-top: 4px solid var(--bs-negative-dark);
858
+ border-top: 4px solid var(--bs-negative-dark);
857
859
  }
858
- .bs-toast-deprecated:where([data-variant^='negative']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
859
- color: var(--bs-negative-dark);
860
+ .bs-toast-deprecated:where([data-variant^='negative']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
861
+ color: var(--bs-negative-dark);
860
862
  }
861
863
  @media (min-width: 440px) {
862
- .bs-toast-deprecated {
863
- --toast-transform: translate(calc(100% + 1.5rem), 0);
864
+ .bs-toast-deprecated {
865
+ --toast-transform: translate(calc(100% + 1.5rem), 0);
864
866
 
865
- left: auto;
866
- margin-left: 0;
867
- margin-right: 0;
868
- opacity: 0;
869
- right: 1.5rem;
870
- }
867
+ left: auto;
868
+ margin-left: 0;
869
+ margin-right: 0;
870
+ opacity: 0;
871
+ right: 1.5rem;
872
+ }
871
873
 
872
- .bs-toast-deprecated:where([data-shown]:not([data-shown="false"])) {
873
- opacity: 1;
874
- transform: translate(0, 0);
875
- }
874
+ .bs-toast-deprecated:where([data-shown]:not([data-shown="false"])) {
875
+ opacity: 1;
876
+ transform: translate(0, 0);
877
+ }
876
878
 
877
- .bs-toast-actions-deprecated:where([data-stacked]:not([data-stacked="false"])) {
878
- flex-direction: row;
879
- }
879
+ .bs-toast-actions-deprecated:where([data-stacked]:not([data-stacked="false"])) {
880
+ flex-direction: row;
881
+ }
880
882
  }
881
883
  /* Vue Transition Styles - Only used in Vue component */
882
- .bs-toast-deprecated:where(.bs-toast-enter-from),
883
- .bs-toast-deprecated:where(.bs-toast-leave-to) {
884
- opacity: 0;
885
- transform: var(--toast-transform);
884
+ .bs-toast-deprecated:where(.bs-toast-deprecated-enter-from),
885
+ .bs-toast-deprecated:where(.bs-toast-deprecated-leave-to) {
886
+ opacity: 0;
887
+ transform: var(--toast-transform);
886
888
  }
887
- .bs-toast-deprecated:where(.bs-toast-enter-to),
888
- .bs-toast-deprecated:where(.bs-toast-leave-from) {
889
- opacity: 1;
890
- transform: translate(0, 0);
889
+ .bs-toast-deprecated:where(.bs-toast-deprecated-enter-to),
890
+ .bs-toast-deprecated:where(.bs-toast-deprecated-leave-from) {
891
+ opacity: 1;
892
+ transform: translate(0, 0);
891
893
  }
892
894
  /* Container for holding all toasts that will be visible */
893
895
  .bs-toaster-deprecated {
@@ -5110,13 +5112,6 @@ a.bs-text-button {
5110
5112
  --step-color: var(--bs-ink-negative);
5111
5113
  --progress-step-bg: var(--bs-negative-base);
5112
5114
  }
5113
- :root {
5114
- --bs-vertical-nav-width: 9.875rem;
5115
- --bs-vertical-nav-narrow-width: 4.5rem;
5116
- --bs-vertical-nav-collapsed-width: 4rem;
5117
- /* Dynamic width set by the navigation component for page layout */
5118
- --bs-page-nav-width: 0px;
5119
- }
5120
5115
  .bs-vertical-nav-wrapper {
5121
5116
  --active-color: rgba(255, 255, 255, 0.25);
5122
5117
  --bg-color: var(--bs-navy-base);
@@ -5548,8 +5543,13 @@ a.bs-text-button {
5548
5543
  transition: margin-inline-start 350ms cubic-bezier(0.4, 0, 0.2, 1);
5549
5544
  }
5550
5545
  /*
5551
- POP SYSTEM COMPONENTS
5552
- Components that are built on top of BsPopover. The popover.css must come first.
5546
+ POP SYSTEM COMPONENTS (the order matters)
5547
+ - Components that are built on top of BsPopover
5548
+ - The popover.css must come first
5549
+ - In the future, could refactor this file to use @layer instead
5550
+ */
5551
+ /*
5552
+ HEADS-UP: BsPopover and its styles are the base for all popover-based components and their styles
5553
5553
  */
5554
5554
  #bs-popover-teleport-target {
5555
5555
  z-index: var(--bs-popover-z-index);
@@ -5571,31 +5571,22 @@ a.bs-text-button {
5571
5571
  position: absolute;
5572
5572
  top: 0;
5573
5573
  left: 0;
5574
+ display: flex;
5575
+ flex-direction: column;
5574
5576
  width: var(--bs-popover-width, -moz-fit-content);
5575
5577
  width: var(--bs-popover-width, fit-content);
5576
5578
  height: var(--bs-popover-height, -moz-fit-content);
5577
5579
  height: var(--bs-popover-height, fit-content);
5578
5580
  max-width: calc(100dvw - 3rem);
5579
5581
  max-height: calc(100dvh - 3rem);
5580
- padding: var(--bs-space-6);
5581
5582
  background-color: var(--bs-bg-base-to-light);
5582
5583
  border-radius: var(--bs-space-1);
5583
5584
  box-shadow: var(--bs-shadow-contentLowCenter);
5584
5585
  pointer-events: auto; /* due to `pointer-events: none` on bs-popover-wrap */
5586
+ overflow: hidden;
5585
5587
  }
5586
- .bs-popover-close-button {
5587
- background-color: inherit;
5588
- background: transparent;
5589
- border-color: transparent;
5590
- color: inherit;
5591
- cursor: pointer;
5592
- font-family: inherit;
5593
- font-size: var(--bs-text-base);
5594
- padding: var(--bs-space-2); /* to make a bit nicer hit target */
5595
- position: absolute;
5596
- right: var(--bs-space-2);
5597
- text-decoration: none;
5598
- top: var(--bs-space-2);
5588
+ .bs-popover:where(:not(:has(.bs-pop-header, .bs-pop-body, .bs-pop-footer))) {
5589
+ padding: var(--bs-space-6);
5599
5590
  }
5600
5591
  /* -- SIZING -- */
5601
5592
  .bs-popover:where([data-size="sm"]) {
@@ -5686,95 +5677,105 @@ a.bs-text-button {
5686
5677
  transform: scale(.95);
5687
5678
  }
5688
5679
  /*
5689
- HEADS-UP:
5690
- Most BsFlyout base styles come from its BsPopover root element,
5691
- so some of these styles are there to override those defaults.
5680
+ Used in BsPopover, but exists as its own thing in case
5681
+ consumers need/want to use it for custom layout cases.
5692
5682
  */
5693
- .bs-flyout {
5694
- --bs-flyout-padding: var(--bs-space-6);
5695
- --bs-flyout-padding-top: 2.75rem;
5696
- display: flex;
5697
- flex-direction: column;
5698
- padding: 0;
5699
- margin: 0;
5700
- border-radius: 0;
5683
+ .bs-pop-x-button {
5684
+ background-color: inherit;
5685
+ background: transparent;
5686
+ border-color: transparent;
5687
+ color: inherit;
5688
+ cursor: pointer;
5689
+ font-family: inherit;
5690
+ font-size: var(--bs-text-base);
5691
+ padding: var(--bs-space-3); /* to make a bit nicer hit target */
5692
+ position: absolute;
5693
+ right: var(--bs-pop-x-btn-right, var(--bs-space-1));
5694
+ text-decoration: none;
5695
+ top: var(--bs-pop-x-btn-top, var(--bs-space-1));
5701
5696
  }
5702
- /* -- CLOSE BUTTON -- */
5703
- /* calc() adjusts for default .5rem padding .bs-popover-close-button has, which exists for a nicer hit target */
5704
- .bs-flyout :where(.bs-popover-close-button) {
5705
- top: calc(var(--bs-flyout-padding) - .5rem);
5706
- right: calc(var(--bs-flyout-padding) - .5rem);
5697
+ .bs-popover:where(:has(.bs-pop-header)) {
5698
+ --bs-pop-x-btn-right: var(--bs-space-4);
5699
+ --bs-pop-x-btn-top: var(--bs-space-4);
5707
5700
  }
5708
- /* -- HEADER -- */
5709
- .bs-flyout-header {
5701
+ .bs-pop-header {
5702
+ color: var(--bs-ink-base);
5703
+ font-size: var(--bs-text-md);
5710
5704
  flex-shrink: 0;
5711
- padding: var(--bs-flyout-padding-top) var(--bs-flyout-padding) var(--bs-flyout-padding);
5712
- }
5713
- /* with border */
5714
- .bs-flyout-header:where([data-border="true"]) {
5715
- border-bottom: 1px solid var(--bs-border-base);
5716
- }
5717
- .bs-flyout-title {
5718
- display: flex;
5719
- align-items: center;
5720
- gap: var(--bs-space-2);
5721
- margin: 0 var(--bs-space-6) 0 0;
5722
- font-size: var(--bs-text-lg);
5723
- font-weight: normal;
5705
+ padding: var(--bs-pop-header-padding, var(--bs-space-6));
5724
5706
  line-height: var(--bs-leading-regular);
5725
5707
  }
5726
- .bs-flyout-subtitle {
5708
+ .bs-pop-header:where(:not(:has(.bs-pop-title, .bs-pop-subtitle))) {
5727
5709
  display: flex;
5728
5710
  align-items: center;
5729
5711
  gap: var(--bs-space-2);
5730
- margin: var(--bs-space-2) 0 0 0;
5731
- font-size: var(--bs-text-sm);
5732
- font-weight: normal;
5733
- line-height: var(--bs-leading-lg);
5734
5712
  }
5735
- .bs-flyout-header:where([data-border="true"]) {
5713
+ .bs-pop-header:where([data-border="true"]) {
5736
5714
  border-bottom: 1px solid var(--bs-border-base);
5737
5715
  }
5738
- /* -- BODY -- */
5739
- .bs-flyout-body {
5716
+ .bs-pop-body {
5740
5717
  flex: 1;
5741
- padding: 0 var(--bs-flyout-padding);
5742
5718
  overflow-y: auto;
5743
5719
  overscroll-behavior: contain;
5720
+ padding: var(--bs-pop-body-padding, var(--bs-space-6));
5744
5721
  }
5745
- /* no header exists */
5746
- .bs-flyout:where(:not(:has(.bs-flyout-header))) :where(.bs-flyout-body) {
5747
- padding-top: var(--bs-flyout-padding-top);
5722
+ .bs-pop-body:where([data-background="true"]) {
5723
+ background-color: var(--bs-bg-light);
5748
5724
  }
5749
- /* no footer exists */
5750
- .bs-flyout:where(:not(:has(.bs-flyout-footer))) :where(.bs-flyout-body) {
5751
- padding-bottom: var(--bs-flyout-padding);
5725
+ .bs-pop-header:where(:not([data-border="true"])) + :where(.bs-pop-body:not([data-background="true"])) {
5726
+ padding-top: 0;
5752
5727
  }
5753
- /* header border exists */
5754
- .bs-flyout:where(:has(.bs-flyout-header[data-border="true"])) :where(.bs-flyout-body) {
5755
- padding-top: var(--bs-flyout-padding);
5728
+ .bs-pop-footer {
5729
+ align-items: center;
5730
+ display: flex;
5731
+ flex-shrink: 0;
5732
+ gap: var(--bs-space-6);
5733
+ justify-content: flex-end;
5734
+ padding: var(--bs-pop-footer-padding, var(--bs-space-4) var(--bs-space-6));
5756
5735
  }
5757
- /* footer border exists */
5758
- .bs-flyout:where(:has(.bs-flyout-footer[data-border="true"])) :where(.bs-flyout-body) {
5759
- padding-bottom: var(--bs-flyout-padding);
5736
+ .bs-pop-footer:where([data-border="true"]) {
5737
+ border-top: 1px solid var(--bs-border-base);
5760
5738
  }
5761
- /* -- FOOTER -- */
5762
- .bs-flyout-footer {
5739
+ .bs-pop-title {
5740
+ align-items: center;
5763
5741
  display: flex;
5764
- justify-content: flex-end;
5742
+ font-size: var(--bs-text-md);
5743
+ font-weight: normal;
5744
+ gap: var(--bs-space-2);
5745
+ line-height: var(--bs-leading-regular);
5746
+ margin: 0 var(--bs-space-12) 0 0;
5747
+ }
5748
+ .bs-pop-subtitle {
5765
5749
  align-items: center;
5766
- gap: var(--bs-space-6);
5767
- flex-shrink: 0;
5768
- padding: var(--bs-space-6);
5750
+ color: var(--bs-ink-light);
5751
+ display: flex;
5752
+ font-size: var(--bs-text-sm);
5753
+ font-weight: normal;
5754
+ gap: var(--bs-space-2);
5755
+ line-height: var(--bs-leading-lg);
5756
+ margin: var(--bs-space-2) 0 0 0;
5769
5757
  }
5770
- /* with border */
5771
- .bs-flyout-footer:where([data-border="true"]) {
5772
- border-top: 1px solid var(--bs-border-base);
5758
+ /*
5759
+ HEADS-UP:
5760
+ Most BsFlyout base styles come from its BsPopover root element,
5761
+ so some of these styles are there to override those defaults.
5762
+ */
5763
+ .bs-flyout {
5764
+ --bs-pop-header-padding: var(--bs-space-6);
5765
+ --bs-pop-body-padding: var(--bs-space-6);
5766
+ --bs-pop-footer-padding: var(--bs-space-6);
5767
+ margin: 0;
5768
+ border-radius: 0;
5769
+ }
5770
+ /* targeting header too, so consumer could just do: <BsPopHeader>My Title</BsPopHeader> */
5771
+ .bs-flyout :where(.bs-pop-header, .bs-pop-title) {
5772
+ font-size: var(--bs-text-lg);
5773
5773
  }
5774
5774
  /* -- SIZING -- */
5775
5775
  .bs-flyout {
5776
5776
  --bs-popover-height: 100dvh;
5777
5777
  max-height: unset;
5778
+ max-width: 100dvw;
5778
5779
  }
5779
5780
  .bs-flyout:where([data-size="sm"]) {
5780
5781
  --bs-popover-width: 22.5rem; /* 360px */
@@ -5828,142 +5829,50 @@ a.bs-text-button {
5828
5829
  ...so some of these styles override those defaults.
5829
5830
  */
5830
5831
  .bs-modal {
5831
- --bs-modal-sm-width: 21.25rem; /* 340px */
5832
- --bs-modal-md-width: 35rem; /* 560px */
5833
- --bs-modal-lg-width: 45.3125rem; /* 725px */
5834
- --bs-modal-padding: 1.5rem; /* 24px */
5835
- --bs-modal-lg-padding: 2rem; /* 32px */
5836
- display: flex;
5837
- flex-direction: column;
5838
- margin: 0;
5839
- padding: 0;
5832
+ --bs-pop-header-padding: var(--bs-modal-padding);
5833
+ --bs-pop-body-padding: var(--bs-modal-padding);
5834
+ --bs-pop-footer-padding: var(--bs-space-4) var(--bs-modal-padding);
5835
+ --bs-modal-padding: var(--bs-space-6);
5836
+ --bs-modal-lg-padding: var(--bs-space-8);
5840
5837
  background-color: var(--bs-bg-base-to-medium);
5841
5838
  box-shadow: var(--bs-shadow-contentHigh);
5842
- overflow: hidden;
5843
- }
5844
- /* -- CLOSE BUTTON -- */
5845
- /* calc() adjusts for default .5rem padding .bs-popover-close-button has, which exists for a nicer hit target */
5846
- .bs-modal :where(.bs-popover-close-button) {
5847
- top: calc(var(--bs-modal-padding) - .5rem);
5848
- right: calc(var(--bs-modal-padding) - .5rem);
5849
- }
5850
- .bs-modal:where([data-size="lg"]) :where(.bs-popover-close-button) {
5851
- top: calc(var(--bs-modal-lg-padding) - .5rem);
5852
- right: calc(var(--bs-modal-lg-padding) - .5rem);
5853
- }
5854
- /* -- HEADER -- */
5855
- .bs-modal-header {
5856
- flex-shrink: 0;
5857
- padding: var(--bs-modal-padding);
5858
- }
5859
- /* with border */
5860
- .bs-modal-header:where([data-border="true"]) {
5861
- border-bottom: 1px solid var(--bs-border-base);
5862
- }
5863
- /* large size, no border */
5864
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-header) {
5865
- padding: var(--bs-modal-lg-padding);
5866
- }
5867
- /* large size, with border */
5868
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-header[data-border="true"]) {
5869
- padding: var(--bs-modal-lg-padding);
5870
- padding-bottom: var(--bs-modal-padding);
5839
+ margin: 0;
5871
5840
  }
5872
- .bs-modal-title {
5873
- display: flex;
5874
- align-items: center;
5875
- gap: var(--bs-space-2);
5876
- margin: 0 var(--bs-space-6) 0 0;
5841
+ /* targeting header too, so consumer could just do: <BsPopHeader>My Title</BsPopHeader> */
5842
+ .bs-modal :where(.bs-pop-header, .bs-pop-title) {
5877
5843
  font-size: var(--bs-text-lg);
5878
- font-weight: normal;
5879
- line-height: var(--bs-leading-regular);
5880
5844
  }
5881
- .bs-modal-subtitle {
5882
- display: flex;
5883
- align-items: center;
5884
- gap: var(--bs-space-2);
5885
- margin: var(--bs-space-2) 0 0 0;
5886
- font-size: var(--bs-text-sm);
5887
- font-weight: normal;
5888
- line-height: var(--bs-leading-lg);
5889
- }
5890
- /* -- BODY -- */
5891
- .bs-modal-body {
5892
- flex: 1;
5893
- overflow-y: auto;
5894
- padding: 0 var(--bs-modal-padding);
5895
- overscroll-behavior: contain;
5845
+ .bs-modal:where([data-size="lg"]) {
5846
+ --bs-pop-x-btn-right: var(--bs-space-6);
5847
+ --bs-pop-header-padding: var(--bs-modal-lg-padding) var(--bs-modal-lg-padding) var(--bs-modal-padding);
5848
+ --bs-pop-body-padding: var(--bs-modal-padding) var(--bs-modal-lg-padding);
5849
+ --bs-pop-footer-padding: var(--bs-space-4) var(--bs-modal-lg-padding);
5896
5850
  }
5897
- /* large size */
5898
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-body) {
5899
- padding: 0 var(--bs-modal-lg-padding);
5900
- }
5901
- /* no header exists */
5902
- .bs-modal:where(:not(:has(.bs-modal-header))) :where(.bs-modal-body) {
5903
- padding-top: var(--bs-modal-padding);
5904
- }
5905
- /* large size, no header exists */
5906
- .bs-modal:where([data-size="lg"]):where(:not(:has(.bs-modal-header))) :where(.bs-modal-body) {
5907
- padding-top: var(--bs-modal-lg-padding);
5908
- }
5909
- /* no footer exists */
5910
- .bs-modal:where(:not(:has(.bs-modal-footer))) :where(.bs-modal-body) {
5911
- padding-bottom: var(--bs-modal-padding);
5912
- }
5913
- /* large size, no footer exists */
5914
- .bs-modal:where([data-size="lg"]):where(:not(:has(.bs-modal-footer))) :where(.bs-modal-body) {
5915
- padding-bottom: var(--bs-modal-lg-padding);
5916
- }
5917
- /* header border exists */
5918
- .bs-modal:where(:has(.bs-modal-header[data-border="true"])) :where(.bs-modal-body) {
5919
- padding-top: var(--bs-modal-padding);
5920
- }
5921
- /* footer border exists */
5922
- .bs-modal:where(:has(.bs-modal-footer[data-border="true"])) :where(.bs-modal-body) {
5923
- padding-bottom: var(--bs-modal-padding);
5924
- }
5925
- /* -- FOOTER -- */
5926
- .bs-modal-footer {
5927
- display: flex;
5928
- justify-content: flex-end;
5929
- align-items: center;
5930
- gap: var(--bs-space-6);
5931
- flex-shrink: 0;
5932
- padding: var(--bs-space-6) var(--bs-modal-padding);
5933
- }
5934
- /* with border */
5935
- .bs-modal-footer:where([data-border="true"]) {
5936
- border-top: 1px solid var(--bs-border-base);
5937
- padding: var(--bs-space-4) var(--bs-modal-padding);
5938
- }
5939
- /* large size, no border */
5940
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-footer) {
5941
- padding: var(--bs-modal-lg-padding);
5942
- }
5943
- /* large size, with border */
5944
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-footer[data-border="true"]) {
5945
- padding: var(--bs-space-4) var(--bs-modal-lg-padding);
5851
+ .bs-modal:where([data-size="lg"]:has(.bs-pop-header)) {
5852
+ --bs-pop-x-btn-right: var(--bs-space-6);
5853
+ --bs-pop-x-btn-top: var(--bs-space-6);
5946
5854
  }
5947
5855
  /* -- SIZING -- */
5948
5856
  .bs-modal {
5949
- max-width: calc(100dvw - 3rem);
5857
+ --bs-popover-width: calc(100dvw - 3rem);
5950
5858
  max-height: calc(100dvh - 3rem);
5951
5859
  }
5952
5860
  @media (min-width: 752px) {
5953
5861
  .bs-modal {
5862
+ --bs-popover-width: fit-content;
5954
5863
  max-height: min(calc(100dvh - 3rem), 40.625rem);
5955
5864
  }
5956
5865
 
5957
5866
  .bs-modal:where([data-size="sm"]) {
5958
- --bs-popover-width: var(--bs-modal-sm-width);
5867
+ --bs-popover-width: 21.25rem; /* 340px */
5959
5868
  }
5960
5869
 
5961
5870
  .bs-modal:where([data-size="md"]) {
5962
- --bs-popover-width: var(--bs-modal-md-width);
5871
+ --bs-popover-width: 35rem; /* 560px */
5963
5872
  }
5964
5873
 
5965
5874
  .bs-modal:where([data-size="lg"]) {
5966
- --bs-popover-width: var(--bs-modal-lg-width);
5875
+ --bs-popover-width: 45.3125rem; /* 725px */
5967
5876
  }
5968
5877
  }
5969
5878
  /* -- TRANSITIONS -- */
@@ -6017,84 +5926,76 @@ a.bs-text-button {
6017
5926
  }
6018
5927
  /* Toast */
6019
5928
  .bs-toast {
5929
+ --bs-pop-header-padding: var(--bs-space-4);
5930
+ --bs-pop-body-padding: var(--bs-space-4);
5931
+ --bs-pop-footer-padding: var(--bs-space-2) var(--bs-space-4);
6020
5932
  --bs-popover-width: min(23rem, calc(100dvw - 3rem));
6021
5933
  --toast-transform: translate(0, calc(100% + 1.5rem));
6022
5934
  --toast-variant-color: var(--bs-primary-base);
5935
+ --toast-icon: var(--toast-icon-base);
5936
+ --toast-icon-color: var(--bs-ink-primary);
5937
+ --toast-icon-base: url('https://cdn.apps.wwt.com/static/wwt-blue-steel-icons/icon-circle-info.svg');
5938
+ --toast-icon-warning: url('https://cdn.apps.wwt.com/static/wwt-blue-steel-icons/icon-warning.svg');
5939
+ --toast-icon-positive: url('https://cdn.apps.wwt.com/static/wwt-blue-steel-icons/icon-thumbs-up-stroke.svg');
6023
5940
  background-color: var(--bs-bg-base-to-light);
6024
5941
  border-radius: 0;
6025
5942
  border-top: 4px solid var(--toast-variant-color);
6026
5943
  box-shadow: var(--bs-shadow-contentMedium);
6027
5944
  margin: 0;
6028
5945
  order: var(--toast-order, 0);
6029
- padding: 0;
5946
+ }
5947
+ /* Toast Footer Mobile - Buttons will be stacked */
5948
+ .bs-toast :where(.bs-pop-footer) {
5949
+ align-items: stretch;
5950
+ flex-direction: column-reverse;
5951
+ gap: var(--bs-space-2);
6030
5952
  }
6031
5953
  @media (min-width: 440px) {
6032
5954
  .bs-toast {
6033
5955
  --toast-transform: translate(calc(100% + 1.5rem), 0);
6034
5956
  }
5957
+
5958
+ .bs-toast :where(.bs-pop-footer) {
5959
+ align-items: center;
5960
+ flex-direction: row;
5961
+ gap: var(--bs-space-6);
5962
+ }
6035
5963
  }
5964
+ /* Toast Variants */
6036
5965
  .bs-toast:where([data-variant="warning"]) {
5966
+ --toast-icon: var(--toast-icon-warning);
5967
+ --toast-icon-color: var(--bs-ink-warning);
6037
5968
  --toast-variant-color: var(--bs-warning-base);
6038
-
6039
- .bs-toast-header-icon {
6040
- color: var(--bs-ink-warning);
6041
- }
6042
5969
  }
6043
5970
  .bs-toast:where([data-variant="positive"]) {
5971
+ --toast-icon: var(--toast-icon-positive);
5972
+ --toast-icon-color: var(--bs-ink-positive);
6044
5973
  --toast-variant-color: var(--bs-positive-base);
6045
-
6046
- .bs-toast-header-icon {
6047
- color: var(--bs-ink-positive);
6048
- }
6049
5974
  }
6050
- .bs-toast:where([data-variant="negative"]) {
6051
- --toast-variant-color: var(--bs-negative-base);
6052
-
6053
- .bs-toast-header-icon {
6054
- color: var(--bs-ink-negative);
6055
- }
5975
+ .dark :where(.bs-toast[data-variant="positive"]) {
5976
+ --toast-icon-color: var(--bs-positive-light);
5977
+ --toast-variant-color: var(--bs-positive-light);
6056
5978
  }
6057
- /* Toast Header */
6058
- .bs-toast :where(.bs-toast-header) {
6059
- align-items: center;
6060
- color: var(--bs-ink-base);
6061
- display: flex;
6062
- gap: 0.5rem;
6063
- padding: 1rem;
6064
- }
6065
- .bs-toast :where(.bs-toast-header .bs-toast-header-icon) {
6066
- color: var(--bs-ink-primary);
5979
+ .bs-toast:where([data-variant="negative"]) {
5980
+ --toast-icon: var(--toast-icon-warning);
5981
+ --toast-icon-color: var(--bs-negative-dark);
5982
+ --toast-variant-color: var(--bs-negative-dark);
6067
5983
  }
6068
- .bs-toast :where(.bs-toast-header .bs-toast-header-text) {
6069
- font-size: var(--bs-text-md);
6070
- font-weight: var(--bs-font-normal);
6071
- line-height: var(--bs-leading-lg);
5984
+ /* Toast Header - auto-add the icon */
5985
+ .bs-toast :where(.bs-pop-header:not(:has(.bs-pop-title, .bs-pop-subtitle)))::before,
5986
+ .bs-toast :where(.bs-pop-header .bs-pop-title)::before {
5987
+ display: block;
5988
+ content: '';
5989
+ background-color: var(--toast-icon-color);
5990
+ -webkit-mask: var(--toast-icon) center/contain no-repeat;
5991
+ mask: var(--toast-icon) center/contain no-repeat;
5992
+ flex-shrink: 0;
5993
+ height: var(--bs-space-4);
5994
+ width: var(--bs-space-4);
6072
5995
  }
6073
5996
  /* Toast Body */
6074
- .bs-toast :where(.bs-toast-body) {
6075
- border-bottom: 1px solid var(--bs-border-base);
5997
+ .bs-toast :where(.bs-pop-body) {
6076
5998
  color: var(--bs-ink-light);
6077
- padding-bottom: 1rem;
6078
- padding-left: 1rem;
6079
- padding-right: 1rem;
6080
- }
6081
- .bs-toast :where(:not(:has(.bs-toast-header)) .bs-toast-body) {
6082
- padding-top: 1rem;
6083
- }
6084
- /* Toast Footer */
6085
- .bs-toast :where(.bs-toast-footer) {
6086
- /* Mobile - Buttons will be stacked */
6087
- display: flex;
6088
- flex-direction: row;
6089
- gap: 1rem;
6090
- justify-content: flex-end;
6091
- padding-bottom: 0.5rem;
6092
- padding-left: 1rem;
6093
- padding-right: 1rem;
6094
- padding-top: 0.5rem;
6095
- }
6096
- .bs-toast :where(.bs-toast-footer):where([data-stacked]:not([data-stacked="false"])) {
6097
- flex-direction: column-reverse;
6098
5999
  }
6099
6000
  /* Vue Transition Styles */
6100
6001
  .bs-toast-enter-active,