@openeuropa/bcl-theme-default 1.11.0 → 1.12.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.
Files changed (42) hide show
  1. package/bcl-builder.config.js +27 -44
  2. package/css/color-scheme.min.css +1 -2
  3. package/css/color-scheme.min.css.map +1 -1
  4. package/css/oe-bcl-ckeditor5.min.css +1 -2
  5. package/css/oe-bcl-ckeditor5.min.css.map +1 -1
  6. package/css/oe-bcl-default.css +78 -733
  7. package/css/oe-bcl-default.css.map +1 -1
  8. package/css/oe-bcl-default.min.css +1 -2
  9. package/css/oe-bcl-default.min.css.map +1 -1
  10. package/js/oe-bcl-default.bundle.js.map +1 -1
  11. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  12. package/js/oe-bcl-default.umd.js.map +1 -1
  13. package/js/oe-bcl-default.umd.min.js.map +1 -1
  14. package/js/slimselect.js +2 -0
  15. package/package.json +7 -7
  16. package/src/scss/_badge.scss +2 -1
  17. package/src/scss/_banners.scss +6 -5
  18. package/src/scss/_carousel.scss +4 -3
  19. package/src/scss/_description_list.scss +4 -3
  20. package/src/scss/_footer.scss +3 -2
  21. package/src/scss/_gallery.scss +9 -8
  22. package/src/scss/_header.scss +4 -3
  23. package/src/scss/_icon.scss +17 -16
  24. package/src/scss/_inpage-navigation.scss +11 -10
  25. package/src/scss/_mega-menu.scss +10 -9
  26. package/src/scss/_multiselect.scss +514 -135
  27. package/src/scss/_pagination-v2.scss +2 -1
  28. package/src/scss/_pagination.scss +3 -2
  29. package/src/scss/_search-form.scss +9 -8
  30. package/src/scss/_tabs.scss +4 -3
  31. package/src/scss/_timeline.scss +3 -2
  32. package/src/scss/base/_utilities.scss +30 -29
  33. package/src/scss/base/_variables.scss +8 -7
  34. package/src/scss/color_scheme/_alert.scss +2 -1
  35. package/src/scss/color_scheme/_badges.scss +3 -2
  36. package/src/scss/color_scheme/_list_group.scss +2 -1
  37. package/src/scss/color_scheme/_utilities.scss +19 -8
  38. package/src/scss/oe-bcl-default.scss +0 -1
  39. package/templates/bcl-select/select.html.twig +8 -1
  40. package/js/slim-select-2/slimselect.min.js +0 -1
  41. package/js/slimselect.min.js +0 -1
  42. package/src/scss/_multiselect-2.scss +0 -574
@@ -1,58 +1,185 @@
1
+ @use "sass:map";
1
2
  /* stylelint-disable selector-no-qualifying-type,
2
3
  selector-max-class, selector-max-compound-selectors,
3
4
  no-descending-specificity,
4
5
  function-calc-no-unspaced-operator,
6
+ declaration-block-no-shorthand-property-overrides,
5
7
  */
6
- @use "slim-select/src/slim-select/slimselect.scss" with (
7
- $primary-color: $primary
8
- );
9
-
10
- // Multiselect Spacers
11
- $multiselect-spacers: (
12
- "disabled-spacer": calc(map-get($spacers, 2) - 1px),
13
- "disabled-spacer-md": calc(map-get($spacers, 2) - 2px),
14
- "select-spacer": calc(map-get($spacers, 2) - 2px),
15
- "select-spacer-md": 0.075rem,
16
- "select-spacer-start": 0.3rem,
17
- "badge-padding-x": map-get($spacers, 1),
18
- "badge-padding-y": map-get($spacers, 1),
19
- "add-margin-top": map-get($spacers, "2-5"),
20
- "add-margin-top-md": map-get($spacers, 2),
21
- "icon-position-x": map-get($spacers, 4),
22
- );
23
-
24
- select.multi-select {
25
- position: absolute;
26
- // stylelint-disable declaration-no-important
27
- display: inline-block !important;
28
- max-width: 0;
29
- max-height: 35px;
30
- pointer-events: none;
31
- opacity: 0;
8
+
9
+ :root {
10
+ // Colors
11
+ --ss-bg-color: #ffffff;
12
+ --ss-font-color: #4d4d4d;
13
+ --ss-placeholder-color: #212529;
14
+ --ss-disabled-color: #dcdee2;
15
+ --ss-border-color: #6c757d;
16
+ --ss-highlight-color: #fffb8c;
17
+ --ss-success-color: #00b755;
18
+ --ss-error-color: #dc3545;
19
+ --ss-focus-color: #5897fb;
20
+
21
+ // Heights
22
+ --ss-main-height: 38px;
23
+ --ss-content-height: 300px;
24
+
25
+ // Spacing
26
+ --ss-spacing-l: 7px;
27
+ --ss-spacing-m: 5px;
28
+ --ss-spacing-s: 3px;
29
+
30
+ // Misc
31
+ --ss-animation-timing: 0.2s;
32
+ --ss-border-radius: 0.375rem;
32
33
  }
33
34
 
34
- .ss-main.multi-select.ss-1 {
35
- padding: 0;
36
- &.form-select.is-invalid,
37
- &.form-select.is-valid {
35
+ // Animation keyframes
36
+ @keyframes ss-valueIn {
37
+ 0% {
38
+ transform: scale(0);
39
+ opacity: 0;
40
+ }
41
+ 100% {
42
+ transform: scale(1);
43
+ opacity: 1;
44
+ }
45
+ }
46
+ @keyframes ss-valueOut {
47
+ 0% {
48
+ transform: scale(1);
49
+ opacity: 1;
50
+ }
51
+ 100% {
52
+ transform: scale(0);
53
+ opacity: 0;
54
+ }
55
+ }
56
+
57
+ // Misc classes
58
+ .ss-hide {
59
+ display: none !important;
60
+ }
61
+
62
+ // Main container
63
+ .ss-main {
64
+ display: flex;
65
+ flex-direction: row;
66
+ position: relative;
67
+ user-select: none;
68
+ color: var(--ss-font-color);
69
+ width: 100%;
70
+ padding: 0.075rem 0 0.075rem 0.3rem;
71
+ cursor: pointer;
72
+ border: 1px solid var(--ss-border-color);
73
+ border-radius: var(--ss-border-radius);
74
+ background-color: var(--ss-bg-color);
75
+ outline: 0;
76
+ box-sizing: border-box;
77
+ transition: background-color var(--ss-animation-timing);
78
+ overflow: hidden;
79
+ min-height: 38px;
80
+
81
+ &:focus-visible {
82
+ @include form-focus-ring();
83
+ }
84
+
85
+ &.form-select {
38
86
  background: none;
39
- padding: 0;
87
+ padding: 0.075rem 0 0.075rem 0.3rem;
40
88
  }
89
+
90
+ &.ss-disabled {
91
+ background-color: var(--ss-disabled-color);
92
+ cursor: not-allowed;
93
+
94
+ .ss-values {
95
+ .ss-disabled {
96
+ color: var(--ss-font-color);
97
+ }
98
+
99
+ .ss-value {
100
+ .ss-value-delete {
101
+ cursor: not-allowed;
102
+ }
103
+ }
104
+ }
105
+ }
106
+
107
+ &.ss-dir-above {
108
+ border-top-left-radius: 0px;
109
+ border-top-right-radius: 0px;
110
+ }
111
+ &.ss-dir-below {
112
+ border-bottom-left-radius: 0px;
113
+ border-bottom-right-radius: 0px;
114
+ }
115
+
41
116
  .ss-values {
42
- @include font-size($h4-font-size);
43
- .ss-value {
44
- display: inline-block;
45
- padding: $badge-padding-y $badge-padding-x;
46
- @include font-size($badge-font-size);
47
- font-weight: $badge-font-weight;
117
+ display: inline-flex;
118
+ flex-wrap: wrap;
119
+ gap: var(--ss-spacing-m);
120
+ flex: 1 1 100%;
121
+
122
+ .ss-placeholder {
123
+ display: flex;
124
+ padding: var(--ss-spacing-s) var(--ss-spacing-m) var(--ss-spacing-s)
125
+ var(--ss-spacing-m);
126
+ margin: auto 0px auto 0px;
127
+ line-height: 1em;
128
+ align-items: center;
129
+ width: 100%;
130
+ color: var(--ss-placeholder-color);
131
+ overflow: hidden;
132
+ text-overflow: ellipsis;
133
+ white-space: nowrap;
134
+ }
135
+
136
+ // Max is used to display max number of values
137
+ .ss-max {
138
+ display: flex;
139
+ user-select: none;
140
+ align-items: center;
141
+ width: fit-content;
142
+ font-size: 12px;
143
+ color: var(--ss-bg-color);
48
144
  line-height: 1;
49
- color: $badge-color;
50
- text-align: left;
51
- white-space: normal;
52
- vertical-align: baseline;
53
- padding-right: map-get($spacers, "3-5");
54
- @include border-radius($badge-border-radius);
55
- @include gradient-bg();
145
+ padding: var(--ss-spacing-s) var(--ss-spacing-m);
146
+ background-color: $primary;
147
+ border-radius: var(--ss-border-radius);
148
+ }
149
+
150
+ // Used for single select selected value
151
+ .ss-single {
152
+ display: flex;
153
+ margin: auto 0px auto var(--ss-spacing-s);
154
+ }
155
+
156
+ // Used for the selected values
157
+ .ss-value {
158
+ display: flex;
159
+ user-select: none;
160
+ align-items: center;
161
+ width: fit-content;
162
+ background-color: $primary;
163
+ border-radius: var(--ss-border-radius);
164
+ animation-name: ss-valueIn;
165
+ animation-duration: var(--ss-animation-timing);
166
+ animation-timing-function: ease-out;
167
+ animation-fill-mode: both;
168
+ margin: 3px 5px 3px 0;
169
+ padding: 0.35em 1.25rem 0.35em 0.65em;
170
+
171
+ &.ss-value-out {
172
+ animation-name: ss-valueOut;
173
+ animation-duration: var(--ss-animation-timing);
174
+ animation-timing-function: ease-out;
175
+ }
176
+
177
+ .ss-value-text {
178
+ color: var(--ss-bg-color);
179
+ line-height: 1;
180
+ margin-right: 5px;
181
+ }
182
+
56
183
  .ss-value-delete {
57
184
  font-size: 0;
58
185
  &:after {
@@ -78,120 +205,372 @@ select.multi-select {
78
205
  }
79
206
  }
80
207
  }
81
- .ss-disabled {
82
- padding-top: map-get($multiselect-spacers, "disabled-spacer");
83
- padding-bottom: map-get($multiselect-spacers, "disabled-spacer");
84
- @include font-size(1rem);
85
- }
86
208
  }
87
- .ss-multi-selected {
88
- border-color: $input-border-color;
89
- padding: map-get($multiselect-spacers, "select-spacer") 0
90
- map-get($multiselect-spacers, "select-spacer")
91
- map-get($multiselect-spacers, "select-spacer-start");
92
- &.ss-disabled {
93
- .ss-values {
94
- .ss-value {
95
- background: $gray-500;
96
- }
209
+
210
+ .ss-deselect {
211
+ flex: 0 1 auto;
212
+ display: flex;
213
+ align-items: center;
214
+ justify-content: center;
215
+ width: fit-content;
216
+ height: auto;
217
+ padding: 0 var(--ss-spacing-m) 0 var(--ss-spacing-m);
218
+
219
+ svg {
220
+ width: 8px;
221
+ height: 8px;
222
+
223
+ path {
224
+ fill: none;
225
+ stroke: var(--ss-font-color);
226
+ stroke-width: 20;
227
+ stroke-linecap: round;
228
+ stroke-linejoin: round;
97
229
  }
98
230
  }
99
- .ss-add {
100
- margin-top: 0;
101
- align-self: center;
102
- }
103
- .ss-values {
104
- .ss-disabled {
105
- color: #6c757d;
106
- }
231
+ }
232
+
233
+ .ss-arrow {
234
+ flex: 0 1 auto;
235
+ display: flex;
236
+ align-items: center;
237
+ justify-content: flex-end;
238
+ width: 12px;
239
+ height: 12px;
240
+ margin: auto var(--ss-spacing-m) auto var(--ss-spacing-m);
241
+
242
+ path {
243
+ fill: none;
244
+ stroke: var(--ss-font-color);
245
+ stroke-width: 18;
246
+ stroke-linecap: round;
247
+ stroke-linejoin: round;
248
+ transition-timing-function: ease-out;
249
+ transition: var(--ss-animation-timing);
107
250
  }
108
251
  }
109
252
  }
110
253
 
111
- .ss-main.ss-1 {
112
- &.form-select.is-invalid,
113
- &.form-select.is-valid {
114
- background: none;
115
- padding: 0;
116
- }
254
+ // Content container
255
+ .ss-content {
256
+ position: absolute; // default position
257
+ display: flex;
258
+ height: auto;
259
+ flex-direction: column;
260
+ width: auto;
261
+ max-height: var(--ss-content-height);
262
+ box-sizing: border-box;
263
+ border: solid 1px var(--ss-border-color);
264
+ background-color: var(--ss-bg-color);
265
+ transition:
266
+ transform var(--ss-animation-timing),
267
+ opacity var(--ss-animation-timing);
268
+ opacity: 0;
269
+ transform: scaleY(0);
270
+ transform-origin: center top;
271
+ overflow: hidden;
272
+ z-index: 10000;
273
+
117
274
  &.form-select {
118
- border: none;
119
- background: none;
120
- padding: 0.075rem 0 0.075rem 0.3rem;
275
+ padding: 0;
276
+ background: var(--ss-bg-color);
121
277
  }
122
- .ss-single-selected {
123
- min-height: 37px;
124
- .placeholder {
125
- background: none;
126
- cursor: pointer;
127
- opacity: 1;
128
- }
278
+
279
+ &.ss-relative {
280
+ position: relative;
281
+ height: 100%;
129
282
  }
130
- }
131
283
 
132
- .ss-main.multi-select.is-invalid,
133
- .ss-main.multi-select.is-valid,
134
- .was-validated .multi-select:invalid + .ss-main.multi-select,
135
- .was-validated .multi-select:valid + .ss-main.multi-select {
136
- .ss-multi-selected {
137
- background-repeat: no-repeat;
138
- background-position: right map-get($multiselect-spacers, "icon-position-x")
139
- center;
140
- background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
284
+ &.ss-fixed {
285
+ position: fixed;
141
286
  }
142
- }
143
- .ss-main.multi-select.is-invalid,
144
- .was-validated .multi-select:invalid + .ss-main.multi-select {
145
- .ss-multi-selected {
146
- background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM8 4C7.46459 4 7.04623 4.46229 7.0995 4.99504L7.45025 8.50248C7.47849 8.78492 7.71616 9 8 9C8.28384 9 8.52151 8.78492 8.54975 8.50248L8.9005 4.99504C8.95377 4.46228 8.53541 4 8 4ZM8.00154 10C7.44926 10 7.00154 10.4477 7.00154 11C7.00154 11.5523 7.44926 12 8.00154 12C8.55383 12 9.00154 11.5523 9.00154 11C9.00154 10.4477 8.55383 10 8.00154 10Z' fill='%23D72E3D'/%3E%3C/svg%3E%0A");
147
- border-color: $danger;
287
+
288
+ &.ss-open {
289
+ opacity: 1;
290
+ transform: scaleY(1);
148
291
  }
149
- .ss-values {
150
- .ss-value {
151
- background: $danger;
152
- }
292
+
293
+ &.ss-dir-above {
294
+ flex-direction: column-reverse;
295
+ transform-origin: center bottom;
296
+ border-top-left-radius: var(--ss-border-radius);
297
+ border-top-right-radius: var(--ss-border-radius);
153
298
  }
154
- }
155
- .ss-main.multi-select.is-valid,
156
- .was-validated .multi-select:valid + .ss-main.multi-select {
157
- .ss-multi-selected {
158
- background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM12.0303 4.96967C11.7374 4.67678 11.2626 4.67678 10.9697 4.96967C10.9626 4.97674 10.9559 4.98424 10.9498 4.9921L7.4774 9.41674L5.38388 7.32322C5.09098 7.03033 4.61611 7.03033 4.32322 7.32322C4.03032 7.61612 4.03032 8.09099 4.32322 8.38388L6.96966 11.0303C7.26256 11.3232 7.73743 11.3232 8.03032 11.0303C8.03685 11.0238 8.043 11.0169 8.04876 11.0097L12.041 6.01947C12.3232 5.72582 12.3196 5.25897 12.0303 4.96967Z' fill='%2328A745'/%3E%3C/svg%3E%0A");
159
- border-color: $success;
299
+
300
+ &.ss-dir-below {
301
+ transform-origin: center top;
302
+ border-bottom-left-radius: var(--ss-border-radius);
303
+ border-bottom-right-radius: var(--ss-border-radius);
160
304
  }
161
- .ss-values {
162
- .ss-value {
163
- background: $success;
305
+
306
+ .ss-search {
307
+ flex: 0 1 auto;
308
+ display: flex;
309
+ flex-direction: row;
310
+ padding: var(--ss-spacing-l) var(--ss-spacing-l) var(--ss-spacing-m)
311
+ var(--ss-spacing-l);
312
+
313
+ input {
314
+ display: inline-flex;
315
+ font-size: inherit;
316
+ line-height: inherit;
317
+ flex: 1 1 auto;
318
+ width: 100%;
319
+ min-width: 0px;
320
+ padding: var(--ss-spacing-m) var(--ss-spacing-l);
321
+ margin: 0;
322
+ border: 1px solid var(--ss-border-color);
323
+ border-radius: var(--ss-border-radius);
324
+ background-color: var(--ss-bg-color);
325
+ outline: 0;
326
+ text-align: left;
327
+ box-sizing: border-box;
328
+
329
+ &::placeholder {
330
+ color: var(--ss-placeholder-color);
331
+ vertical-align: middle;
332
+ }
333
+
334
+ &:focus {
335
+ @include form-focus-ring();
336
+ }
337
+ }
338
+
339
+ .ss-addable {
340
+ display: inline-flex;
341
+ justify-content: center;
342
+ align-items: center;
343
+ cursor: pointer;
344
+ flex: 0 0 auto;
345
+ height: auto;
346
+ margin: 0 0 0 var(--ss-spacing-m);
347
+ border: 1px solid var(--ss-border-color);
348
+ border-radius: var(--ss-border-radius);
349
+
350
+ svg {
351
+ display: flex;
352
+ align-items: center;
353
+ justify-content: flex-end;
354
+ flex: 0 1 auto;
355
+ width: 12px;
356
+ height: 12px;
357
+ margin: auto var(--ss-spacing-m) auto var(--ss-spacing-m);
358
+
359
+ path {
360
+ fill: none;
361
+ stroke: var(--ss-font-color);
362
+ stroke-width: 18;
363
+ stroke-linecap: round;
364
+ stroke-linejoin: round;
365
+ }
366
+ }
164
367
  }
165
368
  }
166
- }
167
369
 
168
- @include media-breakpoint-up(md) {
169
- .ss-main.ss-1.multi-select {
170
- .ss-multi-selected {
171
- padding: map-get($multiselect-spacers, "select-spacer-md") 0
172
- map-get($multiselect-spacers, "select-spacer-md")
173
- map-get($multiselect-spacers, "select-spacer-start");
370
+ .ss-list {
371
+ flex: 1 1 auto;
372
+ height: auto;
373
+ overflow-x: hidden;
374
+ overflow-y: auto;
375
+
376
+ .ss-error {
377
+ color: var(--ss-error-color);
378
+ padding: var(--ss-spacing-l);
174
379
  }
175
- .ss-values {
176
- @include font-size(1rem);
177
- .ss-value {
178
- @include font-size($badge-font-size-desktop);
380
+
381
+ .ss-searching {
382
+ color: var(--ss-font-color);
383
+ padding: var(--ss-spacing-l);
384
+ }
385
+
386
+ .ss-optgroup {
387
+ // If optgroup has close, hide all options
388
+ &.ss-close {
389
+ .ss-option {
390
+ display: none !important;
391
+ }
179
392
  }
180
- .ss-disabled {
181
- padding-top: calc(
182
- map-get($multiselect-spacers, "disabled-spacer-md") + 1px
183
- );
184
- padding-bottom: map-get($multiselect-spacers, "disabled-spacer-md");
393
+
394
+ .ss-optgroup-label {
395
+ display: flex;
396
+ flex-direction: row;
397
+ align-items: center;
398
+ justify-content: space-between;
399
+ padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m)
400
+ var(--ss-spacing-l);
401
+
402
+ .ss-optgroup-label-text {
403
+ flex: 1 1 auto;
404
+ font-weight: bold;
405
+ color: var(--ss-font-color);
406
+ }
407
+
408
+ // If optgroup has arrow, make label clickable
409
+ &:has(.ss-arrow) {
410
+ cursor: pointer;
411
+ }
412
+
413
+ .ss-optgroup-actions {
414
+ flex: 0 1 auto;
415
+ display: flex;
416
+ flex-direction: row;
417
+ align-items: center;
418
+ justify-content: center;
419
+ gap: var(--ss-spacing-m);
420
+
421
+ .ss-selectall {
422
+ flex: 0 0 auto;
423
+ display: flex;
424
+ flex-direction: row;
425
+ cursor: pointer;
426
+
427
+ &:hover {
428
+ opacity: 0.5;
429
+ }
430
+
431
+ &.ss-selected {
432
+ svg {
433
+ path {
434
+ stroke: var(--ss-error-color);
435
+ }
436
+ }
437
+ }
438
+
439
+ span {
440
+ flex: 0 1 auto;
441
+ display: flex;
442
+ align-items: center;
443
+ justify-content: center;
444
+ font-size: calc(100% * 0.6);
445
+ text-align: center;
446
+ padding: 0 var(--ss-spacing-s) 0 0;
447
+ }
448
+
449
+ svg {
450
+ flex: 0 1 auto;
451
+ width: 13px;
452
+ height: 13px;
453
+
454
+ path {
455
+ fill: none;
456
+ stroke: var(--ss-success-color);
457
+ stroke-linecap: round;
458
+ stroke-linejoin: round;
459
+ }
460
+
461
+ &:first-child {
462
+ stroke-width: 5;
463
+ }
464
+ &:last-child {
465
+ stroke-width: 11;
466
+ }
467
+ }
468
+ }
469
+
470
+ .ss-closable {
471
+ flex: 0 1 auto;
472
+ display: flex;
473
+ flex-direction: row;
474
+ cursor: pointer;
475
+
476
+ .ss-arrow {
477
+ flex: 1 1 auto;
478
+ width: 10px;
479
+ height: 10px;
480
+
481
+ path {
482
+ fill: none;
483
+ stroke: var(--ss-font-color);
484
+ stroke-width: 18;
485
+ stroke-linecap: round;
486
+ stroke-linejoin: round;
487
+ transition-timing-function: ease-out;
488
+ transition: var(--ss-animation-timing);
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+
495
+ .ss-option {
496
+ padding: var(--ss-spacing-s) var(--ss-spacing-s) var(--ss-spacing-s)
497
+ calc(var(--ss-spacing-l) * 3);
185
498
  }
186
499
  }
187
- }
188
500
 
189
- .ss-main.multi-select.is-invalid,
190
- .ss-main.multi-select.is-valid,
191
- .was-validated .multi-select:invalid + .ss-main.multi-select,
192
- .was-validated .multi-select:valid + .ss-main.multi-select {
193
- .ss-multi-selected {
194
- background-position: right 1.6rem center;
501
+ .ss-option {
502
+ display: block; // Important for text with mark element highlight
503
+ padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m)
504
+ var(--ss-spacing-l);
505
+ white-space: normal;
506
+ color: var(--ss-font-color);
507
+ cursor: pointer;
508
+ user-select: none;
509
+
510
+ &:hover {
511
+ color: var(--ss-bg-color);
512
+ background-color: $primary;
513
+ }
514
+
515
+ &.ss-highlighted,
516
+ &:not(.ss-disabled).ss-selected {
517
+ color: var(--ss-bg-color);
518
+ background-color: $primary;
519
+ }
520
+
521
+ &.ss-disabled {
522
+ cursor: not-allowed;
523
+ background-color: var(--ss-disabled-color);
524
+
525
+ &:hover {
526
+ color: var(--ss-font-color);
527
+ }
528
+ }
529
+
530
+ // Sub div wrapper for highlighting text
531
+ .ss-search-highlight {
532
+ display: inline-block;
533
+ background-color: var(--ss-highlight-color);
534
+ }
195
535
  }
196
536
  }
197
537
  }
538
+
539
+ .form-select.ss-main.multi-select.is-invalid,
540
+ .was-validated .multi-select:invalid + .form-select.ss-main.multi-select {
541
+ border-color: $danger;
542
+ background-position: right 2.5rem center;
543
+ background-repeat: no-repeat;
544
+ padding-right: 0.5rem;
545
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
546
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23a51f2c' d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4m.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2'/%3E%3C/svg%3E");
547
+ &:focus-visible {
548
+ border-color: $gray-600;
549
+ outline-color: $danger;
550
+ }
551
+ }
552
+ .form-select.ss-main.multi-select.is-valid,
553
+ .was-validated .multi-select:valid + .form-select.ss-main.multi-select {
554
+ border-color: $success;
555
+ background-position: right 2.5rem center;
556
+ background-repeat: no-repeat;
557
+ padding-right: 0.5rem;
558
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
559
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM12.0303 4.96967C11.7374 4.67678 11.2626 4.67678 10.9697 4.96967C10.9626 4.97674 10.9559 4.98424 10.9498 4.9921L7.4774 9.41674L5.38388 7.32322C5.09098 7.03033 4.61611 7.03033 4.32322 7.32322C4.03032 7.61612 4.03032 8.09099 4.32322 8.38388L6.96966 11.0303C7.26256 11.3232 7.73743 11.3232 8.03032 11.0303C8.03685 11.0238 8.043 11.0169 8.04876 11.0097L12.041 6.01947C12.3232 5.72582 12.3196 5.25897 12.0303 4.96967Z' fill='%2328A745'/%3E%3C/svg%3E%0A");
560
+ &:focus-visible {
561
+ border-color: $gray-600;
562
+ outline-color: $success;
563
+ }
564
+ }
565
+
566
+ .ss-sr-only {
567
+ position: absolute;
568
+ width: 1px;
569
+ height: 1px;
570
+ margin: -1px;
571
+ padding: 0;
572
+ border: 0;
573
+ clip: rect(0, 0, 0, 0);
574
+ clip-path: inset(50%);
575
+ overflow: hidden;
576
+ }