@italia/toggle 1.0.0-alpha.7

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.
@@ -0,0 +1,1213 @@
1
+ import { _ as __decorate } from '../tslib.es6-Cv888lzs.js';
2
+ import { customElement } from 'lit/decorators.js';
3
+ import { css, html } from 'lit';
4
+ import { ItCheckboxBase } from '@italia/checkbox/it-checkbox-base.js';
5
+
6
+ var styles = css`/***************************** 1 ****************************************/
7
+ /***************************** 2 ****************************************/
8
+ /***************************** 1 ****************************************/
9
+ /***************************** 2 ****************************************/
10
+ /***************************** 1 ****************************************/
11
+ /***************************** 2 ****************************************/
12
+ /***************************** 3 ****************************************/
13
+ /***************************** 1 ****************************************/
14
+ /***************************** 2 ****************************************/
15
+ /***************************** 3 ****************************************/
16
+ /***************************** NEUTRAL 1 ****************************************/
17
+ /***************************** NEUTRAL 2 ****************************************/
18
+ /***************************** NEUTRAL 2 / 3 ****************************************/
19
+ .toggles label:has(input[type=checkbox]:focus-visible), .toggles label input[type=checkbox]:focus + .lever, .form-check [type=checkbox]:focus + label,
20
+ .form-check [type=radio]:focus + label {
21
+ border-color: hsl(0, 0%, 0%) !important;
22
+ box-shadow: 0 0 0 2px var(--bsi-color-border-inverse), 0 0 0 5px var(--bsi-color-outline-focus) !important;
23
+ outline: 3px solid transparent !important;
24
+ outline-offset: 3px !important;
25
+ }
26
+
27
+ .toggles label input[type=checkbox]:focus[data-focus-mouse=true] + .lever, .form-check [type=checkbox]:focus[data-focus-mouse=true] + label,
28
+ .form-check [type=radio]:focus[data-focus-mouse=true] + label {
29
+ border-color: inherit !important;
30
+ box-shadow: none !important;
31
+ outline: none !important;
32
+ }
33
+
34
+ *,
35
+ *::before,
36
+ *::after {
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ @media (prefers-reduced-motion: no-preference) {
41
+ :root {
42
+ scroll-behavior: smooth;
43
+ }
44
+ }
45
+
46
+ body {
47
+ margin: 0;
48
+ -webkit-text-size-adjust: 100%;
49
+ -webkit-tap-highlight-color: hsla(0, 0%, 0%, 0);
50
+ }
51
+
52
+ hr {
53
+ margin: 1rem 0;
54
+ color: inherit;
55
+ border: 0;
56
+ border-top: 1px solid;
57
+ opacity: 0.25;
58
+ }
59
+
60
+ p {
61
+ margin-top: 0;
62
+ margin-bottom: var(--bsi-paragraph-spacing);
63
+ }
64
+
65
+ abbr[title] {
66
+ text-decoration: underline dotted;
67
+ cursor: help;
68
+ text-decoration-skip-ink: none;
69
+ }
70
+
71
+ address {
72
+ margin-bottom: var(--bsi-spacing-s);
73
+ font-style: normal;
74
+ line-height: inherit;
75
+ }
76
+
77
+ ol,
78
+ ul {
79
+ padding-left: var(--bsi-spacing-l);
80
+ }
81
+
82
+ ol,
83
+ ul,
84
+ dl {
85
+ margin-top: 0;
86
+ margin-bottom: var(--bsi-spacing-s);
87
+ }
88
+
89
+ ol ol,
90
+ ul ul,
91
+ ol ul,
92
+ ul ol {
93
+ margin-bottom: 0;
94
+ }
95
+
96
+ dt {
97
+ font-weight: var(--bsi-font-weight-strong);
98
+ }
99
+
100
+ dd {
101
+ margin-bottom: var(--bsi-spacing-xxs);
102
+ margin-left: 0;
103
+ }
104
+
105
+ blockquote {
106
+ margin: 0 0 var(--bsi-spacing-s);
107
+ }
108
+
109
+ sub,
110
+ sup {
111
+ position: relative;
112
+ font-size: var(--bsi-font-size-1);
113
+ line-height: 0;
114
+ vertical-align: baseline;
115
+ }
116
+
117
+ sub {
118
+ bottom: -0.25em;
119
+ }
120
+
121
+ sup {
122
+ top: -0.5em;
123
+ }
124
+
125
+ a {
126
+ color: var(--bsi-color-link);
127
+ text-decoration: underline;
128
+ text-decoration-skip-ink: auto;
129
+ text-underline-offset: 2px;
130
+ }
131
+ a:hover {
132
+ color: var(--bsi-color-link-hover);
133
+ cursor: pointer;
134
+ }
135
+
136
+ pre,
137
+ code,
138
+ kbd,
139
+ samp {
140
+ font-size: 1em;
141
+ }
142
+
143
+ pre {
144
+ display: block;
145
+ margin-top: 0;
146
+ margin-bottom: var(--bsi-paragraph-spacing);
147
+ overflow: auto;
148
+ }
149
+ pre code {
150
+ word-break: normal;
151
+ }
152
+
153
+ a > code {
154
+ color: inherit;
155
+ }
156
+
157
+ figure {
158
+ margin: 0 0 1rem;
159
+ }
160
+
161
+ img,
162
+ svg {
163
+ vertical-align: middle;
164
+ }
165
+
166
+ table {
167
+ caption-side: bottom;
168
+ border-collapse: collapse;
169
+ }
170
+
171
+ caption {
172
+ padding-top: 0.5rem;
173
+ padding-bottom: 0.5rem;
174
+ color: hsl(210, 17%, 44%);
175
+ text-align: left;
176
+ }
177
+
178
+ th {
179
+ text-align: inherit;
180
+ text-align: -webkit-match-parent;
181
+ }
182
+
183
+ thead,
184
+ tbody,
185
+ tfoot,
186
+ tr,
187
+ td,
188
+ th {
189
+ border-color: inherit;
190
+ border-style: solid;
191
+ border-width: 0;
192
+ }
193
+
194
+ label {
195
+ display: inline-block;
196
+ }
197
+
198
+ button {
199
+ border-radius: 0;
200
+ }
201
+
202
+ button:focus:not(:focus-visible) {
203
+ outline: 0;
204
+ }
205
+
206
+ input,
207
+ button,
208
+ select,
209
+ optgroup,
210
+ textarea {
211
+ margin: 0;
212
+ font-family: inherit;
213
+ font-size: inherit;
214
+ line-height: inherit;
215
+ }
216
+
217
+ button,
218
+ select {
219
+ text-transform: none;
220
+ }
221
+
222
+ [role=button] {
223
+ cursor: pointer;
224
+ }
225
+
226
+ select {
227
+ word-wrap: normal;
228
+ }
229
+ select:disabled {
230
+ opacity: 1;
231
+ }
232
+
233
+ [list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
234
+ display: none !important;
235
+ }
236
+
237
+ button,
238
+ [type=button],
239
+ [type=reset],
240
+ [type=submit] {
241
+ -webkit-appearance: button;
242
+ }
243
+ button:not(:disabled),
244
+ [type=button]:not(:disabled),
245
+ [type=reset]:not(:disabled),
246
+ [type=submit]:not(:disabled) {
247
+ cursor: pointer;
248
+ }
249
+
250
+ ::-moz-focus-inner {
251
+ padding: 0;
252
+ border-style: none;
253
+ }
254
+
255
+ textarea {
256
+ resize: vertical;
257
+ }
258
+
259
+ fieldset {
260
+ min-width: 0;
261
+ padding: 0;
262
+ margin: 0;
263
+ border: 0;
264
+ }
265
+
266
+ ::-webkit-datetime-edit-fields-wrapper,
267
+ ::-webkit-datetime-edit-text,
268
+ ::-webkit-datetime-edit-minute,
269
+ ::-webkit-datetime-edit-hour-field,
270
+ ::-webkit-datetime-edit-day-field,
271
+ ::-webkit-datetime-edit-month-field,
272
+ ::-webkit-datetime-edit-year-field {
273
+ padding: 0;
274
+ }
275
+
276
+ ::-webkit-inner-spin-button {
277
+ height: auto;
278
+ }
279
+
280
+ [type=search] {
281
+ outline-offset: -2px;
282
+ -webkit-appearance: textfield;
283
+ }
284
+
285
+ /* rtl:raw:
286
+ [type="tel"],
287
+ [type="url"],
288
+ [type="email"],
289
+ [type="number"] {
290
+ direction: ltr;
291
+ }
292
+ */
293
+ ::-webkit-search-decoration {
294
+ -webkit-appearance: none;
295
+ }
296
+
297
+ ::-webkit-color-swatch-wrapper {
298
+ padding: 0;
299
+ }
300
+
301
+ ::file-selector-button {
302
+ font: inherit;
303
+ -webkit-appearance: button;
304
+ }
305
+
306
+ output {
307
+ display: inline-block;
308
+ }
309
+
310
+ iframe {
311
+ border: 0;
312
+ }
313
+
314
+ summary {
315
+ display: list-item;
316
+ cursor: pointer;
317
+ }
318
+
319
+ progress {
320
+ vertical-align: baseline;
321
+ }
322
+
323
+ [hidden] {
324
+ display: none !important;
325
+ }
326
+
327
+ .visually-hidden,
328
+ .visually-hidden-focusable:not(:focus):not(:focus-within) {
329
+ position: absolute !important;
330
+ width: 1px !important;
331
+ height: 1px !important;
332
+ padding: 0 !important;
333
+ margin: -1px !important;
334
+ overflow: hidden !important;
335
+ clip: rect(0, 0, 0, 0) !important;
336
+ white-space: nowrap !important;
337
+ border: 0 !important;
338
+ }
339
+
340
+ :root {
341
+ --bsi-form-control-height: 2.5rem;
342
+ --bsi-form-control-spacing: var(--bsi-spacing-xxs);
343
+ --bsi-form-control-background-color: var(--bsi-color-background-inverse);
344
+ --bsi-form-control-border-color: var(--bsi-color-border-secondary);
345
+ --bsi-form-control-border-radius: var(--bsi-radius-smooth);
346
+ --bsi-form-control-placeholder-color: var(--bsi-color-text-muted);
347
+ --bsi-form-control-label-color: var(--bsi-color-text-base);
348
+ --bsi-form-control-text-color: var(--bsi-color-text-secondary);
349
+ --bsi-form-control-font-size: var(--bsi-body-font-size);
350
+ --bsi-form-group-spacing-y: var(--bsi-spacing-m);
351
+ --bsi-form-checkbox-border-color: var(--bsi-color-border-secondary);
352
+ --bsi-form-checkbox-border-radius: var(--bsi-radius-smooth);
353
+ --bsi-form-checked-color: var(--bsi-color-background-primary);
354
+ }
355
+
356
+ input[readonly],
357
+ textarea[readonly],
358
+ select[readonly] {
359
+ --bsi-form-control-border-color: var(--bsi-color-border-subtle);
360
+ --bsi-form-control-background-color: var(--bsi-color-background-muted);
361
+ cursor: not-allowed;
362
+ }
363
+
364
+ input,
365
+ textarea,
366
+ select {
367
+ display: block;
368
+ width: 100%;
369
+ padding: var(--bsi-form-control-spacing);
370
+ border: 1px solid var(--bsi-form-control-border-color);
371
+ border-radius: var(--bsi-form-control-border-radius);
372
+ background-color: var(--bsi-form-control-background-color);
373
+ color: var(--bsi-form-control-text-color);
374
+ font-size: var(--bsi-form-control-font-size);
375
+ }
376
+ input.disabled, input:disabled,
377
+ textarea.disabled,
378
+ textarea:disabled,
379
+ select.disabled,
380
+ select:disabled {
381
+ border-color: var(--bsi-color-border-disabled);
382
+ opacity: 1;
383
+ background-color: var(--bsi-color-background-disabled);
384
+ color: var(--bsi-color-text-disabled);
385
+ }
386
+
387
+ /* stylelint-disable-next-line no-duplicate-selectors */
388
+ input:focus,
389
+ textarea:focus {
390
+ outline: 3px solid transparent;
391
+ outline-offset: 3px;
392
+ box-shadow: 0 0 0 2px var(--bsi-color-border-inverse), 0 0 0 5px var(--bsi-color-outline-focus) !important;
393
+ }
394
+
395
+ input::file-selector-button {
396
+ margin: -0.375rem -0.75rem;
397
+ padding: 0.375rem 0.75rem;
398
+ border-width: 0;
399
+ border-style: solid;
400
+ border-radius: 0;
401
+ border-color: inherit;
402
+ color: hsl(0, 0%, 10%);
403
+ pointer-events: none;
404
+ margin-inline-end: 0.75rem;
405
+ border-inline-end-width: 0;
406
+ background-color: hsl(0, 0%, 100%);
407
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
408
+ }
409
+ @media (prefers-reduced-motion: reduce) {
410
+ input::file-selector-button {
411
+ transition: none;
412
+ }
413
+ }
414
+ input:hover:not(:disabled):not([readonly])::file-selector-button {
415
+ background-color: rgb(242.25, 242.25, 242.25);
416
+ }
417
+ input[type=file] {
418
+ overflow: hidden;
419
+ }
420
+ input[type=file]:not(:disabled):not([readonly]) {
421
+ cursor: pointer;
422
+ }
423
+ input::-webkit-date-and-time-value {
424
+ height: 1.5em;
425
+ }
426
+
427
+ select {
428
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='hsl%280, 0%, 15%%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
429
+ background-repeat: no-repeat;
430
+ background-position: right var(--bsi-form-control-spacing) center;
431
+ background-size: 16px 12px;
432
+ appearance: none;
433
+ }
434
+ select:focus {
435
+ border-color: hsl(210, 17%, 44%);
436
+ outline: 0;
437
+ box-shadow: 0 0 0 0.25rem rgba(0, 102, 204, 0.25);
438
+ }
439
+ select[multiple], select[size]:not([size="1"]) {
440
+ padding-right: 0.75rem;
441
+ background-image: none;
442
+ }
443
+ select:disabled {
444
+ background-color: hsl(0, 0%, 90%);
445
+ }
446
+ select:disabled:hover {
447
+ cursor: not-allowed;
448
+ }
449
+ select:-moz-focusring {
450
+ color: transparent;
451
+ text-shadow: 0 0 0 hsl(0, 0%, 10%);
452
+ }
453
+ select option {
454
+ font-weight: normal;
455
+ }
456
+ select {
457
+ /* stylelint-disable-next-line no-duplicate-selectors */ /* TO DO check these styles */
458
+ }
459
+ select:disabled {
460
+ opacity: 1;
461
+ background-color: hsl(210, 3%, 85%);
462
+ }
463
+
464
+ textarea {
465
+ height: auto;
466
+ font-size: var(--bsi-body-font-size);
467
+ line-height: 1.5;
468
+ }
469
+
470
+ label {
471
+ display: inline-block;
472
+ width: auto;
473
+ max-width: 100%;
474
+ margin-bottom: var(--bsi-spacing-xxs);
475
+ color: var(--bsi-form-control-label-color);
476
+ font-size: var(--bsi-label-font-size-s);
477
+ font-weight: var(--bsi-font-weight-solid);
478
+ line-height: var(--bsi-label-leading);
479
+ }
480
+
481
+ /* stylelint-disable-next-line no-duplicate-selectors */
482
+ input,
483
+ textarea {
484
+ outline: 0;
485
+ box-shadow: none;
486
+ transition: none;
487
+ appearance: none;
488
+ }
489
+
490
+ input[type=date],
491
+ input[type=datetime-local],
492
+ input[type=time] {
493
+ display: flex;
494
+ }
495
+
496
+ fieldset legend {
497
+ margin-bottom: var(--bsi-spacing-s);
498
+ padding: 0 var(--bsi-form-input-spacing-x);
499
+ background-color: transparent;
500
+ color: var(--bsi-form-control-text-color);
501
+ font-size: var(--bsi-label-sm);
502
+ font-weight: var(--bsi-font-weight-solid);
503
+ }
504
+
505
+ ::placeholder {
506
+ color: var(--bsi-form-control-placeholder-color);
507
+ }
508
+
509
+ input::-webkit-datetime-edit {
510
+ background-color: var(--bsi-color-background-primary-lighter);
511
+ color: var(--bsi-form-contro-text-color);
512
+ }
513
+
514
+ .form-group {
515
+ position: relative;
516
+ margin-bottom: var(--bsi-form-group-spacing-y);
517
+ }
518
+ .form-group label.input-symbol-label:not(.active) {
519
+ left: 2.25rem;
520
+ }
521
+ .form-group small.form-text {
522
+ margin: 0;
523
+ font-size: 0.875rem;
524
+ }
525
+ .form-group input[type=time] ~ label {
526
+ font-size: 0.875rem;
527
+ }
528
+
529
+ .form-text {
530
+ margin: var(--bsi-spacing-xxs) 0;
531
+ color: var(--bsi-color-text-secondary);
532
+ }
533
+
534
+ .form-group.active .form-file-name {
535
+ padding-bottom: 1.95rem;
536
+ }
537
+
538
+ .warning-feedback {
539
+ display: none;
540
+ width: 100%;
541
+ margin-top: 0.25rem;
542
+ color: var(--bsi-color-text-warning);
543
+ font-size: 0.75rem;
544
+ }
545
+
546
+ .valid-feedback,
547
+ .invalid-feedback,
548
+ .warning-feedback {
549
+ margin-left: 0.5rem;
550
+ }
551
+
552
+ .input-group .input-group-text .btn {
553
+ border-radius: var(--bsi-form-control-border-radius) 0 0 var(--bsi-form-control-border-radius);
554
+ }
555
+ .input-group .input-group-append {
556
+ margin-left: 0;
557
+ }
558
+ .input-group .input-group-append .btn {
559
+ height: 100%;
560
+ padding-top: 0;
561
+ padding-bottom: 0;
562
+ border-bottom: 1px solid hsl(210, 17%, 44%);
563
+ border-radius: 0 var(--bsi-form-control-border-radius) var(--bsi-form-control-border-radius) 0;
564
+ }
565
+
566
+ .form-check {
567
+ position: relative;
568
+ }
569
+ .form-check + .form-check {
570
+ margin-top: var(--bsi-spacing-s);
571
+ }
572
+ .form-check [type=checkbox],
573
+ .form-check [type=radio] {
574
+ position: absolute;
575
+ top: 9px;
576
+ left: 9px;
577
+ width: auto;
578
+ margin-top: 0;
579
+ margin-left: 0;
580
+ opacity: 0;
581
+ }
582
+ .form-check [type=checkbox] + label,
583
+ .form-check [type=radio] + label {
584
+ position: relative;
585
+ margin-bottom: 0;
586
+ padding-left: 28px;
587
+ font-size: var(--bsi-label-font-size);
588
+ font-weight: var(--bsi-font-weight-solid);
589
+ cursor: pointer;
590
+ user-select: none;
591
+ }
592
+ @media (min-width: 576px) {
593
+ .form-check [type=checkbox] + label,
594
+ .form-check [type=radio] + label {
595
+ font-size: var(--bsi-label-font-size-l);
596
+ }
597
+ }
598
+ .form-check input[type=checkbox] + label::after,
599
+ .form-check input[type=checkbox] + label::before {
600
+ position: absolute;
601
+ left: 0;
602
+ z-index: 1;
603
+ content: "";
604
+ border-width: 2px;
605
+ border-style: solid;
606
+ transition: all var(--bsi-transition-instant) ease-out;
607
+ }
608
+ .form-check input[type=checkbox] + label::after {
609
+ top: 0;
610
+ width: 20px;
611
+ height: 20px;
612
+ border-radius: var(--bsi-form-control-border-radius);
613
+ }
614
+ .form-check input[type=checkbox]:checked + label::before {
615
+ top: 3px;
616
+ left: 3px;
617
+ width: 6px;
618
+ height: 12px;
619
+ border-width: 2px;
620
+ border-style: solid;
621
+ border-color: transparent var(--bsi-color-border-inverse) var(--bsi-color-border-inverse) transparent;
622
+ opacity: 1;
623
+ transform: rotate(40deg);
624
+ transform-origin: 100% 100%;
625
+ backface-visibility: hidden;
626
+ }
627
+ .form-check input[type=checkbox]:checked + label::after {
628
+ z-index: 0;
629
+ border-color: var(--bsi-form-checked-color);
630
+ background-color: var(--bsi-form-checked-color);
631
+ }
632
+ .form-check input[type=checkbox]:not(:checked) + label::after {
633
+ z-index: 0;
634
+ border-color: var(--bsi-form-checkbox-border-color);
635
+ background-color: transparent;
636
+ }
637
+ .form-check input[type=checkbox]:not(:checked) + label::before {
638
+ top: 10px;
639
+ left: 6px;
640
+ width: 0;
641
+ height: 0;
642
+ border-color: transparent;
643
+ }
644
+ .form-check input[type=checkbox]:disabled + label {
645
+ opacity: 1;
646
+ cursor: not-allowed;
647
+ }
648
+ .form-check input[type=checkbox]:disabled:not(:checked) + label::after {
649
+ border-color: var(--bsi-color-border-disabled);
650
+ background-color: transparent;
651
+ }
652
+ .form-check input[type=checkbox]:disabled:checked + label::after {
653
+ border-color: var(--bsi-color-border-disabled);
654
+ background-color: var(--bsi-color-border-disabled);
655
+ }
656
+ .form-check input[type=radio] + label::after, .form-check input[type=radio] + label::before {
657
+ position: absolute;
658
+ top: 0;
659
+ left: 0;
660
+ z-index: 0;
661
+ content: "";
662
+ width: 20px;
663
+ height: 20px;
664
+ border-width: 2px;
665
+ border-style: solid;
666
+ border-radius: var(--bsi-radius-rounded);
667
+ transition: all var(--bsi-transition-instant) ease-out;
668
+ }
669
+ .form-check input[type=radio]:not(:checked) + label::after, .form-check input[type=radio]:not(:checked) + label::before {
670
+ border-color: var(--bsi-form-checkbox-border-color);
671
+ }
672
+ .form-check input[type=radio]:not(:checked) + label:after {
673
+ z-index: -1;
674
+ transform: scale(0);
675
+ }
676
+ .form-check input[type=radio]:checked + label::after {
677
+ z-index: 0;
678
+ border-color: var(--bsi-form-checked-color);
679
+ background-color: var(--bsi-form-checked-color);
680
+ transform: scale(0.64);
681
+ }
682
+ .form-check input[type=radio]:checked + label::before {
683
+ border-color: var(--bsi-form-checked-color);
684
+ }
685
+ .form-check input[type=radio]:disabled + label {
686
+ cursor: not-allowed;
687
+ }
688
+ .form-check input[type=radio]:disabled:not(:checked) + label::after, .form-check input[type=radio]:disabled:not(:checked) + label::before {
689
+ border-color: var(--bsi-color-border-disabled);
690
+ }
691
+ .form-check input[type=radio]:disabled:checked + label::after {
692
+ border-color: var(--bsi-color-border-disabled);
693
+ background-color: var(--bsi-color-border-disabled);
694
+ }
695
+ .form-check input[type=radio]:disabled:checked + label::before {
696
+ border-color: var(--bsi-color-border-disabled);
697
+ }
698
+ .form-check .form-text {
699
+ display: block;
700
+ margin-bottom: 0.5rem;
701
+ padding-right: 3.25rem;
702
+ }
703
+ .form-check.form-check-group {
704
+ margin-bottom: 1rem;
705
+ padding: 0 0 1rem 0;
706
+ box-shadow: inset 0 -1px 0 0 rgba(1, 1, 1, 0.1);
707
+ }
708
+ .form-check.form-check-group input[type=checkbox] + label,
709
+ .form-check.form-check-group input[type=radio] + label {
710
+ position: static;
711
+ padding-right: 3.25rem;
712
+ padding-left: 0;
713
+ }
714
+ .form-check.form-check-group input[type=checkbox] + label::after, .form-check.form-check-group input[type=checkbox] + label::before,
715
+ .form-check.form-check-group input[type=radio] + label::after,
716
+ .form-check.form-check-group input[type=radio] + label::before {
717
+ right: 0;
718
+ left: auto;
719
+ }
720
+ .form-check.form-check-group input[type=checkbox]:checked + label::before {
721
+ right: 11px;
722
+ }
723
+ .form-check.form-check-group input[type=radio]:checked + label::before {
724
+ right: 0;
725
+ }
726
+ .form-check.form-check-group input.semi-checked:not(:checked) + label::before {
727
+ right: 4px;
728
+ left: auto;
729
+ }
730
+ .form-check input.semi-checked:not(:checked) + label::before {
731
+ top: 12px;
732
+ left: 4px;
733
+ width: 12px;
734
+ height: 2px;
735
+ border-width: 0;
736
+ border-style: none;
737
+ border-color: transparent;
738
+ opacity: 1;
739
+ background: var(--bsi-color-background-inverse);
740
+ transform: none;
741
+ backface-visibility: hidden;
742
+ }
743
+ .form-check input.semi-checked:not(:checked) + label::after {
744
+ z-index: 0;
745
+ border-color: var(--bsi-form-checked-color);
746
+ background-color: var(--bsi-form-checked-color);
747
+ }
748
+
749
+ .form-check-inline {
750
+ display: inline-block;
751
+ }
752
+ .form-check-inline:not(:last-child) {
753
+ margin-right: var(--bsi-spacing-m);
754
+ }
755
+
756
+ @media (prefers-reduced-motion: reduce) {
757
+ fieldset legend,
758
+ .form-group label,
759
+ textarea,
760
+ .form-check [type=checkbox],
761
+ .form-check [type=radio],
762
+ .form-check [type=checkbox] + label::after,
763
+ .form-check [type=checkbox] + label::before,
764
+ .form-check [type=radio] + label::after,
765
+ .form-check [type=radio] + label::before,
766
+ .toggles label input[type=checkbox] + .lever::before,
767
+ .toggles label input[type=checkbox] + .lever::after {
768
+ transition: none !important;
769
+ }
770
+ }
771
+ .toggles label:has(input[type=checkbox]:focus-visible), .toggles label input[type=checkbox]:focus + .lever, .form-check [type=checkbox]:focus + label,
772
+ .form-check [type=radio]:focus + label {
773
+ border-color: hsl(0, 0%, 0%) !important;
774
+ box-shadow: 0 0 0 2px var(--bsi-color-border-inverse), 0 0 0 5px var(--bsi-color-outline-focus) !important;
775
+ outline: 3px solid transparent !important;
776
+ outline-offset: 3px !important;
777
+ }
778
+
779
+ .toggles label input[type=checkbox]:focus[data-focus-mouse=true] + .lever, .form-check [type=checkbox]:focus[data-focus-mouse=true] + label,
780
+ .form-check [type=radio]:focus[data-focus-mouse=true] + label {
781
+ border-color: inherit !important;
782
+ box-shadow: none !important;
783
+ outline: none !important;
784
+ }
785
+
786
+ .form-control-plaintext {
787
+ border: 0;
788
+ --bsi-form-control-border-color: transparent;
789
+ --bsi-form-control-border-radius: 0;
790
+ --bsi-form-control-background-color: transparent;
791
+ --bsi-form-control-spacing: 0;
792
+ }
793
+ .form-control-plaintext:focus {
794
+ outline: 0;
795
+ box-shadow: none !important;
796
+ }
797
+ .form-control-plaintext + label {
798
+ cursor: text;
799
+ }
800
+
801
+ .form-control {
802
+ background-repeat: no-repeat;
803
+ background-position: center right;
804
+ background-size: 45px 30%;
805
+ }
806
+ .form-control:disabled {
807
+ cursor: not-allowed;
808
+ background: var(--bsi-color-background-disabled);
809
+ border: 0;
810
+ color: var(--bsi-color-text-disabled);
811
+ }
812
+ .was-validated .form-control:valid, .form-control.is-valid {
813
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23008055' viewBox='0 0 192 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E");
814
+ }
815
+ .was-validated .form-control:invalid, .form-control.is-invalid {
816
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23cc334d' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E");
817
+ border-color: var(--bsi-color-border-danger);
818
+ }
819
+ .form-control.warning {
820
+ background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2%2012C2%206.47715%206.47715%202%2012%202C14.6522%202%2017.1957%203.05357%2019.0711%204.92893C20.9464%206.8043%2022%209.34784%2022%2012C22%2017.5228%2017.5228%2022%2012%2022C6.47715%2022%202%2017.5228%202%2012ZM3%2012C3%2016.9706%207.02944%2021%2012%2021C16.9706%2021%2021%2016.9706%2021%2012C21%207.02944%2016.9706%203%2012%203C7.02944%203%203%207.02944%203%2012ZM11.5%2014.2V5.7H12.7V14.2H11.5ZM12.6%2018.3V16.5H11.4V18.3H12.6Z%22/%3E%0A%3C/svg%3E") no-repeat;
821
+ border-color: var(--bsi-color-border-warning);
822
+ }
823
+ .form-control.is-valid ~ .warning-feedback {
824
+ display: block;
825
+ }
826
+
827
+ .form-control-sm {
828
+ --bsi-form-control-spacing: var(--bsi-spacing-xxs) var(--bsi-spacing-3xs);
829
+ --bsi-form-control-font-size: var(--bsi-label-font-size);
830
+ }
831
+ .form-control-sm::file-selector-button {
832
+ padding: 0.25rem 0.5rem;
833
+ margin: -0.25rem -0.5rem;
834
+ margin-inline-end: 0.5rem;
835
+ }
836
+
837
+ .form-control-lg {
838
+ --bsi-form-control-font-size: var(--bsi-lead-font-size);
839
+ }
840
+ .form-control-lg::file-selector-button {
841
+ padding: 0.5rem 1rem;
842
+ margin: -0.5rem -1rem;
843
+ margin-inline-end: 1rem;
844
+ }
845
+
846
+ textarea.form-control {
847
+ min-height: 2.5rem;
848
+ border: 1px solid hsl(210, 17%, 44%);
849
+ }
850
+ textarea.form-control-sm {
851
+ min-height: calc(1.5em + 0.5rem);
852
+ }
853
+ textarea.form-control-lg {
854
+ min-height: calc(1.5em + 1rem);
855
+ }
856
+
857
+ .form-control-color {
858
+ width: 3rem;
859
+ height: 2.5rem;
860
+ padding: 0.375rem;
861
+ }
862
+ .form-control-color:not(:disabled):not([readonly]) {
863
+ cursor: pointer;
864
+ }
865
+ .form-control-color::-moz-color-swatch {
866
+ border: 0 !important;
867
+ border-radius: 0;
868
+ }
869
+ .form-control-color::-webkit-color-swatch {
870
+ border-radius: 0;
871
+ }
872
+ .form-control-color.form-control-sm {
873
+ height: calc(1.5em + 0.5rem);
874
+ }
875
+ .form-control-color.form-control-lg {
876
+ height: calc(1.5em + 1rem);
877
+ }
878
+
879
+ .form-check-reverse {
880
+ padding-right: 1.5em;
881
+ padding-left: 0;
882
+ text-align: right;
883
+ }
884
+ .form-check-reverse .form-check-input {
885
+ float: right;
886
+ margin-right: -1.5em;
887
+ margin-left: 0;
888
+ }
889
+
890
+ .form-check-input {
891
+ width: 1em;
892
+ height: 1em;
893
+ margin-top: 0.25em;
894
+ vertical-align: top;
895
+ background-color: hsl(0, 0%, 100%);
896
+ background-repeat: no-repeat;
897
+ background-position: center;
898
+ background-size: contain;
899
+ border: 1px solid rgba(0, 0, 0, 0.25);
900
+ appearance: none;
901
+ print-color-adjust: exact;
902
+ }
903
+ .form-check-input[type=checkbox] {
904
+ border-radius: 0.25em;
905
+ }
906
+ .form-check-input[type=radio] {
907
+ border-radius: 50%;
908
+ }
909
+ .form-check-input:active {
910
+ filter: brightness(90%);
911
+ }
912
+ .form-check-input:focus {
913
+ border-color: hsl(210, 17%, 44%);
914
+ outline: 0;
915
+ box-shadow: 0 0 0 0.25rem rgba(0, 102, 204, 0.25);
916
+ }
917
+ .form-check-input:checked {
918
+ background-color: hsl(210, 100%, 40%);
919
+ border-color: hsl(210, 100%, 40%);
920
+ }
921
+ .form-check-input:checked[type=checkbox] {
922
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='hsl%280, 0%, 100%%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
923
+ }
924
+ .form-check-input:checked[type=radio] {
925
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='hsl%280, 0%, 100%%29'/%3e%3c/svg%3e");
926
+ }
927
+ .form-check-input[type=checkbox]:indeterminate {
928
+ background-color: hsl(210, 100%, 40%);
929
+ border-color: hsl(210, 100%, 40%);
930
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='hsl%280, 0%, 100%%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
931
+ }
932
+ .form-check-input:disabled {
933
+ pointer-events: none;
934
+ filter: none;
935
+ opacity: 0.5;
936
+ }
937
+ .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
938
+ cursor: default;
939
+ opacity: 0.5;
940
+ }
941
+
942
+ .form-switch {
943
+ padding-left: 2.5em;
944
+ }
945
+ .form-switch .form-check-input {
946
+ width: 2em;
947
+ margin-left: -2.5em;
948
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
949
+ background-position: left center;
950
+ border-radius: 2em;
951
+ transition: background-position 0.15s ease-in-out;
952
+ }
953
+ @media (prefers-reduced-motion: reduce) {
954
+ .form-switch .form-check-input {
955
+ transition: none;
956
+ }
957
+ }
958
+ .form-switch .form-check-input:focus {
959
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='hsl%28210, 17%, 44%%29'/%3e%3c/svg%3e");
960
+ }
961
+ .form-switch .form-check-input:checked {
962
+ background-position: right center;
963
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='hsl%280, 0%, 100%%29'/%3e%3c/svg%3e");
964
+ }
965
+ .form-switch.form-check-reverse {
966
+ padding-right: 2.5em;
967
+ padding-left: 0;
968
+ }
969
+ .form-switch.form-check-reverse .form-check-input {
970
+ margin-right: -2.5em;
971
+ margin-left: 0;
972
+ }
973
+
974
+ .form-check-inline {
975
+ display: inline-block;
976
+ margin-right: 1rem;
977
+ }
978
+
979
+ .btn-check {
980
+ position: absolute;
981
+ clip: rect(0, 0, 0, 0);
982
+ pointer-events: none;
983
+ }
984
+ .btn-check[disabled] + .btn, .btn-check:disabled + .btn {
985
+ pointer-events: none;
986
+ filter: none;
987
+ opacity: 0.65;
988
+ }
989
+
990
+ .toggles {
991
+ --bsi-toggle-track-width: 56px;
992
+ --bsi-toggle-track-height: 32px;
993
+ --bsi-toggle-track-border-radius: var(--bsi-radius-rounded);
994
+ --bsi-toggle-track-background: var(--bsi-color-background-secondary-light);
995
+ --bsi-toggle-track-background-checked: var(--bsi-color-background-primary);
996
+ --bsi-toggle-track-background-disabled: var(--bsi-color-background-disabled);
997
+ --bsi-toggle-track-transition: background 0.3s ease;
998
+ --bsi-toggle-knob-size: 24px;
999
+ --bsi-toggle-knob-offset: 4px;
1000
+ --bsi-toggle-knob-border-radius: 50%;
1001
+ --bsi-toggle-knob-background: var(--bsi-color-background-inverse);
1002
+ --bsi-toggle-knob-shadow-color: hsla(210, 100%, 40%, 0.15);
1003
+ --bsi-toggle-knob-background-disabled: var(--bsi-color-background-secondary);
1004
+ --bsi-toggle-knob-offset-checked: 28px;
1005
+ --bsi-toggle-knob-transition: left 0.3s ease, background 0.1s ease, transform 0.1s ease;
1006
+ --bsi-toggle-label-spacing: var(--bsi-spacing-xs);
1007
+ }
1008
+
1009
+ /* stylelint-disable-next-line no-duplicate-selectors */
1010
+ .toggles,
1011
+ .toggles * {
1012
+ user-select: none;
1013
+ appearance: none;
1014
+ }
1015
+
1016
+ .toggles label {
1017
+ display: flex;
1018
+ align-items: center;
1019
+ justify-content: space-between;
1020
+ width: 100%;
1021
+ margin-right: var(--bsi-toggle-label-spacing);
1022
+ font-size: var(--bsi-form-control-font-size);
1023
+ cursor: pointer;
1024
+ }
1025
+ .toggles label input[type=checkbox] {
1026
+ width: 100%;
1027
+ height: 100%;
1028
+ padding: 0;
1029
+ top: 0;
1030
+ left: 0;
1031
+ }
1032
+ .toggles label input[type=checkbox] + .lever {
1033
+ position: relative;
1034
+ content: "";
1035
+ width: var(--bsi-toggle-track-width);
1036
+ height: var(--bsi-toggle-track-height);
1037
+ border-radius: var(--bsi-toggle-track-border-radius);
1038
+ background-color: var(--bsi-toggle-track-background);
1039
+ vertical-align: middle;
1040
+ transition: var(--bsi-toggle-track-transition);
1041
+ }
1042
+ .toggles label input[type=checkbox] + .lever:before, .toggles label input[type=checkbox] + .lever:after {
1043
+ position: absolute;
1044
+ top: var(--bsi-toggle-knob-offset);
1045
+ left: var(--bsi-toggle-knob-offset);
1046
+ content: "";
1047
+ display: inline-block;
1048
+ width: var(--bsi-toggle-knob-size);
1049
+ height: var(--bsi-toggle-knob-size);
1050
+ border-radius: var(--bsi-toggle-knob-border-radius);
1051
+ transition: var(--bsi-toggle-knob-transition);
1052
+ }
1053
+ .toggles label input[type=checkbox] + .lever:before {
1054
+ background-color: var(--bsi-toggle-knob-shadow-color);
1055
+ }
1056
+ .toggles label input[type=checkbox] + .lever:after {
1057
+ background-color: var(--bsi-toggle-knob-background);
1058
+ }
1059
+ .toggles label input[type=checkbox]:checked + .lever {
1060
+ background-color: var(--bsi-toggle-track-background-checked);
1061
+ }
1062
+ .toggles label input[type=checkbox]:checked + .lever:before, .toggles label input[type=checkbox]:checked + .lever:after {
1063
+ left: var(--bsi-toggle-knob-offset-checked);
1064
+ }
1065
+ [disabled] .toggles label input[type=checkbox] + .lever, .toggles label input[type=checkbox][disabled] + .lever {
1066
+ background-color: var(--bsi-toggle-track-background-disabled);
1067
+ cursor: default;
1068
+ }
1069
+ [disabled] .toggles label input[type=checkbox] + .lever:after, .toggles label input[type=checkbox][disabled] + .lever:after {
1070
+ background-color: var(--bsi-toggle-knob-background-disabled);
1071
+ }
1072
+ [disabled] .toggles label input[type=checkbox]:checked + .lever:after, .toggles label input[type=checkbox][disabled]:checked + .lever:after {
1073
+ background-color: var(--bsi-toggle-knob-background-disabled);
1074
+ }
1075
+
1076
+ .form-feedback {
1077
+ width: 100%;
1078
+ margin-top: 0.25rem;
1079
+ font-size: 0.75rem;
1080
+ }
1081
+ .form-feedback.just-validate-error-label {
1082
+ color: var(--bsi-color-text-danger);
1083
+ }
1084
+
1085
+ .input-group-text:has(~ [data-focus-mouse=true]:not(.btn)),
1086
+ [data-focus-mouse=true]:not(.btn) ~ .input-group-text,
1087
+ button:has(~ [data-focus-mouse=true]:not(.btn)),
1088
+ [data-focus-mouse=true]:not(.btn) + button {
1089
+ border-color: inherit !important;
1090
+ box-shadow: none !important;
1091
+ outline: none !important;
1092
+ }
1093
+
1094
+ .input-group-text:has(~ .is-invalid),
1095
+ .is-invalid ~ .input-group-text,
1096
+ button:has(~ .is-invalid),
1097
+ .is-invalid + button {
1098
+ border-color: var(--bsi-color-border-danger) !important;
1099
+ }
1100
+
1101
+ .sr-only-justvalidate-bi {
1102
+ display: none;
1103
+ }
1104
+
1105
+ .just-validate-success-field {
1106
+ border-color: var(--bsi-color-border-success) !important;
1107
+ padding-right: calc(1.5em + 0.75rem) !important;
1108
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23008055' viewBox='0 0 192 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E");
1109
+ }
1110
+
1111
+ .input-group-text:has(~ .just-validate-success-field),
1112
+ .just-validate-success-field ~ .input-group-text,
1113
+ button:has(~ .just-validate-success-field),
1114
+ .just-validate-success-field + button {
1115
+ border-color: var(--bsi-color-border-success);
1116
+ }
1117
+
1118
+ .just-validate-success-field + .input-group-text.align-buttons,
1119
+ .is-invalid + .input-group-text.align-buttons {
1120
+ right: 30px;
1121
+ }
1122
+
1123
+ .is-invalid + .input-group-text.align-buttons {
1124
+ bottom: 22px;
1125
+ }
1126
+
1127
+ .autocomplete__wrapper .form-feedback.just-validate-error-label {
1128
+ position: absolute;
1129
+ }
1130
+
1131
+ textarea.form-control {
1132
+ background-position: top 0.3em right 0.3em !important;
1133
+ background-size: 37px 30% !important;
1134
+ }
1135
+ textarea.is-invalid {
1136
+ border-bottom-style: solid;
1137
+ border-bottom-width: 1px;
1138
+ }
1139
+ textarea.just-validate-success-field {
1140
+ border-bottom-style: solid;
1141
+ border-bottom-width: 1px;
1142
+ }
1143
+
1144
+ input[type=checkbox].is-invalid,
1145
+ input[type=radio].is-invalid {
1146
+ --bsi-form-checkbox-border-color: var(--bsi-color-border-danger);
1147
+ }
1148
+
1149
+ select.is-invalid {
1150
+ border: 1px solid var(--bsi-color-border-danger);
1151
+ }
1152
+ select.just-validate-success-field {
1153
+ border: 1px solid var(--bsi-color-border-success);
1154
+ }
1155
+
1156
+ ::part(checkbox):focus:focus-visible {
1157
+ box-shadow: none !important;
1158
+ }
1159
+
1160
+ .toggles label input[type=checkbox] {
1161
+ outline: none !important;
1162
+ }
1163
+ .toggles label input[type=checkbox]:focus {
1164
+ border-color: inherit !important;
1165
+ box-shadow: none !important;
1166
+ outline: none !important;
1167
+ }
1168
+ .toggles label input[type=checkbox]:focus + .lever {
1169
+ border-color: inherit !important;
1170
+ box-shadow: none !important;
1171
+ outline: none !important;
1172
+ }
1173
+ .toggles label:has(input[type=checkbox]:focus-visible) input,
1174
+ .toggles label:has(input[type=checkbox]:focus-visible) .lever {
1175
+ border-color: inherit !important;
1176
+ box-shadow: none !important;
1177
+ outline: none !important;
1178
+ }`;
1179
+
1180
+ let ItToggle = class ItToggle extends ItCheckboxBase {
1181
+ constructor() {
1182
+ super(...arguments);
1183
+ this.type = 'checkbox';
1184
+ }
1185
+ render() {
1186
+ const supportTextId = `${this._id}-support-text`;
1187
+ const supportTextRender = this.getSupportTextRender(supportTextId);
1188
+ const showValidation = this.formControlController.submittedOnce || this.customValidation;
1189
+ const validityMessage = (showValidation ? (this.validationMessage ?? '') : '') ?? '';
1190
+ const invalid = validityMessage?.length > 0 || (!this.customValidation && this.inputElement?.checkValidity() === false);
1191
+ const validityMessageRender = this.getValidityMessageRender(validityMessage);
1192
+ const wrapperClasses = this.getWrapperClasses();
1193
+ return html `
1194
+ <div class="${wrapperClasses}" part="toggle-wrapper input-wrapper">
1195
+ <div class="toggles">
1196
+ <label for="${this._id}" part="label focusable">
1197
+ <slot name="label"></slot>
1198
+ ${this._renderInput(supportTextId, invalid, validityMessage)}
1199
+ <span class="lever"></span>
1200
+ </label>
1201
+ </div>
1202
+ ${validityMessageRender} ${supportTextRender}
1203
+ </div>
1204
+ `;
1205
+ }
1206
+ };
1207
+ ItToggle.styles = [ItCheckboxBase.styles, styles];
1208
+ ItToggle = __decorate([
1209
+ customElement('it-toggle')
1210
+ ], ItToggle);
1211
+
1212
+ export { ItToggle };
1213
+ //# sourceMappingURL=it-toggle.js.map