@wwtdev/bsds-css 3.0.0-rc.46 → 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.
package/dist/wwt-bsds.css CHANGED
@@ -2212,129 +2212,131 @@ Custom properties:
2212
2212
  }
2213
2213
  /* Base Toast Styles */
2214
2214
  .bs-toast-deprecated {
2215
- --toast-transform: translate(0, calc(100% + 1.5rem));
2215
+ --toast-transform: translate(0, calc(100% + 1.5rem));
2216
2216
 
2217
- background-color: var(--bs-bg-base-to-light);
2218
- border-top: 4px solid var(--bs-primary-base);
2219
- bottom: 1.5rem;
2220
- box-shadow: var(--bs-shadow-contentMedium);
2221
- left: 0;
2222
- margin-left: 1.5rem;
2223
- margin-right: 1.5rem;
2224
- opacity: 0;
2225
- position: fixed;
2226
- right: 0;
2227
- transform: var(--toast-transform);
2228
- transition-duration: var(--bs-transition-medium);
2229
- transition-property: transform, opacity;
2230
- transition-timing-function: var(--bs-transition-ease);
2231
- /* Clamp width for mobile -> full screen */
2232
- width: clamp(17rem, calc(100vw - 3rem), 25rem);
2233
- z-index: 999;
2217
+ background-color: var(--bs-bg-base-elevated);
2218
+ border-top: 4px solid var(--bs-primary-base);
2219
+ bottom: 1.5rem;
2220
+ box-shadow: var(--bs-shadow-contentMedium);
2221
+ left: 0;
2222
+ margin-left: 1.5rem;
2223
+ margin-right: 1.5rem;
2224
+ opacity: 0;
2225
+ position: fixed;
2226
+ right: 0;
2227
+ transform: var(--toast-transform);
2228
+ transition-duration: 200ms;
2229
+ transition-property: transform, opacity;
2230
+ transition-timing-function: ease;
2231
+ /* Clamp width for mobile -> full screen */
2232
+ width: clamp(17rem, calc(100vw - 3rem), 25rem);
2233
+ z-index: 999;
2234
2234
  }
2235
2235
  .bs-toast-deprecated:where([data-stacked]:not([data-stacked="false"])) {
2236
- bottom: auto;
2237
- left: auto;
2238
- position: static;
2239
- right: auto;
2240
- z-index: auto;
2236
+ bottom: auto;
2237
+ left: auto;
2238
+ position: static;
2239
+ right: auto;
2240
+ z-index: auto;
2241
2241
  }
2242
2242
  /* Mobile - Toast comes up from bottom */
2243
2243
  .bs-toast-deprecated:where([data-shown]:not([data-shown="false"])) {
2244
- opacity: 1;
2245
- transform: translate(0, 0);
2244
+ opacity: 1;
2245
+ transform: translate(0, 0);
2246
2246
  }
2247
2247
  .bs-toast-header-deprecated {
2248
- align-items: center;
2249
- color: var(--bs-ink-base);
2250
- display: flex;
2251
- gap: 0.5rem;
2252
- padding: 1rem;
2248
+ align-items: center;
2249
+ color: var(--bs-ink-base);
2250
+ display: flex;
2251
+ gap: 0.5rem;
2252
+ padding: 1rem;
2253
2253
  }
2254
- .bs-toast-header-deprecated :where(.bs-toast-header-icon-deprecated) {
2255
- color: var(--bs-primary-base);
2254
+ .bs-toast-header-deprecated :where(.bs-toast-header-deprecated-icon) {
2255
+ color: var(--bs-primary-base);
2256
2256
  }
2257
- .bs-toast-header-deprecated :where(h5) {
2258
- font-weight: 400;
2257
+ .bs-toast-header-deprecated :where(.bs-toast-header-deprecated-text) {
2258
+ font-size: var(--bs-text-md);
2259
+ font-weight: var(--bs-font-normal);
2260
+ line-height: var(--bs-leading-lg);
2259
2261
  }
2260
2262
  .bs-toast-body-deprecated {
2261
- border-bottom: 1px solid var(--bs-border-base);
2262
- color: var(--bs-ink-light);
2263
- padding-bottom: 1rem;
2264
- padding-left: 1rem;
2265
- padding-right: 1rem;
2263
+ border-bottom: 1px solid var(--bs-border-base);
2264
+ color: var(--bs-ink-light);
2265
+ padding-bottom: 1rem;
2266
+ padding-left: 1rem;
2267
+ padding-right: 1rem;
2266
2268
  }
2267
2269
  .bs-toast-actions-deprecated {
2268
- /* Mobile - Buttons will be stacked */
2269
- display: flex;
2270
- flex-direction: row;
2271
- gap: 1rem;
2272
- justify-content: flex-end;
2273
- padding-bottom: 0.5rem;
2274
- padding-left: 1rem;
2275
- padding-right: 1rem;
2276
- padding-top: 0.5rem;
2270
+ /* Mobile - Buttons will be stacked */
2271
+ display: flex;
2272
+ flex-direction: row;
2273
+ gap: 1rem;
2274
+ justify-content: flex-end;
2275
+ padding-bottom: 0.5rem;
2276
+ padding-left: 1rem;
2277
+ padding-right: 1rem;
2278
+ padding-top: 0.5rem;
2277
2279
  }
2278
2280
  .bs-toast-actions-deprecated:where([data-stacked]:not([data-stacked="false"])) {
2279
- flex-direction: column-reverse;
2281
+ flex-direction: column-reverse;
2280
2282
  }
2281
2283
  /* Warning Toast Styles */
2282
2284
  .bs-toast-deprecated:where([data-variant^='warning']) {
2283
- border-top: 4px solid var(--bs-warning-base);
2285
+ border-top: 4px solid var(--bs-warning-base);
2284
2286
  }
2285
- .bs-toast-deprecated:where([data-variant^='warning']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
2286
- color: var(--bs-ink-warning);
2287
+ .bs-toast-deprecated:where([data-variant^='warning']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
2288
+ color: var(--bs-ink-warning);
2287
2289
  }
2288
2290
  /* Positive Toast Styles */
2289
2291
  .bs-toast-deprecated:where([data-variant^='positive']) {
2290
- border-top: 4px solid var(--bs-positive-base);
2292
+ border-top: 4px solid var(--bs-positive-base);
2291
2293
  }
2292
- .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
2293
- color: var(--bs-ink-positive);
2294
+ .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
2295
+ color: var(--bs-ink-positive);
2294
2296
  }
2295
2297
  :where(.dark) .bs-toast-deprecated:where([data-variant^='positive']) {
2296
- border-top: 4px solid var(--bs-positive-light);
2298
+ border-top: 4px solid var(--bs-positive-light);
2297
2299
  }
2298
- :where(.dark) .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
2299
- color: var(--bs-positive-light);
2300
+ :where(.dark) .bs-toast-deprecated:where([data-variant^='positive']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
2301
+ color: var(--bs-positive-light);
2300
2302
  }
2301
2303
  /* Negative Toast Styles */
2302
2304
  .bs-toast-deprecated:where([data-variant^='negative']) {
2303
- border-top: 4px solid var(--bs-negative-dark);
2305
+ border-top: 4px solid var(--bs-negative-dark);
2304
2306
  }
2305
- .bs-toast-deprecated:where([data-variant^='negative']) :where(.bs-toast-header-deprecated .bs-toast-header-icon-deprecated) {
2306
- color: var(--bs-negative-dark);
2307
+ .bs-toast-deprecated:where([data-variant^='negative']) :where(.bs-toast-header-deprecated .bs-toast-header-deprecated-icon) {
2308
+ color: var(--bs-negative-dark);
2307
2309
  }
2308
2310
  @media (min-width: 440px) {
2309
- .bs-toast-deprecated {
2310
- --toast-transform: translate(calc(100% + 1.5rem), 0);
2311
-
2312
- left: auto;
2313
- margin-left: 0;
2314
- margin-right: 0;
2315
- opacity: 0;
2316
- right: 1.5rem;
2317
- }
2311
+ .bs-toast-deprecated {
2312
+ --toast-transform: translate(calc(100% + 1.5rem), 0);
2318
2313
 
2319
- .bs-toast-deprecated:where([data-shown]:not([data-shown="false"])) {
2320
- opacity: 1;
2321
- transform: translate(0, 0);
2322
- }
2314
+ left: auto;
2315
+ margin-left: 0;
2316
+ margin-right: 0;
2317
+ opacity: 0;
2318
+ right: 1.5rem;
2319
+ }
2323
2320
 
2324
- .bs-toast-actions-deprecated:where([data-stacked]:not([data-stacked="false"])) {
2325
- flex-direction: row;
2326
- }
2321
+ .bs-toast-deprecated:where([data-shown]:not([data-shown="false"])) {
2322
+ opacity: 1;
2323
+ transform: translate(0, 0);
2324
+ }
2325
+
2326
+ .bs-toast-actions-deprecated:where([data-stacked]:not([data-stacked="false"])) {
2327
+ flex-direction: row;
2328
+ }
2327
2329
  }
2328
2330
  /* Vue Transition Styles - Only used in Vue component */
2329
- .bs-toast-deprecated:where(.bs-toast-enter-from),
2330
- .bs-toast-deprecated:where(.bs-toast-leave-to) {
2331
- opacity: 0;
2332
- transform: var(--toast-transform);
2331
+ .bs-toast-deprecated:where(.bs-toast-deprecated-enter-from),
2332
+ .bs-toast-deprecated:where(.bs-toast-deprecated-leave-to) {
2333
+ opacity: 0;
2334
+ transform: var(--toast-transform);
2333
2335
  }
2334
- .bs-toast-deprecated:where(.bs-toast-enter-to),
2335
- .bs-toast-deprecated:where(.bs-toast-leave-from) {
2336
- opacity: 1;
2337
- transform: translate(0, 0);
2336
+ .bs-toast-deprecated:where(.bs-toast-deprecated-enter-to),
2337
+ .bs-toast-deprecated:where(.bs-toast-deprecated-leave-from) {
2338
+ opacity: 1;
2339
+ transform: translate(0, 0);
2338
2340
  }
2339
2341
  /* Container for holding all toasts that will be visible */
2340
2342
  .bs-toaster-deprecated {
@@ -6988,8 +6990,13 @@ a.bs-text-button {
6988
6990
  transition: margin-inline-start 350ms cubic-bezier(0.4, 0, 0.2, 1);
6989
6991
  }
6990
6992
  /*
6991
- POP SYSTEM COMPONENTS
6992
- Components that are built on top of BsPopover. The popover.css must come first.
6993
+ POP SYSTEM COMPONENTS (the order matters)
6994
+ - Components that are built on top of BsPopover
6995
+ - The popover.css must come first
6996
+ - In the future, could refactor this file to use @layer instead
6997
+ */
6998
+ /*
6999
+ HEADS-UP: BsPopover and its styles are the base for all popover-based components and their styles
6993
7000
  */
6994
7001
  #bs-popover-teleport-target {
6995
7002
  z-index: var(--bs-popover-z-index);
@@ -7011,31 +7018,22 @@ a.bs-text-button {
7011
7018
  position: absolute;
7012
7019
  top: 0;
7013
7020
  left: 0;
7021
+ display: flex;
7022
+ flex-direction: column;
7014
7023
  width: var(--bs-popover-width, -moz-fit-content);
7015
7024
  width: var(--bs-popover-width, fit-content);
7016
7025
  height: var(--bs-popover-height, -moz-fit-content);
7017
7026
  height: var(--bs-popover-height, fit-content);
7018
7027
  max-width: calc(100dvw - 3rem);
7019
7028
  max-height: calc(100dvh - 3rem);
7020
- padding: var(--bs-space-6);
7021
7029
  background-color: var(--bs-bg-base-to-light);
7022
7030
  border-radius: var(--bs-space-1);
7023
7031
  box-shadow: var(--bs-shadow-contentLowCenter);
7024
7032
  pointer-events: auto; /* due to `pointer-events: none` on bs-popover-wrap */
7033
+ overflow: hidden;
7025
7034
  }
7026
- .bs-popover-close-button {
7027
- background-color: inherit;
7028
- background: transparent;
7029
- border-color: transparent;
7030
- color: inherit;
7031
- cursor: pointer;
7032
- font-family: inherit;
7033
- font-size: var(--bs-text-base);
7034
- padding: var(--bs-space-2); /* to make a bit nicer hit target */
7035
- position: absolute;
7036
- right: var(--bs-space-2);
7037
- text-decoration: none;
7038
- top: var(--bs-space-2);
7035
+ .bs-popover:where(:not(:has(.bs-pop-header, .bs-pop-body, .bs-pop-footer))) {
7036
+ padding: var(--bs-space-6);
7039
7037
  }
7040
7038
  /* -- SIZING -- */
7041
7039
  .bs-popover:where([data-size="sm"]) {
@@ -7126,95 +7124,105 @@ a.bs-text-button {
7126
7124
  transform: scale(.95);
7127
7125
  }
7128
7126
  /*
7129
- HEADS-UP:
7130
- Most BsFlyout base styles come from its BsPopover root element,
7131
- so some of these styles are there to override those defaults.
7127
+ Used in BsPopover, but exists as its own thing in case
7128
+ consumers need/want to use it for custom layout cases.
7132
7129
  */
7133
- .bs-flyout {
7134
- --bs-flyout-padding: var(--bs-space-6);
7135
- --bs-flyout-padding-top: 2.75rem;
7136
- display: flex;
7137
- flex-direction: column;
7138
- padding: 0;
7139
- margin: 0;
7140
- border-radius: 0;
7130
+ .bs-pop-x-button {
7131
+ background-color: inherit;
7132
+ background: transparent;
7133
+ border-color: transparent;
7134
+ color: inherit;
7135
+ cursor: pointer;
7136
+ font-family: inherit;
7137
+ font-size: var(--bs-text-base);
7138
+ padding: var(--bs-space-3); /* to make a bit nicer hit target */
7139
+ position: absolute;
7140
+ right: var(--bs-pop-x-btn-right, var(--bs-space-1));
7141
+ text-decoration: none;
7142
+ top: var(--bs-pop-x-btn-top, var(--bs-space-1));
7141
7143
  }
7142
- /* -- CLOSE BUTTON -- */
7143
- /* calc() adjusts for default .5rem padding .bs-popover-close-button has, which exists for a nicer hit target */
7144
- .bs-flyout :where(.bs-popover-close-button) {
7145
- top: calc(var(--bs-flyout-padding) - .5rem);
7146
- right: calc(var(--bs-flyout-padding) - .5rem);
7144
+ .bs-popover:where(:has(.bs-pop-header)) {
7145
+ --bs-pop-x-btn-right: var(--bs-space-4);
7146
+ --bs-pop-x-btn-top: var(--bs-space-4);
7147
7147
  }
7148
- /* -- HEADER -- */
7149
- .bs-flyout-header {
7148
+ .bs-pop-header {
7149
+ color: var(--bs-ink-base);
7150
+ font-size: var(--bs-text-md);
7150
7151
  flex-shrink: 0;
7151
- padding: var(--bs-flyout-padding-top) var(--bs-flyout-padding) var(--bs-flyout-padding);
7152
- }
7153
- /* with border */
7154
- .bs-flyout-header:where([data-border="true"]) {
7155
- border-bottom: 1px solid var(--bs-border-base);
7156
- }
7157
- .bs-flyout-title {
7158
- display: flex;
7159
- align-items: center;
7160
- gap: var(--bs-space-2);
7161
- margin: 0 var(--bs-space-6) 0 0;
7162
- font-size: var(--bs-text-lg);
7163
- font-weight: normal;
7152
+ padding: var(--bs-pop-header-padding, var(--bs-space-6));
7164
7153
  line-height: var(--bs-leading-regular);
7165
7154
  }
7166
- .bs-flyout-subtitle {
7155
+ .bs-pop-header:where(:not(:has(.bs-pop-title, .bs-pop-subtitle))) {
7167
7156
  display: flex;
7168
7157
  align-items: center;
7169
7158
  gap: var(--bs-space-2);
7170
- margin: var(--bs-space-2) 0 0 0;
7171
- font-size: var(--bs-text-sm);
7172
- font-weight: normal;
7173
- line-height: var(--bs-leading-lg);
7174
7159
  }
7175
- .bs-flyout-header:where([data-border="true"]) {
7160
+ .bs-pop-header:where([data-border="true"]) {
7176
7161
  border-bottom: 1px solid var(--bs-border-base);
7177
7162
  }
7178
- /* -- BODY -- */
7179
- .bs-flyout-body {
7163
+ .bs-pop-body {
7180
7164
  flex: 1;
7181
- padding: 0 var(--bs-flyout-padding);
7182
7165
  overflow-y: auto;
7183
7166
  overscroll-behavior: contain;
7167
+ padding: var(--bs-pop-body-padding, var(--bs-space-6));
7184
7168
  }
7185
- /* no header exists */
7186
- .bs-flyout:where(:not(:has(.bs-flyout-header))) :where(.bs-flyout-body) {
7187
- padding-top: var(--bs-flyout-padding-top);
7169
+ .bs-pop-body:where([data-background="true"]) {
7170
+ background-color: var(--bs-bg-light);
7188
7171
  }
7189
- /* no footer exists */
7190
- .bs-flyout:where(:not(:has(.bs-flyout-footer))) :where(.bs-flyout-body) {
7191
- padding-bottom: var(--bs-flyout-padding);
7172
+ .bs-pop-header:where(:not([data-border="true"])) + :where(.bs-pop-body:not([data-background="true"])) {
7173
+ padding-top: 0;
7192
7174
  }
7193
- /* header border exists */
7194
- .bs-flyout:where(:has(.bs-flyout-header[data-border="true"])) :where(.bs-flyout-body) {
7195
- padding-top: var(--bs-flyout-padding);
7175
+ .bs-pop-footer {
7176
+ align-items: center;
7177
+ display: flex;
7178
+ flex-shrink: 0;
7179
+ gap: var(--bs-space-6);
7180
+ justify-content: flex-end;
7181
+ padding: var(--bs-pop-footer-padding, var(--bs-space-4) var(--bs-space-6));
7196
7182
  }
7197
- /* footer border exists */
7198
- .bs-flyout:where(:has(.bs-flyout-footer[data-border="true"])) :where(.bs-flyout-body) {
7199
- padding-bottom: var(--bs-flyout-padding);
7183
+ .bs-pop-footer:where([data-border="true"]) {
7184
+ border-top: 1px solid var(--bs-border-base);
7200
7185
  }
7201
- /* -- FOOTER -- */
7202
- .bs-flyout-footer {
7186
+ .bs-pop-title {
7187
+ align-items: center;
7203
7188
  display: flex;
7204
- justify-content: flex-end;
7189
+ font-size: var(--bs-text-md);
7190
+ font-weight: normal;
7191
+ gap: var(--bs-space-2);
7192
+ line-height: var(--bs-leading-regular);
7193
+ margin: 0 var(--bs-space-12) 0 0;
7194
+ }
7195
+ .bs-pop-subtitle {
7205
7196
  align-items: center;
7206
- gap: var(--bs-space-6);
7207
- flex-shrink: 0;
7208
- padding: var(--bs-space-6);
7197
+ color: var(--bs-ink-light);
7198
+ display: flex;
7199
+ font-size: var(--bs-text-sm);
7200
+ font-weight: normal;
7201
+ gap: var(--bs-space-2);
7202
+ line-height: var(--bs-leading-lg);
7203
+ margin: var(--bs-space-2) 0 0 0;
7209
7204
  }
7210
- /* with border */
7211
- .bs-flyout-footer:where([data-border="true"]) {
7212
- border-top: 1px solid var(--bs-border-base);
7205
+ /*
7206
+ HEADS-UP:
7207
+ Most BsFlyout base styles come from its BsPopover root element,
7208
+ so some of these styles are there to override those defaults.
7209
+ */
7210
+ .bs-flyout {
7211
+ --bs-pop-header-padding: var(--bs-space-6);
7212
+ --bs-pop-body-padding: var(--bs-space-6);
7213
+ --bs-pop-footer-padding: var(--bs-space-6);
7214
+ margin: 0;
7215
+ border-radius: 0;
7216
+ }
7217
+ /* targeting header too, so consumer could just do: <BsPopHeader>My Title</BsPopHeader> */
7218
+ .bs-flyout :where(.bs-pop-header, .bs-pop-title) {
7219
+ font-size: var(--bs-text-lg);
7213
7220
  }
7214
7221
  /* -- SIZING -- */
7215
7222
  .bs-flyout {
7216
7223
  --bs-popover-height: 100dvh;
7217
7224
  max-height: unset;
7225
+ max-width: 100dvw;
7218
7226
  }
7219
7227
  .bs-flyout:where([data-size="sm"]) {
7220
7228
  --bs-popover-width: 22.5rem; /* 360px */
@@ -7268,142 +7276,50 @@ a.bs-text-button {
7268
7276
  ...so some of these styles override those defaults.
7269
7277
  */
7270
7278
  .bs-modal {
7271
- --bs-modal-sm-width: 21.25rem; /* 340px */
7272
- --bs-modal-md-width: 35rem; /* 560px */
7273
- --bs-modal-lg-width: 45.3125rem; /* 725px */
7274
- --bs-modal-padding: 1.5rem; /* 24px */
7275
- --bs-modal-lg-padding: 2rem; /* 32px */
7276
- display: flex;
7277
- flex-direction: column;
7278
- margin: 0;
7279
- padding: 0;
7279
+ --bs-pop-header-padding: var(--bs-modal-padding);
7280
+ --bs-pop-body-padding: var(--bs-modal-padding);
7281
+ --bs-pop-footer-padding: var(--bs-space-4) var(--bs-modal-padding);
7282
+ --bs-modal-padding: var(--bs-space-6);
7283
+ --bs-modal-lg-padding: var(--bs-space-8);
7280
7284
  background-color: var(--bs-bg-base-to-medium);
7281
7285
  box-shadow: var(--bs-shadow-contentHigh);
7282
- overflow: hidden;
7283
- }
7284
- /* -- CLOSE BUTTON -- */
7285
- /* calc() adjusts for default .5rem padding .bs-popover-close-button has, which exists for a nicer hit target */
7286
- .bs-modal :where(.bs-popover-close-button) {
7287
- top: calc(var(--bs-modal-padding) - .5rem);
7288
- right: calc(var(--bs-modal-padding) - .5rem);
7289
- }
7290
- .bs-modal:where([data-size="lg"]) :where(.bs-popover-close-button) {
7291
- top: calc(var(--bs-modal-lg-padding) - .5rem);
7292
- right: calc(var(--bs-modal-lg-padding) - .5rem);
7293
- }
7294
- /* -- HEADER -- */
7295
- .bs-modal-header {
7296
- flex-shrink: 0;
7297
- padding: var(--bs-modal-padding);
7298
- }
7299
- /* with border */
7300
- .bs-modal-header:where([data-border="true"]) {
7301
- border-bottom: 1px solid var(--bs-border-base);
7302
- }
7303
- /* large size, no border */
7304
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-header) {
7305
- padding: var(--bs-modal-lg-padding);
7306
- }
7307
- /* large size, with border */
7308
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-header[data-border="true"]) {
7309
- padding: var(--bs-modal-lg-padding);
7310
- padding-bottom: var(--bs-modal-padding);
7286
+ margin: 0;
7311
7287
  }
7312
- .bs-modal-title {
7313
- display: flex;
7314
- align-items: center;
7315
- gap: var(--bs-space-2);
7316
- margin: 0 var(--bs-space-6) 0 0;
7288
+ /* targeting header too, so consumer could just do: <BsPopHeader>My Title</BsPopHeader> */
7289
+ .bs-modal :where(.bs-pop-header, .bs-pop-title) {
7317
7290
  font-size: var(--bs-text-lg);
7318
- font-weight: normal;
7319
- line-height: var(--bs-leading-regular);
7320
7291
  }
7321
- .bs-modal-subtitle {
7322
- display: flex;
7323
- align-items: center;
7324
- gap: var(--bs-space-2);
7325
- margin: var(--bs-space-2) 0 0 0;
7326
- font-size: var(--bs-text-sm);
7327
- font-weight: normal;
7328
- line-height: var(--bs-leading-lg);
7292
+ .bs-modal:where([data-size="lg"]) {
7293
+ --bs-pop-x-btn-right: var(--bs-space-6);
7294
+ --bs-pop-header-padding: var(--bs-modal-lg-padding) var(--bs-modal-lg-padding) var(--bs-modal-padding);
7295
+ --bs-pop-body-padding: var(--bs-modal-padding) var(--bs-modal-lg-padding);
7296
+ --bs-pop-footer-padding: var(--bs-space-4) var(--bs-modal-lg-padding);
7329
7297
  }
7330
- /* -- BODY -- */
7331
- .bs-modal-body {
7332
- flex: 1;
7333
- overflow-y: auto;
7334
- padding: 0 var(--bs-modal-padding);
7335
- overscroll-behavior: contain;
7336
- }
7337
- /* large size */
7338
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-body) {
7339
- padding: 0 var(--bs-modal-lg-padding);
7340
- }
7341
- /* no header exists */
7342
- .bs-modal:where(:not(:has(.bs-modal-header))) :where(.bs-modal-body) {
7343
- padding-top: var(--bs-modal-padding);
7344
- }
7345
- /* large size, no header exists */
7346
- .bs-modal:where([data-size="lg"]):where(:not(:has(.bs-modal-header))) :where(.bs-modal-body) {
7347
- padding-top: var(--bs-modal-lg-padding);
7348
- }
7349
- /* no footer exists */
7350
- .bs-modal:where(:not(:has(.bs-modal-footer))) :where(.bs-modal-body) {
7351
- padding-bottom: var(--bs-modal-padding);
7352
- }
7353
- /* large size, no footer exists */
7354
- .bs-modal:where([data-size="lg"]):where(:not(:has(.bs-modal-footer))) :where(.bs-modal-body) {
7355
- padding-bottom: var(--bs-modal-lg-padding);
7356
- }
7357
- /* header border exists */
7358
- .bs-modal:where(:has(.bs-modal-header[data-border="true"])) :where(.bs-modal-body) {
7359
- padding-top: var(--bs-modal-padding);
7360
- }
7361
- /* footer border exists */
7362
- .bs-modal:where(:has(.bs-modal-footer[data-border="true"])) :where(.bs-modal-body) {
7363
- padding-bottom: var(--bs-modal-padding);
7364
- }
7365
- /* -- FOOTER -- */
7366
- .bs-modal-footer {
7367
- display: flex;
7368
- justify-content: flex-end;
7369
- align-items: center;
7370
- gap: var(--bs-space-6);
7371
- flex-shrink: 0;
7372
- padding: var(--bs-space-6) var(--bs-modal-padding);
7373
- }
7374
- /* with border */
7375
- .bs-modal-footer:where([data-border="true"]) {
7376
- border-top: 1px solid var(--bs-border-base);
7377
- padding: var(--bs-space-4) var(--bs-modal-padding);
7378
- }
7379
- /* large size, no border */
7380
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-footer) {
7381
- padding: var(--bs-modal-lg-padding);
7382
- }
7383
- /* large size, with border */
7384
- .bs-modal:where([data-size="lg"]) :where(.bs-modal-footer[data-border="true"]) {
7385
- padding: var(--bs-space-4) var(--bs-modal-lg-padding);
7298
+ .bs-modal:where([data-size="lg"]:has(.bs-pop-header)) {
7299
+ --bs-pop-x-btn-right: var(--bs-space-6);
7300
+ --bs-pop-x-btn-top: var(--bs-space-6);
7386
7301
  }
7387
7302
  /* -- SIZING -- */
7388
7303
  .bs-modal {
7389
- max-width: calc(100dvw - 3rem);
7304
+ --bs-popover-width: calc(100dvw - 3rem);
7390
7305
  max-height: calc(100dvh - 3rem);
7391
7306
  }
7392
7307
  @media (min-width: 752px) {
7393
7308
  .bs-modal {
7309
+ --bs-popover-width: fit-content;
7394
7310
  max-height: min(calc(100dvh - 3rem), 40.625rem);
7395
7311
  }
7396
7312
 
7397
7313
  .bs-modal:where([data-size="sm"]) {
7398
- --bs-popover-width: var(--bs-modal-sm-width);
7314
+ --bs-popover-width: 21.25rem; /* 340px */
7399
7315
  }
7400
7316
 
7401
7317
  .bs-modal:where([data-size="md"]) {
7402
- --bs-popover-width: var(--bs-modal-md-width);
7318
+ --bs-popover-width: 35rem; /* 560px */
7403
7319
  }
7404
7320
 
7405
7321
  .bs-modal:where([data-size="lg"]) {
7406
- --bs-popover-width: var(--bs-modal-lg-width);
7322
+ --bs-popover-width: 45.3125rem; /* 725px */
7407
7323
  }
7408
7324
  }
7409
7325
  /* -- TRANSITIONS -- */
@@ -7457,84 +7373,76 @@ a.bs-text-button {
7457
7373
  }
7458
7374
  /* Toast */
7459
7375
  .bs-toast {
7376
+ --bs-pop-header-padding: var(--bs-space-4);
7377
+ --bs-pop-body-padding: var(--bs-space-4);
7378
+ --bs-pop-footer-padding: var(--bs-space-2) var(--bs-space-4);
7460
7379
  --bs-popover-width: min(23rem, calc(100dvw - 3rem));
7461
7380
  --toast-transform: translate(0, calc(100% + 1.5rem));
7462
7381
  --toast-variant-color: var(--bs-primary-base);
7382
+ --toast-icon: var(--toast-icon-base);
7383
+ --toast-icon-color: var(--bs-ink-primary);
7384
+ --toast-icon-base: url('https://cdn.apps.wwt.com/static/wwt-blue-steel-icons/icon-circle-info.svg');
7385
+ --toast-icon-warning: url('https://cdn.apps.wwt.com/static/wwt-blue-steel-icons/icon-warning.svg');
7386
+ --toast-icon-positive: url('https://cdn.apps.wwt.com/static/wwt-blue-steel-icons/icon-thumbs-up-stroke.svg');
7463
7387
  background-color: var(--bs-bg-base-to-light);
7464
7388
  border-radius: 0;
7465
7389
  border-top: 4px solid var(--toast-variant-color);
7466
7390
  box-shadow: var(--bs-shadow-contentMedium);
7467
7391
  margin: 0;
7468
7392
  order: var(--toast-order, 0);
7469
- padding: 0;
7393
+ }
7394
+ /* Toast Footer Mobile - Buttons will be stacked */
7395
+ .bs-toast :where(.bs-pop-footer) {
7396
+ align-items: stretch;
7397
+ flex-direction: column-reverse;
7398
+ gap: var(--bs-space-2);
7470
7399
  }
7471
7400
  @media (min-width: 440px) {
7472
7401
  .bs-toast {
7473
7402
  --toast-transform: translate(calc(100% + 1.5rem), 0);
7474
7403
  }
7404
+
7405
+ .bs-toast :where(.bs-pop-footer) {
7406
+ align-items: center;
7407
+ flex-direction: row;
7408
+ gap: var(--bs-space-6);
7409
+ }
7475
7410
  }
7411
+ /* Toast Variants */
7476
7412
  .bs-toast:where([data-variant="warning"]) {
7413
+ --toast-icon: var(--toast-icon-warning);
7414
+ --toast-icon-color: var(--bs-ink-warning);
7477
7415
  --toast-variant-color: var(--bs-warning-base);
7478
-
7479
- .bs-toast-header-icon {
7480
- color: var(--bs-ink-warning);
7481
- }
7482
7416
  }
7483
7417
  .bs-toast:where([data-variant="positive"]) {
7418
+ --toast-icon: var(--toast-icon-positive);
7419
+ --toast-icon-color: var(--bs-ink-positive);
7484
7420
  --toast-variant-color: var(--bs-positive-base);
7485
-
7486
- .bs-toast-header-icon {
7487
- color: var(--bs-ink-positive);
7488
- }
7489
7421
  }
7490
- .bs-toast:where([data-variant="negative"]) {
7491
- --toast-variant-color: var(--bs-negative-base);
7492
-
7493
- .bs-toast-header-icon {
7494
- color: var(--bs-ink-negative);
7495
- }
7496
- }
7497
- /* Toast Header */
7498
- .bs-toast :where(.bs-toast-header) {
7499
- align-items: center;
7500
- color: var(--bs-ink-base);
7501
- display: flex;
7502
- gap: 0.5rem;
7503
- padding: 1rem;
7422
+ .dark :where(.bs-toast[data-variant="positive"]) {
7423
+ --toast-icon-color: var(--bs-positive-light);
7424
+ --toast-variant-color: var(--bs-positive-light);
7504
7425
  }
7505
- .bs-toast :where(.bs-toast-header .bs-toast-header-icon) {
7506
- color: var(--bs-ink-primary);
7426
+ .bs-toast:where([data-variant="negative"]) {
7427
+ --toast-icon: var(--toast-icon-warning);
7428
+ --toast-icon-color: var(--bs-negative-dark);
7429
+ --toast-variant-color: var(--bs-negative-dark);
7507
7430
  }
7508
- .bs-toast :where(.bs-toast-header .bs-toast-header-text) {
7509
- font-size: var(--bs-text-md);
7510
- font-weight: var(--bs-font-normal);
7511
- line-height: var(--bs-leading-lg);
7431
+ /* Toast Header - auto-add the icon */
7432
+ .bs-toast :where(.bs-pop-header:not(:has(.bs-pop-title, .bs-pop-subtitle)))::before,
7433
+ .bs-toast :where(.bs-pop-header .bs-pop-title)::before {
7434
+ display: block;
7435
+ content: '';
7436
+ background-color: var(--toast-icon-color);
7437
+ -webkit-mask: var(--toast-icon) center/contain no-repeat;
7438
+ mask: var(--toast-icon) center/contain no-repeat;
7439
+ flex-shrink: 0;
7440
+ height: var(--bs-space-4);
7441
+ width: var(--bs-space-4);
7512
7442
  }
7513
7443
  /* Toast Body */
7514
- .bs-toast :where(.bs-toast-body) {
7515
- border-bottom: 1px solid var(--bs-border-base);
7444
+ .bs-toast :where(.bs-pop-body) {
7516
7445
  color: var(--bs-ink-light);
7517
- padding-bottom: 1rem;
7518
- padding-left: 1rem;
7519
- padding-right: 1rem;
7520
- }
7521
- .bs-toast :where(:not(:has(.bs-toast-header)) .bs-toast-body) {
7522
- padding-top: 1rem;
7523
- }
7524
- /* Toast Footer */
7525
- .bs-toast :where(.bs-toast-footer) {
7526
- /* Mobile - Buttons will be stacked */
7527
- display: flex;
7528
- flex-direction: row;
7529
- gap: 1rem;
7530
- justify-content: flex-end;
7531
- padding-bottom: 0.5rem;
7532
- padding-left: 1rem;
7533
- padding-right: 1rem;
7534
- padding-top: 0.5rem;
7535
- }
7536
- .bs-toast :where(.bs-toast-footer):where([data-stacked]:not([data-stacked="false"])) {
7537
- flex-direction: column-reverse;
7538
7446
  }
7539
7447
  /* Vue Transition Styles */
7540
7448
  .bs-toast-enter-active,