@wwtdev/bsds-css 1.2.0 → 1.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
@@ -729,16 +729,16 @@ h6,
729
729
  .bs-accordion :where(header[data-open]:not([data-open="false"])) :where([data-position="end"]) {
730
730
  transform: rotate(180deg);
731
731
  }
732
- .bs-accordion :where(header button) > :where(h2, h3, h4, h5) {
732
+ .bs-accordion :where(header button) > :where(span) {
733
733
  grid-area: main;
734
734
  margin-right: var(--bs-space-2);
735
735
  text-align: left;
736
736
  }
737
- .bs-accordion :where(header button) > :where(h2, h3, h4, h5) :where(*) {
737
+ .bs-accordion :where(header button) > :where(span) {
738
738
  vertical-align: middle;
739
739
  }
740
740
  @media (min-width: 957px) {
741
- .bs-accordion :where(header button) > :where(h2, h3, h4, h5) {
741
+ .bs-accordion :where(header button) > :where(span) {
742
742
  margin-right: var(--bs-space-3);
743
743
  }
744
744
  }
@@ -1044,6 +1044,172 @@ a.bs-button {
1044
1044
  outline: none;
1045
1045
  vertical-align: middle;
1046
1046
  }
1047
+ /* Positioning the parent */
1048
+ .bs-dropdown {
1049
+ display: inline-block;
1050
+ position: relative;
1051
+ }
1052
+ /* Option list */
1053
+ .bs-dropdown :where(ul) {
1054
+ background-color: var(--bs-white);
1055
+ border-radius: 4px;
1056
+ bottom: auto;
1057
+ box-shadow: var(--bs-shadow-contentMedium);
1058
+ line-height: 1.5rem;
1059
+ list-style: none;
1060
+ margin: 0;
1061
+ max-height: 0;
1062
+ max-width: 16.875rem;
1063
+ opacity: 0;
1064
+ overflow-y: auto;
1065
+ padding: 0;
1066
+ position: absolute;
1067
+ top: calc(100% + 0.5rem);
1068
+ transition-duration: 75ms;
1069
+ transition-property: opacity, max-height;
1070
+ transition-timing-function: ease-in-out;
1071
+ z-index: 999;
1072
+ }
1073
+ /* (not) data-variant="fit" */
1074
+ .bs-dropdown:not([data-variant="fit"]) :where(ul) {
1075
+ width: 16.875rem;
1076
+ }
1077
+ /* data-shown */
1078
+ .bs-dropdown:where([data-shown]) :where(ul) {
1079
+ max-height: 20rem;
1080
+ opacity: 1;
1081
+ padding-top: 0.75rem;
1082
+ }
1083
+ /* data-position="top" */
1084
+ .bs-dropdown:where([data-position="top"]) :where(ul) {
1085
+ bottom: calc(100% + 0.5rem);
1086
+ top: auto;
1087
+ }
1088
+ /* data-justify="center" */
1089
+ .bs-dropdown:where([data-justify="center"]) :where(ul) {
1090
+ left: 50%;
1091
+ transform: translateX(-50%);
1092
+ }
1093
+ /* Option list item */
1094
+ .bs-dropdown :where(ul li) {
1095
+ align-items: center;
1096
+ border-bottom: 2px solid transparent;
1097
+ border-left: 4px solid transparent;
1098
+ border-radius: 3px;
1099
+ border-right: 2px solid transparent;
1100
+ border-top: 2px solid transparent;
1101
+ color: var(--bs-ink-base);
1102
+ -moz-column-gap: 0.5rem;
1103
+ column-gap: 0.5rem;
1104
+ cursor: pointer;
1105
+ display: grid;
1106
+ margin-bottom: 0.5rem;
1107
+ padding-bottom: 0.25rem;
1108
+ padding-left: 0.5rem;
1109
+ padding-right: 0.75rem;
1110
+ padding-top: 0.25rem;
1111
+ row-gap: 0.125rem;
1112
+ }
1113
+ /* data-variant="search" (search input) */
1114
+ .bs-dropdown :where(ul li[data-variant~="search"]) {
1115
+ border-left: none;
1116
+ cursor: default;
1117
+ display: block;
1118
+ }
1119
+ /* data-variant="break" (list item) */
1120
+ .bs-dropdown :where(ul li[data-variant~="break"]) {
1121
+ border-left: none;
1122
+ cursor: default;
1123
+ display: block;
1124
+ padding: 0;
1125
+ }
1126
+ /* data-variant="break" (actual line break) */
1127
+ .bs-dropdown :where(ul li[data-variant~="break"] hr) {
1128
+ background: var(--bs-navy-200);
1129
+ }
1130
+ /* data-variant="2-col" */
1131
+ .bs-dropdown :where(ul li[data-variant~="2-col"]) {
1132
+ grid-template-columns: min-content 1fr;
1133
+ }
1134
+ /* data-variant="description" */
1135
+ /* Description will be the 2nd child in a 1-column item */
1136
+ .bs-dropdown :where(ul li:not([data-variant~="2-col"])[data-variant~="description"] :nth-child(2)) {
1137
+ color: var(--bs-ink-light);
1138
+ font-size: var(--bs-text-xs);
1139
+ height: 1.125rem;
1140
+ line-height: 1.125rem;
1141
+ }
1142
+ /* data-variant="2-col description" */
1143
+ /* Description will be the 3rd child in a 2-column item */
1144
+ .bs-dropdown :where(ul li[data-variant~="2-col"][data-variant~="description"] :nth-child(3)) {
1145
+ color: var(--bs-ink-light);
1146
+ font-size: var(--bs-text-xs);
1147
+ grid-column-start: 2;
1148
+ height: 1.125rem;
1149
+ line-height: 1.125rem;
1150
+ }
1151
+ /* List item hover or data-selected */
1152
+ .bs-dropdown :where(ul li:hover),
1153
+ .bs-dropdown :where(ul li[data-selected]) {
1154
+ background-color: var(--bs-bg-subtle);
1155
+ border-left: 4px solid var(--bs-blue-400);
1156
+ color: var(--bs-blue-400);
1157
+ outline: none;
1158
+ }
1159
+ /* data-variant="search" or data-variant="break" hover */
1160
+ .bs-dropdown :where(ul li[data-variant~="search"]:hover),
1161
+ .bs-dropdown :where(ul li[data-variant~="break"]:hover) {
1162
+ background-color: transparent;
1163
+ border-left: none;
1164
+ color: var(--bs-ink-base);
1165
+ }
1166
+ /* data-variant="negative" hover, data-selected, and both */
1167
+ .bs-dropdown :where(ul li[data-variant~="negative"]:hover),
1168
+ .bs-dropdown :where(ul li[data-variant~="negative"][data-selected]),
1169
+ .bs-dropdown :where(ul li[data-variant~="negative"][data-selected]:hover) {
1170
+ /* 25% alpha version of --bs-red-400 */
1171
+ background-color: rgba(248, 169, 170, 0.25);
1172
+ border-left: 4px solid var(--bs-red-500);
1173
+ color: var(--bs-red-500);
1174
+ }
1175
+ /* data-variant="description" or data-variant="2-col description" hover or data-selected */
1176
+ .bs-dropdown :where(ul li:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
1177
+ .bs-dropdown :where(ul li[data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
1178
+ .bs-dropdown :where(ul li:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
1179
+ .bs-dropdown :where(ul li[data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
1180
+ color: var(--bs-blue-400);
1181
+ }
1182
+ /* data-variant="negative description" or data-variant="2-col negative description" hover or data-selected */
1183
+ .bs-dropdown :where(ul li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
1184
+ .bs-dropdown :where(ul li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
1185
+ .bs-dropdown :where(ul li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
1186
+ .bs-dropdown :where(ul li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
1187
+ color: var(--bs-red-500);
1188
+ }
1189
+ /* List option mouse click focus (do not show) */
1190
+ .bs-dropdown :where(ul li:focus:not(:focus-visible)){
1191
+ outline: none;
1192
+ }
1193
+ /* data-variant="negative" list option mouse click focus (do not show) */
1194
+ li[data-variant~="negative"]:focus:not(:focus-visible) {
1195
+ outline: none;
1196
+ }
1197
+ /* List option keyboard navigation focus */
1198
+ .bs-dropdown :where(ul li:focus-visible) {
1199
+ --focus-border-color: var(--bs-blue-400);
1200
+ border: 2px solid var(--focus-border-color);
1201
+ outline: none;
1202
+ padding-left: 0.625rem;
1203
+ }
1204
+ /* Navigation focus on a selected element should preserve 4px left border */
1205
+ .bs-dropdown :where(ul li[data-selected]:focus-visible) {
1206
+ border-left: 4px solid var(--focus-border-color);
1207
+ padding-left: 0.5rem;
1208
+ }
1209
+ /* data-variant="negative" list option keyboard navigation focus */
1210
+ .bs-dropdown :where(ul li[data-variant~="negative"]:focus-visible) {
1211
+ --focus-border-color: var(--bs-red-200);
1212
+ }
1047
1213
  :where(label, legend) {
1048
1214
  --label-color: var(--bs-ink-base);
1049
1215
 
@@ -1060,6 +1226,7 @@ a.bs-button {
1060
1226
  :where(label[data-disabled], [data-disabled] [data-required], [data-disabled] label) {
1061
1227
  --label-color: var(--bs-ink-light);
1062
1228
  }
1229
+ /* Generally applicable (all input types) */
1063
1230
  :where([data-required]) {
1064
1231
  color: var(--bs-red-500);
1065
1232
  font-weight: var(--bs-font-bold, 600);
@@ -1067,6 +1234,27 @@ a.bs-button {
1067
1234
  :where([data-disabled], [data-disabled] [data-required]) {
1068
1235
  color: var(--bs-gray-400);
1069
1236
  }
1237
+ :where(.box) :is(input, textarea, select):where(:focus-visible) {
1238
+ --offset-color: var(--bs-bg-subtle);
1239
+ }
1240
+ :where(.box[data-invert]) :is(input, textarea, select):where(:focus-visible) {
1241
+ --offset-color: var(--bs-bg-invert);
1242
+ }
1243
+ /* Errors and Messages */
1244
+ :is(input, select, textarea):where([data-error]) {
1245
+ --input-border: var(--bs-red-500);
1246
+ }
1247
+ /* Fieldset */
1248
+ :where(fieldset) {
1249
+ border: none;
1250
+ margin-left: 0;
1251
+ margin-right: 0;
1252
+ padding: 0;
1253
+ }
1254
+ :where(fieldset legend) {
1255
+ margin-bottom: 0.25rem;
1256
+ padding: 0;
1257
+ }
1070
1258
  :where(label + input, label > input):where(:not([type='checkbox'], [type='radio'])),
1071
1259
  :where(label + textarea, label > textarea),
1072
1260
  :where(label + select, label > select) {
@@ -1080,6 +1268,7 @@ textarea, select {
1080
1268
  background-color: var(--input-bg, var(--bs-bg-base));
1081
1269
  border: 1px solid var(--input-border, var(--bs-violet-300));
1082
1270
  border-radius: 0.25rem;
1271
+ caret-color: var(--bs-blue-400);
1083
1272
  color: var(--bs-ink-base);
1084
1273
  font-size: var(--bs-text-base);
1085
1274
  font-weight: 400;
@@ -1094,34 +1283,31 @@ textarea {
1094
1283
  padding-block: 0.5rem;
1095
1284
  resize: vertical;
1096
1285
  }
1097
- /* Generally applicable (all input types) */
1098
1286
  :is(input, textarea, select)::-moz-placeholder {
1099
1287
  color: var(--bs-violet-200);
1100
- opacity: 1;
1101
1288
  }
1102
1289
  :is(input, textarea, select)::placeholder {
1103
1290
  color: var(--bs-violet-200);
1104
- opacity: 1;
1105
- }
1106
- :is(input:where(:not([type='checkbox'], [type='radio']), textarea, select):where(:focus)) {
1107
- box-shadow: 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
1108
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
1109
- outline: 2px solid transparent;
1110
1291
  }
1111
- :where(.box) :is(input, textarea, select):where(:focus) {
1112
- --offset-color: var(--bs-bg-subtle);
1292
+ :is(input, textarea, select):where(:focus-visible)::-moz-placeholder {
1293
+ opacity: 0;
1113
1294
  }
1114
- :where(.box[data-invert]) :is(input, textarea, select):where(:focus) {
1115
- --offset-color: var(--bs-bg-invert);
1295
+ :is(input, textarea, select):where(:focus-visible)::placeholder {
1296
+ opacity: 0;
1116
1297
  }
1117
- :is(input, textarea, select):where([data-error]) {
1118
- --outline-color: var(--bs-red-200);
1298
+ :is(input:where(:not([type='checkbox'], [type='radio'])), textarea, select):where(:focus-visible) {
1299
+ --input-border: var(--bs-blue-400);
1300
+ outline-width: 0px;
1119
1301
  }
1120
1302
  :is(input:where(:not([type='checkbox'],[type='radio'])), textarea, select):where(:disabled) {
1303
+ --input-border: var(--bs-gray-400);
1121
1304
  background-color: var(--bs-gray-200);
1122
- border-color: var(--bs-gray-400);
1123
1305
  color: var(--bs-gray-400);
1124
1306
  }
1307
+ /* Errors and Messages */
1308
+ :is(input, select, textarea):where([data-error]) {
1309
+ --input-border: var(--bs-red-500);
1310
+ }
1125
1311
  /*
1126
1312
  Removes the built-in 'margin' on bottom of textarea
1127
1313
  see https://bugs.chromium.org/p/chromium/issues/detail?id=89530
@@ -1151,6 +1337,7 @@ select {
1151
1337
  background-position: right 0.75rem center;
1152
1338
  background-repeat: no-repeat;
1153
1339
  background-size: 1em 1em;
1340
+ padding-right: var(--bs-space-9);
1154
1341
  }
1155
1342
  .dark select {
1156
1343
  /* URL Encoded SVG dropdown caret so there is something there */
@@ -1160,20 +1347,172 @@ select {
1160
1347
  /* URL Encoded SVG dropdown caret so there is something there */
1161
1348
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23555775' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
1162
1349
  }
1163
- /* Errors and Messages */
1164
- :is(input, select, textarea):where([data-error]) {
1350
+ .bs-input-addon {
1351
+ --input-border: var(--bs-violet-300);
1352
+ align-items: center;
1353
+ background-color: var(--input-bg, var(--bs-bg-base));
1354
+ border-radius: .25rem;
1355
+ color: var(--bs-ink-base);
1356
+ display: flex;
1357
+ height: 2.5rem;
1358
+ overflow: hidden;
1359
+ padding: 0;
1360
+ pointer-events: none;
1361
+ position: relative;
1362
+ width: 100%;
1363
+ }
1364
+ /**
1365
+ Implement an outer 'border' via pseudo-element instead of
1366
+ on main element to avoid content shifting, double-stroke effect,
1367
+ and issues with box-sizing
1368
+ */
1369
+ .bs-input-addon::after,
1370
+ .bs-input-addon::before,
1371
+ .bs-input-addon ::after,
1372
+ .bs-input-addon ::before {
1373
+ pointer-events: none;
1374
+ }
1375
+ .bs-input-addon::after,
1376
+ .bs-input-addon::before {
1377
+ content: '';
1378
+ height: 100%;
1379
+ left: 0;
1380
+ position: absolute;
1381
+ top: 0;
1382
+ width: 100%;
1383
+ }
1384
+ .bs-input-addon::after {
1385
+ border-radius: .25rem;
1386
+ border: 1px solid var(--input-border);
1387
+ }
1388
+ .bs-input-addon > * {
1389
+ flex-grow: 0;
1390
+ flex-shrink: 0;
1391
+ }
1392
+ .bs-input-addon > :where(bs-input, input, .bs-input-addon) {
1393
+ flex-grow: 1;
1394
+ flex-shrink: 1;
1395
+ }
1396
+ .bs-input-addon > *:where(:not(.bs-input-addon)) {
1397
+ background-color: var(--input-bg, var(--bs-bg-base));
1398
+ border-width: 0px;
1399
+ display: flex;
1400
+ height: 100%;
1401
+ overflow: hidden;
1402
+ pointer-events: auto;
1403
+ position: relative;
1404
+ }
1405
+ /* Remove (hide) children's borders, outlines */
1406
+ .bs-input-addon > *,
1407
+ .bs-input-addon :where(input, select),
1408
+ .bs-input-addon :is(bs-input, bs-select) :where(input, select),
1409
+ .bs-input-addon :where(.bs-input-addon)::after {
1410
+ border-color: transparent;
1411
+ border-width: 0px;
1412
+ }
1413
+ .bs-input-addon :where(:focus-within) :where(input, select),
1414
+ .bs-input-addon :where(:focus-within) :is(bs-input, bs-select) :where(input, select),
1415
+ .bs-input-addon :where(input, select):where(:focus, :focus-within, :focus-visible),
1416
+ .bs-input-addon :is(bs-input, bs-select) :where(input, select):where(:focus, :focus-within, :focus-visible) {
1417
+ --input-border: transparent;
1418
+ box-shadow: none;
1419
+ outline: none;
1420
+ }
1421
+ /* -------- Inner-bordered styles -------- */
1422
+ /** Inner borders should be straight; shown only if variant: "inner-bordered" */
1423
+ .bs-input-addon > :where(.bs-input-addon:not(:last-child, :focus-within)),
1424
+ .bs-input-addon > :where(:not(:last-child, :focus-within))::after {
1425
+ border-top-right-radius: 0;
1426
+ border-bottom-right-radius: 0;
1427
+ }
1428
+ .bs-input-addon > :where(.bs-input-addon:not(:first-child, :focus-within)),
1429
+ .bs-input-addon > :where(:not(:first-child, :focus-within))::after {
1430
+ border-top-left-radius: 0;
1431
+ border-bottom-left-radius: 0;
1432
+ }
1433
+ .bs-input-addon:where([data-variant="inner-bordered"]:not(.bs-input-addon .bs-input-addon)) > :where(:not(.bs-input-addon, :focus, :focus-within))::after {
1434
+ border-right-color: var(--input-border);
1435
+ border-right-width: 1px;
1436
+ content: '';
1437
+ height: 100%;
1438
+ position: absolute;
1439
+ width: 100%;
1440
+ }
1441
+ .bs-input-addon:where([data-variant="inner-bordered"]) > :where(.bs-input-addon)::after {
1442
+ border-right-width: 1px;
1443
+ border-right-color: var(--input-border);
1444
+ border-radius: 0px;
1445
+ }
1446
+ /* -------- Focus styles -------- */
1447
+ .bs-input-addon:where(:not([data-multifocus]):focus-within),
1448
+ .bs-input-addon:where([data-multifocus]) :where(input, select):where(:focus, :focus-within, :focus-visible),
1449
+ .bs-input-addon:where([data-multifocus]) :is(bs-input, bs-select) :where(input, select):where(:focus, :focus-within, :focus-visible) {
1450
+ --input-border: var(--bs-blue-400);
1451
+ position: relative;
1452
+ z-index: 1;
1453
+ }
1454
+ .bs-input-addon :where(.bs-input-addon:where(:not([data-multifocus]):focus-within))::after {
1455
+ border-color: var(--input-border);
1456
+ border-radius: .25rem;
1457
+ border-width: 1px;
1458
+ z-index: 1;
1459
+ }
1460
+ .bs-input-addon:where([data-multifocus]) > :where(:not(.bs-input-addon)) > :where(input:focus),
1461
+ .bs-input-addon:where([data-multifocus]) > bs-input :where(input:focus),
1462
+ .bs-input-addon:where([data-multifocus]) > :where(input:focus) {
1463
+ border-radius: .25rem;
1464
+ box-shadow: var(--input-border) 0px 0px 0px 1px inset;
1465
+ }
1466
+ .bs-input-addon:where([data-multifocus]) > :where(:not(.bs-input-addon)) > :where(select:focus),
1467
+ .bs-input-addon:where([data-multifocus]) > bs-select :where(select:focus),
1468
+ .bs-input-addon:where([data-multifocus]) > :where(select:focus) {
1469
+ border-radius: .25rem;
1470
+ box-shadow: var(--input-border) 0px 0px 0px 2px inset;
1471
+ }
1472
+ .bs-input-addon:where(:not([data-multifocus]):focus-within)::after {
1473
+ border-width: 1px;
1474
+ border-radius: .25rem;
1475
+ }
1476
+ .bs-input-addon:where(:focus-within) :where(:not(:focus, :focus-within))::after,
1477
+ .bs-input-addon:where(:focus-within) :where(:not(:focus, :focus-within)) {
1478
+ border-color: transparent;
1479
+ }
1480
+ /* Straight-lined ::before border to fill the gap below the rounded ::after border */
1481
+ .bs-input-addon:where([data-multifocus]) :where(:focus-within)::before {
1482
+ border-bottom-width: 1px;
1483
+ border-color: var(--bs-violet-300);
1484
+ border-radius: 0;
1485
+ border-top-width: 1px;
1486
+ z-index: 1;
1487
+ }
1488
+ /* -------- Disabled styles -------- */
1489
+ .bs-input-addon:where([data-disabled]:not([data-disabled="false"])),
1490
+ .bs-input-addon:where([data-disabled]:not([data-disabled="false"])) bs-button .bs-button {
1491
+ --input-bg: var(--bs-gray-200);
1492
+ --input-border: var(--bs-gray-400);
1493
+ color: var(--bs-gray-400);
1494
+ }
1495
+ .bs-input-addon:where([data-disabled]:not([data-disabled="false"])) * {
1496
+ pointer-events: none;
1497
+ }
1498
+ /* -------- Error styles -------- */
1499
+ .bs-input-addon:where([data-error]),
1500
+ .bs-input-addon:where([data-error]) > ::after {
1165
1501
  --input-border: var(--bs-red-400);
1166
1502
  }
1167
- /* Fieldset */
1168
- :where(fieldset) {
1169
- border: none;
1170
- margin-left: 0;
1171
- margin-right: 0;
1172
- padding: 0;
1503
+ .bs-input-addon:where([data-error][data-multifocus]) > :where(:focus-within),
1504
+ .bs-input-addon:where([data-error][data-multifocus]) :where(input, select):where(:focus, :focus-within, :focus-visible),
1505
+ .bs-input-addon:where([data-error][data-multifocus]) :is(bs-input, bs-select) :where(input, select):where(:focus, :focus-within, :focus-visible) {
1506
+ --input-border: var(--bs-red-400);
1507
+ border-color: var(--input-border);
1173
1508
  }
1174
- :where(fieldset legend) {
1175
- margin-bottom: 0.25rem;
1176
- padding: 0;
1509
+ .bs-input-addon:where([data-error],[data-disabled]) > *::before,
1510
+ .bs-input-addon:where(.bs-input-addon[data-error] .bs-input-addon, .bs-input-addon[data-disabled] .bs-input-addon) > *::before {
1511
+ border-color: var(--input-border);
1512
+ }
1513
+ /* -------- Label margin -------- */
1514
+ :where(label, .bs-label, bs-label) + .bs-input-addon {
1515
+ margin-top: 0.25rem;
1177
1516
  }
1178
1517
  .bs-field-details {
1179
1518
  display: flex;
@@ -1245,6 +1584,7 @@ select {
1245
1584
  appearance: none;
1246
1585
  background-color: var(--bg-base);
1247
1586
  box-shadow: inset 0 0 0 0.125rem var(--box-shadow);
1587
+ cursor: pointer;
1248
1588
  display: grid;
1249
1589
  height: 1rem;
1250
1590
  margin: 0;
@@ -1347,6 +1687,7 @@ input:where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='r
1347
1687
  input:where([type='checkbox'], [type='radio']):disabled {
1348
1688
  --box-shadow: var(--bs-gray-400);
1349
1689
  background-color: transparent;
1690
+ cursor: default;
1350
1691
  }
1351
1692
  input:where([type='checkbox']):checked:disabled::before,
1352
1693
  input:where([type='checkbox']):indeterminate:disabled::before {
@@ -1357,7 +1698,8 @@ input:where([type='radio']):checked:disabled::before {
1357
1698
  }
1358
1699
  /* Error state */
1359
1700
  input:where([type='checkbox'], [type='radio'])[data-error] {
1360
- --box-shadow: var(--bs-red-400);
1701
+ --box-shadow: var(--bs-red-500);
1702
+ --outline-color: var(--bs-red-200);
1361
1703
  }
1362
1704
  .bs-switch {
1363
1705
  --box-shadow: var(--bs-ink-base);
@@ -1476,11 +1818,13 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
1476
1818
  cursor: default;
1477
1819
  }
1478
1820
  .bs-hint {
1821
+ min-width: 0;
1479
1822
  color: var(--bs-ink-light);
1480
1823
  font-size: var(--bs-text-xs);
1481
1824
  padding: 0;
1482
1825
  margin: 0;
1483
1826
  list-style: none;
1827
+ overflow-wrap: break-word;
1484
1828
  }
1485
1829
  .bs-hint:where([data-error]) {
1486
1830
  color: var(--bs-red-400);