@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/components/_accordions.scss +3 -3
- package/dist/components/_dropdown.scss +193 -0
- package/dist/components/_form-booleans.scss +4 -1
- package/dist/components/_form-elements.scss +5 -94
- package/dist/components/_form-hints.scss +3 -0
- package/dist/components/_form-input-composite.scss +195 -0
- package/dist/components/_form-text-fields.scss +96 -0
- package/dist/components/accordions.css +3 -3
- package/dist/components/dropdown.css +189 -0
- package/dist/components/form-booleans.css +4 -1
- package/dist/components/form-elements.css +4 -93
- package/dist/components/form-hints.css +3 -0
- package/dist/components/form-input-composite.css +191 -0
- package/dist/components/form-text-fields.css +92 -0
- package/dist/wwt-bsds.css +374 -30
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
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(
|
|
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(
|
|
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(
|
|
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
|
-
:
|
|
1112
|
-
|
|
1292
|
+
:is(input, textarea, select):where(:focus-visible)::-moz-placeholder {
|
|
1293
|
+
opacity: 0;
|
|
1113
1294
|
}
|
|
1114
|
-
:
|
|
1115
|
-
|
|
1295
|
+
:is(input, textarea, select):where(:focus-visible)::placeholder {
|
|
1296
|
+
opacity: 0;
|
|
1116
1297
|
}
|
|
1117
|
-
:is(input, textarea, select):where(
|
|
1118
|
-
--
|
|
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
|
-
|
|
1164
|
-
:
|
|
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
|
-
|
|
1168
|
-
:where(
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
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(
|
|
1175
|
-
|
|
1176
|
-
|
|
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-
|
|
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);
|