@wwtdev/bsds-css 2.21.1 → 2.23.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
@@ -1470,7 +1470,7 @@ a:where(.bs-link):where(:focus:not(:focus-visible)) {
1470
1470
  -moz-column-gap: 0.75rem;
1471
1471
  column-gap: 0.75rem;
1472
1472
  display: grid;
1473
- grid-template-columns: 1.25rem 1fr 1rem;
1473
+ grid-template-columns: 1.125rem 1fr 1rem;
1474
1474
  grid-template-areas: "icon title close"
1475
1475
  ". description ."
1476
1476
  ". action .";
@@ -1479,37 +1479,52 @@ a:where(.bs-link):where(:focus:not(:focus-visible)) {
1479
1479
  @media (min-width: 752px) {
1480
1480
  .bs-alert {
1481
1481
  padding: 1.5rem;
1482
- }
1483
- }
1484
- .bs-alert:where([data-horizontal="true"]) {
1485
- grid-template-columns: 1.25rem 1fr 1rem;
1486
- grid-template-areas: "icon title close"
1482
+ grid-template-columns: 1.25rem 1fr 1rem;
1483
+ grid-template-areas: "icon title close"
1484
+ ". description ."
1487
1485
  ". action .";
1486
+ }
1488
1487
  }
1489
1488
  @media (min-width: 752px) {
1490
1489
  .bs-alert:where([data-horizontal="true"]) {
1490
+ padding: 1rem 1.5rem;
1491
1491
  grid-template-areas: "icon title action close";
1492
- grid-template-columns: 1.25rem max-content 1fr 1rem;
1492
+ grid-template-columns: 1.125rem max-content 1fr 1rem;
1493
1493
  }
1494
1494
  }
1495
1495
  .bs-alert :where(.bs-alert-icon) {
1496
- align-self: center;
1496
+ margin-top: 0.25rem;
1497
+ align-self: start;
1497
1498
  color: var(--bs-ink-blue);
1498
1499
  grid-area: icon;
1499
- height: 1.25rem;
1500
- width: 1.25rem;
1500
+ height: 1.125rem;
1501
+ width: 1.125rem;
1501
1502
  }
1502
1503
  .bs-alert :where(.bs-alert-title) {
1503
1504
  font-size: 1.125rem;
1505
+ line-height: 1.3;
1506
+ color: var(--bs-ink-base);
1504
1507
  grid-area: title;
1505
1508
  }
1506
1509
  @media (min-width: 752px) {
1507
1510
  .bs-alert :where(.bs-alert-title) {
1508
1511
  font-size: 1.25rem;
1512
+ line-height: 1.3;
1513
+ }
1514
+
1515
+ .bs-alert:where([data-horizontal="true"]) :where(.bs-alert-title) {
1516
+ font-size: 1.125rem;
1517
+ line-height: 1.5;
1518
+ }
1519
+
1520
+ .bs-alert:where(:not([data-horizontal="true"])) :where(.bs-alert-icon) {
1521
+ height: 1.25rem;
1522
+ width: 1.25rem;
1509
1523
  }
1510
1524
  }
1511
1525
  .bs-alert :where(.bs-alert-description) {
1512
1526
  font-size: 0.875rem;
1527
+ color: var(--bs-ink-medium);
1513
1528
  grid-area: description;
1514
1529
  margin-top: 0.5rem;
1515
1530
  }
@@ -1522,7 +1537,8 @@ a:where(.bs-link):where(:focus:not(:focus-visible)) {
1522
1537
  display: none;
1523
1538
  }
1524
1539
  .bs-alert :where(.bs-alert-close) {
1525
- align-self: center;
1540
+ margin-top: 0.25rem;
1541
+ align-self: start;
1526
1542
  background-color: transparent;
1527
1543
  cursor: pointer;
1528
1544
  grid-area: close;
@@ -3756,6 +3772,10 @@ textarea {
3756
3772
  outline-style: none;
3757
3773
  outline-width: 0px;
3758
3774
  }
3775
+ /* OPEN state */
3776
+ :is(select, .bs-select):where(:open) {
3777
+ background: var(--bs-bg-base-to-light);
3778
+ }
3759
3779
  /* DISABLED state */
3760
3780
  :is(input:where(:not([type='checkbox'],[type='radio'])), textarea, select):where(:disabled),
3761
3781
  :is(.bs-input, .bs-select, .bs-textarea):where(:disabled) {
@@ -3863,7 +3883,7 @@ select[multiple],
3863
3883
  top: var(--top-offset);
3864
3884
  z-index: 1001;
3865
3885
  }
3866
- @media (min-width: 752px) {
3886
+ @media (min-width: 1166px) {
3867
3887
  .bs-horizontal-nav {
3868
3888
  display: flex;
3869
3889
  }
@@ -4031,40 +4051,23 @@ select[multiple],
4031
4051
  .bs-horizontal-nav-mobile {
4032
4052
  --bg-color: var(--bs-bg-light);
4033
4053
  --top-offset: 48px;
4034
- -ms-overflow-style: none; /* Internet Explorer 10+ */
4035
- background-color: var(--bg-color);
4036
4054
  display: flex;
4037
4055
  flex-direction: column;
4038
- height: auto;
4039
4056
  left: 0;
4040
- max-height: calc(100vh - var(--top-offset));
4041
- overflow: scroll;
4042
4057
  position: fixed;
4043
4058
  right: 0;
4044
- scrollbar-width: none; /* Firefox */
4045
4059
  top: var(--top-offset);
4046
4060
  z-index: 1001;
4047
4061
  }
4048
- .bs-horizontal-nav-mobile:where([data-shown="true"]) {
4049
- height: 100vh;
4050
- }
4051
- @media (min-width: 752px) {
4062
+ @media (min-width: 1166px) {
4052
4063
  .bs-horizontal-nav-mobile {
4053
4064
  display: none;
4054
4065
  }
4055
4066
  }
4056
- /* ===== Nav List ===== */
4057
- .bs-horizontal-nav-mobile :where(ul) {
4058
- display: none;
4059
- flex-direction: column;
4060
- list-style: none;
4061
- }
4062
- .bs-horizontal-nav-mobile:where([data-shown="true"]) :where(ul) {
4063
- display: flex;
4064
- }
4065
4067
  /* ===== Toggle ===== */
4066
4068
  .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-toggle) {
4067
4069
  align-items: center;
4070
+ background-color: var(--bs-bg-light);
4068
4071
  color: var(--bs-ink-light);
4069
4072
  cursor: pointer;
4070
4073
  display: flex;
@@ -4076,6 +4079,9 @@ select[multiple],
4076
4079
  padding-top: 0.5rem;
4077
4080
  width: 100%;
4078
4081
  }
4082
+ .bs-horizontal-nav-mobile:where([data-hide-toggle="true"]) :where(.bs-horizontal-nav-mobile-toggle) {
4083
+ display: none;
4084
+ }
4079
4085
  .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-toggle-title) {
4080
4086
  align-items: center;
4081
4087
  display: flex;
@@ -4097,14 +4103,45 @@ select[multiple],
4097
4103
  .bs-horizontal-nav-mobile:where([data-shown="true"]) :where(.bs-horizontal-nav-mobile-toggle-caret) {
4098
4104
  transform: rotate(180deg);
4099
4105
  }
4106
+ /* ===== Nav Menu Container ===== */
4107
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu) {
4108
+ -ms-overflow-style: none; /* Internet Explorer 10+ */
4109
+ background-color: var(--bg-color);
4110
+ display: flex;
4111
+ flex-direction: column;
4112
+ height: 100vh;
4113
+ /* 100vh - top offset - toggle height */
4114
+ max-height: calc(100vh - var(--top-offset) - 48px);
4115
+ opacity: 0;
4116
+ overflow: scroll;
4117
+ scrollbar-width: none; /* Firefox */
4118
+ transition-duration: 200ms;
4119
+ transition-property: opacity;
4120
+ transition-timing-function: ease;
4121
+ }
4122
+ .bs-horizontal-nav-mobile:where([data-hide-toggle="true"]) :where(.bs-horizontal-nav-mobile-menu) {
4123
+ max-height: calc(100vh - var(--top-offset));
4124
+ }
4125
+ .bs-horizontal-nav-mobile:where([data-shown="true"]) :where(.bs-horizontal-nav-mobile-menu) {
4126
+ opacity: 1;
4127
+ }
4128
+ /* ===== Nav List ===== */
4129
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul) {
4130
+ background-color: var(--bg-color);
4131
+ display: flex;
4132
+ flex-direction: column;
4133
+ list-style: none;
4134
+ }
4100
4135
  /* ===== Nav Items ===== */
4101
- .bs-horizontal-nav-mobile :where(ul > li) {
4136
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li) {
4102
4137
  border-top: 1px solid var(--bs-border-base);
4103
4138
  }
4104
- .bs-horizontal-nav-mobile :where(ul:not(.bs-horizontal-nav-mobile-nested-menu) > li:last-child) {
4139
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li:last-child) {
4105
4140
  border-bottom: 1px solid var(--bs-border-base);
4106
4141
  }
4107
- .bs-horizontal-nav-mobile :where(ul > li > a) {
4142
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a),
4143
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a),
4144
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links > ul > li > a) {
4108
4145
  color: var(--bs-ink-light);
4109
4146
  cursor: pointer;
4110
4147
  display: flex;
@@ -4114,14 +4151,18 @@ select[multiple],
4114
4151
  padding-right: 2.25rem;
4115
4152
  padding-top: 0.75rem;
4116
4153
  }
4117
- .bs-horizontal-nav-mobile :where(ul > li > a:hover) {
4154
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a:hover),
4155
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a:hover),
4156
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links > ul > li > a:hover) {
4118
4157
  color: var(--bs-ink-blue);
4119
4158
  }
4120
- .bs-horizontal-nav-mobile :where(ul > li > a[data-active="true"]) {
4159
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a[data-active="true"]),
4160
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a[data-active="true"]) {
4121
4161
  color: var(--bs-ink-base);
4122
4162
  font-weight: 600;
4123
4163
  }
4124
- .bs-horizontal-nav-mobile :where(ul > li > a[data-active="true"]:hover) {
4164
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a[data-active="true"]:hover),
4165
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a[data-active="true"]:hover) {
4125
4166
  color: var(--bs-ink-blue);
4126
4167
  }
4127
4168
  /* ===== Nested Nav Items ===== */
@@ -4137,10 +4178,10 @@ select[multiple],
4137
4178
  padding-top: 0.75rem;
4138
4179
  width: 100%;
4139
4180
  }
4140
- .bs-horizontal-nav-mobile :where(ul li .bs-horizontal-nav-mobile-nested-toggle[data-active="true"]) {
4181
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-toggle[data-active="true"]) {
4141
4182
  font-weight: 600;
4142
4183
  }
4143
- .bs-horizontal-nav-mobile :where(ul li[data-expanded="true"] .bs-horizontal-nav-mobile-nested-toggle) {
4184
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li[data-expanded="true"] > .bs-horizontal-nav-mobile-nested-toggle) {
4144
4185
  background-color: var(--bs-bg-medium);
4145
4186
  color: var(--bs-ink-blue);
4146
4187
  font-weight: 600;
@@ -4156,23 +4197,24 @@ select[multiple],
4156
4197
  transition-timing-function: ease-in-out;
4157
4198
  width: 0.75rem;
4158
4199
  }
4159
- .bs-horizontal-nav-mobile :where(ul li[data-expanded="true"] .bs-horizontal-nav-mobile-nested-toggle-caret) {
4200
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li[data-expanded="true"] .bs-horizontal-nav-mobile-nested-toggle-caret) {
4160
4201
  transform: rotate(180deg);
4161
4202
  }
4162
4203
  .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu) {
4163
4204
  background-color: var(--bs-bg-medium);
4164
4205
  display: none;
4165
4206
  }
4166
- .bs-horizontal-nav-mobile :where(ul li[data-expanded="true"] .bs-horizontal-nav-mobile-nested-menu) {
4207
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li[data-expanded="true"] > .bs-horizontal-nav-mobile-nested-menu) {
4167
4208
  display: block;
4168
4209
  }
4169
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li) {
4170
- border-top: none;
4171
- }
4172
4210
  /* ===== External Links ===== */
4173
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-link) {
4174
- align-items: center;
4211
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links) {
4212
+ margin-top: auto;
4213
+ padding-top: 2.25rem;
4214
+ }
4215
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links > ul > li > a) {
4175
4216
  display: flex;
4217
+ align-items: center;
4176
4218
  gap: 0.5rem;
4177
4219
  }
4178
4220
  .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-link-icon) {
@@ -4181,14 +4223,97 @@ select[multiple],
4181
4223
  }
4182
4224
  /* ===== Slotted Items ===== */
4183
4225
  .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-slotted-items) {
4184
- display: none;
4185
4226
  padding-bottom: 0.75rem;
4186
4227
  padding-left: 2.25rem;
4187
4228
  padding-right: 2.25rem;
4188
4229
  padding-top: 0.75rem;
4230
+ margin-top: auto;
4189
4231
  }
4190
- .bs-horizontal-nav-mobile:where([data-shown="true"]) :where(.bs-horizontal-nav-mobile-slotted-items) {
4191
- display: block;
4232
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links ~ .bs-horizontal-nav-mobile-slotted-items) {
4233
+ margin-top: 0;
4234
+ }
4235
+ /* Vue Transition Styles - Only used in Vue component */
4236
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-enter-from),
4237
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-leave-to) {
4238
+ opacity: 0;
4239
+ }
4240
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-enter-to),
4241
+ .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-leave-from) {
4242
+ opacity: 1;
4243
+ }
4244
+ .bs-inline-tabs {
4245
+ display: flex;
4246
+ gap: var(--bs-space-2);
4247
+ }
4248
+ .bs-inline-tab {
4249
+ display: inline-flex;
4250
+ justify-content: center;
4251
+ align-items: center;
4252
+ padding: var(--bs-space-2) var(--bs-space-3);
4253
+ font-size: var(--bs-text-sm);
4254
+ font-weight: 600;
4255
+ line-height: 1.5;
4256
+ color: var(--bs-ink-royal);
4257
+ text-align: center; /* needed for "as link" wrap cases */
4258
+ text-decoration: none;
4259
+ background-color: var(--bs-bg-medium);
4260
+ border-radius: var(--bs-space-1);
4261
+ border: 1px solid transparent;
4262
+ outline: none;
4263
+ cursor: pointer;
4264
+ transition: all 100ms ease-in-out;
4265
+ }
4266
+ /* Variant */
4267
+ .bs-inline-tab:where([data-variant="white"]) {
4268
+ background-color: var(--bs-bg-base);
4269
+ }
4270
+ /* Hover */
4271
+ .bs-inline-tab:where(:not([data-selected]):hover) {
4272
+ border-color: var(--bs-ink-royal); /* "ink-royal" instead of "royal-base", matches Figma design */
4273
+ }
4274
+ /* Keyboard Focus */
4275
+ .bs-inline-tab:where(:focus-visible) {
4276
+ outline: 2px solid var(--bs-ink-royal);
4277
+
4278
+ &:where([data-selected]) {
4279
+ outline-offset: 2px;
4280
+ }
4281
+ }
4282
+ /* Selected */
4283
+ .bs-inline-tab:where([data-selected]) {
4284
+ color: var(--bs-ink-white);
4285
+ background-color: var(--bs-royal-400); /* "400" instead of "base", matches Figma design */
4286
+ }
4287
+ /* Disabled (as button or link) */
4288
+ .bs-inline-tab:where(:disabled, [aria-disabled="true"]) {
4289
+ color: var(--bs-ink-light);
4290
+ background-color: var(--bs-gray-light);
4291
+ cursor: default;
4292
+ pointer-events: none;
4293
+ }
4294
+ /* Selected & Disabled */
4295
+ .bs-inline-tab:where([data-selected]):where(:disabled, [aria-disabled="true"]) {
4296
+ color: var(--bs-ink-white);
4297
+ background-color: var(--bs-gray-base);
4298
+ }
4299
+ /* -- Dark Mode Overrides -- */
4300
+ :where(.dark .bs-inline-tab) {
4301
+
4302
+ /* Ink */
4303
+ &:not([data-selected], :disabled, [aria-disabled="true"]) {
4304
+ color: var(--bs-ink-medium);
4305
+ }
4306
+
4307
+ /* Selected & Disabled */
4308
+ &[data-selected]:where(:disabled, [aria-disabled="true"]) {
4309
+ color: var(--bs-ink-invert-base);
4310
+ }
4311
+
4312
+ /* Keyboard Focus */
4313
+ &[data-selected]:where(:focus-visible) {
4314
+ outline-offset: 0;
4315
+ }
4316
+
4192
4317
  }
4193
4318
  .bs-loader {
4194
4319
  --loader-dot-bg: var(--bs-blue-500);
@@ -4286,10 +4411,17 @@ select[multiple],
4286
4411
  }
4287
4412
  }
4288
4413
  .bs-modal {
4414
+ --base-modal-width: 35rem; /* 560px */
4415
+ --lg-modal-padding: 2rem; /* 32px */
4416
+ --lg-modal-width: 45.3125rem; /* 725px */
4417
+ --modal-padding: 1.5rem; /* 24px */
4418
+ --sm-modal-width: 21.25rem; /* 340px */
4289
4419
  background-color: var(--bs-bg-base-to-medium);
4290
4420
  border-radius: 4px;
4291
4421
  bottom: 0;
4292
4422
  box-shadow: var(--bs-shadow-contentHigh);
4423
+ display: flex;
4424
+ flex-direction: column;
4293
4425
  height: -moz-fit-content;
4294
4426
  height: fit-content;
4295
4427
  left: 0;
@@ -4297,7 +4429,6 @@ select[multiple],
4297
4429
  max-height: calc(100% - 3rem);
4298
4430
  opacity: 0;
4299
4431
  overflow: auto;
4300
- padding: 1.5rem;
4301
4432
  position: fixed;
4302
4433
  right: 0;
4303
4434
  top: 0;
@@ -4310,47 +4441,120 @@ select[multiple],
4310
4441
  @media (min-width: 752px) {
4311
4442
  .bs-modal {
4312
4443
  max-height: min(calc(100vh - 3rem), 40.625rem);
4313
- width: 35rem;
4444
+ width: var(--base-modal-width);
4445
+ }
4446
+
4447
+ .bs-modal:where([data-size="sm"]) {
4448
+ width: var(--sm-modal-width);
4449
+ }
4450
+
4451
+ .bs-modal:where([data-size="lg"]) {
4452
+ width: var(--lg-modal-width);
4314
4453
  }
4315
4454
  }
4316
- .bs-modal:where([data-shown]:not([data-shown="false"])) {
4455
+ .bs-modal:where([data-shown="true"]) {
4317
4456
  opacity: 1;
4318
4457
  }
4319
- .bs-modal:where([data-full-width="true"]) {
4458
+ /* Header Container */
4459
+ .bs-modal :where(.bs-modal-header-container) {
4460
+ padding: var(--modal-padding);
4461
+ }
4462
+ .bs-modal:where([data-size="lg"]) :where(.bs-modal-header-container) {
4463
+ padding: var(--lg-modal-padding);
4464
+ }
4465
+ .bs-modal:where([data-header-border="true"]) :where(.bs-modal-header-container) {
4466
+ border-bottom: 1px solid var(--bs-border-base);
4467
+ }
4468
+ .bs-modal:where([data-full-width="true"]) :where(.bs-modal-header-container) {
4320
4469
  padding-left: 0;
4321
4470
  padding-right: 0;
4322
4471
  }
4323
- .bs-modal:where([data-full-height="true"]) {
4324
- padding-top: 0;
4325
- padding-bottom: 0;
4326
- }
4327
- .bs-modal :where(.modal-header) {
4328
- align-items: start;
4472
+ /* Header Row */
4473
+ .bs-modal :where(.bs-modal-header) {
4474
+ align-items: center;
4329
4475
  display: flex;
4330
4476
  justify-content: space-between;
4331
- margin-bottom: 2rem;
4332
4477
  }
4333
- .bs-modal :where(.modal-title) {
4478
+ /* Title */
4479
+ .bs-modal :where(.bs-modal-title) {
4334
4480
  flex-grow: 1;
4335
- font-size: var(--bs-text-md);
4336
- font-weight: 600;
4337
- margin: 0;
4481
+ font-size: var(--bs-text-lg);
4482
+ font-weight: 400;
4483
+ margin-right: 2rem;
4338
4484
  }
4339
- .bs-modal :where(.only-close-button-modal-header) {
4340
- display: flex;
4341
- justify-content: flex-end;
4342
- margin-bottom: 0;
4485
+ /* Subtitle */
4486
+ .bs-modal :where(.bs-modal-subtitle) {
4487
+ font-size: var(--bs-text-sm);
4488
+ font-weight: 400;
4489
+ margin-top: 0.5rem;
4490
+ width: 100%;
4491
+ }
4492
+ /* Close Button */
4493
+ .bs-modal :where(.bs-modal-close-button) {
4494
+ background-color: transparent;
4495
+ cursor: pointer;
4343
4496
  }
4344
- .bs-modal :where(.full-width-header-close-button) {
4497
+ .bs-modal:where(:not(:has(.bs-modal-header-container))) :where(.bs-modal-close-button) {
4345
4498
  position: absolute;
4346
- right: 0.75rem;
4347
- top: 0.75rem;
4499
+ right: 1rem;
4500
+ top: 1rem;
4348
4501
  }
4349
- .bs-modal :where(.close-button) {
4350
- cursor: pointer;
4502
+ .bs-modal:where([data-full-width="true"]:has(> .bs-modal-header-container)) :where(.bs-modal-close-button) {
4503
+ margin-right: var(--modal-padding);
4351
4504
  }
4352
- .bs-modal :where(.modal-footer) {
4353
- margin-top: 3rem;
4505
+ .bs-modal:where([data-full-width="true"][data-size="lg"]:has(> .bs-modal-header-container)) :where(.bs-modal-close-button) {
4506
+ margin-right: var(--lg-modal-padding);
4507
+ }
4508
+ /* Progress */
4509
+ .bs-modal :where(.bs-modal-progress) {
4510
+ margin-top: 1.5rem;
4511
+ width: 100%;
4512
+ }
4513
+ /* Body */
4514
+ .bs-modal :where(.bs-modal-body) {
4515
+ overflow-y: auto;
4516
+ padding: var(--modal-padding);
4517
+ }
4518
+ .bs-modal:where([data-full-height="true"]) :where(.bs-modal-body) {
4519
+ padding-bottom: 0;
4520
+ padding-top: 0;
4521
+ }
4522
+ .bs-modal:where([data-full-width="true"]) :where(.bs-modal-body) {
4523
+ padding-left: 0;
4524
+ padding-right: 0;
4525
+ }
4526
+ /* Has header, but no header border */
4527
+ .bs-modal:where(:not([data-header-border]):has(> .bs-modal-header-container)) :where(.bs-modal-body),
4528
+ .bs-modal:where([data-header-border="false"]:has(> .bs-modal-header-container)) :where(.bs-modal-body) {
4529
+ padding-top: 0;
4530
+ }
4531
+ /* Has footer, but no footer border */
4532
+ .bs-modal:where(:not([data-footer-border])) :where(.bs-modal-body:has(~ .bs-modal-footer)),
4533
+ .bs-modal:where([data-footer-border="false"]) :where(.bs-modal-body:has(~ .bs-modal-footer)) {
4534
+ padding-bottom: 0;
4535
+ }
4536
+ .bs-modal:where([data-body-background-contrast="true"]) :where(.bs-modal-body) {
4537
+ background-color: var(--bs-bg-light);
4538
+ }
4539
+ /* Footer */
4540
+ .bs-modal :where(.bs-modal-footer) {
4541
+ padding-bottom: 1rem;
4542
+ padding-left: var(--modal-padding);
4543
+ padding-right: var(--modal-padding);
4544
+ padding-top: 1rem;
4545
+ }
4546
+ .bs-modal:where([data-size="lg"]) :where(.bs-modal-footer) {
4547
+ padding-bottom: 1.5rem;
4548
+ padding-left: var(--lg-modal-padding);
4549
+ padding-right: var(--lg-modal-padding);
4550
+ padding-top: 1.5rem;
4551
+ }
4552
+ .bs-modal:where([data-footer-border="true"]) :where(.bs-modal-footer) {
4553
+ border-top: 1px solid var(--bs-border-base);
4554
+ }
4555
+ .bs-modal:where([data-full-width="true"]) :where(.bs-modal-footer) {
4556
+ padding-left: 0;
4557
+ padding-right: 0;
4354
4558
  }
4355
4559
  /* Vue Transition Styles - Only used in Vue component */
4356
4560
  .bs-modal:where(.bs-modal-enter-from),
@@ -5712,16 +5916,18 @@ This must go last to properly override the other classes
5712
5916
  --active-color: rgba(255, 255, 255, 0.25);
5713
5917
  --bg-color: var(--bs-navy-base);
5714
5918
  --border-color: var(--bs-border-dark);
5919
+ --expand-y-transform: translateY(calc(-1 * var(--top-offset)));
5715
5920
  --top-offset: 48px;
5716
5921
  --width: auto;
5717
5922
  -ms-overflow-style: none; /* Internet Explorer 10+ */
5718
5923
  background-color: var(--bg-color);
5719
5924
  color: var(--bs-white);
5720
- display: none;
5925
+ display: flex;
5721
5926
  flex-direction: column;
5722
5927
  height: 100vh;
5723
5928
  left: 0;
5724
5929
  max-height: calc(100vh - var(--top-offset));
5930
+ opacity: 0;
5725
5931
  overflow: scroll;
5726
5932
  padding-bottom: 1.5rem;
5727
5933
  padding-left: 1.5rem;
@@ -5731,14 +5937,15 @@ This must go last to properly override the other classes
5731
5937
  right: 0;
5732
5938
  scrollbar-width: none; /* Firefox */
5733
5939
  top: var(--top-offset);
5734
- transition-duration: 0.2s;
5735
- transition-property: max-height, transform;
5736
- transition-timing-function: ease;
5940
+ /* Slight delay for visibility to change prior to opacity */
5941
+ transition: opacity 200ms ease 10ms;
5942
+ visibility: hidden;
5737
5943
  width: var(--width);
5738
5944
  z-index: 1001;
5739
5945
  }
5740
5946
  .bs-vertical-nav:where([data-mobile-shown="true"]) {
5741
- display: flex;
5947
+ opacity: 1;
5948
+ visibility: visible;
5742
5949
  }
5743
5950
  .dark .bs-vertical-nav {
5744
5951
  --active-color: rgba(255, 255, 255, 0.25);
@@ -5746,16 +5953,18 @@ This must go last to properly override the other classes
5746
5953
  --border-color: var(--bs-border-dark);
5747
5954
  border-right: 1px solid var(--bs-border-medium);
5748
5955
  }
5749
- @media (min-width: 752px) {
5956
+ @media (min-width: 1166px) {
5750
5957
  .bs-vertical-nav {
5751
5958
  --width: 9.875rem;
5752
5959
  border-right: 1px solid var(--bg-color);
5753
- display: flex;
5960
+ opacity: 1;
5754
5961
  padding-bottom: 1rem;
5755
5962
  padding-left: 0.5rem;
5756
5963
  padding-right: 0.5rem;
5757
5964
  padding-top: 1rem;
5758
5965
  right: auto;
5966
+ transition: max-height 200ms ease, transform 200ms ease;
5967
+ visibility: visible;
5759
5968
  }
5760
5969
 
5761
5970
  .bs-vertical-nav:where([data-narrow="true"]) {
@@ -5766,7 +5975,7 @@ This must go last to properly override the other classes
5766
5975
  display: none; /* Safari and Chrome */
5767
5976
  }
5768
5977
  .bs-vertical-nav:where([data-y-expand="true"]) {
5769
- transform: translateY(calc(-1 * var(--top-offset)));
5978
+ transform: var(--expand-y-transform);
5770
5979
  max-height: 100vh;
5771
5980
  }
5772
5981
  /* ===== Sections ===== */
@@ -5775,7 +5984,7 @@ This must go last to properly override the other classes
5775
5984
  margin-top: 0.5rem;
5776
5985
  padding-top: 0.5rem;
5777
5986
  }
5778
- @media (min-width: 752px) {
5987
+ @media (min-width: 1166px) {
5779
5988
  .bs-vertical-nav :where(.bs-vertical-nav-section) {
5780
5989
  margin-top: 0.25rem;
5781
5990
  }
@@ -5819,7 +6028,7 @@ This must go last to properly override the other classes
5819
6028
  margin-top: 0;
5820
6029
  padding-left: 0;
5821
6030
  }
5822
- @media (min-width: 752px) {
6031
+ @media (min-width: 1166px) {
5823
6032
  .bs-vertical-nav :where(ul) {
5824
6033
  gap: 0.25rem;
5825
6034
  }
@@ -5840,7 +6049,7 @@ This must go last to properly override the other classes
5840
6049
  padding-top: 0.75rem;
5841
6050
  width: 100%;
5842
6051
  }
5843
- @media (min-width: 752px) {
6052
+ @media (min-width: 1166px) {
5844
6053
  .bs-vertical-nav :where(ul li a) {
5845
6054
  font-size: 0.875rem;
5846
6055
  padding-bottom: 0.5rem;
@@ -5870,7 +6079,7 @@ This must go last to properly override the other classes
5870
6079
  height: 1rem;
5871
6080
  width: 1rem;
5872
6081
  }
5873
- @media (min-width: 752px) {
6082
+ @media (min-width: 1166px) {
5874
6083
  .bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
5875
6084
  height: 0.875rem;
5876
6085
  width: 0.875rem;
@@ -5893,7 +6102,7 @@ This must go last to properly override the other classes
5893
6102
  height: 1rem;
5894
6103
  width: 1rem;
5895
6104
  }
5896
- @media (min-width: 752px) {
6105
+ @media (min-width: 1166px) {
5897
6106
  .bs-vertical-nav :where(.bs-vertical-nav-external-links .bs-vertical-nav-external-link-icon) {
5898
6107
  height: 0.875rem;
5899
6108
  width: 0.875rem;