@ukic/web-components 3.15.0 → 3.16.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/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +9 -5
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +2 -2
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +14 -6
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +3 -3
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +2 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +18 -18
- package/dist/collection/components/ic-data-list/ic-data-list.css +1 -0
- package/dist/collection/components/ic-data-row/ic-data-row.css +2 -0
- package/dist/collection/components/ic-footer/ic-footer.js +29 -5
- package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.stories.js +31 -0
- package/dist/collection/components/ic-hero/ic-hero.css +0 -2
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
- package/dist/collection/components/ic-input-validation/ic-input-validation.css +2 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +17 -18
- package/dist/collection/components/ic-menu/ic-menu.css +8 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +12 -0
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +2 -7
- package/dist/collection/components/ic-pagination/ic-pagination.stories.js +3 -3
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +7 -7
- package/dist/collection/components/ic-radio-group/ic-radio-group.css +6 -6
- package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +12 -12
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +60 -54
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +9 -5
- package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +8 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +19 -19
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +20 -20
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -21
- package/dist/collection/components/ic-tab-context/ic-tabs.stories.js +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +19 -19
- package/dist/collection/components/ic-toast/ic-toast.css +26 -1
- package/dist/collection/components/ic-toast/ic-toast.js +39 -5
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast/ic-toast.stories.js +21 -9
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +14 -14
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +7 -7
- package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +11 -11
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +15 -15
- package/dist/collection/components/ic-typography/ic-typography.stories.js +1 -1
- package/dist/collection/patterns/top-nav-content-footer.stories.js +1 -1
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-list.js.map +1 -1
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-footer.js +10 -5
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +1 -1
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-menu2.js +1 -1
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-radio-group.js +1 -1
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +10 -7
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +1 -1
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-toast.js +15 -6
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-082e0068.entry.js +2 -0
- package/dist/core/p-082e0068.entry.js.map +1 -0
- package/dist/core/p-3238389a.entry.js +2 -0
- package/dist/core/p-3238389a.entry.js.map +1 -0
- package/dist/core/p-33e35173.entry.js.map +1 -1
- package/dist/core/p-52c66bfe.entry.js +2 -0
- package/dist/core/p-52c66bfe.entry.js.map +1 -0
- package/dist/core/p-6ed48c46.entry.js +2 -0
- package/dist/core/p-6ed48c46.entry.js.map +1 -0
- package/dist/core/p-8abcc114.entry.js.map +1 -1
- package/dist/core/p-9c52ee48.entry.js +2 -0
- package/dist/core/p-9c52ee48.entry.js.map +1 -0
- package/dist/core/p-afbba548.entry.js +2 -0
- package/dist/core/p-afbba548.entry.js.map +1 -0
- package/dist/core/p-b4a2f6fa.entry.js.map +1 -1
- package/dist/core/{p-0c4ceed9.entry.js → p-b59504f1.entry.js} +2 -2
- package/dist/core/p-b59504f1.entry.js.map +1 -0
- package/dist/core/p-b83a736d.entry.js +3 -0
- package/dist/core/p-b83a736d.entry.js.map +1 -0
- package/dist/core/{p-4bdeb62d.entry.js → p-bdda404b.entry.js} +2 -2
- package/dist/core/p-bdda404b.entry.js.map +1 -0
- package/dist/core/p-ffd0d9d1.entry.js.map +1 -1
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +9 -5
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +2 -2
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +1 -1
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +1 -1
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +9 -6
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +1 -1
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +14 -6
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-footer/ic-footer.d.ts +4 -0
- package/dist/types/components/ic-toast/ic-toast.d.ts +5 -1
- package/dist/types/components.d.ts +16 -0
- package/hydrate/index.js +42 -25
- package/hydrate/index.mjs +42 -25
- package/package.json +4 -4
- package/vscode-data.json +19 -0
- package/dist/core/p-042cfc35.entry.js +0 -2
- package/dist/core/p-042cfc35.entry.js.map +0 -1
- package/dist/core/p-06c950a3.entry.js +0 -2
- package/dist/core/p-06c950a3.entry.js.map +0 -1
- package/dist/core/p-0c4ceed9.entry.js.map +0 -1
- package/dist/core/p-11d8a504.entry.js +0 -3
- package/dist/core/p-11d8a504.entry.js.map +0 -1
- package/dist/core/p-3680f22c.entry.js +0 -2
- package/dist/core/p-3680f22c.entry.js.map +0 -1
- package/dist/core/p-4bdeb62d.entry.js.map +0 -1
- package/dist/core/p-a5415f6c.entry.js +0 -2
- package/dist/core/p-a5415f6c.entry.js.map +0 -1
- package/dist/core/p-b3cb1e35.entry.js +0 -2
- package/dist/core/p-b3cb1e35.entry.js.map +0 -1
- package/dist/core/p-e7af1e2d.entry.js +0 -2
- package/dist/core/p-e7af1e2d.entry.js.map +0 -1
|
@@ -441,35 +441,34 @@ video {
|
|
|
441
441
|
}
|
|
442
442
|
|
|
443
443
|
|
|
444
|
-
|
|
444
|
+
:host {
|
|
445
445
|
display: flex;
|
|
446
446
|
flex-direction: column;
|
|
447
447
|
width: -moz-fit-content;
|
|
448
448
|
width: fit-content;
|
|
449
449
|
}
|
|
450
450
|
|
|
451
|
-
.additional-field-wrapper
|
|
451
|
+
:host .additional-field-wrapper-static::slotted([slot="additional-field"]) {
|
|
452
452
|
margin-top: calc(var(--ic-space-sm) / 2);
|
|
453
453
|
margin-left: var(--ic-space-xl);
|
|
454
454
|
}
|
|
455
455
|
|
|
456
456
|
/* The label turns grey when disabled */
|
|
457
|
-
|
|
458
|
-
|
|
457
|
+
:host(.ic-radio-option-disabled),
|
|
458
|
+
:host(.ic-radio-option-disabled) .radio-label {
|
|
459
459
|
--ic-typography-color: var(--ic-radio-button-text-option-disabled);
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
/* Focus states */
|
|
463
|
-
|
|
464
|
-
.container input:focus + span.checkmark,
|
|
465
|
-
.container:
|
|
466
|
-
.container
|
|
467
|
-
:host(:focus) .container input:checked + span.checkmark {
|
|
463
|
+
:host .radio-option-container input:focus + span.checkmark,
|
|
464
|
+
:host .radio-option-container:hover input:focus + span.checkmark,
|
|
465
|
+
:host .radio-option-container:active input:focus + span.checkmark,
|
|
466
|
+
:host(:focus) .radio-option-container input:checked + span.checkmark {
|
|
468
467
|
box-shadow: var(--ic-border-focus);
|
|
469
468
|
}
|
|
470
469
|
|
|
471
470
|
/* The container */
|
|
472
|
-
.container {
|
|
471
|
+
:host .radio-option-container {
|
|
473
472
|
display: grid;
|
|
474
473
|
grid-template-columns: min-content auto;
|
|
475
474
|
position: relative;
|
|
@@ -478,17 +477,17 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
478
477
|
margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);
|
|
479
478
|
}
|
|
480
479
|
|
|
481
|
-
.ic-radio-
|
|
480
|
+
:host(.ic-radio-option-small) .radio-option-container {
|
|
482
481
|
margin: 0 0 0 var(--ic-space-xxs);
|
|
483
482
|
}
|
|
484
483
|
|
|
485
|
-
.container.disabled,
|
|
486
|
-
.container.disabled input:disabled {
|
|
484
|
+
:host .radio-option-container.disabled,
|
|
485
|
+
:host .radio-option-container.disabled input:disabled {
|
|
487
486
|
cursor: default;
|
|
488
487
|
}
|
|
489
488
|
|
|
490
489
|
/* Hide the browser's default radio button */
|
|
491
|
-
.container input {
|
|
490
|
+
:host .radio-option-container input {
|
|
492
491
|
-webkit-appearance: none;
|
|
493
492
|
-moz-appearance: none;
|
|
494
493
|
appearance: none;
|
|
@@ -501,13 +500,13 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
501
500
|
border: none;
|
|
502
501
|
}
|
|
503
502
|
|
|
504
|
-
.ic-radio-
|
|
503
|
+
:host(.ic-radio-option-small) .radio-option-container input {
|
|
505
504
|
height: var(--ic-space-md);
|
|
506
505
|
width: var(--ic-space-md);
|
|
507
506
|
}
|
|
508
507
|
|
|
509
508
|
/* Create a custom radio button */
|
|
510
|
-
.checkmark {
|
|
509
|
+
:host .checkmark {
|
|
511
510
|
display: block;
|
|
512
511
|
position: relative;
|
|
513
512
|
top: 0;
|
|
@@ -521,84 +520,90 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
521
520
|
box-sizing: border-box;
|
|
522
521
|
}
|
|
523
522
|
|
|
524
|
-
.ic-radio-
|
|
523
|
+
:host(.ic-radio-option-small) .checkmark {
|
|
525
524
|
height: var(--ic-space-md);
|
|
526
525
|
width: var(--ic-space-md);
|
|
527
526
|
}
|
|
528
527
|
|
|
529
528
|
/* Show the indicator (dot/circle) when checked */
|
|
530
|
-
.container input:checked ~ .checkmark::after {
|
|
529
|
+
:host .radio-option-container input:checked ~ .checkmark::after {
|
|
531
530
|
display: inline-block;
|
|
532
531
|
}
|
|
533
532
|
|
|
534
533
|
/* On mouse-over, add a light blue background color */
|
|
535
|
-
.container:hover input ~ .checkmark {
|
|
534
|
+
:host .radio-option-container:hover input ~ .checkmark {
|
|
536
535
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);
|
|
537
536
|
border: var(--ic-border-width) solid var(--ic-radio-button-default-hover);
|
|
538
537
|
}
|
|
539
538
|
|
|
540
|
-
.container:hover input:checked ~ .checkmark {
|
|
539
|
+
:host .radio-option-container:hover input:checked ~ .checkmark {
|
|
541
540
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);
|
|
542
541
|
border: 0.125rem solid var(--ic-radio-button-default-hover);
|
|
543
542
|
}
|
|
544
543
|
|
|
545
|
-
|
|
544
|
+
:host
|
|
545
|
+
.radio-option-container:hover:not(.disabled)
|
|
546
|
+
input:checked
|
|
547
|
+
~ .checkmark::after {
|
|
546
548
|
background-color: var(--ic-radio-button-default-hover);
|
|
547
549
|
}
|
|
548
550
|
|
|
549
551
|
/* When pressed, adds the active colours */
|
|
550
|
-
.container:active input ~ .checkmark {
|
|
552
|
+
:host .radio-option-container:active input ~ .checkmark {
|
|
551
553
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);
|
|
552
554
|
border: var(--ic-border-width) solid var(--ic-radio-button-default-pressed);
|
|
553
555
|
}
|
|
554
556
|
|
|
555
557
|
/* When pressed, adds the active colours */
|
|
556
|
-
.container:active input:checked ~ .checkmark {
|
|
558
|
+
:host .radio-option-container:active input:checked ~ .checkmark {
|
|
557
559
|
border: 0.125rem solid var(--ic-radio-button-default-pressed);
|
|
558
560
|
box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);
|
|
559
561
|
}
|
|
560
562
|
|
|
561
|
-
.ic-radio-
|
|
563
|
+
:host(.ic-radio-option-small)
|
|
564
|
+
.radio-option-container
|
|
565
|
+
input:checked
|
|
566
|
+
~ .checkmark {
|
|
562
567
|
border-width: var(--ic-space-1px);
|
|
563
568
|
}
|
|
564
569
|
|
|
565
570
|
/* When pressed and selected, adds the active colours */
|
|
566
|
-
.container:active input:checked ~ .checkmark::after {
|
|
571
|
+
:host .radio-option-container:active input:checked ~ .checkmark::after {
|
|
567
572
|
background-color: var(--ic-radio-button-default-pressed);
|
|
568
573
|
}
|
|
569
574
|
|
|
570
575
|
/* When the radio button is checked */
|
|
571
|
-
.container input:checked ~ .checkmark {
|
|
576
|
+
:host .radio-option-container input:checked ~ .checkmark {
|
|
572
577
|
border: 0.125rem solid var(--ic-radio-button-default-active);
|
|
573
578
|
}
|
|
574
579
|
|
|
575
580
|
/* When the radio button is checked and disabled */
|
|
576
|
-
.container input:checked:disabled ~ .checkmark {
|
|
581
|
+
:host .radio-option-container input:checked:disabled ~ .checkmark {
|
|
577
582
|
border: 0.125rem solid var(--ic-radio-button-border-disabled);
|
|
578
583
|
}
|
|
579
584
|
|
|
580
585
|
/* When the radio button is disabled */
|
|
581
|
-
.container input:disabled ~ .checkmark {
|
|
586
|
+
:host .radio-option-container input:disabled ~ .checkmark {
|
|
582
587
|
border: var(--ic-border-width) dashed var(--ic-radio-button-border-disabled);
|
|
583
588
|
}
|
|
584
589
|
|
|
585
590
|
/* When the radio button is disabled */
|
|
586
|
-
.container input:disabled ~ .checkmark::after {
|
|
591
|
+
:host .radio-option-container input:disabled ~ .checkmark::after {
|
|
587
592
|
background: var(--ic-radio-button-disabled);
|
|
588
593
|
}
|
|
589
594
|
|
|
590
595
|
/* On mouse-over inactive */
|
|
591
|
-
.container:hover input:disabled ~ .checkmark {
|
|
596
|
+
:host .radio-option-container:hover input:disabled ~ .checkmark {
|
|
592
597
|
box-shadow: none;
|
|
593
598
|
border: 0.125rem solid none;
|
|
594
599
|
}
|
|
595
600
|
|
|
596
|
-
.container:active input:disabled ~ .checkmark::after {
|
|
601
|
+
:host .radio-option-container:active input:disabled ~ .checkmark::after {
|
|
597
602
|
background-color: var(--ic-radio-button-disabled);
|
|
598
603
|
}
|
|
599
604
|
|
|
600
605
|
/* Style the indicator (dot/circle) */
|
|
601
|
-
.container .checkmark::after {
|
|
606
|
+
:host .radio-option-container .checkmark::after {
|
|
602
607
|
content: "";
|
|
603
608
|
position: absolute;
|
|
604
609
|
display: none;
|
|
@@ -610,7 +615,7 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
610
615
|
background: var(--ic-radio-button-default-active);
|
|
611
616
|
}
|
|
612
617
|
|
|
613
|
-
.ic-radio-
|
|
618
|
+
:host(.ic-radio-option-small) .radio-option-container .checkmark::after {
|
|
614
619
|
top: 50%;
|
|
615
620
|
left: 50%;
|
|
616
621
|
width: 0.625rem;
|
|
@@ -620,22 +625,22 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
620
625
|
transform: translate(-50%, -50%);
|
|
621
626
|
}
|
|
622
627
|
|
|
623
|
-
.radio-label {
|
|
628
|
+
:host .radio-label {
|
|
624
629
|
margin-left: var(--ic-space-md);
|
|
625
630
|
|
|
626
631
|
--ic-typography-color: var(--ic-radio-button-text-option);
|
|
627
632
|
}
|
|
628
633
|
|
|
629
|
-
.ic-radio-
|
|
634
|
+
:host(.ic-radio-option-small) .radio-label {
|
|
630
635
|
margin-left: var(--ic-space-xs);
|
|
631
636
|
}
|
|
632
637
|
|
|
633
|
-
.additional-field-wrapper {
|
|
638
|
+
:host .additional-field-wrapper-static {
|
|
634
639
|
margin-left: var(--ic-space-xs);
|
|
635
640
|
}
|
|
636
641
|
|
|
637
642
|
/* The line */
|
|
638
|
-
.branch-corner {
|
|
643
|
+
:host .branch-corner {
|
|
639
644
|
color: var(--ic-radio-button-required-bar);
|
|
640
645
|
height: var(--ic-space-md);
|
|
641
646
|
width: var(--ic-space-xl);
|
|
@@ -646,22 +651,22 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
646
651
|
}
|
|
647
652
|
|
|
648
653
|
/* The dynamic container */
|
|
649
|
-
.dynamic-container {
|
|
654
|
+
:host .dynamic-container {
|
|
650
655
|
display: flex;
|
|
651
656
|
position: relative;
|
|
652
657
|
margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-md);
|
|
653
658
|
gap: var(--ic-space-xs);
|
|
654
659
|
}
|
|
655
660
|
|
|
656
|
-
.ic-radio-
|
|
661
|
+
:host(.ic-radio-option-small) .dynamic-container {
|
|
657
662
|
margin-left: 12px;
|
|
658
663
|
}
|
|
659
664
|
|
|
660
|
-
.dynamic-container.hidden {
|
|
665
|
+
:host .dynamic-container.hidden {
|
|
661
666
|
display: none;
|
|
662
667
|
}
|
|
663
668
|
|
|
664
|
-
.dynamic-text {
|
|
669
|
+
:host .dynamic-text {
|
|
665
670
|
color: var(--ic-radio-button-required-text);
|
|
666
671
|
|
|
667
672
|
--ic-typography-color: var(--ic-radio-button-required-text);
|
|
@@ -672,7 +677,8 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
672
677
|
}
|
|
673
678
|
|
|
674
679
|
@media (max-width: 576px) {
|
|
675
|
-
ic-text-field
|
|
680
|
+
:host .additional-field-wrapper-dynamic::slotted(ic-text-field),
|
|
681
|
+
:host .additional-field-wrapper-static::slotted(ic-text-field) {
|
|
676
682
|
--input-width: 100%;
|
|
677
683
|
}
|
|
678
684
|
}
|
|
@@ -680,43 +686,43 @@ ic-radio-option.ic-radio-option-disabled .radio-label {
|
|
|
680
686
|
@media (forced-colors: active) {
|
|
681
687
|
/* Styles here only apply to Forced Colors Mode */
|
|
682
688
|
|
|
683
|
-
.container input:checked ~ .checkmark,
|
|
684
|
-
.container:active input:checked ~ .checkmark {
|
|
689
|
+
:host .radio-option-container input:checked ~ .checkmark,
|
|
690
|
+
:host .radio-option-container:active input:checked ~ .checkmark {
|
|
685
691
|
border-color: Highlight;
|
|
686
692
|
}
|
|
687
693
|
|
|
688
|
-
.container input:checked ~ .checkmark::after,
|
|
689
|
-
.container:active input:checked ~ .checkmark::after {
|
|
694
|
+
:host .radio-option-container input:checked ~ .checkmark::after,
|
|
695
|
+
:host .radio-option-container:active input:checked ~ .checkmark::after {
|
|
690
696
|
background-color: Highlight;
|
|
691
697
|
}
|
|
692
698
|
|
|
693
|
-
.container input:disabled ~ .checkmark,
|
|
694
|
-
.container input:checked:disabled ~ .checkmark {
|
|
699
|
+
:host .radio-option-container input:disabled ~ .checkmark,
|
|
700
|
+
:host .radio-option-container input:checked:disabled ~ .checkmark {
|
|
695
701
|
border-color: GrayText;
|
|
696
702
|
}
|
|
697
703
|
|
|
698
|
-
.container input:disabled ~ .checkmark::after,
|
|
699
|
-
.container:active input:disabled ~ .checkmark::after {
|
|
704
|
+
:host .radio-option-container input:disabled ~ .checkmark::after,
|
|
705
|
+
:host .radio-option-container:active input:disabled ~ .checkmark::after {
|
|
700
706
|
background-color: GrayText;
|
|
701
707
|
}
|
|
702
708
|
}
|
|
703
709
|
|
|
704
710
|
/* Right to left */
|
|
705
|
-
input[type="radio"]:dir(rtl) {
|
|
711
|
+
:host input[type="radio"]:dir(rtl) {
|
|
706
712
|
right: 0;
|
|
707
713
|
}
|
|
708
714
|
|
|
709
|
-
.radio-label:dir(rtl) {
|
|
715
|
+
:host .radio-label:dir(rtl) {
|
|
710
716
|
padding-right: var(--ic-space-sm);
|
|
711
717
|
padding-left: 0;
|
|
712
718
|
}
|
|
713
719
|
|
|
714
|
-
.branch-corner:dir(rtl) {
|
|
720
|
+
:host .branch-corner:dir(rtl) {
|
|
715
721
|
border-radius: 0 0 0.188rem;
|
|
716
722
|
border-right: 0.125rem solid var(--ic-action-default);
|
|
717
723
|
border-left: none;
|
|
718
724
|
}
|
|
719
725
|
|
|
720
|
-
.dynamic-container:dir(rtl) {
|
|
726
|
+
:host .dynamic-container:dir(rtl) {
|
|
721
727
|
margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;
|
|
722
728
|
}
|
|
@@ -137,19 +137,23 @@ export class RadioOption {
|
|
|
137
137
|
return additionalField;
|
|
138
138
|
}
|
|
139
139
|
render() {
|
|
140
|
+
var _a, _b;
|
|
140
141
|
const { additionalFieldDisplay, disabled, dynamicText, form, groupLabel, handleClick, handleKeyDown, hasAdditionalField, label, name, selected, value, theme, } = this;
|
|
141
142
|
const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;
|
|
142
|
-
return (h(Host, { key: '
|
|
143
|
+
return (h(Host, { key: '0a7177993a68c85ed54198b8ee213811aa2e130a', onClick: handleClick, onKeyDown: handleKeyDown, class: {
|
|
143
144
|
["ic-radio-option-disabled"]: !!disabled,
|
|
144
145
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
145
|
-
|
|
146
|
+
["ic-radio-option-small"]: ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === "IC-RADIO-GROUP" &&
|
|
147
|
+
((_b = this.el.parentElement) === null || _b === void 0 ? void 0 : _b.className.includes("ic-radio-group-small")),
|
|
148
|
+
} }, h("div", { key: '64bac9a6440919352131dc732648034a90d7e92e', class: { "radio-option-container": true, disabled: !!disabled } }, h("div", { key: '419dc17817ca4c9945025268e0e00de83db01790' }, h("input", { key: '0885bab10d42cd69eda2e0d78702c6c2afcff615', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: 'df142dc79e23d240abd15f5088d703b6d388456b', class: "checkmark" })), h("ic-typography", { key: '4d5a779bbef4ccb65fbe7ebf6b3aeceafb9227e0', class: "radio-label", variant: "body" }, h("label", { key: '6d2778eb36c462f3c7fa25ed9ae5d8733b0fcb20', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '9772fd4d064854c3db492f430b90098eccd13701', class: {
|
|
146
149
|
"dynamic-container": true,
|
|
147
150
|
hidden: additionalFieldDisplay === "dynamic" && !selected,
|
|
148
|
-
} }, additionalFieldDisplay === "dynamic" && (h("div", { key: '
|
|
149
|
-
|
|
150
|
-
} }, h("slot", { key: '
|
|
151
|
+
} }, additionalFieldDisplay === "dynamic" && (h("div", { key: 'a237b8043bf912d5fb1be67014ae0bde41c5a2a4', class: "branch-corner" })), h("div", { key: '70524014fa4d75197460d321f47824ab20503806' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '2f652884ff6ac334fd6cb688e52d05d0bdabf3de', variant: "caption", role: "alert" }, h("p", { key: '36cc2915b063c8d85e61dd18a3c384460b996d4f', class: "dynamic-text" }, dynamicText))), h("div", { key: 'd8386ddb6c70fd7893544d3c6d1720b349bb378b', class: {
|
|
152
|
+
[`additional-field-wrapper-${additionalFieldDisplay}`]: true,
|
|
153
|
+
} }, h("slot", { key: 'f9b72315938873b57c52af87730ee72b24a413af', name: ADDITIONAL_FIELD })))))));
|
|
151
154
|
}
|
|
152
155
|
static get is() { return "ic-radio-option"; }
|
|
156
|
+
static get encapsulation() { return "scoped"; }
|
|
153
157
|
static get originalStyleUrls() {
|
|
154
158
|
return {
|
|
155
159
|
"$": ["ic-radio-option.css"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement?: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay?: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText?: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel?: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement?.setAttribute(\"tabIndex\", value.toString());\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement?.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, disabled: !!disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\" role=\"alert\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n additionalFieldDisplay === \"static\",\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ic-radio-option.js","sourceRoot":"","sources":["../../../src/components/ic-radio-option/ic-radio-option.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n scoped: true,\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement?: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay?: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText?: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel?: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement?.setAttribute(\"tabIndex\", value.toString());\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement?.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-radio-option-small\"]:\n this.el.parentElement?.tagName === \"IC-RADIO-GROUP\" &&\n this.el.parentElement?.className.includes(\"ic-radio-group-small\"),\n }}\n >\n <div class={{ \"radio-option-container\": true, disabled: !!disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\" role=\"alert\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n [`additional-field-wrapper-${additionalFieldDisplay}`]: true,\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -651,3 +651,11 @@ input[type="search"].truncate-value {
|
|
|
651
651
|
fill: GrayText;
|
|
652
652
|
}
|
|
653
653
|
}
|
|
654
|
+
|
|
655
|
+
/* Breakpoint value chosen as it's a small amount bigger than the search bar's default width */
|
|
656
|
+
@media screen AND (max-width: 22rem) {
|
|
657
|
+
.menu-container {
|
|
658
|
+
max-width: var(--menu-width, var(--input-width, 20rem));
|
|
659
|
+
width: 100%;
|
|
660
|
+
}
|
|
661
|
+
}
|
|
@@ -27,7 +27,7 @@ export default {
|
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
export const Default = {
|
|
30
|
-
render: (
|
|
30
|
+
render: () =>
|
|
31
31
|
html` <ic-search-bar label="What is your favourite coffee?">
|
|
32
32
|
</ic-search-bar>`,
|
|
33
33
|
|
|
@@ -35,7 +35,7 @@ export const Default = {
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
export const Basic = {
|
|
38
|
-
render: (
|
|
38
|
+
render: () =>
|
|
39
39
|
html` <ic-search-bar label="What is your favourite coffee?"></ic-search-bar>
|
|
40
40
|
<script>
|
|
41
41
|
document.querySelector("ic-search-bar").options = [
|
|
@@ -54,7 +54,7 @@ export const Basic = {
|
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
export const WithCustomLabelAndValueFields = {
|
|
57
|
-
render: (
|
|
57
|
+
render: () =>
|
|
58
58
|
html` <ic-search-bar
|
|
59
59
|
label="What is your favourite coffee?"
|
|
60
60
|
label-field="urn"
|
|
@@ -77,7 +77,7 @@ export const WithCustomLabelAndValueFields = {
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
export const WithOptions = {
|
|
80
|
-
render: (
|
|
80
|
+
render: () =>
|
|
81
81
|
html` <ic-search-bar
|
|
82
82
|
label="What is your favourite coffee?"
|
|
83
83
|
value="Flat White"
|
|
@@ -103,7 +103,7 @@ export const WithOptions = {
|
|
|
103
103
|
};
|
|
104
104
|
|
|
105
105
|
export const WithOptionsNoFiltering = {
|
|
106
|
-
render: (
|
|
106
|
+
render: () =>
|
|
107
107
|
html` <ic-search-bar
|
|
108
108
|
label="What is your favourite coffee?"
|
|
109
109
|
disable-auto-filtering
|
|
@@ -125,7 +125,7 @@ export const WithOptionsNoFiltering = {
|
|
|
125
125
|
};
|
|
126
126
|
|
|
127
127
|
export const InAForm = {
|
|
128
|
-
render: (
|
|
128
|
+
render: () =>
|
|
129
129
|
html` <form>
|
|
130
130
|
<ic-search-bar
|
|
131
131
|
name="search-01"
|
|
@@ -137,7 +137,7 @@ export const InAForm = {
|
|
|
137
137
|
};
|
|
138
138
|
|
|
139
139
|
export const HelperText = {
|
|
140
|
-
render: (
|
|
140
|
+
render: () =>
|
|
141
141
|
html` <ic-search-bar
|
|
142
142
|
label="What is your favourite coffee?"
|
|
143
143
|
helper-text="Some helper text"
|
|
@@ -168,7 +168,7 @@ export const HelperText = {
|
|
|
168
168
|
};
|
|
169
169
|
|
|
170
170
|
export const Small = {
|
|
171
|
-
render: (
|
|
171
|
+
render: () =>
|
|
172
172
|
html` <ic-search-bar
|
|
173
173
|
label="What is your favourite coffee?"
|
|
174
174
|
size="small"
|
|
@@ -178,7 +178,7 @@ export const Small = {
|
|
|
178
178
|
};
|
|
179
179
|
|
|
180
180
|
export const HiddenLabel = {
|
|
181
|
-
render: (
|
|
181
|
+
render: () =>
|
|
182
182
|
html` <ic-search-bar
|
|
183
183
|
label="What is your favourite coffee?"
|
|
184
184
|
hide-label
|
|
@@ -188,7 +188,7 @@ export const HiddenLabel = {
|
|
|
188
188
|
};
|
|
189
189
|
|
|
190
190
|
export const Disabled = {
|
|
191
|
-
render: (
|
|
191
|
+
render: () =>
|
|
192
192
|
html` <ic-search-bar
|
|
193
193
|
label="What is your favourite coffee?"
|
|
194
194
|
disabled
|
|
@@ -198,7 +198,7 @@ export const Disabled = {
|
|
|
198
198
|
};
|
|
199
199
|
|
|
200
200
|
export const FullWidth = {
|
|
201
|
-
render: (
|
|
201
|
+
render: () =>
|
|
202
202
|
html` <ic-search-bar
|
|
203
203
|
label="What is your favourite coffee?"
|
|
204
204
|
full-width
|
|
@@ -224,7 +224,7 @@ export const FullWidth = {
|
|
|
224
224
|
};
|
|
225
225
|
|
|
226
226
|
export const ExternalFiltering = {
|
|
227
|
-
render: (
|
|
227
|
+
render: () =>
|
|
228
228
|
html` <ic-search-bar
|
|
229
229
|
label="Search for coffee"
|
|
230
230
|
placeholder="Type to search"
|
|
@@ -288,7 +288,7 @@ export const ExternalFiltering = {
|
|
|
288
288
|
};
|
|
289
289
|
|
|
290
290
|
export const ExternalFilteringWithLoading = {
|
|
291
|
-
render: (
|
|
291
|
+
render: () =>
|
|
292
292
|
html` <ic-search-bar
|
|
293
293
|
label="Search for coffee"
|
|
294
294
|
placeholder="Type to search"
|
|
@@ -356,7 +356,7 @@ export const ExternalFilteringWithLoading = {
|
|
|
356
356
|
};
|
|
357
357
|
|
|
358
358
|
export const ExternalFilteringWithCustomLoadingMessages = {
|
|
359
|
-
render: (
|
|
359
|
+
render: () =>
|
|
360
360
|
html` <ic-search-bar
|
|
361
361
|
label="Search for coffee"
|
|
362
362
|
placeholder="Type to search"
|
|
@@ -426,7 +426,7 @@ export const ExternalFilteringWithCustomLoadingMessages = {
|
|
|
426
426
|
};
|
|
427
427
|
|
|
428
428
|
export const QuerySearchMode = {
|
|
429
|
-
render: (
|
|
429
|
+
render: () =>
|
|
430
430
|
html` <ic-search-bar
|
|
431
431
|
label="What is your favourite coffee?"
|
|
432
432
|
search-mode="query"
|
|
@@ -447,7 +447,7 @@ export const QuerySearchMode = {
|
|
|
447
447
|
};
|
|
448
448
|
|
|
449
449
|
export const EmptyOptionListText = {
|
|
450
|
-
render: (
|
|
450
|
+
render: () =>
|
|
451
451
|
html` <ic-search-bar
|
|
452
452
|
label="What is your favourite coffee?"
|
|
453
453
|
empty-option-list-text="There's nothing here"
|
|
@@ -468,7 +468,7 @@ export const EmptyOptionListText = {
|
|
|
468
468
|
};
|
|
469
469
|
|
|
470
470
|
export const CharactersUntilSuggestion = {
|
|
471
|
-
render: (
|
|
471
|
+
render: () =>
|
|
472
472
|
html` <ic-search-bar
|
|
473
473
|
label="What is your favourite coffee?"
|
|
474
474
|
characters-until-suggestion="5"
|
|
@@ -489,7 +489,7 @@ export const CharactersUntilSuggestion = {
|
|
|
489
489
|
};
|
|
490
490
|
|
|
491
491
|
export const HintText = {
|
|
492
|
-
render: (
|
|
492
|
+
render: () =>
|
|
493
493
|
html` <ic-search-bar
|
|
494
494
|
label="What is your favourite coffee?"
|
|
495
495
|
assistive-hint-text="You can use up and down arrows to navigate the options when they are available, and press enter to select an option."
|
|
@@ -511,7 +511,7 @@ export const HintText = {
|
|
|
511
511
|
};
|
|
512
512
|
|
|
513
513
|
export const LongOptionLabels = {
|
|
514
|
-
render: (
|
|
514
|
+
render: () =>
|
|
515
515
|
html` <ic-search-bar label="What is your favourite coffee?"></ic-search-bar>
|
|
516
516
|
<script>
|
|
517
517
|
document.querySelector("ic-search-bar").options = [
|