@italia/dropdown 0.1.0-alpha.2

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,763 @@
1
+ import { _ as __decorate, a as __metadata, B as BaseComponent } from '../form-control-ddGGHusp.js';
2
+ import { css, html } from 'lit';
3
+ import { property, customElement } from 'lit/decorators.js';
4
+ import { ifDefined } from 'lit/directives/if-defined.js';
5
+ import 'lit/directive.js';
6
+
7
+ var styles = css`/***************************** 1 ****************************************/
8
+ /***************************** 2 ****************************************/
9
+ /***************************** 1 ****************************************/
10
+ /***************************** 2 ****************************************/
11
+ /***************************** 1 ****************************************/
12
+ /***************************** 2 ****************************************/
13
+ /***************************** 3 ****************************************/
14
+ /***************************** 1 ****************************************/
15
+ /***************************** 2 ****************************************/
16
+ /***************************** 3 ****************************************/
17
+ /***************************** NEUTRAL 1 ****************************************/
18
+ /***************************** NEUTRAL 2 ****************************************/
19
+ /***************************** NEUTRAL 2 / 3 ****************************************/
20
+ .dropdown-menu {
21
+ --bs-dropdown-zindex: 8;
22
+ --bs-dropdown-min-width: 10rem;
23
+ --bs-dropdown-padding-x: 0;
24
+ --bs-dropdown-padding-y: var(--bs-spacing-xxs);
25
+ --bs-dropdown-spacer: 0.125rem;
26
+ --bs-dropdown-font-size: var(--bs-label-font-size);
27
+ --bs-dropdown-color: var(--bs-color-text-base);
28
+ --bs-dropdown-background: var(--bs-color-background-inverse);
29
+ --bs-dropdown-border-color: transparent;
30
+ --bs-dropdown-border-radius: var(--bs-radius-smooth);
31
+ --bs-dropdown-border-width: 0;
32
+ --bs-dropdown-inner-border-radius: var(--bs-radius-smooth);
33
+ --bs-dropdown-divider-bg: var(--bs-color-border-subtle);
34
+ --bs-dropdown-divider-margin-y: var(--bs-spacing-xxs);
35
+ --bs-dropdown-box-shadow: var(--bs-elevation-medium);
36
+ --bs-dropdown-link-color: var(--bs-color-text-primary);
37
+ --bs-dropdown-link-hover-color: var(--bs-color-text-primary-hover);
38
+ --bs-dropdown-link-active-color: var(--bs-color-text-primary-active);
39
+ --bs-dropdown-item-padding-x: var(--bs-spacing-s);
40
+ --bs-dropdown-item-padding-y: var(--bs-spacing-xs);
41
+ --bs-dropdown-header-color: var(--bs-color-text-secondary);
42
+ --bs-dropdown-header-font-size: var(--bs-label-font-size);
43
+ --bs-dropdown-header-padding-x: var(--bs-spacing-s);
44
+ --bs-dropdown-header-padding-y: var(--bs-spacing-xxs);
45
+ --bs-dropdown-notch-base-size: 1.125rem;
46
+ --bs-dropdown-notch-position-x: 20px;
47
+ --bs-dropdown-notch-position-y: -8px;
48
+ --bs-dropdown-animation-speed: var(--bs-transition-instant);
49
+ --bs-dropdown-vertical-shift: 10px;
50
+ }
51
+
52
+ .dropup,
53
+ .dropend,
54
+ .dropdown,
55
+ .dropstart,
56
+ .dropup-center,
57
+ .dropdown-center {
58
+ position: relative;
59
+ }
60
+
61
+ .dropdown-toggle {
62
+ white-space: nowrap;
63
+ }
64
+ .dropdown-toggle::after {
65
+ display: inline-block;
66
+ margin-left: 0.255em;
67
+ vertical-align: 0.255em;
68
+ content: "";
69
+ border-top: 0.3em solid;
70
+ border-right: 0.3em solid transparent;
71
+ border-bottom: 0;
72
+ border-left: 0.3em solid transparent;
73
+ }
74
+ .dropdown-toggle:empty::after {
75
+ margin-left: 0;
76
+ }
77
+
78
+ .dropdown-menu {
79
+ position: absolute;
80
+ z-index: var(--bs-dropdown-zindex);
81
+ display: none;
82
+ min-width: var(--bs-dropdown-min-width);
83
+ margin: 0;
84
+ padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
85
+ border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
86
+ border-radius: 0 0 var(--bs-dropdown-border-radius) var(--bs-dropdown-border-radius);
87
+ background-color: var(--bs-dropdown-background);
88
+ color: var(--bs-dropdown-color);
89
+ list-style: none;
90
+ text-align: left;
91
+ background-clip: padding-box;
92
+ font-size: var(--bs-dropdown-font-size);
93
+ box-shadow: var(--bs-dropdown-box-shadow);
94
+ }
95
+ .dropdown-menu[data-bs-popper] {
96
+ top: 100%;
97
+ left: 0;
98
+ margin-top: var(--bs-dropdown-spacer);
99
+ }
100
+ .dropdown-menu.full-width {
101
+ width: 100%;
102
+ }
103
+ .dropdown-menu.full-width .link-list li {
104
+ display: inline-block;
105
+ width: auto;
106
+ }
107
+ .dropdown-menu.full-width .link-list li:hover, .dropdown-menu.full-width .link-list li:focus {
108
+ background: none;
109
+ text-decoration: underline;
110
+ }
111
+ .dropdown-menu .link-list {
112
+ margin-bottom: 0;
113
+ }
114
+ .dropdown-menu:before {
115
+ position: absolute;
116
+ top: var(--bs-dropdown-notch-position-y);
117
+ left: var(--bs-dropdown-notch-position-x);
118
+ content: "";
119
+ width: var(--bs-dropdown-notch-base-size);
120
+ height: var(--bs-dropdown-notch-base-size);
121
+ border-radius: var(--bs-dropdown-border-radius);
122
+ background-color: var(--bs-dropdown-background);
123
+ transform: rotate(45deg);
124
+ }
125
+ .dropdown-menu[data-popper-placement=top-start] {
126
+ border-radius: var(--bs-dropdown-border-radius) var(--bs-dropdown-border-radius) 0 0;
127
+ }
128
+ .dropdown-menu[data-popper-placement=top-start]:before {
129
+ top: auto;
130
+ bottom: var(--bs-dropdown-notch-position-y);
131
+ }
132
+ .dropdown-menu[data-popper-placement=bottom-end]:before {
133
+ right: calc(var(--bs-dropdown-notch-position-x) / 2);
134
+ left: auto;
135
+ }
136
+ .dropdown-menu.dark {
137
+ --bs-dropdown-text-color: hsl(0, 0%, 83%);
138
+ --bs-dropdown-background: var(--bs-color-background-primary-muted);
139
+ --bs-dropdown-link-color: hsl(0, 0%, 83%);
140
+ --bs-dropdown-divider-bg: transparent;
141
+ --bs-dropdown-link-active-color: var(--bs-color-text-inverses);
142
+ --bs-dropdown-header-color: hsl(0, 0%, 45%);
143
+ }
144
+ .dropdown-menu.dark:before {
145
+ background-color: var(--bs-dropdown-background);
146
+ }
147
+ .dropdown-menu.dark .link-list-heading {
148
+ color: var(--bs-color-text-inverse);
149
+ }
150
+ .dropdown-menu.dark .link-list span.divider {
151
+ background: #2e465e;
152
+ }
153
+ .dropdown-menu.dark .link-list a span,
154
+ .dropdown-menu.dark .link-list a:hover span {
155
+ color: var(--bs-color-text-inverse);
156
+ }
157
+ .dropdown-menu.dark .link-list a.active span {
158
+ text-decoration: underline;
159
+ }
160
+ .dropdown-menu.show {
161
+ display: block;
162
+ }
163
+ .dropdown-menu.show[data-popper-placement=bottom-start] {
164
+ animation: dropdownFadeIn forwards var(--bs-dropdown-animation-speed);
165
+ }
166
+ .dropdown-menu.show[data-popper-placement=top-start] {
167
+ animation: dropdownFadeInTop forwards var(--bs-dropdown-animation-speed);
168
+ }
169
+ .dropdown-menu.show[data-popper-placement=left-start] {
170
+ animation: dropdownFadeInTop forwards var(--bs-dropdown-animation-speed);
171
+ }
172
+ .dropdown-menu.show[data-popper-placement=left-start]:before {
173
+ top: 20px;
174
+ right: -6px;
175
+ left: auto;
176
+ }
177
+ .dropdown-menu.show[data-popper-placement=right-start] {
178
+ animation: dropdownFadeInTop forwards var(--bs-dropdown-animation-speed);
179
+ }
180
+ .dropdown-menu.show[data-popper-placement=right-start]:before {
181
+ top: 20px;
182
+ left: -6px;
183
+ }
184
+
185
+ .dropdown-menu-start {
186
+ --bs-position: start;
187
+ }
188
+ .dropdown-menu-start[data-bs-popper] {
189
+ right: auto;
190
+ left: 0;
191
+ }
192
+
193
+ .dropdown-menu-end {
194
+ --bs-position: end;
195
+ }
196
+ .dropdown-menu-end[data-bs-popper] {
197
+ right: 0;
198
+ left: auto;
199
+ }
200
+
201
+ @media (min-width: 576px) {
202
+ .dropdown-menu-sm-start {
203
+ --bs-position: start;
204
+ }
205
+ .dropdown-menu-sm-start[data-bs-popper] {
206
+ right: auto;
207
+ left: 0;
208
+ }
209
+ .dropdown-menu-sm-end {
210
+ --bs-position: end;
211
+ }
212
+ .dropdown-menu-sm-end[data-bs-popper] {
213
+ right: 0;
214
+ left: auto;
215
+ }
216
+ }
217
+ @media (min-width: 768px) {
218
+ .dropdown-menu-md-start {
219
+ --bs-position: start;
220
+ }
221
+ .dropdown-menu-md-start[data-bs-popper] {
222
+ right: auto;
223
+ left: 0;
224
+ }
225
+ .dropdown-menu-md-end {
226
+ --bs-position: end;
227
+ }
228
+ .dropdown-menu-md-end[data-bs-popper] {
229
+ right: 0;
230
+ left: auto;
231
+ }
232
+ }
233
+ @media (min-width: 992px) {
234
+ .dropdown-menu-lg-start {
235
+ --bs-position: start;
236
+ }
237
+ .dropdown-menu-lg-start[data-bs-popper] {
238
+ right: auto;
239
+ left: 0;
240
+ }
241
+ .dropdown-menu-lg-end {
242
+ --bs-position: end;
243
+ }
244
+ .dropdown-menu-lg-end[data-bs-popper] {
245
+ right: 0;
246
+ left: auto;
247
+ }
248
+ }
249
+ @media (min-width: 1200px) {
250
+ .dropdown-menu-xl-start {
251
+ --bs-position: start;
252
+ }
253
+ .dropdown-menu-xl-start[data-bs-popper] {
254
+ right: auto;
255
+ left: 0;
256
+ }
257
+ .dropdown-menu-xl-end {
258
+ --bs-position: end;
259
+ }
260
+ .dropdown-menu-xl-end[data-bs-popper] {
261
+ right: 0;
262
+ left: auto;
263
+ }
264
+ }
265
+ @media (min-width: 1400px) {
266
+ .dropdown-menu-xxl-start {
267
+ --bs-position: start;
268
+ }
269
+ .dropdown-menu-xxl-start[data-bs-popper] {
270
+ right: auto;
271
+ left: 0;
272
+ }
273
+ .dropdown-menu-xxl-end {
274
+ --bs-position: end;
275
+ }
276
+ .dropdown-menu-xxl-end[data-bs-popper] {
277
+ right: 0;
278
+ left: auto;
279
+ }
280
+ }
281
+ .dropup .dropdown-menu[data-bs-popper] {
282
+ top: auto;
283
+ bottom: 100%;
284
+ margin-top: 0;
285
+ margin-bottom: var(--bs-dropdown-spacer);
286
+ }
287
+ .dropup .dropdown-toggle::after {
288
+ display: inline-block;
289
+ margin-left: 0.255em;
290
+ vertical-align: 0.255em;
291
+ content: "";
292
+ border-top: 0;
293
+ border-right: 0.3em solid transparent;
294
+ border-bottom: 0.3em solid;
295
+ border-left: 0.3em solid transparent;
296
+ }
297
+ .dropup .dropdown-toggle:empty::after {
298
+ margin-left: 0;
299
+ }
300
+
301
+ .dropend .dropdown-menu[data-bs-popper] {
302
+ top: 0;
303
+ right: auto;
304
+ left: 100%;
305
+ margin-top: 0;
306
+ margin-left: var(--bs-dropdown-spacer);
307
+ }
308
+ .dropend .dropdown-toggle::after {
309
+ display: inline-block;
310
+ margin-left: 0.255em;
311
+ vertical-align: 0.255em;
312
+ content: "";
313
+ border-top: 0.3em solid transparent;
314
+ border-right: 0;
315
+ border-bottom: 0.3em solid transparent;
316
+ border-left: 0.3em solid;
317
+ }
318
+ .dropend .dropdown-toggle:empty::after {
319
+ margin-left: 0;
320
+ }
321
+ .dropend .dropdown-toggle::after {
322
+ vertical-align: 0;
323
+ }
324
+
325
+ .dropstart .dropdown-menu[data-bs-popper] {
326
+ top: 0;
327
+ right: 100%;
328
+ left: auto;
329
+ margin-top: 0;
330
+ margin-right: var(--bs-dropdown-spacer);
331
+ }
332
+ .dropstart .dropdown-toggle::after {
333
+ display: inline-block;
334
+ margin-left: 0.255em;
335
+ vertical-align: 0.255em;
336
+ content: "";
337
+ }
338
+ .dropstart .dropdown-toggle::after {
339
+ display: none;
340
+ }
341
+ .dropstart .dropdown-toggle::before {
342
+ display: inline-block;
343
+ margin-right: 0.255em;
344
+ vertical-align: 0.255em;
345
+ content: "";
346
+ border-top: 0.3em solid transparent;
347
+ border-right: 0.3em solid;
348
+ border-bottom: 0.3em solid transparent;
349
+ }
350
+ .dropstart .dropdown-toggle:empty::after {
351
+ margin-left: 0;
352
+ }
353
+ .dropstart .dropdown-toggle::before {
354
+ vertical-align: 0;
355
+ }
356
+
357
+ .dropdown-divider {
358
+ height: 0;
359
+ margin: var(--bs-dropdown-divider-margin-y) 0;
360
+ overflow: hidden;
361
+ border-top: 1px solid var(--bs-dropdown-divider-bg);
362
+ opacity: 1;
363
+ }
364
+
365
+ .dropdown-item.list-item {
366
+ width: auto;
367
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
368
+ border: 0;
369
+ background-color: transparent;
370
+ text-align: inherit;
371
+ text-decoration: none;
372
+ white-space: nowrap;
373
+ }
374
+ .dropdown-item.list-item:hover, .dropdown-item.list-item:focus {
375
+ text-decoration: none;
376
+ }
377
+
378
+ .dropdown-header {
379
+ display: block;
380
+ margin-bottom: 0;
381
+ padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
382
+ color: var(--bs-dropdown-header-color);
383
+ font-size: var(--bs-dropdown-header-font-size);
384
+ white-space: nowrap;
385
+ }
386
+
387
+ .dropdown-item-text {
388
+ display: block;
389
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
390
+ color: var(--bs-dropdown-link-color);
391
+ }
392
+
393
+ @keyframes dropdownFadeIn {
394
+ 0% {
395
+ margin-top: 0;
396
+ opacity: 0;
397
+ }
398
+ 100% {
399
+ margin-top: var(--bs-dropdown-vertical-shift);
400
+ opacity: 1;
401
+ }
402
+ }
403
+ @keyframes dropdownFadeInTop {
404
+ 0% {
405
+ margin-top: 0;
406
+ opacity: 0;
407
+ }
408
+ 100% {
409
+ margin-top: -var(--bs-dropdown-vertical-shift);
410
+ opacity: 1;
411
+ }
412
+ }
413
+ .dropdown.dropup .dropdown-toggle:after,
414
+ .btn-group.dropup .dropdown-toggle:after {
415
+ display: none;
416
+ }
417
+ .dropdown.dropup .dropdown-toggle[aria-expanded=true] .icon-expand,
418
+ .btn-group.dropup .dropdown-toggle[aria-expanded=true] .icon-expand {
419
+ transform: scaleY(1);
420
+ }
421
+ .dropdown.dropup .dropdown-toggle .icon-expand,
422
+ .btn-group.dropup .dropdown-toggle .icon-expand {
423
+ transform: scaleY(-1);
424
+ }
425
+ .dropdown.dropend .dropdown-toggle:after,
426
+ .btn-group.dropend .dropdown-toggle:after {
427
+ display: none;
428
+ }
429
+ .dropdown.dropend .dropdown-toggle[aria-expanded=true] .icon-expand,
430
+ .btn-group.dropend .dropdown-toggle[aria-expanded=true] .icon-expand {
431
+ transform: rotate(90deg);
432
+ }
433
+ .dropdown.dropend .dropdown-toggle .icon-expand,
434
+ .btn-group.dropend .dropdown-toggle .icon-expand {
435
+ transform: rotate(-90deg);
436
+ }
437
+ .dropdown.dropstart .dropdown-toggle:before,
438
+ .btn-group.dropstart .dropdown-toggle:before {
439
+ display: none;
440
+ }
441
+ .dropdown.dropstart .dropdown-toggle[aria-expanded=true] .icon-expand,
442
+ .btn-group.dropstart .dropdown-toggle[aria-expanded=true] .icon-expand {
443
+ transform: rotate(-90deg);
444
+ }
445
+ .dropdown.dropstart .dropdown-toggle .icon-expand,
446
+ .btn-group.dropstart .dropdown-toggle .icon-expand {
447
+ transform: rotate(90deg);
448
+ }
449
+
450
+ .btn-dropdown {
451
+ --bs-dropdown-button-color: var(--bs-color-text-primary);
452
+ --bs-dropdown-button-padding: 10px;
453
+ --bs-dropdown-button-background: #fff;
454
+ border-radius: 0;
455
+ box-shadow: none;
456
+ color: var(--bs-dropdown-button-color);
457
+ }
458
+ @media (min-width: 992px) {
459
+ .btn-dropdown {
460
+ font-size: var(--bs-label-font-size-m);
461
+ }
462
+ }
463
+ .btn-dropdown:hover {
464
+ --bs-dropdown-button-color: var(--bs-color-text-primary-hover);
465
+ text-decoration: underline;
466
+ }
467
+ .btn-dropdown:not(:disabled):active {
468
+ box-shadow: none;
469
+ }
470
+
471
+ .btn-dropdown:after,
472
+ .dropdown-toggle:after {
473
+ content: "";
474
+ display: inline;
475
+ width: auto;
476
+ height: auto;
477
+ margin: 0;
478
+ border: none;
479
+ vertical-align: bottom;
480
+ }
481
+ .btn-dropdown .icon-expand,
482
+ .dropdown-toggle .icon-expand {
483
+ transition: transform var(--bs-dropdown-animation-speed);
484
+ }
485
+ .btn-dropdown .icon.icon-xs,
486
+ .dropdown-toggle .icon.icon-xs {
487
+ transform: translateY(-1px);
488
+ transition: transform var(--bs-dropdown-animation-speed);
489
+ }
490
+ .btn-dropdown[aria-expanded=true] .icon-expand,
491
+ .dropdown-toggle[aria-expanded=true] .icon-expand {
492
+ transform: scaleY(-1);
493
+ }
494
+
495
+ :host {
496
+ display: block;
497
+ }
498
+
499
+ :host li:focus-visible,
500
+ :host li a:focus-visible {
501
+ outline: none;
502
+ }
503
+
504
+ a {
505
+ color: var(--bs-color-link);
506
+ text-decoration: underline;
507
+ text-decoration-skip-ink: auto;
508
+ text-underline-offset: 2px;
509
+ }
510
+ a:hover {
511
+ color: var(--bs-color-link-hover);
512
+ text-decoration: underline;
513
+ }
514
+
515
+ li span,
516
+ .list-item {
517
+ font-size: var(--bs-linklist-item-font-size);
518
+ line-height: var(--bs-linklist-item-line-height);
519
+ }
520
+
521
+ .list-item {
522
+ position: relative;
523
+ display: inline-block;
524
+ padding-top: var(--bs-linklist-item-spacing);
525
+ padding-bottom: var(--bs-linklist-item-spacing);
526
+ text-decoration: none;
527
+ }
528
+ .list-item.active span, .list-item:hover:not(.disable) span {
529
+ text-decoration: underline;
530
+ }
531
+ .list-item.active span {
532
+ color: var(--bs-color-text-primary-active);
533
+ }
534
+ .list-item.active .icon {
535
+ color: var(--bs-color-icon-primary-active);
536
+ }
537
+ .list-item:hover:not(.disabled) span {
538
+ color: var(--bs-color-link-hover);
539
+ }
540
+ .list-item:hover:not(.disabled) p {
541
+ color: var(--bs-color-text-secondary);
542
+ }
543
+ .list-item:hover:not(.disabled) .icon {
544
+ fill: var(--bs-icon-primary-hover);
545
+ }
546
+ .list-item:hover:not(.disabled) .icon.icon-inverse {
547
+ fill: var(--bs-icon-inverse);
548
+ }
549
+ .list-item.disabled {
550
+ cursor: not-allowed;
551
+ }
552
+ .list-item.disabled:hover span {
553
+ text-decoration: none;
554
+ }
555
+ .list-item.disabled span {
556
+ color: var(--bs-color-text-disabled);
557
+ }
558
+ .list-item.disabled svg {
559
+ fill: var(--bs-icon-disabled);
560
+ }
561
+ .list-item.disabled svg.secondary {
562
+ fill: var(--bs-icon-disabled);
563
+ }
564
+ .list-item.medium,
565
+ .list-item .list-item-title {
566
+ font-weight: var(--bs-font-weight-solid);
567
+ }
568
+ .list-item.large {
569
+ --bs-linklist-item-font-size: var(--bs-label-font-size-m);
570
+ }
571
+ .list-item.avatar {
572
+ display: flex;
573
+ margin-bottom: var(--bs-spacing-xxs);
574
+ }
575
+ .list-item.avatar .avatar {
576
+ display: block;
577
+ margin-right: var(--bs-spacing-s);
578
+ }
579
+ .list-item.icon-right, .list-item.icon-left {
580
+ padding-right: 0;
581
+ padding-left: 0;
582
+ }
583
+ .list-item.icon-left .icon {
584
+ left: 0;
585
+ flex-shrink: 0;
586
+ margin-right: var(--bs-spacing-xxs);
587
+ }
588
+ .list-item.icon-left p {
589
+ width: 100%;
590
+ }
591
+ .list-item.icon-right {
592
+ width: 100%;
593
+ }
594
+ .list-item.icon-right .list-item-title-icon-wrapper {
595
+ justify-content: space-between;
596
+ }
597
+ .list-item.right-icon .list-item-title-icon-wrapper {
598
+ justify-content: space-between;
599
+ }
600
+ .list-item.right-icon .icon {
601
+ transition: transform 0.3s;
602
+ }
603
+ .list-item.right-icon .icon.secondary {
604
+ color: var(--bs-icon-secondary);
605
+ }
606
+ .list-item[aria-expanded=true] .icon {
607
+ transform: scale(-1);
608
+ }
609
+ .list-item .icon {
610
+ display: inline-block;
611
+ flex-shrink: 0;
612
+ }
613
+ .list-item .list-item-title-icon-wrapper {
614
+ display: flex;
615
+ align-items: center;
616
+ justify-content: space-between;
617
+ }
618
+ .list-item .list-item-title-icon-wrapper .list-item-title {
619
+ margin-right: var(--bs-spacing-xxs);
620
+ }
621
+ .list-item > p {
622
+ color: var(--bs-color-text-secondary);
623
+ font-size: var(--bs-caption-font-size);
624
+ line-height: var(--bs-caption-line-height);
625
+ }
626
+ .list-item > span {
627
+ display: inline-block;
628
+ color: var(--bs-color-link);
629
+ }
630
+
631
+ .divider {
632
+ display: block;
633
+ height: var(--bs-linklist-divider-size);
634
+ margin: var(--bs-spacing-xxs) 0;
635
+ background: var(--bs-color-border-subtle);
636
+ }
637
+
638
+ .dark a span,
639
+ .dark a:hover span {
640
+ --bs-color-link: var(--bs-color-text-inverse);
641
+ --bs-color-link-hover: var(--bs-color-text-inverse);
642
+ }
643
+ .dark a.active span {
644
+ text-decoration: underline;
645
+ }
646
+ .dark li a.disabled,
647
+ .dark li a.disabled span {
648
+ color: hsla(0, 0%, 100%, 0.35);
649
+ }
650
+
651
+ .fw {
652
+ display: inline-block;
653
+ width: auto;
654
+ }
655
+ .fw:hover, .fw:focus {
656
+ background: none;
657
+ text-decoration: underline;
658
+ }`;
659
+
660
+ let ItDropdownItem = class ItDropdownItem extends BaseComponent {
661
+ constructor() {
662
+ super(...arguments);
663
+ this.label = '';
664
+ this.value = '';
665
+ this.active = false;
666
+ this.large = false;
667
+ this.separator = false;
668
+ this.dark = false;
669
+ this.fullWidth = false;
670
+ }
671
+ getFocusableElement() {
672
+ return this.shadowRoot?.querySelector('a, button') ?? null;
673
+ }
674
+ handlePress(event) {
675
+ if (this.disabled)
676
+ event.preventDefault();
677
+ }
678
+ render() {
679
+ if (this.separator) {
680
+ return html `<li><span class="divider" role="separator"></span></li>`;
681
+ }
682
+ const itemClasses = this.composeClass({
683
+ dark: this.dark,
684
+ fw: this.fullWidth,
685
+ });
686
+ const linkClasses = this.composeClass('list-item', 'dropdown-item', {
687
+ disabled: this.disabled,
688
+ active: this.active,
689
+ large: this.large,
690
+ });
691
+ const content = html `
692
+ <slot name="prefix"></slot>
693
+ <slot>${this.label}${this.active ? html `<span class="visually-hidden"> attivo</span>` : null}</slot>
694
+ <slot name="suffix"></slot>
695
+ `;
696
+ return html `
697
+ <li
698
+ role="${ifDefined(this.itRole === 'menuitem' || this.itRole === 'option' || this.itRole === 'treeitem' ? 'none' : undefined)}"
699
+ class=${ifDefined(itemClasses || undefined)}
700
+ >
701
+ ${this.href
702
+ ? html `<a
703
+ class=${linkClasses}
704
+ part="focusable"
705
+ href=${this.href}
706
+ role=${ifDefined(this.itRole)}
707
+ aria-disabled=${ifDefined(this.disabled || undefined)}
708
+ @keydown=${this.handlePress}
709
+ @click=${this.handlePress}
710
+ ><span>${content}</span></a
711
+ >`
712
+ : html `<span class="dropdown-item-text">${content}</span>`}
713
+ </li>
714
+ `;
715
+ }
716
+ };
717
+ ItDropdownItem.styles = styles;
718
+ __decorate([
719
+ property({ type: String }),
720
+ __metadata("design:type", Object)
721
+ ], ItDropdownItem.prototype, "label", void 0);
722
+ __decorate([
723
+ property({ type: String }),
724
+ __metadata("design:type", Object)
725
+ ], ItDropdownItem.prototype, "value", void 0);
726
+ __decorate([
727
+ property({ type: String }),
728
+ __metadata("design:type", String)
729
+ ], ItDropdownItem.prototype, "href", void 0);
730
+ __decorate([
731
+ property({ type: Boolean, reflect: true }),
732
+ __metadata("design:type", Object)
733
+ ], ItDropdownItem.prototype, "active", void 0);
734
+ __decorate([
735
+ property({ type: Boolean, reflect: true }),
736
+ __metadata("design:type", Object)
737
+ ], ItDropdownItem.prototype, "large", void 0);
738
+ __decorate([
739
+ property({ type: Boolean, reflect: true }),
740
+ __metadata("design:type", Object)
741
+ ], ItDropdownItem.prototype, "separator", void 0);
742
+ __decorate([
743
+ property({ type: Boolean, reflect: true }),
744
+ __metadata("design:type", Object)
745
+ ], ItDropdownItem.prototype, "dark", void 0);
746
+ __decorate([
747
+ property({ type: Boolean, attribute: 'full-width', reflect: true }),
748
+ __metadata("design:type", Object)
749
+ ], ItDropdownItem.prototype, "fullWidth", void 0);
750
+ __decorate([
751
+ property({ type: String, attribute: 'it-role' }),
752
+ __metadata("design:type", String)
753
+ ], ItDropdownItem.prototype, "itRole", void 0);
754
+ __decorate([
755
+ property({ type: Boolean, reflect: true }),
756
+ __metadata("design:type", Boolean)
757
+ ], ItDropdownItem.prototype, "disabled", void 0);
758
+ ItDropdownItem = __decorate([
759
+ customElement('it-dropdown-item')
760
+ ], ItDropdownItem);
761
+
762
+ export { ItDropdownItem };
763
+ //# sourceMappingURL=it-dropdown-item.js.map