@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.6 → 0.0.0-pr624.61
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/components/bibtemplate/dist/auro-bibtemplate.d.ts +12 -2
- package/components/bibtemplate/dist/buttonVersion.d.ts +2 -0
- package/components/bibtemplate/dist/iconVersion.d.ts +1 -1
- package/components/bibtemplate/dist/index.js +1214 -83
- package/components/bibtemplate/dist/registered.js +1214 -83
- package/components/checkbox/README.md +1 -1
- package/components/checkbox/demo/api.html +16 -10
- package/components/checkbox/demo/api.md +47 -14
- package/components/checkbox/demo/api.min.js +65 -42
- package/components/checkbox/demo/index.html +16 -10
- package/components/checkbox/demo/index.md +2 -2
- package/components/checkbox/demo/index.min.js +65 -42
- package/components/checkbox/demo/readme.html +16 -9
- package/components/checkbox/demo/readme.md +1 -1
- package/components/checkbox/dist/auro-checkbox-group.d.ts +1 -1
- package/components/checkbox/dist/auro-checkbox.d.ts +3 -3
- package/components/checkbox/dist/index.js +65 -42
- package/components/checkbox/dist/registered.js +65 -42
- package/components/combobox/demo/api.html +16 -10
- package/components/combobox/demo/api.md +113 -8
- package/components/combobox/demo/api.min.js +3052 -926
- package/components/combobox/demo/index.html +16 -10
- package/components/combobox/demo/index.md +6 -30
- package/components/combobox/demo/index.min.js +3052 -926
- package/components/combobox/demo/readme.html +16 -9
- package/components/combobox/dist/auro-combobox.d.ts +42 -8
- package/components/combobox/dist/index.js +2773 -743
- package/components/combobox/dist/registered.js +2773 -743
- package/components/counter/demo/api.html +17 -10
- package/components/counter/demo/api.md +156 -21
- package/components/counter/demo/api.min.js +6728 -4118
- package/components/counter/demo/index.html +17 -10
- package/components/counter/demo/index.md +185 -34
- package/components/counter/demo/index.min.js +6728 -4118
- package/components/counter/demo/readme.html +16 -9
- package/components/counter/dist/auro-counter-button.d.ts +2 -0
- package/components/counter/dist/auro-counter-group.d.ts +151 -11
- package/components/counter/dist/auro-counter.d.ts +16 -0
- package/components/counter/dist/helptextVersion.d.ts +2 -0
- package/components/counter/dist/iconVersion.d.ts +1 -1
- package/components/counter/dist/index.js +6728 -4118
- package/components/counter/dist/registered.js +6728 -4118
- package/components/datepicker/demo/api.html +16 -10
- package/components/datepicker/demo/api.md +25 -16
- package/components/datepicker/demo/api.min.js +11540 -7985
- package/components/datepicker/demo/index.html +16 -10
- package/components/datepicker/demo/index.md +71 -4
- package/components/datepicker/demo/index.min.js +11540 -7985
- package/components/datepicker/demo/readme.html +16 -9
- package/components/datepicker/dist/auro-datepicker.d.ts +89 -11
- package/components/datepicker/dist/buttonVersion.d.ts +1 -1
- package/components/datepicker/dist/iconVersion.d.ts +2 -0
- package/components/datepicker/dist/index.js +11603 -8048
- package/components/datepicker/dist/popoverVersion.d.ts +1 -1
- package/components/datepicker/dist/registered.js +11603 -8048
- package/components/dropdown/demo/api.html +16 -10
- package/components/dropdown/demo/api.md +81 -274
- package/components/dropdown/demo/api.min.js +429 -195
- package/components/dropdown/demo/index.html +16 -10
- package/components/dropdown/demo/index.md +92 -362
- package/components/dropdown/demo/index.min.js +429 -195
- package/components/dropdown/demo/readme.html +16 -9
- package/components/dropdown/dist/auro-dropdown.d.ts +41 -76
- package/components/dropdown/dist/auro-dropdownBib.d.ts +14 -0
- package/components/dropdown/dist/index.js +429 -195
- package/components/dropdown/dist/registered.js +429 -195
- package/components/form/demo/api.html +16 -9
- package/components/form/demo/api.min.js +1 -1
- package/components/form/demo/autocomplete.html +19 -3
- package/components/form/demo/index.html +16 -9
- package/components/form/demo/index.min.js +1 -1
- package/components/form/demo/readme.html +16 -9
- package/components/form/demo/working.html +19 -13
- package/components/form/dist/index.js +1 -1
- package/components/form/dist/registered.js +1 -1
- package/components/helptext/dist/index.js +2 -2
- package/components/helptext/dist/registered.js +2 -2
- package/components/input/README.md +5 -2
- package/components/input/demo/api.html +16 -10
- package/components/input/demo/api.md +228 -130
- package/components/input/demo/api.min.js +853 -241
- package/components/input/demo/index.html +16 -10
- package/components/input/demo/index.md +48 -32
- package/components/input/demo/index.min.js +853 -241
- package/components/input/demo/readme.html +16 -9
- package/components/input/demo/readme.md +5 -2
- package/components/input/dist/auro-input.d.ts +3 -3
- package/components/input/dist/base-input.d.ts +38 -10
- package/components/input/dist/buttonVersion.d.ts +1 -1
- package/components/input/dist/iconVersion.d.ts +1 -1
- package/components/input/dist/index.js +853 -241
- package/components/input/dist/registered.js +853 -241
- package/components/layoutElement/dist/index.js +13 -10
- package/components/menu/demo/api.html +32 -10
- package/components/menu/demo/api.md +69 -8
- package/components/menu/demo/api.min.js +238 -47
- package/components/menu/demo/index.html +16 -10
- package/components/menu/demo/index.min.js +238 -47
- package/components/menu/demo/readme.html +16 -9
- package/components/menu/dist/auro-menu.d.ts +41 -7
- package/components/menu/dist/auro-menuoption.d.ts +15 -3
- package/components/menu/dist/iconVersion.d.ts +1 -1
- package/components/menu/dist/index.js +238 -47
- package/components/menu/dist/registered.js +238 -47
- package/components/menu/dist/styles/default/style-menuoption-css.d.ts +2 -0
- package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
- package/components/radio/demo/api.html +16 -10
- package/components/radio/demo/api.md +7 -8
- package/components/radio/demo/api.min.js +88 -90
- package/components/radio/demo/index.html +16 -10
- package/components/radio/demo/index.min.js +88 -90
- package/components/radio/demo/readme.html +16 -9
- package/components/radio/dist/auro-radio-group.d.ts +1 -1
- package/components/radio/dist/auro-radio.d.ts +9 -12
- package/components/radio/dist/index.js +88 -90
- package/components/radio/dist/registered.js +88 -90
- package/components/select/demo/api.html +16 -10
- package/components/select/demo/api.js +0 -2
- package/components/select/demo/api.md +104 -57
- package/components/select/demo/api.min.js +2123 -644
- package/components/select/demo/index.html +16 -11
- package/components/select/demo/index.md +45 -158
- package/components/select/demo/index.min.js +2123 -632
- package/components/select/demo/readme.html +16 -9
- package/components/select/dist/auro-select.d.ts +57 -16
- package/components/select/dist/index.js +2047 -652
- package/components/select/dist/registered.js +2047 -652
- package/package.json +29 -26
- /package/components/{datepicker/dist/styles/emphasized/style-css.d.ts → counter/dist/styles/shapeSize-css.d.ts} +0 -0
- /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/color-css.d.ts +0 -0
- /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/style-css.d.ts +0 -0
- /package/components/dropdown/dist/styles/{default → classic}/bibColors-css.d.ts +0 -0
- /package/components/dropdown/dist/styles/{default → classic}/bibStyles-css.d.ts +0 -0
- /package/components/{menu/dist/styles/color-menu-css.d.ts → dropdown/dist/styles/classic/color-css.d.ts} +0 -0
- /package/components/{menu/dist/styles/color-menuoption-css.d.ts → dropdown/dist/styles/classic/style-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{style-menu-css.d.ts → default/color-menu-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{style-menuoption-css.d.ts → default/color-menuoption-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{tokens-css.d.ts → default/style-menu-css.d.ts} +0 -0
|
@@ -39,18 +39,21 @@ let AuroElement$3 = class AuroElement extends LitElement {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
resetShapeClasses() {
|
|
42
|
-
|
|
43
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
42
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
44
43
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
if (wrapper) {
|
|
45
|
+
wrapper.classList.forEach((className) => {
|
|
46
|
+
if (className.startsWith('shape-')) {
|
|
47
|
+
wrapper.classList.remove(className);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (this.shape && this.size) {
|
|
54
|
+
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
55
|
+
} else {
|
|
56
|
+
wrapper.classList.add('shape-none');
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
|
|
@@ -96,9 +99,9 @@ let AuroElement$3 = class AuroElement extends LitElement {
|
|
|
96
99
|
}
|
|
97
100
|
};
|
|
98
101
|
|
|
99
|
-
var shapeSizeCss$1 = css`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:
|
|
102
|
+
var shapeSizeCss$1 = css`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
|
|
100
103
|
|
|
101
|
-
var tokensCss$
|
|
104
|
+
var tokensCss$5 = css`:host(:not([ondark])){--ds-auro-select-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-select-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: transparent}:host([ondark]){--ds-auro-select-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-select-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-select-outline-color: transparent}`;
|
|
102
105
|
|
|
103
106
|
class DateFormatter {
|
|
104
107
|
|
|
@@ -516,7 +519,7 @@ const {
|
|
|
516
519
|
|
|
517
520
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
518
521
|
|
|
519
|
-
let AuroLibraryRuntimeUtils$
|
|
522
|
+
let AuroLibraryRuntimeUtils$6 = class AuroLibraryRuntimeUtils {
|
|
520
523
|
|
|
521
524
|
/* eslint-disable jsdoc/require-param */
|
|
522
525
|
|
|
@@ -586,7 +589,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
|
|
|
586
589
|
class AuroFormValidation {
|
|
587
590
|
|
|
588
591
|
constructor() {
|
|
589
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
592
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
590
593
|
}
|
|
591
594
|
|
|
592
595
|
/**
|
|
@@ -646,19 +649,19 @@ class AuroFormValidation {
|
|
|
646
649
|
{
|
|
647
650
|
check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
|
|
648
651
|
validity: 'tooShort',
|
|
649
|
-
message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
|
|
652
|
+
message: e => e.getAttribute('setCustomValidityTooShort') || e.setCustomValidity || ''
|
|
650
653
|
},
|
|
651
654
|
{
|
|
652
655
|
check: (e) => e.value?.length > e.maxLength,
|
|
653
656
|
validity: 'tooLong',
|
|
654
|
-
message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
|
|
657
|
+
message: e => e.getAttribute('setCustomValidityTooLong') || e.setCustomValidity || ''
|
|
655
658
|
}
|
|
656
659
|
],
|
|
657
660
|
pattern: [
|
|
658
661
|
{
|
|
659
662
|
check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
|
|
660
663
|
validity: 'patternMismatch',
|
|
661
|
-
message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
|
|
664
|
+
message: e => e.getAttribute('setCustomValidityPatternMismatch') || e.setCustomValidity || ''
|
|
662
665
|
}
|
|
663
666
|
]
|
|
664
667
|
},
|
|
@@ -805,13 +808,24 @@ class AuroFormValidation {
|
|
|
805
808
|
this.getInputElements(elem);
|
|
806
809
|
this.getAuroInputs(elem);
|
|
807
810
|
|
|
808
|
-
//
|
|
811
|
+
// Check if validation should run
|
|
809
812
|
let validationShouldRun =
|
|
813
|
+
|
|
814
|
+
// If the validation was forced
|
|
810
815
|
force ||
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
816
|
+
|
|
817
|
+
// If the validation should run on input
|
|
818
|
+
elem.validateOnInput ||
|
|
819
|
+
|
|
820
|
+
// State-based checks
|
|
821
|
+
(
|
|
822
|
+
// Element is not currently focused
|
|
823
|
+
!elem.contains(document.activeElement) && // native input is not focused directly
|
|
824
|
+
!document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
|
|
825
|
+
|
|
826
|
+
// And element has been touched or is untouched but has a value
|
|
827
|
+
( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
|
|
828
|
+
);
|
|
815
829
|
|
|
816
830
|
if (elem.hasAttribute('error')) {
|
|
817
831
|
elem.validity = 'customError';
|
|
@@ -853,10 +867,10 @@ class AuroFormValidation {
|
|
|
853
867
|
if (!hasValue && elem.required && elem.touched) {
|
|
854
868
|
elem.validity = 'valueMissing';
|
|
855
869
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
856
|
-
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
870
|
+
} else if (hasValue && this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
857
871
|
this.validateType(elem);
|
|
858
872
|
this.validateElementAttributes(elem);
|
|
859
|
-
} else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
|
|
873
|
+
} else if (hasValue && (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group'))) {
|
|
860
874
|
this.validateElementAttributes(elem);
|
|
861
875
|
}
|
|
862
876
|
}
|
|
@@ -865,7 +879,9 @@ class AuroFormValidation {
|
|
|
865
879
|
elem.validity = this.auroInputElements[0].validity;
|
|
866
880
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
867
881
|
|
|
868
|
-
|
|
882
|
+
// combobox has 2 inputs but no need to check validity on the 2nd one which is in fullscreen bib.
|
|
883
|
+
// combobox's 2nd input will have noValidate set true.
|
|
884
|
+
if (elem.validity === 'valid' && this.auroInputElements.length > 1 && !this.auroInputElements[1].noValidate) {
|
|
869
885
|
elem.validity = this.auroInputElements[1].validity;
|
|
870
886
|
elem.errorMessage = this.auroInputElements[1].errorMessage;
|
|
871
887
|
}
|
|
@@ -2671,7 +2687,7 @@ class AuroFloatingUI {
|
|
|
2671
2687
|
*/
|
|
2672
2688
|
mirrorSize() {
|
|
2673
2689
|
// mirror the boxsize from bibSizer
|
|
2674
|
-
if (this.element.bibSizer) {
|
|
2690
|
+
if (this.element.bibSizer && this.element.matchWidth) {
|
|
2675
2691
|
const sizerStyle = window.getComputedStyle(this.element.bibSizer);
|
|
2676
2692
|
const bibContent = this.element.bib.shadowRoot.querySelector(".container");
|
|
2677
2693
|
if (sizerStyle.width !== '0px') {
|
|
@@ -2883,13 +2899,13 @@ class AuroFloatingUI {
|
|
|
2883
2899
|
if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
|
|
2884
2900
|
return;
|
|
2885
2901
|
}
|
|
2886
|
-
|
|
2902
|
+
|
|
2887
2903
|
// if fullscreen bib is in fullscreen mode, do not close
|
|
2888
2904
|
if (this.element.bib.hasAttribute('isfullscreen')) {
|
|
2889
2905
|
return;
|
|
2890
2906
|
}
|
|
2891
2907
|
|
|
2892
|
-
this.hideBib();
|
|
2908
|
+
this.hideBib("keydown");
|
|
2893
2909
|
}
|
|
2894
2910
|
|
|
2895
2911
|
setupHideHandlers() {
|
|
@@ -2914,7 +2930,7 @@ class AuroFloatingUI {
|
|
|
2914
2930
|
document.expandedAuroFormkitDropdown = null;
|
|
2915
2931
|
document.expandedAuroFloater = this;
|
|
2916
2932
|
} else {
|
|
2917
|
-
this.hideBib();
|
|
2933
|
+
this.hideBib("click");
|
|
2918
2934
|
}
|
|
2919
2935
|
}
|
|
2920
2936
|
};
|
|
@@ -2927,7 +2943,7 @@ class AuroFloatingUI {
|
|
|
2927
2943
|
// if something else is open, let it handle itself
|
|
2928
2944
|
return;
|
|
2929
2945
|
}
|
|
2930
|
-
this.hideBib();
|
|
2946
|
+
this.hideBib("keydown");
|
|
2931
2947
|
}
|
|
2932
2948
|
};
|
|
2933
2949
|
|
|
@@ -3010,7 +3026,11 @@ class AuroFloatingUI {
|
|
|
3010
3026
|
}
|
|
3011
3027
|
}
|
|
3012
3028
|
|
|
3013
|
-
|
|
3029
|
+
/**
|
|
3030
|
+
* Hides the floating UI element.
|
|
3031
|
+
* @param {String} eventType - The event type that triggered the hiding action.
|
|
3032
|
+
*/
|
|
3033
|
+
hideBib(eventType = "unknown") {
|
|
3014
3034
|
if (!this.element.disabled && !this.element.noToggle) {
|
|
3015
3035
|
this.lockScroll(false);
|
|
3016
3036
|
this.element.triggerChevron?.removeAttribute('data-expanded');
|
|
@@ -3021,7 +3041,7 @@ class AuroFloatingUI {
|
|
|
3021
3041
|
if (this.showing) {
|
|
3022
3042
|
this.cleanupHideHandlers();
|
|
3023
3043
|
this.showing = false;
|
|
3024
|
-
this.dispatchEventDropdownToggle();
|
|
3044
|
+
this.dispatchEventDropdownToggle(eventType);
|
|
3025
3045
|
}
|
|
3026
3046
|
}
|
|
3027
3047
|
document.expandedAuroFloater = null;
|
|
@@ -3030,11 +3050,13 @@ class AuroFloatingUI {
|
|
|
3030
3050
|
/**
|
|
3031
3051
|
* @private
|
|
3032
3052
|
* @returns {void} Dispatches event with an object showing the state of the dropdown.
|
|
3053
|
+
* @param {String} eventType - The event type that triggered the toggle action.
|
|
3033
3054
|
*/
|
|
3034
|
-
dispatchEventDropdownToggle() {
|
|
3055
|
+
dispatchEventDropdownToggle(eventType) {
|
|
3035
3056
|
const event = new CustomEvent(this.eventPrefix ? `${this.eventPrefix}-toggled` : 'toggled', {
|
|
3036
3057
|
detail: {
|
|
3037
3058
|
expanded: this.showing,
|
|
3059
|
+
eventType: eventType || "unknown",
|
|
3038
3060
|
},
|
|
3039
3061
|
composed: true
|
|
3040
3062
|
});
|
|
@@ -3044,7 +3066,7 @@ class AuroFloatingUI {
|
|
|
3044
3066
|
|
|
3045
3067
|
handleClick() {
|
|
3046
3068
|
if (this.element.isPopoverVisible) {
|
|
3047
|
-
this.hideBib();
|
|
3069
|
+
this.hideBib("click");
|
|
3048
3070
|
} else {
|
|
3049
3071
|
this.showBib();
|
|
3050
3072
|
}
|
|
@@ -3067,8 +3089,9 @@ class AuroFloatingUI {
|
|
|
3067
3089
|
// Space is included as it's expected behavior for interactive elements
|
|
3068
3090
|
|
|
3069
3091
|
const origin = event.composedPath()[0];
|
|
3070
|
-
if (event.key === 'Enter' || (
|
|
3071
|
-
|
|
3092
|
+
if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
|
|
3093
|
+
|
|
3094
|
+
event.preventDefault();
|
|
3072
3095
|
this.handleClick();
|
|
3073
3096
|
}
|
|
3074
3097
|
break;
|
|
@@ -3079,7 +3102,7 @@ class AuroFloatingUI {
|
|
|
3079
3102
|
break;
|
|
3080
3103
|
case 'mouseleave':
|
|
3081
3104
|
if (this.element.hoverToggle) {
|
|
3082
|
-
this.hideBib();
|
|
3105
|
+
this.hideBib("mouseleave");
|
|
3083
3106
|
}
|
|
3084
3107
|
break;
|
|
3085
3108
|
case 'focus':
|
|
@@ -3222,6 +3245,267 @@ class AuroFloatingUI {
|
|
|
3222
3245
|
}
|
|
3223
3246
|
}
|
|
3224
3247
|
|
|
3248
|
+
// Selectors for focusable elements
|
|
3249
|
+
const FOCUSABLE_SELECTORS = [
|
|
3250
|
+
'a[href]',
|
|
3251
|
+
'button:not([disabled])',
|
|
3252
|
+
'textarea:not([disabled])',
|
|
3253
|
+
'input:not([disabled])',
|
|
3254
|
+
'select:not([disabled])',
|
|
3255
|
+
'[role="tab"]:not([disabled])',
|
|
3256
|
+
'[role="link"]:not([disabled])',
|
|
3257
|
+
'[role="button"]:not([disabled])',
|
|
3258
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
3259
|
+
'[contenteditable]:not([contenteditable="false"])'
|
|
3260
|
+
];
|
|
3261
|
+
|
|
3262
|
+
// List of custom components that are known to be focusable
|
|
3263
|
+
const FOCUSABLE_COMPONENTS = [
|
|
3264
|
+
'auro-checkbox',
|
|
3265
|
+
'auro-radio',
|
|
3266
|
+
'auro-dropdown',
|
|
3267
|
+
'auro-button',
|
|
3268
|
+
'auro-combobox',
|
|
3269
|
+
'auro-input',
|
|
3270
|
+
'auro-counter',
|
|
3271
|
+
'auro-menu',
|
|
3272
|
+
'auro-select',
|
|
3273
|
+
'auro-datepicker',
|
|
3274
|
+
'auro-hyperlink',
|
|
3275
|
+
'auro-accordion',
|
|
3276
|
+
];
|
|
3277
|
+
|
|
3278
|
+
/**
|
|
3279
|
+
* Determines if a given element is a custom focusable component.
|
|
3280
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
3281
|
+
*
|
|
3282
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
3283
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
3284
|
+
*/
|
|
3285
|
+
function isFocusableComponent(element) {
|
|
3286
|
+
const componentName = element.tagName.toLowerCase();
|
|
3287
|
+
|
|
3288
|
+
// Guard Clause: Element is a focusable component
|
|
3289
|
+
if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
|
|
3290
|
+
|
|
3291
|
+
// Guard Clause: Element is not disabled
|
|
3292
|
+
if (element.hasAttribute('disabled')) return false;
|
|
3293
|
+
|
|
3294
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
3295
|
+
if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
|
|
3296
|
+
|
|
3297
|
+
// If all guard clauses pass, the element is a focusable component
|
|
3298
|
+
return true;
|
|
3299
|
+
}
|
|
3300
|
+
|
|
3301
|
+
/**
|
|
3302
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3303
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3304
|
+
*
|
|
3305
|
+
* @param {HTMLElement} container The container to search within
|
|
3306
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3307
|
+
*/
|
|
3308
|
+
function getFocusableElements(container) {
|
|
3309
|
+
// Get elements in DOM order by walking the tree
|
|
3310
|
+
const orderedFocusableElements = [];
|
|
3311
|
+
|
|
3312
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
3313
|
+
const collectFocusableElements = (root) => {
|
|
3314
|
+
// Check if current element is focusable
|
|
3315
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
3316
|
+
// Check if this is a custom component that is focusable
|
|
3317
|
+
const isComponentFocusable = isFocusableComponent(root);
|
|
3318
|
+
|
|
3319
|
+
if (isComponentFocusable) {
|
|
3320
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
3321
|
+
orderedFocusableElements.push(root);
|
|
3322
|
+
return; // Skip traversing inside this component
|
|
3323
|
+
}
|
|
3324
|
+
|
|
3325
|
+
// Check if the element itself matches any selector
|
|
3326
|
+
for (const selector of FOCUSABLE_SELECTORS) {
|
|
3327
|
+
if (root.matches?.(selector)) {
|
|
3328
|
+
orderedFocusableElements.push(root);
|
|
3329
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
3330
|
+
}
|
|
3331
|
+
}
|
|
3332
|
+
|
|
3333
|
+
// Process shadow DOM only for non-Auro components
|
|
3334
|
+
if (root.shadowRoot) {
|
|
3335
|
+
// Process shadow DOM children in order
|
|
3336
|
+
if (root.shadowRoot.children) {
|
|
3337
|
+
Array.from(root.shadowRoot.children).forEach(child => {
|
|
3338
|
+
collectFocusableElements(child);
|
|
3339
|
+
});
|
|
3340
|
+
}
|
|
3341
|
+
}
|
|
3342
|
+
|
|
3343
|
+
// Process slots and their assigned nodes in order
|
|
3344
|
+
if (root.tagName === 'SLOT') {
|
|
3345
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
3346
|
+
for (const node of assignedNodes) {
|
|
3347
|
+
collectFocusableElements(node);
|
|
3348
|
+
}
|
|
3349
|
+
} else {
|
|
3350
|
+
// Process light DOM children in order
|
|
3351
|
+
if (root.children) {
|
|
3352
|
+
Array.from(root.children).forEach(child => {
|
|
3353
|
+
collectFocusableElements(child);
|
|
3354
|
+
});
|
|
3355
|
+
}
|
|
3356
|
+
}
|
|
3357
|
+
}
|
|
3358
|
+
};
|
|
3359
|
+
|
|
3360
|
+
// Start the traversal from the container
|
|
3361
|
+
collectFocusableElements(container);
|
|
3362
|
+
|
|
3363
|
+
// Remove duplicates that might have been collected through different paths
|
|
3364
|
+
// while preserving order
|
|
3365
|
+
const uniqueElements = [];
|
|
3366
|
+
const seen = new Set();
|
|
3367
|
+
|
|
3368
|
+
for (const element of orderedFocusableElements) {
|
|
3369
|
+
if (!seen.has(element)) {
|
|
3370
|
+
seen.add(element);
|
|
3371
|
+
uniqueElements.push(element);
|
|
3372
|
+
}
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3375
|
+
return uniqueElements;
|
|
3376
|
+
}
|
|
3377
|
+
|
|
3378
|
+
/**
|
|
3379
|
+
* FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
|
|
3380
|
+
* It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
|
|
3381
|
+
*/
|
|
3382
|
+
class FocusTrap {
|
|
3383
|
+
/**
|
|
3384
|
+
* Creates a new FocusTrap instance for the given container element.
|
|
3385
|
+
* Initializes event listeners and prepares the container for focus management.
|
|
3386
|
+
*
|
|
3387
|
+
* @param {HTMLElement} container The DOM element to trap focus within.
|
|
3388
|
+
* @throws {Error} If the provided container is not a valid HTMLElement.
|
|
3389
|
+
*/
|
|
3390
|
+
constructor(container) {
|
|
3391
|
+
if (!container || !(container instanceof HTMLElement)) {
|
|
3392
|
+
throw new Error("FocusTrap requires a valid HTMLElement.");
|
|
3393
|
+
}
|
|
3394
|
+
|
|
3395
|
+
this.container = container;
|
|
3396
|
+
this.tabDirection = 'forward'; // or 'backward'
|
|
3397
|
+
|
|
3398
|
+
this._init();
|
|
3399
|
+
}
|
|
3400
|
+
|
|
3401
|
+
/**
|
|
3402
|
+
* Initializes the focus trap by setting up event listeners and attributes on the container.
|
|
3403
|
+
* Prepares the container for focus management, including support for shadow DOM and inert attributes.
|
|
3404
|
+
*
|
|
3405
|
+
* @private
|
|
3406
|
+
*/
|
|
3407
|
+
_init() {
|
|
3408
|
+
|
|
3409
|
+
// Add inert attribute to prevent focusing programmatically as well (if supported)
|
|
3410
|
+
if ('inert' in HTMLElement.prototype) {
|
|
3411
|
+
this.container.inert = false; // Ensure the container isn't inert
|
|
3412
|
+
this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
|
|
3413
|
+
}
|
|
3414
|
+
|
|
3415
|
+
// Track tab direction
|
|
3416
|
+
this.container.addEventListener('keydown', this._onKeydown);
|
|
3417
|
+
}
|
|
3418
|
+
|
|
3419
|
+
/**
|
|
3420
|
+
* Handles keydown events to manage tab navigation within the container.
|
|
3421
|
+
* Ensures that focus wraps around when reaching the first or last focusable element.
|
|
3422
|
+
*
|
|
3423
|
+
* @param {KeyboardEvent} e The keyboard event triggered by user interaction.
|
|
3424
|
+
* @private
|
|
3425
|
+
*/
|
|
3426
|
+
_onKeydown = (e) => {
|
|
3427
|
+
|
|
3428
|
+
if (e.key === 'Tab') {
|
|
3429
|
+
|
|
3430
|
+
// Set the tab direction based on the key pressed
|
|
3431
|
+
this.tabDirection = e.shiftKey ? 'backward' : 'forward';
|
|
3432
|
+
|
|
3433
|
+
// Get the active element(s) in the document and shadow root
|
|
3434
|
+
// This will include the active element in the shadow DOM if it exists
|
|
3435
|
+
// Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
|
|
3436
|
+
let activeElement = document.activeElement;
|
|
3437
|
+
const actives = [activeElement];
|
|
3438
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
3439
|
+
actives.push(activeElement.shadowRoot.activeElement);
|
|
3440
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
3441
|
+
}
|
|
3442
|
+
|
|
3443
|
+
// Update the focusable elements
|
|
3444
|
+
const focusables = this._getFocusableElements();
|
|
3445
|
+
|
|
3446
|
+
// If we're at either end of the focusable elements, wrap around to the other end
|
|
3447
|
+
const focusIndex =
|
|
3448
|
+
(actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
|
|
3449
|
+
? focusables.length - 1
|
|
3450
|
+
: actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
|
|
3451
|
+
? 0
|
|
3452
|
+
: null;
|
|
3453
|
+
|
|
3454
|
+
if (focusIndex !== null) {
|
|
3455
|
+
focusables[focusIndex].focus();
|
|
3456
|
+
e.preventDefault(); // Prevent default tab behavior
|
|
3457
|
+
e.stopPropagation(); // Stop the event from bubbling up
|
|
3458
|
+
}
|
|
3459
|
+
}
|
|
3460
|
+
};
|
|
3461
|
+
|
|
3462
|
+
/**
|
|
3463
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3464
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3465
|
+
*
|
|
3466
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3467
|
+
* @private
|
|
3468
|
+
*/
|
|
3469
|
+
_getFocusableElements() {
|
|
3470
|
+
// Use the imported utility function to get focusable elements
|
|
3471
|
+
const elements = getFocusableElements(this.container);
|
|
3472
|
+
|
|
3473
|
+
// Filter out any elements with the 'focus-bookend' class
|
|
3474
|
+
return elements;
|
|
3475
|
+
}
|
|
3476
|
+
|
|
3477
|
+
/**
|
|
3478
|
+
* Moves focus to the first focusable element within the container.
|
|
3479
|
+
* Useful for setting initial focus when activating the focus trap.
|
|
3480
|
+
*/
|
|
3481
|
+
focusFirstElement() {
|
|
3482
|
+
const focusables = this._getFocusableElements();
|
|
3483
|
+
if (focusables.length) focusables[0].focus();
|
|
3484
|
+
}
|
|
3485
|
+
|
|
3486
|
+
/**
|
|
3487
|
+
* Moves focus to the last focusable element within the container.
|
|
3488
|
+
* Useful for setting focus when deactivating or cycling focus in reverse.
|
|
3489
|
+
*/
|
|
3490
|
+
focusLastElement() {
|
|
3491
|
+
const focusables = this._getFocusableElements();
|
|
3492
|
+
if (focusables.length) focusables[focusables.length - 1].focus();
|
|
3493
|
+
}
|
|
3494
|
+
|
|
3495
|
+
/**
|
|
3496
|
+
* Removes event listeners and attributes added by the focus trap.
|
|
3497
|
+
* Call this method to clean up when the focus trap is no longer needed.
|
|
3498
|
+
*/
|
|
3499
|
+
disconnect() {
|
|
3500
|
+
|
|
3501
|
+
if (this.container.hasAttribute('data-focus-trap-container')) {
|
|
3502
|
+
this.container.removeAttribute('data-focus-trap-container');
|
|
3503
|
+
}
|
|
3504
|
+
|
|
3505
|
+
this.container.removeEventListener('keydown', this._onKeydown);
|
|
3506
|
+
}
|
|
3507
|
+
}
|
|
3508
|
+
|
|
3225
3509
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3226
3510
|
// See LICENSE in the project root for license information.
|
|
3227
3511
|
|
|
@@ -3272,7 +3556,7 @@ let AuroDependencyVersioning$1 = class AuroDependencyVersioning {
|
|
|
3272
3556
|
* @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
|
|
3273
3557
|
*/
|
|
3274
3558
|
|
|
3275
|
-
let AuroElement$1 = class AuroElement extends LitElement {
|
|
3559
|
+
let AuroElement$1$1 = class AuroElement extends LitElement {
|
|
3276
3560
|
|
|
3277
3561
|
// function to define props used within the scope of this component
|
|
3278
3562
|
static get properties() {
|
|
@@ -3340,7 +3624,7 @@ var styleCss$2$1 = css`:focus:not(:focus-visible){outline:3px solid transparent}
|
|
|
3340
3624
|
*/
|
|
3341
3625
|
|
|
3342
3626
|
// build the component class
|
|
3343
|
-
let BaseIcon$1 = class BaseIcon extends AuroElement$1 {
|
|
3627
|
+
let BaseIcon$1 = class BaseIcon extends AuroElement$1$1 {
|
|
3344
3628
|
constructor() {
|
|
3345
3629
|
super();
|
|
3346
3630
|
this.onDark = false;
|
|
@@ -3412,9 +3696,9 @@ let BaseIcon$1 = class BaseIcon extends AuroElement$1 {
|
|
|
3412
3696
|
}
|
|
3413
3697
|
};
|
|
3414
3698
|
|
|
3415
|
-
var tokensCss$2 = css`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
|
|
3699
|
+
var tokensCss$2$1 = css`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
|
|
3416
3700
|
|
|
3417
|
-
var colorCss$3 = css`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
|
|
3701
|
+
var colorCss$3$1 = css`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
|
|
3418
3702
|
|
|
3419
3703
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3420
3704
|
// See LICENSE in the project root for license information.
|
|
@@ -3572,9 +3856,9 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
3572
3856
|
static get styles() {
|
|
3573
3857
|
return [
|
|
3574
3858
|
super.styles,
|
|
3575
|
-
css`${tokensCss$2}`,
|
|
3859
|
+
css`${tokensCss$2$1}`,
|
|
3576
3860
|
css`${styleCss$2$1}`,
|
|
3577
|
-
css`${colorCss$3}`
|
|
3861
|
+
css`${colorCss$3$1}`
|
|
3578
3862
|
];
|
|
3579
3863
|
}
|
|
3580
3864
|
|
|
@@ -3608,8 +3892,12 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
3608
3892
|
async firstUpdated() {
|
|
3609
3893
|
await super.firstUpdated();
|
|
3610
3894
|
|
|
3611
|
-
|
|
3612
|
-
|
|
3895
|
+
/**
|
|
3896
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
3897
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
3898
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
3899
|
+
*/
|
|
3900
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
3613
3901
|
const svgDesc = this.svg.querySelector('desc');
|
|
3614
3902
|
|
|
3615
3903
|
if (svgDesc) {
|
|
@@ -3655,11 +3943,11 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
3655
3943
|
|
|
3656
3944
|
var iconVersion$1 = '6.1.2';
|
|
3657
3945
|
|
|
3658
|
-
var styleCss$1$2 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}.container{
|
|
3946
|
+
var styleCss$1$2 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}`;
|
|
3659
3947
|
|
|
3660
3948
|
var colorCss$2$1 = css`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
3661
3949
|
|
|
3662
|
-
var tokensCss$1$1 = css`:host(:not([ondark])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color:
|
|
3950
|
+
var tokensCss$1$1 = css`:host(:not([ondark])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
|
|
3663
3951
|
|
|
3664
3952
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
3665
3953
|
// See LICENSE in the project root for license information.
|
|
@@ -3680,7 +3968,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
|
|
|
3680
3968
|
*/
|
|
3681
3969
|
|
|
3682
3970
|
class AuroDropdownBib extends LitElement {
|
|
3683
|
-
|
|
3971
|
+
// not extending AuroElement because Bib needs only `shape` prop
|
|
3684
3972
|
constructor() {
|
|
3685
3973
|
super();
|
|
3686
3974
|
|
|
@@ -3690,6 +3978,9 @@ class AuroDropdownBib extends LitElement {
|
|
|
3690
3978
|
this._mobileBreakpointValue = undefined;
|
|
3691
3979
|
|
|
3692
3980
|
AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
|
|
3981
|
+
|
|
3982
|
+
this.shape = "rounded";
|
|
3983
|
+
this.matchWidth = false;
|
|
3693
3984
|
}
|
|
3694
3985
|
|
|
3695
3986
|
static get styles() {
|
|
@@ -3727,6 +4018,15 @@ class AuroDropdownBib extends LitElement {
|
|
|
3727
4018
|
reflect: true
|
|
3728
4019
|
},
|
|
3729
4020
|
|
|
4021
|
+
/**
|
|
4022
|
+
* If declared, the bib width will match the trigger width.
|
|
4023
|
+
* @private
|
|
4024
|
+
*/
|
|
4025
|
+
matchWidth: {
|
|
4026
|
+
type: Boolean,
|
|
4027
|
+
reflect: true
|
|
4028
|
+
},
|
|
4029
|
+
|
|
3730
4030
|
/**
|
|
3731
4031
|
* If declared, will apply border-radius to the bib.
|
|
3732
4032
|
*/
|
|
@@ -3740,6 +4040,11 @@ class AuroDropdownBib extends LitElement {
|
|
|
3740
4040
|
*/
|
|
3741
4041
|
bibTemplate: {
|
|
3742
4042
|
type: Object
|
|
4043
|
+
},
|
|
4044
|
+
|
|
4045
|
+
shape: {
|
|
4046
|
+
type: String,
|
|
4047
|
+
reflect: true
|
|
3743
4048
|
}
|
|
3744
4049
|
};
|
|
3745
4050
|
}
|
|
@@ -3819,8 +4124,16 @@ class AuroDropdownBib extends LitElement {
|
|
|
3819
4124
|
|
|
3820
4125
|
// function that renders the HTML and CSS into the scope of the component
|
|
3821
4126
|
render() {
|
|
4127
|
+
const classes = {
|
|
4128
|
+
container: true
|
|
4129
|
+
};
|
|
4130
|
+
|
|
4131
|
+
// Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
|
|
4132
|
+
// mimicking the class naming convention used in AuroElement.resetShapeClasses.
|
|
4133
|
+
classes[`shape-${this.shape}`] = true;
|
|
4134
|
+
|
|
3822
4135
|
return html`
|
|
3823
|
-
<div class="
|
|
4136
|
+
<div class="${classMap(classes)}" part="bibContainer">
|
|
3824
4137
|
<slot></slot>
|
|
3825
4138
|
</div>
|
|
3826
4139
|
`;
|
|
@@ -3829,23 +4142,23 @@ class AuroDropdownBib extends LitElement {
|
|
|
3829
4142
|
|
|
3830
4143
|
var dropdownVersion$1 = '3.0.0';
|
|
3831
4144
|
|
|
3832
|
-
var shapeSizeCss = css`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:
|
|
4145
|
+
var shapeSizeCss = css`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
|
|
3833
4146
|
|
|
3834
|
-
var colorCss$1$1 = css`:host .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus,:host(:not([ondark])) .wrapper:
|
|
4147
|
+
var colorCss$1$1 = css`:host(:not([layout*=classic])){--ds-auro-dropdown-trigger-border-color: transparent}:host(:not([ondark])) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus-within,:host(:not([ondark])) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host(:not([onDark])[disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([ondark])[error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([onDark]) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host([onDark]) .wrapper:focus-within,:host([onDark]) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([onDark][disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse-disabled, rgba(255, 255, 255, 0.1))}:host([ondark][error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}`;
|
|
3835
4148
|
|
|
3836
|
-
var classicColorCss = css
|
|
4149
|
+
var classicColorCss = css``;
|
|
3837
4150
|
|
|
3838
|
-
var classicLayoutCss = css`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .
|
|
4151
|
+
var classicLayoutCss = css`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .wrapper{display:flex;flex-direction:row;box-shadow:inset 0 0 0 1px var(--ds-auro-dropdown-trigger-outline-color)}@media(hover: hover){:host([layout*=classic]) .wrapper:hover{cursor:pointer}}:host([layout*=classic]) .triggerContentWrapper{overflow:hidden;flex:1;justify-content:start;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) #showStateIcon{display:flex;overflow:hidden;height:100%;align-items:center;padding-right:var(--ds-size-150, 0.75rem)}:host([layout*=classic]) #showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}:host([layout*=classic]) #showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}:host([matchwidth]) #bibSizer{width:100%}`;
|
|
3839
4152
|
|
|
3840
|
-
var styleEmphasizedCss = css`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex-direction:row
|
|
4153
|
+
var styleEmphasizedCss = css`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=emphasized][shape*=pill]:not([layout*=right])) .leftIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left])) .rightIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-right:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left]):not([layout*=right])) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}`;
|
|
3841
4154
|
|
|
3842
|
-
var styleSnowflakeCss = css`:host{display:block}.wrapper{display:flex;flex
|
|
4155
|
+
var styleSnowflakeCss = css`:host{display:block}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=snowflake]) .leftIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}.layout-snowflake .chevron,.layout-snowflake-left .chevron,.layout-snowflake-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}`;
|
|
3843
4156
|
|
|
3844
|
-
var colorCss$
|
|
4157
|
+
var colorCss$5 = css`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
|
|
3845
4158
|
|
|
3846
|
-
var styleCss$
|
|
4159
|
+
var styleCss$6 = css`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
|
|
3847
4160
|
|
|
3848
|
-
var tokensCss$
|
|
4161
|
+
var tokensCss$4 = css`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
3849
4162
|
|
|
3850
4163
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3851
4164
|
// See LICENSE in the project root for license information.
|
|
@@ -3854,7 +4167,7 @@ var tokensCss$3 = css`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
|
|
|
3854
4167
|
|
|
3855
4168
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
3856
4169
|
|
|
3857
|
-
let AuroLibraryRuntimeUtils$
|
|
4170
|
+
let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
|
|
3858
4171
|
|
|
3859
4172
|
/* eslint-disable jsdoc/require-param */
|
|
3860
4173
|
|
|
@@ -3935,14 +4248,14 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
3935
4248
|
this.onDark = false;
|
|
3936
4249
|
this.hasTextContent = false;
|
|
3937
4250
|
|
|
3938
|
-
AuroLibraryRuntimeUtils$
|
|
4251
|
+
AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
|
|
3939
4252
|
}
|
|
3940
4253
|
|
|
3941
4254
|
static get styles() {
|
|
3942
4255
|
return [
|
|
3943
|
-
colorCss$
|
|
3944
|
-
styleCss$
|
|
3945
|
-
tokensCss$
|
|
4256
|
+
colorCss$5,
|
|
4257
|
+
styleCss$6,
|
|
4258
|
+
tokensCss$4
|
|
3946
4259
|
];
|
|
3947
4260
|
}
|
|
3948
4261
|
|
|
@@ -3991,7 +4304,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
3991
4304
|
*
|
|
3992
4305
|
*/
|
|
3993
4306
|
static register(name = "auro-helptext") {
|
|
3994
|
-
AuroLibraryRuntimeUtils$
|
|
4307
|
+
AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
|
|
3995
4308
|
}
|
|
3996
4309
|
|
|
3997
4310
|
updated() {
|
|
@@ -4084,18 +4397,21 @@ let AuroElement$2 = class AuroElement extends LitElement {
|
|
|
4084
4397
|
}
|
|
4085
4398
|
|
|
4086
4399
|
resetShapeClasses() {
|
|
4087
|
-
|
|
4088
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
4400
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
4089
4401
|
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4402
|
+
if (wrapper) {
|
|
4403
|
+
wrapper.classList.forEach((className) => {
|
|
4404
|
+
if (className.startsWith('shape-')) {
|
|
4405
|
+
wrapper.classList.remove(className);
|
|
4406
|
+
}
|
|
4407
|
+
});
|
|
4096
4408
|
|
|
4097
|
-
|
|
4098
|
-
|
|
4409
|
+
}
|
|
4410
|
+
|
|
4411
|
+
if (this.shape && this.size) {
|
|
4412
|
+
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
4413
|
+
} else {
|
|
4414
|
+
wrapper.classList.add('shape-none');
|
|
4099
4415
|
}
|
|
4100
4416
|
}
|
|
4101
4417
|
|
|
@@ -4145,10 +4461,8 @@ let AuroElement$2 = class AuroElement extends LitElement {
|
|
|
4145
4461
|
// See LICENSE in the project root for license information.
|
|
4146
4462
|
|
|
4147
4463
|
|
|
4148
|
-
|
|
4149
|
-
* @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
|
|
4464
|
+
/*
|
|
4150
4465
|
* @slot - Default slot for the popover content.
|
|
4151
|
-
* @slot label - Defines the content of the label.
|
|
4152
4466
|
* @slot helpText - Defines the content of the helpText.
|
|
4153
4467
|
* @slot trigger - Defines the content of the trigger.
|
|
4154
4468
|
* @csspart trigger - The trigger content container.
|
|
@@ -4167,23 +4481,25 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4167
4481
|
this.matchWidth = false;
|
|
4168
4482
|
this.noHideOnThisFocusLoss = false;
|
|
4169
4483
|
|
|
4170
|
-
this.errorMessage =
|
|
4484
|
+
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
4171
4485
|
|
|
4172
4486
|
// Layout Config
|
|
4173
|
-
this.layout =
|
|
4174
|
-
this.shape =
|
|
4175
|
-
this.size =
|
|
4487
|
+
this.layout = undefined;
|
|
4488
|
+
this.shape = undefined;
|
|
4489
|
+
this.size = undefined;
|
|
4490
|
+
|
|
4176
4491
|
this.parentBorder = false;
|
|
4177
4492
|
|
|
4178
|
-
|
|
4179
|
-
|
|
4493
|
+
/** @private */
|
|
4494
|
+
this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
|
|
4180
4495
|
|
|
4181
|
-
|
|
4182
|
-
return {
|
|
4183
|
-
// 'withValue': this.value && this.value.length > 0
|
|
4184
|
-
};
|
|
4496
|
+
this.privateDefaults();
|
|
4185
4497
|
}
|
|
4186
4498
|
|
|
4499
|
+
/**
|
|
4500
|
+
* @private
|
|
4501
|
+
* @returns {object} Class definition for the wrapper element.
|
|
4502
|
+
*/
|
|
4187
4503
|
get commonWrapperClasses() {
|
|
4188
4504
|
return {
|
|
4189
4505
|
'trigger': true,
|
|
@@ -4201,13 +4517,10 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4201
4517
|
privateDefaults() {
|
|
4202
4518
|
this.chevron = false;
|
|
4203
4519
|
this.disabled = false;
|
|
4520
|
+
this.disableFocusTrap = false;
|
|
4204
4521
|
this.error = false;
|
|
4205
|
-
this.inset = false;
|
|
4206
|
-
this.rounded = false;
|
|
4207
4522
|
this.tabIndex = 0;
|
|
4208
4523
|
this.noToggle = false;
|
|
4209
|
-
this.a11yAutocomplete = 'none';
|
|
4210
|
-
this.labeled = true;
|
|
4211
4524
|
this.a11yRole = 'button';
|
|
4212
4525
|
this.onDark = false;
|
|
4213
4526
|
this.showTriggerBorders = true;
|
|
@@ -4303,6 +4616,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4303
4616
|
this.floater.showBib();
|
|
4304
4617
|
}
|
|
4305
4618
|
|
|
4619
|
+
/**
|
|
4620
|
+
* When bib is open, focus on the first element inside of bib.
|
|
4621
|
+
* If not, trigger element will get focus.
|
|
4622
|
+
*/
|
|
4623
|
+
focus() {
|
|
4624
|
+
if (this.isPopoverVisible && this.focusTrap) {
|
|
4625
|
+
this.focusTrap.focusFirstElement();
|
|
4626
|
+
} else {
|
|
4627
|
+
this.trigger.focus();
|
|
4628
|
+
}
|
|
4629
|
+
}
|
|
4630
|
+
|
|
4306
4631
|
// function to define props used within the scope of this component
|
|
4307
4632
|
static get properties() {
|
|
4308
4633
|
return {
|
|
@@ -4316,6 +4641,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4316
4641
|
reflect: true
|
|
4317
4642
|
},
|
|
4318
4643
|
|
|
4644
|
+
/**
|
|
4645
|
+
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
4646
|
+
* @default false
|
|
4647
|
+
*/
|
|
4648
|
+
disableEventShow: {
|
|
4649
|
+
type: Boolean,
|
|
4650
|
+
reflect: true
|
|
4651
|
+
},
|
|
4652
|
+
|
|
4319
4653
|
/**
|
|
4320
4654
|
* If declared, applies a border around the trigger slot.
|
|
4321
4655
|
*/
|
|
@@ -4334,17 +4668,17 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4334
4668
|
},
|
|
4335
4669
|
|
|
4336
4670
|
/**
|
|
4337
|
-
* If declared, the dropdown
|
|
4671
|
+
* If declared, the dropdown is not interactive.
|
|
4338
4672
|
*/
|
|
4339
|
-
|
|
4673
|
+
disabled: {
|
|
4340
4674
|
type: Boolean,
|
|
4341
4675
|
reflect: true
|
|
4342
4676
|
},
|
|
4343
4677
|
|
|
4344
4678
|
/**
|
|
4345
|
-
* If declared, the
|
|
4679
|
+
* If declared, the focus trap inside of bib will be turned off.
|
|
4346
4680
|
*/
|
|
4347
|
-
|
|
4681
|
+
disableFocusTrap: {
|
|
4348
4682
|
type: Boolean,
|
|
4349
4683
|
reflect: true
|
|
4350
4684
|
},
|
|
@@ -4389,22 +4723,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4389
4723
|
reflect: true
|
|
4390
4724
|
},
|
|
4391
4725
|
|
|
4392
|
-
/**
|
|
4393
|
-
* Makes the trigger to be full width of its parent container.
|
|
4394
|
-
*/
|
|
4395
|
-
fluid: {
|
|
4396
|
-
type: Boolean,
|
|
4397
|
-
reflect: true
|
|
4398
|
-
},
|
|
4399
|
-
|
|
4400
|
-
/**
|
|
4401
|
-
* If declared, will apply padding around trigger slot content.
|
|
4402
|
-
*/
|
|
4403
|
-
inset: {
|
|
4404
|
-
type: Boolean,
|
|
4405
|
-
reflect: true
|
|
4406
|
-
},
|
|
4407
|
-
|
|
4408
4726
|
/**
|
|
4409
4727
|
* If true, the dropdown bib is displayed.
|
|
4410
4728
|
*/
|
|
@@ -4448,15 +4766,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4448
4766
|
reflect: true
|
|
4449
4767
|
},
|
|
4450
4768
|
|
|
4451
|
-
/**
|
|
4452
|
-
* Defines if there is a label preset.
|
|
4453
|
-
* @private
|
|
4454
|
-
*/
|
|
4455
|
-
labeled: {
|
|
4456
|
-
type: Boolean,
|
|
4457
|
-
reflect: true
|
|
4458
|
-
},
|
|
4459
|
-
|
|
4460
4769
|
/**
|
|
4461
4770
|
* Defines if the trigger should size based on the parent element providing the border UI.
|
|
4462
4771
|
* @private
|
|
@@ -4517,6 +4826,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4517
4826
|
reflect: true
|
|
4518
4827
|
},
|
|
4519
4828
|
|
|
4829
|
+
/**
|
|
4830
|
+
* If declared, and a function is set, that function will execute when the slot content is updated.
|
|
4831
|
+
*/
|
|
4520
4832
|
onSlotChange: {
|
|
4521
4833
|
type: Function,
|
|
4522
4834
|
reflect: false
|
|
@@ -4531,14 +4843,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4531
4843
|
reflect: true
|
|
4532
4844
|
},
|
|
4533
4845
|
|
|
4534
|
-
/**
|
|
4535
|
-
* If declared, will apply border-radius to trigger and default slots.
|
|
4536
|
-
*/
|
|
4537
|
-
rounded: {
|
|
4538
|
-
type: Boolean,
|
|
4539
|
-
reflect: true
|
|
4540
|
-
},
|
|
4541
|
-
|
|
4542
4846
|
/**
|
|
4543
4847
|
* @private
|
|
4544
4848
|
*/
|
|
@@ -4553,22 +4857,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4553
4857
|
type: String || undefined,
|
|
4554
4858
|
attribute: false,
|
|
4555
4859
|
reflect: false
|
|
4556
|
-
},
|
|
4557
|
-
|
|
4558
|
-
/**
|
|
4559
|
-
* The value for the aria-autocomplete attribute of the trigger element.
|
|
4560
|
-
*/
|
|
4561
|
-
a11yAutocomplete: {
|
|
4562
|
-
type: String,
|
|
4563
|
-
attribute: false,
|
|
4564
4860
|
}
|
|
4565
4861
|
};
|
|
4566
4862
|
}
|
|
4567
4863
|
|
|
4568
4864
|
static get styles() {
|
|
4569
4865
|
return [
|
|
4570
|
-
colorCss$1$1,
|
|
4571
4866
|
tokensCss$1$1,
|
|
4867
|
+
colorCss$1$1,
|
|
4572
4868
|
|
|
4573
4869
|
// default layout
|
|
4574
4870
|
classicColorCss,
|
|
@@ -4630,13 +4926,27 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4630
4926
|
if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
|
|
4631
4927
|
this.handleTriggerContentSlotChange();
|
|
4632
4928
|
}
|
|
4929
|
+
}
|
|
4633
4930
|
|
|
4931
|
+
/**
|
|
4932
|
+
* Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
|
|
4933
|
+
* @private
|
|
4934
|
+
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
4935
|
+
*/
|
|
4936
|
+
handleDropdownToggle(event) {
|
|
4937
|
+
this.updateFocusTrap();
|
|
4938
|
+
this.isPopoverVisible = event.detail.expanded;
|
|
4939
|
+
const eventType = event.detail.eventType || "unknown";
|
|
4940
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4941
|
+
this.trigger.focus();
|
|
4942
|
+
}
|
|
4634
4943
|
}
|
|
4635
4944
|
|
|
4636
4945
|
firstUpdated() {
|
|
4637
4946
|
|
|
4638
4947
|
// Configure the floater to, this will generate the ID for the bib
|
|
4639
4948
|
this.floater.configure(this, 'auroDropdown');
|
|
4949
|
+
this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
|
|
4640
4950
|
|
|
4641
4951
|
/**
|
|
4642
4952
|
* @description Let subscribers know that the dropdown ID ha been generated and added.
|
|
@@ -4696,6 +5006,27 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4696
5006
|
this.hasFocus = true;
|
|
4697
5007
|
}
|
|
4698
5008
|
|
|
5009
|
+
/**
|
|
5010
|
+
* @private
|
|
5011
|
+
*/
|
|
5012
|
+
updateFocusTrap() {
|
|
5013
|
+
// If the dropdown is open, create a focus trap and focus the first element
|
|
5014
|
+
if (this.isPopoverVisible && !this.disableFocusTrap) {
|
|
5015
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
5016
|
+
this.focusTrap.focusFirstElement();
|
|
5017
|
+
return;
|
|
5018
|
+
}
|
|
5019
|
+
|
|
5020
|
+
// Guard Clause: Ensure there is a focus trap currently active before continuing
|
|
5021
|
+
if (!this.focusTrap) {
|
|
5022
|
+
return;
|
|
5023
|
+
}
|
|
5024
|
+
|
|
5025
|
+
// If the dropdown is not open, disconnect the focus trap if it exists
|
|
5026
|
+
this.focusTrap.disconnect();
|
|
5027
|
+
this.focusTrap = undefined;
|
|
5028
|
+
}
|
|
5029
|
+
|
|
4699
5030
|
/**
|
|
4700
5031
|
* Function to support @focusout event.
|
|
4701
5032
|
* @private
|
|
@@ -4856,14 +5187,13 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4856
5187
|
* @returns {void}
|
|
4857
5188
|
*/
|
|
4858
5189
|
handleTriggerContentSlotChange(event) {
|
|
4859
|
-
|
|
4860
5190
|
this.floater.handleTriggerTabIndex();
|
|
4861
5191
|
|
|
4862
5192
|
// Get the trigger
|
|
4863
5193
|
const trigger = this.shadowRoot.querySelector('#trigger');
|
|
4864
5194
|
|
|
4865
5195
|
// Get the trigger slot
|
|
4866
|
-
const triggerSlot = this.shadowRoot.querySelector('.
|
|
5196
|
+
const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
|
|
4867
5197
|
|
|
4868
5198
|
// If there's a trigger slot
|
|
4869
5199
|
if (triggerSlot) {
|
|
@@ -4926,7 +5256,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4926
5256
|
*
|
|
4927
5257
|
* @private
|
|
4928
5258
|
* @method handleDefaultSlot
|
|
4929
|
-
* @param {Event} event - The event object representing the slot change.
|
|
4930
5259
|
* @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
|
|
4931
5260
|
*/
|
|
4932
5261
|
handleDefaultSlot() {
|
|
@@ -4937,33 +5266,10 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4937
5266
|
}
|
|
4938
5267
|
|
|
4939
5268
|
/**
|
|
5269
|
+
* Returns HTML for the common portion of the layouts.
|
|
4940
5270
|
* @private
|
|
4941
|
-
* @
|
|
4942
|
-
* @
|
|
4943
|
-
* @description Handles the slot change event for the label slot.
|
|
4944
|
-
*/
|
|
4945
|
-
handleLabelSlotChange (event) {
|
|
4946
|
-
|
|
4947
|
-
// Get the nodes from the event
|
|
4948
|
-
const nodes = event.target.assignedNodes();
|
|
4949
|
-
|
|
4950
|
-
// Guard clause for no nodes
|
|
4951
|
-
if (!nodes) {
|
|
4952
|
-
return;
|
|
4953
|
-
}
|
|
4954
|
-
|
|
4955
|
-
// Convert the nodes to a measurable array so we can get the length
|
|
4956
|
-
const nodesArr = Array.from(nodes);
|
|
4957
|
-
|
|
4958
|
-
// If the nodes array has a length, the dropdown is labeled
|
|
4959
|
-
this.labeled = nodesArr.length > 0;
|
|
4960
|
-
}
|
|
4961
|
-
|
|
4962
|
-
/**
|
|
4963
|
-
* Returns HTML for the common portion of the layouts.
|
|
4964
|
-
* @private
|
|
4965
|
-
* @param {Object} helpTextClasses - Classes to apply to the help text container.
|
|
4966
|
-
* @returns {html} - Returns HTML.
|
|
5271
|
+
* @param {Object} helpTextClasses - Classes to apply to the help text container.
|
|
5272
|
+
* @returns {html} - Returns HTML.
|
|
4967
5273
|
*/
|
|
4968
5274
|
renderBasicHtml(helpTextClasses) {
|
|
4969
5275
|
return html`
|
|
@@ -4973,22 +5279,17 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4973
5279
|
class="${classMap(this.commonWrapperClasses)}" part="wrapper"
|
|
4974
5280
|
tabindex="${this.tabIndex}"
|
|
4975
5281
|
role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
4976
|
-
aria-expanded="${ifDefined(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
4977
|
-
aria-controls="${ifDefined(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5282
|
+
aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5283
|
+
aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
4978
5284
|
aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
4979
5285
|
@focusin="${this.handleFocusin}"
|
|
4980
5286
|
@blur="${this.handleFocusOut}">
|
|
4981
|
-
<div class="triggerContentWrapper">
|
|
4982
|
-
<
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
<div class="triggerContent">
|
|
4986
|
-
<slot
|
|
4987
|
-
name="trigger"
|
|
4988
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4989
|
-
</div>
|
|
5287
|
+
<div class="triggerContentWrapper" id="triggerLabel">
|
|
5288
|
+
<slot
|
|
5289
|
+
name="trigger"
|
|
5290
|
+
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4990
5291
|
</div>
|
|
4991
|
-
${this.chevron
|
|
5292
|
+
${this.chevron ? html`
|
|
4992
5293
|
<div
|
|
4993
5294
|
id="showStateIcon"
|
|
4994
5295
|
class="chevron"
|
|
@@ -5009,11 +5310,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5009
5310
|
<div id="bibSizer" part="size"></div>
|
|
5010
5311
|
<${this.dropdownBibTag}
|
|
5011
5312
|
id="bib"
|
|
5313
|
+
shape="${this.shape}"
|
|
5012
5314
|
?data-show="${this.isPopoverVisible}"
|
|
5013
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
5014
|
-
?common="${this.common}"
|
|
5015
|
-
?rounded="${this.common || this.rounded}"
|
|
5016
|
-
?inset="${this.common || this.inset}">
|
|
5315
|
+
?isfullscreen="${this.isBibFullscreen}">
|
|
5017
5316
|
<div class="slotContent">
|
|
5018
5317
|
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
5019
5318
|
</div>
|
|
@@ -5028,245 +5327,1240 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5028
5327
|
* @returns {html} - Returns HTML for the classic layout.
|
|
5029
5328
|
*/
|
|
5030
5329
|
renderLayoutClassic() {
|
|
5330
|
+
// TODO: check with Doug why this was never used?
|
|
5331
|
+
const helpTextClasses = {
|
|
5332
|
+
'helpText': true
|
|
5333
|
+
};
|
|
5031
5334
|
|
|
5032
5335
|
return html`
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5055
|
-
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
</div>
|
|
5069
|
-
<${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
|
|
5070
|
-
<slot name="helpText"></slot>
|
|
5071
|
-
</${this.helpTextTag}>
|
|
5072
|
-
|
|
5073
|
-
<div id="bibSizer" part="size"></div>
|
|
5074
|
-
<${this.dropdownBibTag}
|
|
5075
|
-
id="bib"
|
|
5076
|
-
?data-show="${this.isPopoverVisible}"
|
|
5077
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
5078
|
-
?common="${this.common}"
|
|
5079
|
-
?rounded="${this.common || this.rounded}"
|
|
5080
|
-
?inset="${this.common || this.inset}"
|
|
5081
|
-
>
|
|
5082
|
-
<div class="slotContent">
|
|
5083
|
-
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
5084
|
-
</div>
|
|
5085
|
-
</${this.dropdownBibTag}>
|
|
5086
|
-
</div>
|
|
5336
|
+
${this.renderBasicHtml(helpTextClasses)}
|
|
5337
|
+
`;
|
|
5338
|
+
}
|
|
5339
|
+
|
|
5340
|
+
/**
|
|
5341
|
+
* Returns HTML for the snowflake layout. Does not support type="*".
|
|
5342
|
+
* @private
|
|
5343
|
+
* @returns {html} - Returns HTML for the snowflake layout.
|
|
5344
|
+
*/
|
|
5345
|
+
renderLayoutSnowflake() {
|
|
5346
|
+
const helpTextClasses = {
|
|
5347
|
+
'helpText': true,
|
|
5348
|
+
'leftIndent': true,
|
|
5349
|
+
'rightIndent': true
|
|
5350
|
+
};
|
|
5351
|
+
|
|
5352
|
+
return html`
|
|
5353
|
+
${this.renderBasicHtml(helpTextClasses)}
|
|
5354
|
+
`;
|
|
5355
|
+
}
|
|
5356
|
+
|
|
5357
|
+
/**
|
|
5358
|
+
* Returns HTML for the emphasized layout. Does not support type="*".
|
|
5359
|
+
* @private
|
|
5360
|
+
* @returns {html} - Returns HTML for the emphasized layout.
|
|
5361
|
+
*/
|
|
5362
|
+
renderLayoutEmphasized() {
|
|
5363
|
+
const helpTextClasses = {
|
|
5364
|
+
'helpText': true,
|
|
5365
|
+
'leftIndent': this.shape.toLowerCase().includes('pill') && !this.shape.toLowerCase().includes('right'),
|
|
5366
|
+
'rightIndent': this.shape.toLowerCase().includes('pill') && !this.shape.toLowerCase().includes('left')
|
|
5367
|
+
};
|
|
5368
|
+
|
|
5369
|
+
return html`
|
|
5370
|
+
${this.renderBasicHtml(helpTextClasses)}
|
|
5087
5371
|
`;
|
|
5088
5372
|
}
|
|
5089
5373
|
|
|
5090
5374
|
/**
|
|
5091
|
-
*
|
|
5092
|
-
* @private
|
|
5093
|
-
* @
|
|
5375
|
+
* Logic to determine the layout of the component.
|
|
5376
|
+
* @private
|
|
5377
|
+
* @param {string} [ForcedLayout] - Used to force a specific layout, pass in the layout name to use.
|
|
5378
|
+
* @returns {HTMLCollection} - Returns the HTML for the layout.
|
|
5379
|
+
*/
|
|
5380
|
+
renderLayout(ForcedLayout) {
|
|
5381
|
+
const layout = ForcedLayout || this.layout;
|
|
5382
|
+
|
|
5383
|
+
switch (layout) {
|
|
5384
|
+
case 'emphasized':
|
|
5385
|
+
return this.renderLayoutEmphasized();
|
|
5386
|
+
case 'emphasized-left':
|
|
5387
|
+
return this.renderLayoutEmphasized();
|
|
5388
|
+
case 'emphasized-right':
|
|
5389
|
+
return this.renderLayoutEmphasized();
|
|
5390
|
+
case 'snowflake':
|
|
5391
|
+
return this.renderLayoutSnowflake();
|
|
5392
|
+
case 'snowflake-left':
|
|
5393
|
+
return this.renderLayoutSnowflake();
|
|
5394
|
+
case 'snowflake-right':
|
|
5395
|
+
return this.renderLayoutSnowflake();
|
|
5396
|
+
default:
|
|
5397
|
+
return this.renderLayoutClassic();
|
|
5398
|
+
}
|
|
5399
|
+
}
|
|
5400
|
+
}
|
|
5401
|
+
|
|
5402
|
+
var dropdownVersion = '3.0.0';
|
|
5403
|
+
|
|
5404
|
+
var colorCss$3 = css`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
5405
|
+
|
|
5406
|
+
var styleCss$4 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column}#header{display:flex;width:100%;min-height:var(--ds-size-1000, 5rem);box-sizing:border-box;align-items:end;padding-top:var(--ds-size-400, 2rem);padding-right:var(--ds-size-700, 3.5rem);padding-left:var(--ds-size-200, 1rem);pointer-events:none}#subheader{width:100%}#subheader ::slotted([auro-input]){box-sizing:border-box;padding:0 var(--ds-size-200, 1rem)}#closeButton{position:absolute;top:var(--ds-size-400, 2rem);right:var(--ds-size-200, 1rem);border:none;background-color:transparent;cursor:pointer}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
|
|
5407
|
+
|
|
5408
|
+
var tokenCss = css`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
5409
|
+
|
|
5410
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5411
|
+
// See LICENSE in the project root for license information.
|
|
5412
|
+
|
|
5413
|
+
// ---------------------------------------------------------------------
|
|
5414
|
+
|
|
5415
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5416
|
+
|
|
5417
|
+
let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
|
|
5418
|
+
|
|
5419
|
+
/* eslint-disable jsdoc/require-param */
|
|
5420
|
+
|
|
5421
|
+
/**
|
|
5422
|
+
* This will register a new custom element with the browser.
|
|
5423
|
+
* @param {String} name - The name of the custom element.
|
|
5424
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
5425
|
+
* @returns {void}
|
|
5426
|
+
*/
|
|
5427
|
+
registerComponent(name, componentClass) {
|
|
5428
|
+
if (!customElements.get(name)) {
|
|
5429
|
+
customElements.define(name, class extends componentClass {});
|
|
5430
|
+
}
|
|
5431
|
+
}
|
|
5432
|
+
|
|
5433
|
+
/**
|
|
5434
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
5435
|
+
* @returns {void}
|
|
5436
|
+
*/
|
|
5437
|
+
closestElement(
|
|
5438
|
+
selector, // selector like in .closest()
|
|
5439
|
+
base = this, // extra functionality to skip a parent
|
|
5440
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
5441
|
+
!el || el === document || el === window
|
|
5442
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
5443
|
+
: found
|
|
5444
|
+
? found // found a selector INside this element
|
|
5445
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
5446
|
+
) {
|
|
5447
|
+
return __Closest(base);
|
|
5448
|
+
}
|
|
5449
|
+
/* eslint-enable jsdoc/require-param */
|
|
5450
|
+
|
|
5451
|
+
/**
|
|
5452
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
5453
|
+
* @param {Object} elem - The element to check.
|
|
5454
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
5455
|
+
* @returns {void}
|
|
5456
|
+
*/
|
|
5457
|
+
handleComponentTagRename(elem, tagName) {
|
|
5458
|
+
const tag = tagName.toLowerCase();
|
|
5459
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5460
|
+
|
|
5461
|
+
if (elemTag !== tag) {
|
|
5462
|
+
elem.setAttribute(tag, true);
|
|
5463
|
+
}
|
|
5464
|
+
}
|
|
5465
|
+
|
|
5466
|
+
/**
|
|
5467
|
+
* Validates if an element is a specific Auro component.
|
|
5468
|
+
* @param {Object} elem - The element to validate.
|
|
5469
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
5470
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
5471
|
+
*/
|
|
5472
|
+
elementMatch(elem, tagName) {
|
|
5473
|
+
const tag = tagName.toLowerCase();
|
|
5474
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5475
|
+
|
|
5476
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
5477
|
+
}
|
|
5478
|
+
};
|
|
5479
|
+
|
|
5480
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5481
|
+
// See LICENSE in the project root for license information.
|
|
5482
|
+
|
|
5483
|
+
|
|
5484
|
+
class AuroDependencyVersioning {
|
|
5485
|
+
|
|
5486
|
+
/**
|
|
5487
|
+
* Generates a unique string to be used for child auro element naming.
|
|
5488
|
+
* @private
|
|
5489
|
+
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5490
|
+
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5491
|
+
* @returns {string} - Unique string to be used for naming.
|
|
5492
|
+
*/
|
|
5493
|
+
generateElementName(baseName, version) {
|
|
5494
|
+
let result = baseName;
|
|
5495
|
+
|
|
5496
|
+
result += '-';
|
|
5497
|
+
result += version.replace(/[.]/g, '_');
|
|
5498
|
+
|
|
5499
|
+
return result;
|
|
5500
|
+
}
|
|
5501
|
+
|
|
5502
|
+
/**
|
|
5503
|
+
* Generates a unique string to be used for child auro element naming.
|
|
5504
|
+
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5505
|
+
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5506
|
+
* @returns {string} - Unique string to be used for naming.
|
|
5507
|
+
*/
|
|
5508
|
+
generateTag(baseName, version, tagClass) {
|
|
5509
|
+
const elementName = this.generateElementName(baseName, version);
|
|
5510
|
+
const tag = literal`${unsafeStatic(elementName)}`;
|
|
5511
|
+
|
|
5512
|
+
if (!customElements.get(elementName)) {
|
|
5513
|
+
customElements.define(elementName, class extends tagClass {});
|
|
5514
|
+
}
|
|
5515
|
+
|
|
5516
|
+
return tag;
|
|
5517
|
+
}
|
|
5518
|
+
}
|
|
5519
|
+
|
|
5520
|
+
/**
|
|
5521
|
+
* Private module-level WeakMap to hold MutationObservers for each host element.
|
|
5522
|
+
*/
|
|
5523
|
+
const _observers = new WeakMap();
|
|
5524
|
+
|
|
5525
|
+
/**
|
|
5526
|
+
* Private module-level WeakMap to hold attribute matchers and targets for each host element.
|
|
5527
|
+
* Structure: {
|
|
5528
|
+
* host: {
|
|
5529
|
+
* matchers: Set<Function>,
|
|
5530
|
+
* targets: Map<HTMLElement, Map<Function, {removeOriginal: boolean, currentAttributes: Map<string, string>}>>
|
|
5531
|
+
* }
|
|
5532
|
+
* }
|
|
5533
|
+
*/
|
|
5534
|
+
const _transportConfig = new WeakMap();
|
|
5535
|
+
|
|
5536
|
+
/**
|
|
5537
|
+
* Transfers all matching attributes from a host element to a target element and observes for future changes.
|
|
5538
|
+
*
|
|
5539
|
+
* @param {Object} params - The parameters for the function.
|
|
5540
|
+
* @param {HTMLElement} params.host - The host element from which attributes will be transported.
|
|
5541
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5542
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove the attributes from the host element.
|
|
5543
|
+
* @param {boolean} [params.observe=true] - Whether to attach a MutationObserver to the host element.
|
|
5544
|
+
* @returns {Function} A function to detach the observer when no longer needed.
|
|
5545
|
+
* @throws {TypeError} If the host or target parameters are not instances of HTMLElement.
|
|
5546
|
+
*/
|
|
5547
|
+
const transportAttributes = ({ host, target, match, removeOriginal = true }) => {
|
|
5548
|
+
// Guard Clause: Ensure host is valid HTMLElement instance
|
|
5549
|
+
if (typeof host !== 'object' || !(host instanceof HTMLElement)) {
|
|
5550
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "host" parameter must be an instance of HTMLElement.');
|
|
5551
|
+
}
|
|
5552
|
+
|
|
5553
|
+
// Guard Clause: Ensure target is valid HTMLElement instance
|
|
5554
|
+
if (typeof target !== 'object' || !(target instanceof HTMLElement)) {
|
|
5555
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "target" parameter must be an instance of HTMLElement.');
|
|
5556
|
+
}
|
|
5557
|
+
|
|
5558
|
+
// Guard Clause: Ensure match is a function
|
|
5559
|
+
if (typeof match !== 'function') {
|
|
5560
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "match" parameter must be a function.');
|
|
5561
|
+
}
|
|
5562
|
+
|
|
5563
|
+
// Guard Clause: Ensure removeOriginal is a boolean
|
|
5564
|
+
if (typeof removeOriginal !== 'boolean') {
|
|
5565
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "removeOriginal" parameter must be a boolean.');
|
|
5566
|
+
}
|
|
5567
|
+
|
|
5568
|
+
// Register this transport and get cleanup function
|
|
5569
|
+
return _registerTransport({
|
|
5570
|
+
host,
|
|
5571
|
+
target,
|
|
5572
|
+
matcher: match,
|
|
5573
|
+
removeOriginal
|
|
5574
|
+
});
|
|
5575
|
+
};
|
|
5576
|
+
|
|
5577
|
+
/**
|
|
5578
|
+
* Registers a matcher and target for a host element and attaches an observer if needed.
|
|
5579
|
+
*
|
|
5580
|
+
* @param {Object} params - The parameters object.
|
|
5581
|
+
* @param {HTMLElement} params.host - The host element to observe.
|
|
5582
|
+
* @param {HTMLElement} params.target - The target element to receive attributes.
|
|
5583
|
+
* @param {Function} params.matcher - Function that determines which attributes to transport.
|
|
5584
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes.
|
|
5585
|
+
* @param {boolean} [params.observe=true] - Whether to observe for attribute changes.
|
|
5586
|
+
* @returns {Function} Function to detach the specific matcher and target pairing.
|
|
5587
|
+
* @private
|
|
5588
|
+
*/
|
|
5589
|
+
const _registerTransport = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5590
|
+
// Initialize config for this host if it doesn't exist
|
|
5591
|
+
if (!_transportConfig.has(host)) {
|
|
5592
|
+
_transportConfig.set(host, {
|
|
5593
|
+
matchers: new Set(),
|
|
5594
|
+
targets: new Map()
|
|
5595
|
+
});
|
|
5596
|
+
}
|
|
5597
|
+
|
|
5598
|
+
const config = _transportConfig.get(host);
|
|
5599
|
+
|
|
5600
|
+
// Add the matcher to the set of matchers for this host
|
|
5601
|
+
config.matchers.add(matcher);
|
|
5602
|
+
|
|
5603
|
+
// Initialize target entry if it doesn't exist
|
|
5604
|
+
if (!config.targets.has(target)) {
|
|
5605
|
+
config.targets.set(target, new Map());
|
|
5606
|
+
}
|
|
5607
|
+
|
|
5608
|
+
// Store the matcher with its removeOriginal setting for this target
|
|
5609
|
+
config.targets.get(target).set(matcher, {
|
|
5610
|
+
removeOriginal,
|
|
5611
|
+
currentAttributes: new Map()
|
|
5612
|
+
});
|
|
5613
|
+
|
|
5614
|
+
// Perform initial attribute transport
|
|
5615
|
+
_transportAttributes({ host, target, matcher, removeOriginal });
|
|
5616
|
+
|
|
5617
|
+
// Attach observer
|
|
5618
|
+
_attachObserver(host);
|
|
5619
|
+
|
|
5620
|
+
// Return cleanup function and utility functions
|
|
5621
|
+
return {
|
|
5622
|
+
cleanup: () => _cleanupTransport(host, target, matcher),
|
|
5623
|
+
getObservedAttributes: () => _getObservedAttributes(host, target, matcher),
|
|
5624
|
+
getObservedAttribute: (attr) => _getObservedAttribute(host, target, matcher, attr),
|
|
5625
|
+
}
|
|
5626
|
+
};
|
|
5627
|
+
|
|
5628
|
+
/**
|
|
5629
|
+
* Cleans up resources associated with a specific matcher and target for a host element.
|
|
5630
|
+
*
|
|
5631
|
+
* @param {HTMLElement} host - The host element
|
|
5632
|
+
* @param {HTMLElement} target - The target element
|
|
5633
|
+
* @param {Function} matcher - The matcher function
|
|
5634
|
+
* @private
|
|
5635
|
+
*/
|
|
5636
|
+
const _cleanupTransport = (host, target, matcher) => {
|
|
5637
|
+
const config = _transportConfig.get(host);
|
|
5638
|
+
if (!config) return;
|
|
5639
|
+
|
|
5640
|
+
// Remove this matcher from this target
|
|
5641
|
+
const targetMatchers = config.targets.get(target);
|
|
5642
|
+
if (targetMatchers) {
|
|
5643
|
+
targetMatchers.delete(matcher);
|
|
5644
|
+
|
|
5645
|
+
// If this target has no more matchers, remove it
|
|
5646
|
+
if (targetMatchers.size === 0) {
|
|
5647
|
+
config.targets.delete(target);
|
|
5648
|
+
}
|
|
5649
|
+
}
|
|
5650
|
+
|
|
5651
|
+
// Check if this matcher is still used by any target
|
|
5652
|
+
let matcherStillUsed = false;
|
|
5653
|
+
for (const matcherMap of config.targets.values()) {
|
|
5654
|
+
if (matcherMap.has(matcher)) {
|
|
5655
|
+
matcherStillUsed = true;
|
|
5656
|
+
break;
|
|
5657
|
+
}
|
|
5658
|
+
}
|
|
5659
|
+
|
|
5660
|
+
// If not used anymore, remove from matchers set
|
|
5661
|
+
if (!matcherStillUsed) {
|
|
5662
|
+
config.matchers.delete(matcher);
|
|
5663
|
+
}
|
|
5664
|
+
|
|
5665
|
+
// If no more targets or matchers, detach observer
|
|
5666
|
+
if (config.targets.size === 0 || config.matchers.size === 0) {
|
|
5667
|
+
_detachObserver(host);
|
|
5668
|
+
}
|
|
5669
|
+
};
|
|
5670
|
+
|
|
5671
|
+
/**
|
|
5672
|
+
* Generic function to transport attributes from a host element to a target element.
|
|
5673
|
+
*
|
|
5674
|
+
* @param {Object} params - The parameters object.
|
|
5675
|
+
* @param {HTMLElement} params.host - The host element from which to transport attributes.
|
|
5676
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5677
|
+
* @param {Function} params.matcher - Function that takes an attribute name and returns true if it should be transported.
|
|
5678
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes from host.
|
|
5679
|
+
* @returns {void}
|
|
5680
|
+
* @private
|
|
5681
|
+
*/
|
|
5682
|
+
const _transportAttributes = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5683
|
+
// Get a list of all matching attributes on the host element and their values
|
|
5684
|
+
const matchingAttributes = host.getAttributeNames()
|
|
5685
|
+
.filter(attr => matcher(attr))
|
|
5686
|
+
.reduce((acc, attr) => {
|
|
5687
|
+
acc[attr] = host.getAttribute(attr);
|
|
5688
|
+
return acc;
|
|
5689
|
+
}, {});
|
|
5690
|
+
|
|
5691
|
+
// Move matching attributes to the target element, removing them from the host if removeOriginal is true
|
|
5692
|
+
Object.entries(matchingAttributes).forEach(([key, value]) => {
|
|
5693
|
+
_setObservedAttribute(host, target, matcher, key, value);
|
|
5694
|
+
target.setAttribute(key, value);
|
|
5695
|
+
if (removeOriginal) {
|
|
5696
|
+
host.removeAttribute(key);
|
|
5697
|
+
}
|
|
5698
|
+
});
|
|
5699
|
+
};
|
|
5700
|
+
|
|
5701
|
+
/**
|
|
5702
|
+
* Attaches a MutationObserver to the host element to monitor attribute changes.
|
|
5703
|
+
*
|
|
5704
|
+
* @param {HTMLElement} host - The element to observe for attribute changes.
|
|
5705
|
+
* @returns {MutationObserver} The observer instance.
|
|
5706
|
+
* @private
|
|
5707
|
+
*/
|
|
5708
|
+
const _attachObserver = (host) => {
|
|
5709
|
+
// If an observer for this host already exists, return it
|
|
5710
|
+
if (_observers.has(host)) {
|
|
5711
|
+
return _observers.get(host);
|
|
5712
|
+
}
|
|
5713
|
+
|
|
5714
|
+
// Create a new MutationObserver
|
|
5715
|
+
const observer = new MutationObserver((mutations) => {
|
|
5716
|
+
const config = _transportConfig.get(host);
|
|
5717
|
+
if (!config) return;
|
|
5718
|
+
|
|
5719
|
+
// For each mutation affecting attributes
|
|
5720
|
+
mutations
|
|
5721
|
+
.filter(mutation => mutation.type === 'attributes')
|
|
5722
|
+
.forEach(mutation => {
|
|
5723
|
+
const attributeName = mutation.attributeName;
|
|
5724
|
+
|
|
5725
|
+
// Find matchers that care about this attribute
|
|
5726
|
+
for (const matcher of config.matchers) {
|
|
5727
|
+
if (matcher(attributeName)) {
|
|
5728
|
+
// For each target that uses this matcher
|
|
5729
|
+
for (const [target, matcherConfigs] of config.targets.entries()) {
|
|
5730
|
+
if (matcherConfigs.has(matcher)) {
|
|
5731
|
+
const { removeOriginal } = matcherConfigs.get(matcher);
|
|
5732
|
+
_transportAttributes({
|
|
5733
|
+
host,
|
|
5734
|
+
target,
|
|
5735
|
+
matcher,
|
|
5736
|
+
removeOriginal
|
|
5737
|
+
});
|
|
5738
|
+
}
|
|
5739
|
+
}
|
|
5740
|
+
}
|
|
5741
|
+
}
|
|
5742
|
+
});
|
|
5743
|
+
});
|
|
5744
|
+
|
|
5745
|
+
// Start observing attribute changes
|
|
5746
|
+
observer.observe(host, { attributes: true });
|
|
5747
|
+
|
|
5748
|
+
// Store the observer
|
|
5749
|
+
_observers.set(host, observer);
|
|
5750
|
+
|
|
5751
|
+
return observer;
|
|
5752
|
+
};
|
|
5753
|
+
|
|
5754
|
+
/**
|
|
5755
|
+
* Detaches and cleans up the MutationObserver for a given host element.
|
|
5756
|
+
*
|
|
5757
|
+
* @param {HTMLElement} host - The element whose observer should be detached.
|
|
5758
|
+
* @private
|
|
5759
|
+
*/
|
|
5760
|
+
const _detachObserver = (host) => {
|
|
5761
|
+
if (_observers.has(host)) {
|
|
5762
|
+
const observer = _observers.get(host);
|
|
5763
|
+
observer.disconnect();
|
|
5764
|
+
_observers.delete(host);
|
|
5765
|
+
}
|
|
5766
|
+
|
|
5767
|
+
// Clean up the transport config as well
|
|
5768
|
+
if (_transportConfig.has(host)) {
|
|
5769
|
+
_transportConfig.delete(host);
|
|
5770
|
+
}
|
|
5771
|
+
};
|
|
5772
|
+
|
|
5773
|
+
/**
|
|
5774
|
+
* Gets the matcher configuration for a specific host, target, and matcher
|
|
5775
|
+
* @param {HTMLElement} host - The host element
|
|
5776
|
+
* @param {HTMLElement} target - The target element
|
|
5777
|
+
* @param {Function} matcher - The matcher function
|
|
5778
|
+
* @returns {Object|undefined} The matcher configuration if found
|
|
5779
|
+
* @private
|
|
5780
|
+
*/
|
|
5781
|
+
const _getMatcherConfig = (host, target, matcher) => {
|
|
5782
|
+
const config = _transportConfig.get(host);
|
|
5783
|
+
if (!config) return undefined;
|
|
5784
|
+
|
|
5785
|
+
const targetMatchers = config.targets.get(target);
|
|
5786
|
+
if (!targetMatchers) return undefined;
|
|
5787
|
+
|
|
5788
|
+
return targetMatchers.get(matcher);
|
|
5789
|
+
};
|
|
5790
|
+
|
|
5791
|
+
/**
|
|
5792
|
+
* Sets an observed attribute value
|
|
5793
|
+
* @param {HTMLElement} host - The host element
|
|
5794
|
+
* @param {HTMLElement} target - The target element
|
|
5795
|
+
* @param {Function} matcher - The matcher function
|
|
5796
|
+
* @param {string} key - The attribute name
|
|
5797
|
+
* @param {string} value - The attribute value
|
|
5798
|
+
* @private
|
|
5799
|
+
*/
|
|
5800
|
+
const _setObservedAttribute = (host, target, matcher, key, value) => {
|
|
5801
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5802
|
+
if (matcherConfig) {
|
|
5803
|
+
matcherConfig.currentAttributes.set(key, value);
|
|
5804
|
+
}
|
|
5805
|
+
};
|
|
5806
|
+
|
|
5807
|
+
const _getObservedAttribute = (host, target, matcher, attr) => {
|
|
5808
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5809
|
+
if (matcherConfig) return matcherConfig.currentAttributes.get(attr);
|
|
5810
|
+
return undefined;
|
|
5811
|
+
};
|
|
5812
|
+
|
|
5813
|
+
const _getObservedAttributes = (host, target, matcher) => {
|
|
5814
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5815
|
+
if (matcherConfig) return Array.from(matcherConfig.currentAttributes.entries());
|
|
5816
|
+
return [];
|
|
5817
|
+
};
|
|
5818
|
+
|
|
5819
|
+
const _matchers = {
|
|
5820
|
+
'aria-': attr => attr.startsWith('aria-'),
|
|
5821
|
+
'role': attr => attr.match(/^role$/)
|
|
5822
|
+
};
|
|
5823
|
+
|
|
5824
|
+
const transportAllA11yAttributes = ({ host, target, removeOriginal = true }) => {
|
|
5825
|
+
return transportAttributes({
|
|
5826
|
+
host,
|
|
5827
|
+
target,
|
|
5828
|
+
match: attr => {
|
|
5829
|
+
for (const key in _matchers) {
|
|
5830
|
+
if (_matchers[key](attr)) return true;
|
|
5831
|
+
}
|
|
5832
|
+
return false;
|
|
5833
|
+
},
|
|
5834
|
+
removeOriginal
|
|
5835
|
+
});
|
|
5836
|
+
};
|
|
5837
|
+
|
|
5838
|
+
let AuroElement$1 = class AuroElement extends LitElement {
|
|
5839
|
+
|
|
5840
|
+
/**
|
|
5841
|
+
* @type {Object} return object from transportAttributes via a11yUtilities
|
|
5842
|
+
* @property {Function} cleanup - Function to clean up the attribute watcher.
|
|
5843
|
+
* @property {Function} getCurrentAttributes - Function to get the current attributes being watched and their values.
|
|
5844
|
+
* @property {Function} getObservedAttribute - Function to get the value of a specific observed attribute by name.
|
|
5845
|
+
* @private
|
|
5846
|
+
*/
|
|
5847
|
+
attributeWatcher;
|
|
5848
|
+
|
|
5849
|
+
static get properties() {
|
|
5850
|
+
return {
|
|
5851
|
+
|
|
5852
|
+
/**
|
|
5853
|
+
* Defines the layout of an element.
|
|
5854
|
+
* @default {'default'}
|
|
5855
|
+
*/
|
|
5856
|
+
layout: {
|
|
5857
|
+
type: String,
|
|
5858
|
+
attribute: "layout",
|
|
5859
|
+
reflect: true
|
|
5860
|
+
},
|
|
5861
|
+
|
|
5862
|
+
/**
|
|
5863
|
+
* Defines the shape of an element.
|
|
5864
|
+
* @property {'default', 'rounded', 'pill', 'circle'}
|
|
5865
|
+
* @default {'default'}
|
|
5866
|
+
*/
|
|
5867
|
+
shape: {
|
|
5868
|
+
type: String,
|
|
5869
|
+
attribute: "shape",
|
|
5870
|
+
reflect: true
|
|
5871
|
+
},
|
|
5872
|
+
|
|
5873
|
+
/**
|
|
5874
|
+
* Defines the size of an element.
|
|
5875
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'}
|
|
5876
|
+
* @default {'md'}
|
|
5877
|
+
*/
|
|
5878
|
+
size: {
|
|
5879
|
+
type: String,
|
|
5880
|
+
attribute: "size",
|
|
5881
|
+
reflect: true
|
|
5882
|
+
},
|
|
5883
|
+
|
|
5884
|
+
/**
|
|
5885
|
+
* This Boolean attribute lets you specify that the element should be rendered in dark mode.
|
|
5886
|
+
* @default {false}
|
|
5887
|
+
*/
|
|
5888
|
+
onDark: {
|
|
5889
|
+
type: Boolean,
|
|
5890
|
+
attribute: "ondark",
|
|
5891
|
+
reflect: true
|
|
5892
|
+
},
|
|
5893
|
+
|
|
5894
|
+
/**
|
|
5895
|
+
* A reference to the wrapper element in the shadow DOM.
|
|
5896
|
+
* This is used to apply layout and shape classes dynamically.
|
|
5897
|
+
* @type {HTMLElement|null}
|
|
5898
|
+
* @default {null}
|
|
5899
|
+
* @private
|
|
5900
|
+
*/
|
|
5901
|
+
wrapper: {
|
|
5902
|
+
attribute: false,
|
|
5903
|
+
reflect: false
|
|
5904
|
+
}
|
|
5905
|
+
};
|
|
5906
|
+
}
|
|
5907
|
+
|
|
5908
|
+
|
|
5909
|
+
|
|
5910
|
+
resetShapeClasses() {
|
|
5911
|
+
if (this.shape && this.size) {
|
|
5912
|
+
|
|
5913
|
+
if (this.wrapper) {
|
|
5914
|
+
this.wrapper.classList.forEach((className) => {
|
|
5915
|
+
if (className.startsWith('shape-')) {
|
|
5916
|
+
this.wrapper.classList.remove(className);
|
|
5917
|
+
}
|
|
5918
|
+
});
|
|
5919
|
+
|
|
5920
|
+
this.wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
5921
|
+
}
|
|
5922
|
+
}
|
|
5923
|
+
}
|
|
5924
|
+
|
|
5925
|
+
resetLayoutClasses() {
|
|
5926
|
+
if (this.layout) {
|
|
5927
|
+
if (this.wrapper) {
|
|
5928
|
+
this.wrapper.classList.forEach((className) => {
|
|
5929
|
+
if (className.startsWith('layout-')) {
|
|
5930
|
+
this.wrapper.classList.remove(className);
|
|
5931
|
+
}
|
|
5932
|
+
});
|
|
5933
|
+
|
|
5934
|
+
this.wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
|
|
5935
|
+
}
|
|
5936
|
+
}
|
|
5937
|
+
}
|
|
5938
|
+
|
|
5939
|
+
updateComponentArchitecture() {
|
|
5940
|
+
this.resetLayoutClasses();
|
|
5941
|
+
this.resetShapeClasses();
|
|
5942
|
+
}
|
|
5943
|
+
|
|
5944
|
+
updated(changedProperties) {
|
|
5945
|
+
if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
|
|
5946
|
+
this.updateComponentArchitecture();
|
|
5947
|
+
}
|
|
5948
|
+
}
|
|
5949
|
+
|
|
5950
|
+
firstUpdated() {
|
|
5951
|
+
super.firstUpdated();
|
|
5952
|
+
|
|
5953
|
+
// Set a reference to the wrapper element in the shadow DOM
|
|
5954
|
+
this.wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
5955
|
+
|
|
5956
|
+
// Initialize the transportation of ARIA attributes to the target element and get the disconnect function for cleanup
|
|
5957
|
+
this.attributeWatcher = transportAllA11yAttributes({ host: this, target: this.shadowRoot.querySelector('.wrapper') });
|
|
5958
|
+
}
|
|
5959
|
+
|
|
5960
|
+
disconnectedCallback() {
|
|
5961
|
+
super.disconnectedCallback();
|
|
5962
|
+
|
|
5963
|
+
// Cleanup the ARIA observer if it exists
|
|
5964
|
+
if (this.attributeWatcher) {
|
|
5965
|
+
this.attributeWatcher.cleanup();
|
|
5966
|
+
this.attributeWatcher = null;
|
|
5967
|
+
}
|
|
5968
|
+
}
|
|
5969
|
+
|
|
5970
|
+
// Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
|
|
5971
|
+
// This will catch if an invalid layout value is passed in and render the default layout if so.
|
|
5972
|
+
render() {
|
|
5973
|
+
try {
|
|
5974
|
+
return this.renderLayout();
|
|
5975
|
+
} catch (error) {
|
|
5976
|
+
// failed to get the defined layout
|
|
5977
|
+
console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
|
|
5978
|
+
|
|
5979
|
+
// fallback to the default layout
|
|
5980
|
+
return this.getLayout('default');
|
|
5981
|
+
}
|
|
5982
|
+
}
|
|
5983
|
+
};
|
|
5984
|
+
|
|
5985
|
+
var styleCss$3 = css`:focus:not(:focus-visible){outline:3px solid transparent}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}:host([fluid]) .auro-button,:host([fluid=true]) .auro-button{min-width:auto;width:100%}:host([variant=flat]){display:inline-block}::slotted(svg){vertical-align:middle}slot{pointer-events:none}.auro-button{position:relative;padding:0 var(--ds-size-300, 1.5rem);cursor:pointer;border-width:1px;border-style:solid;border-radius:var(--ds-border-radius, 0.375rem);overflow:hidden;text-overflow:ellipsis;user-select:none;white-space:nowrap;min-height:var(--ds-size-600, 3rem);max-height:var(--ds-size-600, 3rem);display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--ds-size-100, 0.5rem);margin:0;-webkit-touch-callout:none;-webkit-user-select:none;transition:padding 300ms ease-out}.auro-button:active{transform:scale(0.95)}.auro-button:focus-visible,.auro-button:focus{outline:none;outline-style:solid;outline-width:var(--ds-size-50, 0.25rem);outline-offset:calc(var(--ds-size-50, 0.25rem)*-1)}.auro-button:focus-visible:not([variant=secondary]):not([variant=tertiary]),.auro-button:focus:not([variant=secondary]):not([variant=tertiary]){outline-width:calc(var(--ds-size-50, 0.25rem) - 1px)}.auro-button.loading{cursor:not-allowed}.auro-button.loading *:not([auro-loader]){visibility:hidden}@media screen and (min-width: 576px){.auro-button{min-width:8.75rem;width:auto}}.auro-button:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=secondary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=ghost]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark][variant=secondary]:disabled{cursor:not-allowed;transform:unset}@media(hover: hover){.auro-button[onDark][variant=tertiary]:active,.auro-button[onDark][variant=tertiary]:hover{box-shadow:none}}.auro-button[onDark][variant=tertiary]:active{box-shadow:none}.auro-button[onDark][variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button.icon-only ::slotted(:not(auro-icon):not([auro-icon])){display:none}.auro-button--slim{min-width:unset;min-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem));max-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem))}.auro-button--iconOnly{padding:0 var(--ds-size-100, 0.5rem);border-radius:100px;min-width:unset;height:var(--ds-size-600, 3rem);width:var(--ds-size-500, 2.5rem)}.auro-button--iconOnly ::slotted(auro-icon),.auro-button--iconOnly ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--iconOnly:not(.auro-button--rounded):focus-visible:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]),.auro-button--iconOnly:not(.auro-button--rounded):focus:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]){outline-width:1px;outline-offset:-2px}.auro-button--iconOnlySlim{padding:0 var(--ds-size-50, 0.25rem);height:calc(var(--ds-size-400, 2rem) + var(--ds-size-50, 0.25rem));width:calc(var(--ds-size-300, 1.5rem) + var(--ds-size-50, 0.25rem))}.auro-button--iconOnlySlim ::slotted(auro-icon),.auro-button--iconOnlySlim ::slotted([auro-icon]){--ds-auro-icon-size:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, 0.25rem))}.auro-button--rounded{border-radius:100px;box-shadow:var(--ds-elevation-300, 0px 0px 15px rgba(0, 0, 0, 0.2));height:var(--ds-size-500, 2.5rem);min-width:unset;transition:padding 300ms ease-out,outline 0ms,outline-offset 0ms}.auro-button--rounded ::slotted(auro-icon),.auro-button--rounded ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--rounded:focus-visible:not([variant=flat]):after,.auro-button--rounded:focus:not([variant=flat]):after{border-radius:100px}:host([size=xs]) .wrapper:focus-visible,:host([size=xs]) .wrapper:focus{outline-width:1px;outline-offset:-2px}:host([rounded]) .textSlot{transition:opacity 300ms ease-in;opacity:1}:host([rounded][iconOnly]) .textSlot{opacity:0}:host([rounded][iconOnly]) .textWrapper{display:none}:host([rounded][iconOnly]) .auro-button{min-width:unset;padding:unset;width:var(--ds-size-600, 3rem)}[auro-loader]{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}`;
|
|
5986
|
+
|
|
5987
|
+
var colorCss$2 = css`[auro-loader]{color:var(--ds-auro-button-loader-color)}.auro-button{-webkit-tap-highlight-color:var(--ds-auro-button-tap-color);color:var(--ds-auro-button-text-color);background-color:var(--ds-auro-button-container-color);background-image:linear-gradient(var(--ds-auro-button-container-image), var(--ds-auro-button-container-image));border-color:var(--ds-auro-button-border-color)}.auro-button:not([variant=secondary]):not([variant=tertiary]):focus-visible{outline-color:var(--ds-auro-button-border-inset-color)}.auro-button:not([ondark]):active:not(:disabled),.auro-button:not([ondark]):hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-hover, #00274a)}.auro-button:not([ondark]):disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-disabled, #acc9e2)}.auro-button:not([ondark])[variant=secondary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text, #01426a)}.auro-button:not([ondark])[variant=secondary]:active:not(:disabled),.auro-button:not([ondark])[variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-hover, #00274a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-hover, #00274a)}.auro-button:not([ondark])[variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=secondary]:disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-disabled, #cfe0ef);--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text, #01426a)}.auro-button:not([ondark])[variant=tertiary]:active:not(:disabled),.auro-button:not([ondark])[variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=tertiary]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text, #01426a)}.auro-button:not([ondark])[variant=ghost]:active:not(:disabled),.auro-button:not([ondark])[variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=ghost]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=flat]{color:var(--ds-advanced-color-button-flat-text, #676767);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:active:not(:disabled),.auro-button:not([ondark])[variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-hover, #525252);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-disabled, #d0d0d0);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a)}.auro-button[ondark]:active:not(:disabled),.auro-button[ondark]:hover:not(:disabled){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-hover, #ebf3f9);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9)}.auro-button[ondark]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]:disabled{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=secondary]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:active:not(:disabled),.auro-button[ondark][variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse-disabled, #dddddd)}.auro-button[ondark][variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:active:not(:disabled),.auro-button[ondark][variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:active:not(:disabled),.auro-button[ondark][variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05))}.auro-button[ondark][variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=flat]{color:var(--ds-advanced-color-button-flat-text-inverse, #ffffff);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:active:not(:disabled),.auro-button[ondark][variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-inverse-hover, #adadad);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-inverse-disabled, #7e8894);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}`;
|
|
5988
|
+
|
|
5989
|
+
var tokensCss$2 = css`:host(:not([onDark])){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-tap-color:transparent}:host([onDark]){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-tap-color:transparent}`;
|
|
5990
|
+
|
|
5991
|
+
var shapeSize = css`.shape-rounded-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-md{min-height:44px;max-height:44px;border-style:solid;border-radius:6px;overflow:hidden;font-size:16px}.shape-rounded-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:6px;overflow:hidden;font-size:14px}.shape-rounded-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:4px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px;overflow:hidden;font-size:18px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px 0 0 34px;overflow:hidden}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:0 34px 34px 0;overflow:hidden}.shape-pill-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px;overflow:hidden;font-size:18px}.shape-pill-left-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px 0 0 26px;overflow:hidden}.shape-pill-right-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:0 26px 26px 0;overflow:hidden}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px;overflow:hidden}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px 0 0 22px;overflow:hidden}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-radius:0 22px 22px 0;overflow:hidden;font-size:16px}.shape-pill-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px;overflow:hidden;font-size:14px}.shape-pill-left-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px 0 0 16px;overflow:hidden}.shape-pill-right-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:0 16px 16px 0;overflow:hidden}.shape-pill-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-left-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px 0 0 10px;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-pill-right-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:0 10px 10px 0;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-circle-xl{min-height:68px;max-height:68px;min-width:68px;max-width:68px;border-style:solid;border-radius:34px;overflow:hidden;padding:0}.shape-circle-lg{min-height:52px;max-height:52px;min-width:52px;max-width:52px;border-style:solid;border-radius:26px;overflow:hidden;padding:0}.shape-circle-md{min-height:44px;max-height:44px;min-width:44px;max-width:44px;border-style:solid;border-radius:22px;overflow:hidden;padding:0}.shape-circle-sm{min-height:32px;max-height:32px;min-width:32px;max-width:32px;border-style:solid;border-radius:16px;overflow:hidden;padding:0}.shape-circle-xs{min-height:20px;max-height:20px;min-width:20px;max-width:20px;border-style:solid;border-radius:10px;overflow:hidden;padding:0;outline-offset:-2px;outline-width:1px}`;
|
|
5992
|
+
|
|
5993
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5994
|
+
// See LICENSE in the project root for license information.
|
|
5995
|
+
|
|
5996
|
+
// ---------------------------------------------------------------------
|
|
5997
|
+
|
|
5998
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5999
|
+
|
|
6000
|
+
let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
|
|
6001
|
+
|
|
6002
|
+
/* eslint-disable jsdoc/require-param */
|
|
6003
|
+
|
|
6004
|
+
/**
|
|
6005
|
+
* This will register a new custom element with the browser.
|
|
6006
|
+
* @param {String} name - The name of the custom element.
|
|
6007
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
6008
|
+
* @returns {void}
|
|
6009
|
+
*/
|
|
6010
|
+
registerComponent(name, componentClass) {
|
|
6011
|
+
if (!customElements.get(name)) {
|
|
6012
|
+
customElements.define(name, class extends componentClass {});
|
|
6013
|
+
}
|
|
6014
|
+
}
|
|
6015
|
+
|
|
6016
|
+
/**
|
|
6017
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
6018
|
+
* @returns {void}
|
|
6019
|
+
*/
|
|
6020
|
+
closestElement(
|
|
6021
|
+
selector, // selector like in .closest()
|
|
6022
|
+
base = this, // extra functionality to skip a parent
|
|
6023
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
6024
|
+
!el || el === document || el === window
|
|
6025
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
6026
|
+
: found
|
|
6027
|
+
? found // found a selector INside this element
|
|
6028
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
6029
|
+
) {
|
|
6030
|
+
return __Closest(base);
|
|
6031
|
+
}
|
|
6032
|
+
/* eslint-enable jsdoc/require-param */
|
|
6033
|
+
|
|
6034
|
+
/**
|
|
6035
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
6036
|
+
* @param {Object} elem - The element to check.
|
|
6037
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
6038
|
+
* @returns {void}
|
|
6039
|
+
*/
|
|
6040
|
+
handleComponentTagRename(elem, tagName) {
|
|
6041
|
+
const tag = tagName.toLowerCase();
|
|
6042
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6043
|
+
|
|
6044
|
+
if (elemTag !== tag) {
|
|
6045
|
+
elem.setAttribute(tag, true);
|
|
6046
|
+
}
|
|
6047
|
+
}
|
|
6048
|
+
|
|
6049
|
+
/**
|
|
6050
|
+
* Validates if an element is a specific Auro component.
|
|
6051
|
+
* @param {Object} elem - The element to validate.
|
|
6052
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
6053
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6054
|
+
*/
|
|
6055
|
+
elementMatch(elem, tagName) {
|
|
6056
|
+
const tag = tagName.toLowerCase();
|
|
6057
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6058
|
+
|
|
6059
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
6060
|
+
}
|
|
6061
|
+
};
|
|
6062
|
+
|
|
6063
|
+
var styleCss$2 = css`:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin:0.375rem;--margin-xs:0.2rem;--margin-sm:0.5rem;--margin-md:0.75rem;--margin-lg:1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin)*6);height:1.5rem}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(2.55rem + var(--margin-xs)*6);height:1.55rem}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm)*6);height:2.5rem}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md)*6);height:3.5rem}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg)*6);height:5.5rem}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-400ms}:host([pulse])>span:nth-child(2){animation-delay:-200ms}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,100%{opacity:.1;transform:scale(0.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}100%{left:110%}}:host>.no-animation{display:none}@media(prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center;font-size:1rem}:host>span{opacity:1}:host>.loader{display:none}:host>.no-animation{display:block}}`;
|
|
6064
|
+
|
|
6065
|
+
var colorCss$1 = css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]){--ds-auro-loader-color:var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--ds-auro-loader-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color:transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color:currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color:currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}`;
|
|
6066
|
+
|
|
6067
|
+
var tokensCss$1 = css`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
|
|
6068
|
+
|
|
6069
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6070
|
+
// See LICENSE in the project root for license information.
|
|
6071
|
+
|
|
6072
|
+
|
|
6073
|
+
class AuroLoader extends LitElement {
|
|
6074
|
+
constructor() {
|
|
6075
|
+
super();
|
|
6076
|
+
|
|
6077
|
+
/**
|
|
6078
|
+
* @private
|
|
6079
|
+
*/
|
|
6080
|
+
this.keys = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
6081
|
+
|
|
6082
|
+
/**
|
|
6083
|
+
* @private
|
|
6084
|
+
*/
|
|
6085
|
+
this.mdCount = 3;
|
|
6086
|
+
|
|
6087
|
+
/**
|
|
6088
|
+
* @private
|
|
6089
|
+
*/
|
|
6090
|
+
this.smCount = 2;
|
|
6091
|
+
|
|
6092
|
+
/**
|
|
6093
|
+
* @private
|
|
6094
|
+
*/
|
|
6095
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
|
|
6096
|
+
|
|
6097
|
+
this.orbit = false;
|
|
6098
|
+
this.ringworm = false;
|
|
6099
|
+
this.laser = false;
|
|
6100
|
+
this.pulse = false;
|
|
6101
|
+
}
|
|
6102
|
+
|
|
6103
|
+
// function to define props used within the scope of this component
|
|
6104
|
+
static get properties() {
|
|
6105
|
+
return {
|
|
6106
|
+
|
|
6107
|
+
/**
|
|
6108
|
+
* Sets loader to laser type.
|
|
6109
|
+
*/
|
|
6110
|
+
laser: {
|
|
6111
|
+
type: Boolean,
|
|
6112
|
+
reflect: true
|
|
6113
|
+
},
|
|
6114
|
+
|
|
6115
|
+
/**
|
|
6116
|
+
* Sets loader to orbit type.
|
|
6117
|
+
*/
|
|
6118
|
+
orbit: {
|
|
6119
|
+
type: Boolean,
|
|
6120
|
+
reflect: true
|
|
6121
|
+
},
|
|
6122
|
+
|
|
6123
|
+
/**
|
|
6124
|
+
* Sets loader to pulse type.
|
|
6125
|
+
*/
|
|
6126
|
+
pulse: {
|
|
6127
|
+
type: Boolean,
|
|
6128
|
+
reflect: true
|
|
6129
|
+
},
|
|
6130
|
+
|
|
6131
|
+
/**
|
|
6132
|
+
* Sets loader to ringworm type.
|
|
6133
|
+
*/
|
|
6134
|
+
ringworm: {
|
|
6135
|
+
type: Boolean,
|
|
6136
|
+
reflect: true
|
|
6137
|
+
}
|
|
6138
|
+
};
|
|
6139
|
+
}
|
|
6140
|
+
|
|
6141
|
+
static get styles() {
|
|
6142
|
+
return [
|
|
6143
|
+
css`${styleCss$2}`,
|
|
6144
|
+
css`${colorCss$1}`,
|
|
6145
|
+
css`${tokensCss$1}`
|
|
6146
|
+
];
|
|
6147
|
+
}
|
|
6148
|
+
|
|
6149
|
+
/**
|
|
6150
|
+
* This will register this element with the browser.
|
|
6151
|
+
* @param {string} [name="auro-loader"] - The name of element that you want to register to.
|
|
6152
|
+
*
|
|
6153
|
+
* @example
|
|
6154
|
+
* AuroLoader.register("custom-loader") // this will register this element to <custom-loader/>
|
|
6155
|
+
*
|
|
6156
|
+
*/
|
|
6157
|
+
static register(name = "auro-loader") {
|
|
6158
|
+
AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroLoader);
|
|
6159
|
+
}
|
|
6160
|
+
|
|
6161
|
+
firstUpdated() {
|
|
6162
|
+
// Add the tag name as an attribute if it is different than the component name
|
|
6163
|
+
this.runtimeUtils.handleComponentTagRename(this, 'auro-loader');
|
|
6164
|
+
}
|
|
6165
|
+
|
|
6166
|
+
connectedCallback() {
|
|
6167
|
+
super.connectedCallback();
|
|
6168
|
+
}
|
|
6169
|
+
|
|
6170
|
+
/**
|
|
6171
|
+
* @private
|
|
6172
|
+
* @returns {Array} Numbered array for template map.
|
|
6173
|
+
*/
|
|
6174
|
+
defineTemplate() {
|
|
6175
|
+
let nodes = Array.from(Array(this.mdCount).keys());
|
|
6176
|
+
|
|
6177
|
+
if (this.orbit || this.laser) {
|
|
6178
|
+
nodes = Array.from(Array(this.smCount).keys());
|
|
6179
|
+
} else if (this.ringworm) {
|
|
6180
|
+
nodes = Array.from(Array(0).keys());
|
|
6181
|
+
}
|
|
6182
|
+
|
|
6183
|
+
return nodes;
|
|
6184
|
+
}
|
|
6185
|
+
|
|
6186
|
+
// When using auroElement, use the following attribute and function when hiding content from screen readers.
|
|
6187
|
+
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
6188
|
+
|
|
6189
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
6190
|
+
render() {
|
|
6191
|
+
return html$1`
|
|
6192
|
+
${this.defineTemplate().map((idx) => html$1`
|
|
6193
|
+
<span part="element" class="loader node-${idx}"></span>
|
|
6194
|
+
`)}
|
|
6195
|
+
|
|
6196
|
+
<div class="no-animation">Loading...</div>
|
|
6197
|
+
|
|
6198
|
+
${this.ringworm ? html$1`
|
|
6199
|
+
<svg part="element" class="circular" viewBox="25 25 50 50">
|
|
6200
|
+
<circle class="path" cx="50" cy="50" r="20" fill="none"/>
|
|
6201
|
+
</svg>`
|
|
6202
|
+
: ``
|
|
6203
|
+
}
|
|
6204
|
+
`;
|
|
6205
|
+
}
|
|
6206
|
+
}
|
|
6207
|
+
|
|
6208
|
+
var loaderVersion = '5.0.0';
|
|
6209
|
+
|
|
6210
|
+
/* eslint-disable max-lines, curly, jsdoc/no-undefined-types */
|
|
6211
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6212
|
+
// See LICENSE in the project root for license information.
|
|
6213
|
+
|
|
6214
|
+
|
|
6215
|
+
/**
|
|
6216
|
+
* @slot - Default slot for the text of the button.
|
|
6217
|
+
* @csspart button - Apply CSS to HTML5 button.
|
|
6218
|
+
* @csspart loader - Apply CSS to auro-loader.
|
|
6219
|
+
* @csspart text - Apply CSS to text slot.
|
|
6220
|
+
* @csspart icon - Apply CSS to icon slot.
|
|
6221
|
+
*/
|
|
6222
|
+
|
|
6223
|
+
/* eslint-disable lit/no-invalid-html, lit/binding-positions */
|
|
6224
|
+
|
|
6225
|
+
const ICON_ONLY_SHAPES = ['circle'];
|
|
6226
|
+
|
|
6227
|
+
/**
|
|
6228
|
+
* AuroButton is a custom element that provides a styled, accessible button with support for various states and form association.
|
|
6229
|
+
* It is designed to be flexible, supporting loading states, icon slots, and integration with HTML5 forms.
|
|
6230
|
+
* @property {'default', 'rounded', 'pill', 'circle'} shape - Defines the shape of the button.
|
|
6231
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'} size - Defines the size of the button.
|
|
6232
|
+
* @property {'primary', 'secondary', 'tertiary', 'ghost', 'flat'} variant - Sets the button variant.
|
|
6233
|
+
* @property {'submit', 'reset', 'button'} type - The type of button. Matches HTML5 Button Spec.
|
|
6234
|
+
* @property {boolean} onDark - Indicates if the button is rendered in dark mode.
|
|
6235
|
+
*/
|
|
6236
|
+
class AuroButton extends AuroElement$1 {
|
|
6237
|
+
|
|
6238
|
+
/**
|
|
6239
|
+
* Enables form association for this element.
|
|
6240
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals
|
|
6241
|
+
* @returns {boolean} - Returns true to enable form association.
|
|
6242
|
+
*/
|
|
6243
|
+
static get formAssociated() {
|
|
6244
|
+
return true;
|
|
6245
|
+
}
|
|
6246
|
+
|
|
6247
|
+
constructor() {
|
|
6248
|
+
super();
|
|
6249
|
+
this.autofocus = false;
|
|
6250
|
+
this.disabled = false;
|
|
6251
|
+
this.loading = false;
|
|
6252
|
+
this.size = "md";
|
|
6253
|
+
this.shape = "rounded";
|
|
6254
|
+
this.onDark = false;
|
|
6255
|
+
this.fluid = false;
|
|
6256
|
+
this.loadingText = this.loadingText || 'Loading...';
|
|
6257
|
+
|
|
6258
|
+
// Support for HTML5 forms
|
|
6259
|
+
if (typeof this.attachInternals === 'function') {
|
|
6260
|
+
this.internals = this.attachInternals();
|
|
6261
|
+
} else {
|
|
6262
|
+
this.internals = null;
|
|
6263
|
+
|
|
6264
|
+
// eslint-disable-next-line no-console
|
|
6265
|
+
console.warn('This browser does not support form association features. Some form-related functionality may not work as expected. Consider using a polyfill or handling click events manually.');
|
|
6266
|
+
}
|
|
6267
|
+
|
|
6268
|
+
/**
|
|
6269
|
+
* Generate unique names for dependency components.
|
|
6270
|
+
*/
|
|
6271
|
+
const versioning = new AuroDependencyVersioning();
|
|
6272
|
+
|
|
6273
|
+
/**
|
|
6274
|
+
* @private
|
|
6275
|
+
*/
|
|
6276
|
+
this.loaderTag = versioning.generateTag('auro-loader', loaderVersion, AuroLoader);
|
|
6277
|
+
|
|
6278
|
+
/**
|
|
6279
|
+
* @private
|
|
6280
|
+
*/
|
|
6281
|
+
this.buttonHref = undefined;
|
|
6282
|
+
|
|
6283
|
+
/**
|
|
6284
|
+
* @private
|
|
6285
|
+
*/
|
|
6286
|
+
this.buttonTarget = undefined;
|
|
6287
|
+
|
|
6288
|
+
/**
|
|
6289
|
+
* @private
|
|
6290
|
+
*/
|
|
6291
|
+
this.buttonRel = undefined;
|
|
6292
|
+
}
|
|
6293
|
+
|
|
6294
|
+
static get styles() {
|
|
6295
|
+
return [
|
|
6296
|
+
tokensCss$2,
|
|
6297
|
+
styleCss$3,
|
|
6298
|
+
colorCss$2,
|
|
6299
|
+
shapeSize
|
|
6300
|
+
];
|
|
6301
|
+
}
|
|
6302
|
+
|
|
6303
|
+
static get properties() {
|
|
6304
|
+
return {
|
|
6305
|
+
|
|
6306
|
+
...super.properties,
|
|
6307
|
+
|
|
6308
|
+
/**
|
|
6309
|
+
* Override layout since it isn't used in this component.
|
|
6310
|
+
* @private
|
|
6311
|
+
*/
|
|
6312
|
+
layout: {
|
|
6313
|
+
type: Boolean,
|
|
6314
|
+
attribute: false,
|
|
6315
|
+
reflect: false
|
|
6316
|
+
},
|
|
6317
|
+
|
|
6318
|
+
/**
|
|
6319
|
+
* This Boolean attribute lets you specify that the button should have input focus when the page loads, unless overridden by the user.
|
|
6320
|
+
*/
|
|
6321
|
+
autofocus: {
|
|
6322
|
+
type: Boolean,
|
|
6323
|
+
reflect: true
|
|
6324
|
+
},
|
|
6325
|
+
|
|
6326
|
+
/**
|
|
6327
|
+
* If set to true, button will become disabled and not allow for interactions.
|
|
6328
|
+
*/
|
|
6329
|
+
disabled: {
|
|
6330
|
+
type: Boolean,
|
|
6331
|
+
reflect: true
|
|
6332
|
+
},
|
|
6333
|
+
|
|
6334
|
+
/**
|
|
6335
|
+
* Alters the shape of the button to be full width of its parent container.
|
|
6336
|
+
*/
|
|
6337
|
+
fluid: {
|
|
6338
|
+
type: Boolean,
|
|
6339
|
+
reflect: true
|
|
6340
|
+
},
|
|
6341
|
+
|
|
6342
|
+
/**
|
|
6343
|
+
* If set to true button text will be replaced with `auro-loader` and become disabled.
|
|
6344
|
+
*/
|
|
6345
|
+
loading: {
|
|
6346
|
+
type: Boolean,
|
|
6347
|
+
reflect: true
|
|
6348
|
+
},
|
|
6349
|
+
|
|
6350
|
+
/**
|
|
6351
|
+
* Sets custom loading text for the `aria-label` on a button in loading state. If not set, the default value of "Loading..." will be used.
|
|
6352
|
+
*/
|
|
6353
|
+
loadingText: {
|
|
6354
|
+
type: String
|
|
6355
|
+
},
|
|
6356
|
+
|
|
6357
|
+
/**
|
|
6358
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6359
|
+
*/
|
|
6360
|
+
tIndex: {
|
|
6361
|
+
type: String,
|
|
6362
|
+
reflect: true
|
|
6363
|
+
},
|
|
6364
|
+
|
|
6365
|
+
/**
|
|
6366
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6367
|
+
* Must be used with "." to ensure the host element does not retain a reference to the `tabindex` attribute.
|
|
6368
|
+
* Example: `<auro-button .tabindex="${this.disabled ? '-1' : '0'}"></auro-button>`
|
|
6369
|
+
*/
|
|
6370
|
+
tabindex: {
|
|
6371
|
+
type: String,
|
|
6372
|
+
reflect: false
|
|
6373
|
+
},
|
|
6374
|
+
|
|
6375
|
+
/**
|
|
6376
|
+
* Sets title attribute. The information is most often shown as a tooltip text when the mouse moves over the element.
|
|
6377
|
+
*/
|
|
6378
|
+
title: {
|
|
6379
|
+
type: String,
|
|
6380
|
+
reflect: true
|
|
6381
|
+
},
|
|
6382
|
+
|
|
6383
|
+
/**
|
|
6384
|
+
* The type of the button. Possible values are: `submit`, `reset`, `button`.
|
|
6385
|
+
*/
|
|
6386
|
+
type: {
|
|
6387
|
+
type: String,
|
|
6388
|
+
reflect: true
|
|
6389
|
+
},
|
|
6390
|
+
|
|
6391
|
+
/**
|
|
6392
|
+
* Defines the value associated with the button which is submitted with the form data.
|
|
6393
|
+
*/
|
|
6394
|
+
value: {
|
|
6395
|
+
type: String,
|
|
6396
|
+
reflect: true
|
|
6397
|
+
},
|
|
6398
|
+
|
|
6399
|
+
/**
|
|
6400
|
+
* Sets button variant option.
|
|
6401
|
+
* @default primary
|
|
6402
|
+
*/
|
|
6403
|
+
variant: {
|
|
6404
|
+
type: String,
|
|
6405
|
+
reflect: true
|
|
6406
|
+
},
|
|
6407
|
+
|
|
6408
|
+
/**
|
|
6409
|
+
* @private
|
|
6410
|
+
*/
|
|
6411
|
+
buttonHref: {
|
|
6412
|
+
type: String,
|
|
6413
|
+
},
|
|
6414
|
+
|
|
6415
|
+
/**
|
|
6416
|
+
* @private
|
|
6417
|
+
*/
|
|
6418
|
+
buttonTarget: {
|
|
6419
|
+
type: String,
|
|
6420
|
+
},
|
|
6421
|
+
|
|
6422
|
+
/**
|
|
6423
|
+
* @private
|
|
6424
|
+
*/
|
|
6425
|
+
buttonRel: {
|
|
6426
|
+
type: String,
|
|
6427
|
+
},
|
|
6428
|
+
};
|
|
6429
|
+
}
|
|
6430
|
+
|
|
6431
|
+
/**
|
|
6432
|
+
* This will register this element with the browser.
|
|
6433
|
+
* @param {string} [name="auro-button"] - The name of element that you want to register to.
|
|
6434
|
+
*
|
|
6435
|
+
* @example
|
|
6436
|
+
* AuroButton.register("custom-button") // this will register this element to <custom-button/>
|
|
6437
|
+
*
|
|
5094
6438
|
*/
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
'helpText': true,
|
|
5098
|
-
'leftIndent': true,
|
|
5099
|
-
'rightIndent': true
|
|
5100
|
-
};
|
|
5101
|
-
|
|
5102
|
-
return html`
|
|
5103
|
-
${this.renderBasicHtml(helpTextClasses)}
|
|
5104
|
-
`;
|
|
6439
|
+
static register(name = "auro-button") {
|
|
6440
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroButton);
|
|
5105
6441
|
}
|
|
5106
6442
|
|
|
5107
6443
|
/**
|
|
5108
|
-
*
|
|
6444
|
+
* Internal method to apply focus to the HTML5 button.
|
|
5109
6445
|
* @private
|
|
5110
|
-
* @returns {
|
|
6446
|
+
* @returns {void}
|
|
5111
6447
|
*/
|
|
5112
|
-
|
|
5113
|
-
|
|
5114
|
-
'helpText': true,
|
|
5115
|
-
'leftIndent': this.shape.toLowerCase().includes('pill') && !this.shape.toLowerCase().includes('right'),
|
|
5116
|
-
'rightIndent': this.shape.toLowerCase().includes('pill') && !this.shape.toLowerCase().includes('left')
|
|
5117
|
-
};
|
|
5118
|
-
|
|
5119
|
-
return html`
|
|
5120
|
-
${this.renderBasicHtml(helpTextClasses)}
|
|
5121
|
-
`;
|
|
6448
|
+
focus() {
|
|
6449
|
+
this.renderRoot.querySelector('button').focus();
|
|
5122
6450
|
}
|
|
5123
6451
|
|
|
5124
6452
|
/**
|
|
5125
|
-
*
|
|
6453
|
+
* Submits the form that this button is associated with.
|
|
5126
6454
|
* @private
|
|
5127
|
-
* @
|
|
5128
|
-
* @returns {HTMLCollection} - Returns the HTML for the layout.
|
|
6455
|
+
* @returns {void}
|
|
5129
6456
|
*/
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
switch (layout) {
|
|
5134
|
-
case 'emphasized':
|
|
5135
|
-
return this.renderLayoutEmphasized();
|
|
5136
|
-
case 'emphasized-left':
|
|
5137
|
-
return this.renderLayoutEmphasized();
|
|
5138
|
-
case 'emphasized-right':
|
|
5139
|
-
return this.renderLayoutEmphasized();
|
|
5140
|
-
case 'snowflake':
|
|
5141
|
-
return this.renderLayoutSnowflake();
|
|
5142
|
-
case 'snowflake-left':
|
|
5143
|
-
return this.renderLayoutSnowflake();
|
|
5144
|
-
case 'snowflake-right':
|
|
5145
|
-
return this.renderLayoutSnowflake();
|
|
5146
|
-
default:
|
|
5147
|
-
return this.renderLayoutClassic();
|
|
6457
|
+
surfaceSubmitEvent() {
|
|
6458
|
+
if (this.form) {
|
|
6459
|
+
this.form.requestSubmit();
|
|
5148
6460
|
}
|
|
5149
6461
|
}
|
|
5150
|
-
}
|
|
5151
|
-
|
|
5152
|
-
var dropdownVersion = '3.0.0';
|
|
5153
|
-
|
|
5154
|
-
var colorCss$1 = css`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
5155
|
-
|
|
5156
|
-
var styleCss$2 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column}#header{display:flex;width:100%;min-height:var(--ds-size-1000, 5rem);box-sizing:border-box;align-items:end;padding-top:var(--ds-size-400, 2rem);padding-right:var(--ds-size-700, 3.5rem);padding-left:var(--ds-size-200, 1rem);pointer-events:none}#subheader{width:100%}#subheader ::slotted([auro-input]){padding:0 var(--ds-size-200, 1rem)}#closeButton{position:absolute;top:var(--ds-size-400, 2rem);right:var(--ds-size-200, 1rem);border:none;background-color:transparent;cursor:pointer}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
|
|
5157
|
-
|
|
5158
|
-
var tokenCss = css`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
5159
|
-
|
|
5160
|
-
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5161
|
-
// See LICENSE in the project root for license information.
|
|
5162
|
-
|
|
5163
|
-
// ---------------------------------------------------------------------
|
|
5164
|
-
|
|
5165
|
-
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5166
|
-
|
|
5167
|
-
let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
|
|
5168
|
-
|
|
5169
|
-
/* eslint-disable jsdoc/require-param */
|
|
5170
6462
|
|
|
5171
6463
|
/**
|
|
5172
|
-
*
|
|
5173
|
-
* @
|
|
5174
|
-
* @
|
|
5175
|
-
* @returns {void}
|
|
6464
|
+
* Returns the form element that this button is associated with.
|
|
6465
|
+
* @private
|
|
6466
|
+
* @returns {HTMLFormElement | null}
|
|
5176
6467
|
*/
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
|
-
customElements.define(name, class extends componentClass {});
|
|
5180
|
-
}
|
|
6468
|
+
get form() {
|
|
6469
|
+
return this.internals ? this.internals.form : null;
|
|
5181
6470
|
}
|
|
5182
6471
|
|
|
5183
6472
|
/**
|
|
5184
|
-
*
|
|
5185
|
-
* @returns {
|
|
6473
|
+
* @private
|
|
6474
|
+
* @returns {Boolean}
|
|
5186
6475
|
*/
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
base = this, // extra functionality to skip a parent
|
|
5190
|
-
__Closest = (el, found = el && el.closest(selector)) =>
|
|
5191
|
-
!el || el === document || el === window
|
|
5192
|
-
? null // standard .closest() returns null for non-found selectors also
|
|
5193
|
-
: found
|
|
5194
|
-
? found // found a selector INside this element
|
|
5195
|
-
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
5196
|
-
) {
|
|
5197
|
-
return __Closest(base);
|
|
6476
|
+
get hideText() {
|
|
6477
|
+
return ICON_ONLY_SHAPES.includes(this.shape);
|
|
5198
6478
|
}
|
|
5199
|
-
/* eslint-enable jsdoc/require-param */
|
|
5200
6479
|
|
|
5201
6480
|
/**
|
|
5202
|
-
*
|
|
5203
|
-
* @
|
|
5204
|
-
* @
|
|
5205
|
-
* @returns {void}
|
|
6481
|
+
* Returns the current value of the projected `aria-label` attribute or undefined if not set.
|
|
6482
|
+
* @returns {string | undefined}
|
|
6483
|
+
* @private
|
|
5206
6484
|
*/
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
const elemTag = elem.tagName.toLowerCase();
|
|
6485
|
+
get currentAriaLabel() {
|
|
6486
|
+
if (!this.attributeWatcher) return undefined;
|
|
5210
6487
|
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
}
|
|
6488
|
+
const ariaLabel = this.attributeWatcher.getObservedAttribute("aria-label");
|
|
6489
|
+
return ariaLabel || undefined;
|
|
5214
6490
|
}
|
|
5215
6491
|
|
|
5216
6492
|
/**
|
|
5217
|
-
*
|
|
5218
|
-
* @
|
|
5219
|
-
* @
|
|
5220
|
-
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6493
|
+
* Returns the current value of the projected `aria-labelledby` attribute or undefined if not set.
|
|
6494
|
+
* @returns {string | undefined}
|
|
6495
|
+
* @private
|
|
5221
6496
|
*/
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
const elemTag = elem.tagName.toLowerCase();
|
|
6497
|
+
get currentAriaLabelledBy() {
|
|
6498
|
+
if (!this.attributeWatcher) return undefined;
|
|
5225
6499
|
|
|
5226
|
-
|
|
6500
|
+
const ariaLabelledBy = this.attributeWatcher.getObservedAttribute("aria-labelledby");
|
|
6501
|
+
return ariaLabelledBy || undefined;
|
|
5227
6502
|
}
|
|
5228
|
-
};
|
|
5229
|
-
|
|
5230
|
-
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5231
|
-
// See LICENSE in the project root for license information.
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
class AuroDependencyVersioning {
|
|
5235
6503
|
|
|
5236
6504
|
/**
|
|
5237
|
-
*
|
|
6505
|
+
* Renders the default layout for the button.
|
|
6506
|
+
* @returns {TemplateResult}
|
|
5238
6507
|
* @private
|
|
5239
|
-
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5240
|
-
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5241
|
-
* @returns {string} - Unique string to be used for naming.
|
|
5242
6508
|
*/
|
|
5243
|
-
|
|
5244
|
-
|
|
6509
|
+
renderLayoutDefault() {
|
|
6510
|
+
const classes = {
|
|
6511
|
+
"util_insetLg--squish": true,
|
|
6512
|
+
"auro-button": true,
|
|
6513
|
+
"icon-only": this.hideText,
|
|
6514
|
+
wrapper: true,
|
|
6515
|
+
loading: this.loading,
|
|
6516
|
+
};
|
|
5245
6517
|
|
|
5246
|
-
|
|
5247
|
-
|
|
6518
|
+
const tag = this.buttonHref ? literal`a` : literal`button`;
|
|
6519
|
+
const part = this.buttonHref ? 'link' : 'button';
|
|
5248
6520
|
|
|
5249
|
-
return
|
|
6521
|
+
return html`
|
|
6522
|
+
<${tag}
|
|
6523
|
+
part="${part}"
|
|
6524
|
+
aria-label="${ifDefined(this.loading ? this.loadingText : this.currentAriaLabel || undefined)}"
|
|
6525
|
+
aria-labelledby="${ifDefined(this.loading ? undefined : this.currentAriaLabelledBy || undefined)}"
|
|
6526
|
+
tabindex="${ifDefined(this.tIndex || this.tabindex)}"
|
|
6527
|
+
?autofocus="${this.autofocus}"
|
|
6528
|
+
class=${classMap(classes)}
|
|
6529
|
+
?disabled="${this.disabled || this.loading}"
|
|
6530
|
+
?onDark="${this.onDark}"
|
|
6531
|
+
title="${ifDefined(this.title ? this.title : undefined)}"
|
|
6532
|
+
name="${ifDefined(this.name ? this.name : undefined)}"
|
|
6533
|
+
type="${ifDefined(this.type ? this.type : undefined)}"
|
|
6534
|
+
variant="${ifDefined(this.variant ? this.variant : undefined)}"
|
|
6535
|
+
.value="${ifDefined(this.value ? this.value : undefined)}"
|
|
6536
|
+
@click="${this.type === 'submit' ? this.surfaceSubmitEvent : undefined}"
|
|
6537
|
+
href="${ifDefined(this.buttonHref || undefined)}"
|
|
6538
|
+
target="${ifDefined(this.buttonTarget || undefined)}"
|
|
6539
|
+
rel="${ifDefined(this.buttonRel || undefined)}"
|
|
6540
|
+
>
|
|
6541
|
+
${ifDefined(this.loading ? html`<${this.loaderTag} pulse part="loader"></${this.loaderTag}>` : undefined)}
|
|
6542
|
+
|
|
6543
|
+
<span class="contentWrapper">
|
|
6544
|
+
<span class="textSlot" part="text">
|
|
6545
|
+
<slot></slot>
|
|
6546
|
+
</span>
|
|
6547
|
+
</span>
|
|
6548
|
+
</${tag}>
|
|
6549
|
+
`;
|
|
5250
6550
|
}
|
|
5251
6551
|
|
|
5252
6552
|
/**
|
|
5253
|
-
*
|
|
5254
|
-
* @
|
|
5255
|
-
* @
|
|
5256
|
-
* @returns {string} - Unique string to be used for naming.
|
|
6553
|
+
* Renders the layout of the button.
|
|
6554
|
+
* @returns {TemplateResult}
|
|
6555
|
+
* @private
|
|
5257
6556
|
*/
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
const tag = literal`${unsafeStatic(elementName)}`;
|
|
5261
|
-
|
|
5262
|
-
if (!customElements.get(elementName)) {
|
|
5263
|
-
customElements.define(elementName, class extends tagClass {});
|
|
5264
|
-
}
|
|
5265
|
-
|
|
5266
|
-
return tag;
|
|
6557
|
+
renderLayout() {
|
|
6558
|
+
return this.renderLayoutDefault();
|
|
5267
6559
|
}
|
|
5268
6560
|
}
|
|
5269
6561
|
|
|
6562
|
+
var buttonVersion = '11.2.1';
|
|
6563
|
+
|
|
5270
6564
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5271
6565
|
// See LICENSE in the project root for license information.
|
|
5272
6566
|
|
|
@@ -5417,9 +6711,9 @@ class BaseIcon extends AuroElement {
|
|
|
5417
6711
|
}
|
|
5418
6712
|
}
|
|
5419
6713
|
|
|
5420
|
-
var tokensCss$
|
|
6714
|
+
var tokensCss$3 = css`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
|
|
5421
6715
|
|
|
5422
|
-
var colorCss$
|
|
6716
|
+
var colorCss$4 = css`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
|
|
5423
6717
|
|
|
5424
6718
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5425
6719
|
// See LICENSE in the project root for license information.
|
|
@@ -5428,7 +6722,7 @@ var colorCss$2 = css`:host{color:var(--ds-auro-icon-color)}:host([customColor]){
|
|
|
5428
6722
|
|
|
5429
6723
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5430
6724
|
|
|
5431
|
-
let AuroLibraryRuntimeUtils$
|
|
6725
|
+
let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
|
|
5432
6726
|
|
|
5433
6727
|
/* eslint-disable jsdoc/require-param */
|
|
5434
6728
|
|
|
@@ -5510,7 +6804,7 @@ class AuroIcon extends BaseIcon {
|
|
|
5510
6804
|
*/
|
|
5511
6805
|
privateDefaults() {
|
|
5512
6806
|
this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
|
|
5513
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
6807
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
|
|
5514
6808
|
}
|
|
5515
6809
|
|
|
5516
6810
|
// function to define props used within the scope of this component
|
|
@@ -5577,9 +6871,9 @@ class AuroIcon extends BaseIcon {
|
|
|
5577
6871
|
static get styles() {
|
|
5578
6872
|
return [
|
|
5579
6873
|
super.styles,
|
|
5580
|
-
css`${tokensCss$
|
|
6874
|
+
css`${tokensCss$3}`,
|
|
5581
6875
|
css`${styleCss$1$1}`,
|
|
5582
|
-
css`${colorCss$
|
|
6876
|
+
css`${colorCss$4}`
|
|
5583
6877
|
];
|
|
5584
6878
|
}
|
|
5585
6879
|
|
|
@@ -5592,7 +6886,7 @@ class AuroIcon extends BaseIcon {
|
|
|
5592
6886
|
*
|
|
5593
6887
|
*/
|
|
5594
6888
|
static register(name = "auro-icon") {
|
|
5595
|
-
AuroLibraryRuntimeUtils$
|
|
6889
|
+
AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
|
|
5596
6890
|
}
|
|
5597
6891
|
|
|
5598
6892
|
connectedCallback() {
|
|
@@ -5613,8 +6907,12 @@ class AuroIcon extends BaseIcon {
|
|
|
5613
6907
|
async firstUpdated() {
|
|
5614
6908
|
await super.firstUpdated();
|
|
5615
6909
|
|
|
5616
|
-
|
|
5617
|
-
|
|
6910
|
+
/**
|
|
6911
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
6912
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
6913
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
6914
|
+
*/
|
|
6915
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
5618
6916
|
const svgDesc = this.svg.querySelector('desc');
|
|
5619
6917
|
|
|
5620
6918
|
if (svgDesc) {
|
|
@@ -5658,9 +6956,79 @@ class AuroIcon extends BaseIcon {
|
|
|
5658
6956
|
}
|
|
5659
6957
|
}
|
|
5660
6958
|
|
|
5661
|
-
var iconVersion = '8.0.
|
|
6959
|
+
var iconVersion = '8.0.4';
|
|
6960
|
+
|
|
6961
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6962
|
+
// See LICENSE in the project root for license information.
|
|
6963
|
+
|
|
6964
|
+
// ---------------------------------------------------------------------
|
|
6965
|
+
|
|
6966
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
6967
|
+
|
|
6968
|
+
let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
|
|
6969
|
+
|
|
6970
|
+
/* eslint-disable jsdoc/require-param */
|
|
6971
|
+
|
|
6972
|
+
/**
|
|
6973
|
+
* This will register a new custom element with the browser.
|
|
6974
|
+
* @param {String} name - The name of the custom element.
|
|
6975
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
6976
|
+
* @returns {void}
|
|
6977
|
+
*/
|
|
6978
|
+
registerComponent(name, componentClass) {
|
|
6979
|
+
if (!customElements.get(name)) {
|
|
6980
|
+
customElements.define(name, class extends componentClass {});
|
|
6981
|
+
}
|
|
6982
|
+
}
|
|
6983
|
+
|
|
6984
|
+
/**
|
|
6985
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
6986
|
+
* @returns {void}
|
|
6987
|
+
*/
|
|
6988
|
+
closestElement(
|
|
6989
|
+
selector, // selector like in .closest()
|
|
6990
|
+
base = this, // extra functionality to skip a parent
|
|
6991
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
6992
|
+
!el || el === document || el === window
|
|
6993
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
6994
|
+
: found
|
|
6995
|
+
? found // found a selector INside this element
|
|
6996
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
6997
|
+
) {
|
|
6998
|
+
return __Closest(base);
|
|
6999
|
+
}
|
|
7000
|
+
/* eslint-enable jsdoc/require-param */
|
|
7001
|
+
|
|
7002
|
+
/**
|
|
7003
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
7004
|
+
* @param {Object} elem - The element to check.
|
|
7005
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
7006
|
+
* @returns {void}
|
|
7007
|
+
*/
|
|
7008
|
+
handleComponentTagRename(elem, tagName) {
|
|
7009
|
+
const tag = tagName.toLowerCase();
|
|
7010
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7011
|
+
|
|
7012
|
+
if (elemTag !== tag) {
|
|
7013
|
+
elem.setAttribute(tag, true);
|
|
7014
|
+
}
|
|
7015
|
+
}
|
|
7016
|
+
|
|
7017
|
+
/**
|
|
7018
|
+
* Validates if an element is a specific Auro component.
|
|
7019
|
+
* @param {Object} elem - The element to validate.
|
|
7020
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
7021
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
7022
|
+
*/
|
|
7023
|
+
elementMatch(elem, tagName) {
|
|
7024
|
+
const tag = tagName.toLowerCase();
|
|
7025
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7026
|
+
|
|
7027
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
7028
|
+
}
|
|
7029
|
+
};
|
|
5662
7030
|
|
|
5663
|
-
var styleCss$
|
|
7031
|
+
var styleCss$5 = css`.heading{margin:1.75rem 0;letter-spacing:var(--ds-text-heading-default-spacing, -0.2px);font-weight:var(--ds-text-heading-default-weight, 500)}.heading--display{margin-top:0;font-size:var(--ds-text-heading-display-size-breakpoint-sm, 2.75rem);font-weight:var(--ds-text-heading-display-weight, 100);line-height:var(--ds-text-heading-display-height-breakpoint-sm, 3.375rem)}@media screen and (min-width: 768px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-md, 3rem);line-height:var(--ds-text-heading-display-height-breakpoint-md, 3.75rem)}}@media screen and (min-width: 1024px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-lg, 3.5rem);line-height:var(--ds-text-heading-display-height-breakpoint-lg, 4.25rem)}}.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-sm, 2rem);font-weight:var(--ds-text-heading-800-weight, 500);line-height:var(--ds-text-heading-800-height-breakpoint-sm, 2.375rem)}@media screen and (min-width: 768px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-md, 2.25rem);line-height:var(--ds-text-heading-800-height-breakpoint-md, 2.625rem)}}@media screen and (min-width: 1024px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-lg, 2.5rem);line-height:var(--ds-text-heading-800-height-breakpoint-lg, 3rem)}}.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-sm, 1.75rem);font-weight:var(--ds-text-heading-700-weight, 500);line-height:var(--ds-text-heading-700-height-breakpoint-sm, 2.125rem)}@media screen and (min-width: 768px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-md, 2rem);line-height:var(--ds-text-heading-700-height-breakpoint-md, 2.375rem)}}@media screen and (min-width: 1024px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-lg, 2.25rem);line-height:var(--ds-text-heading-700-height-breakpoint-lg, 2.75rem)}}.heading--600{margin:1rem 0;font-size:var(--ds-text-heading-600-size-breakpoint-sm, 1.625rem);font-weight:var(--ds-text-heading-600-weight, 300);line-height:var(--ds-text-heading-600-height-breakpoint-sm, 1.875rem)}@media screen and (min-width: 768px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-md, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-md, 2.125rem)}}@media screen and (min-width: 1024px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-lg, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-lg, 2.25rem)}}.heading--500{margin:1rem 0;font-size:var(--ds-text-heading-500-size-breakpoint-sm, 1.375rem);font-weight:var(--ds-text-heading-500-weight, 300);line-height:var(--ds-text-heading-500-height-breakpoint-sm, 1.625rem)}@media screen and (min-width: 768px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-md, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-md, 1.875rem)}}@media screen and (min-width: 1024px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-lg, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-lg, 2rem)}}.heading--400{margin:.75rem 0;font-size:var(--ds-text-heading-400-size, 1.25rem);font-weight:var(--ds-text-heading-400-weight, 300);line-height:var(--ds-text-heading-400-height, 1.625rem)}.heading--300{margin:.75rem 0;font-size:var(--ds-text-heading-300-size, 1.125rem);font-weight:var(--ds-text-heading-300-weight, 300);line-height:var(--ds-text-heading-300-height, 1.625rem)}:host([no-margin-block]) .heading{margin-block:0}.util_stackMarginnone--bottom{margin-bottom:0}.util_stackMargin25--bottom{margin-bottom:var(--ds-size-25, 0.125rem)}.util_stackMargin50--bottom{margin-bottom:var(--ds-size-50, 0.25rem)}.util_stackMargin100--bottom{margin-bottom:var(--ds-size-100, 0.5rem)}.util_stackMargin150--bottom{margin-bottom:var(--ds-size-150, 0.75rem)}.util_stackMargin200--bottom{margin-bottom:var(--ds-size-200, 1rem)}.util_stackMargin300--bottom{margin-bottom:var(--ds-size-300, 1.5rem)}.util_stackMargin400--bottom{margin-bottom:var(--ds-size-400, 2rem)}.util_stackMargin600--bottom{margin-bottom:var(--ds-size-600, 3rem)}.util_stackMargin800--bottom{margin-bottom:var(--ds-size-800, 4rem)}.util_stackMarginnone--top{margin-top:0}.util_stackMargin25--top{margin-top:var(--ds-size-25, 0.125rem)}.util_stackMargin50--top{margin-top:var(--ds-size-50, 0.25rem)}.util_stackMargin100--top{margin-top:var(--ds-size-100, 0.5rem)}.util_stackMargin150--top{margin-top:var(--ds-size-150, 0.75rem)}.util_stackMargin200--top{margin-top:var(--ds-size-200, 1rem)}.util_stackMargin300--top{margin-top:var(--ds-size-300, 1.5rem)}.util_stackMargin400--top{margin-top:var(--ds-size-400, 2rem)}.util_stackMargin600--top{margin-top:var(--ds-size-600, 3rem)}.util_stackMargin800--top{margin-top:var(--ds-size-800, 4rem)}`;
|
|
5664
7032
|
|
|
5665
7033
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5666
7034
|
// See LICENSE in the project root for license information.
|
|
@@ -5689,7 +7057,7 @@ class AuroHeader extends LitElement {
|
|
|
5689
7057
|
/**
|
|
5690
7058
|
* @private
|
|
5691
7059
|
*/
|
|
5692
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
7060
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
|
|
5693
7061
|
}
|
|
5694
7062
|
|
|
5695
7063
|
// function to define props used within the scope of this component
|
|
@@ -5707,7 +7075,7 @@ class AuroHeader extends LitElement {
|
|
|
5707
7075
|
}
|
|
5708
7076
|
|
|
5709
7077
|
static get styles() {
|
|
5710
|
-
return [styleCss$
|
|
7078
|
+
return [styleCss$5];
|
|
5711
7079
|
}
|
|
5712
7080
|
|
|
5713
7081
|
/**
|
|
@@ -5719,7 +7087,7 @@ class AuroHeader extends LitElement {
|
|
|
5719
7087
|
*
|
|
5720
7088
|
*/
|
|
5721
7089
|
static register(name = "auro-header") {
|
|
5722
|
-
AuroLibraryRuntimeUtils$
|
|
7090
|
+
AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHeader);
|
|
5723
7091
|
}
|
|
5724
7092
|
|
|
5725
7093
|
firstUpdated() {
|
|
@@ -5815,17 +7183,30 @@ class AuroBibtemplate extends LitElement {
|
|
|
5815
7183
|
|
|
5816
7184
|
this.large = false;
|
|
5817
7185
|
|
|
5818
|
-
AuroLibraryRuntimeUtils$
|
|
7186
|
+
AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
|
|
5819
7187
|
|
|
5820
7188
|
const versioning = new AuroDependencyVersioning();
|
|
7189
|
+
|
|
7190
|
+
/**
|
|
7191
|
+
* @private
|
|
7192
|
+
*/
|
|
5821
7193
|
this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion, AuroIcon);
|
|
7194
|
+
|
|
7195
|
+
/**
|
|
7196
|
+
* @private
|
|
7197
|
+
*/
|
|
5822
7198
|
this.headerTag = versioning.generateTag('auro-formkit-bibtemplate-header', headerVersion, AuroHeader);
|
|
7199
|
+
|
|
7200
|
+
/**
|
|
7201
|
+
* @private
|
|
7202
|
+
*/
|
|
7203
|
+
this.buttonTag = versioning.generateTag('auro-formkit-input-button', buttonVersion, AuroButton);
|
|
5823
7204
|
}
|
|
5824
7205
|
|
|
5825
7206
|
static get styles() {
|
|
5826
7207
|
return [
|
|
5827
|
-
colorCss$
|
|
5828
|
-
styleCss$
|
|
7208
|
+
colorCss$3,
|
|
7209
|
+
styleCss$4,
|
|
5829
7210
|
tokenCss
|
|
5830
7211
|
];
|
|
5831
7212
|
}
|
|
@@ -5854,7 +7235,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
5854
7235
|
*
|
|
5855
7236
|
*/
|
|
5856
7237
|
static register(name = "auro-bibtemplate") {
|
|
5857
|
-
AuroLibraryRuntimeUtils$
|
|
7238
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroBibtemplate);
|
|
5858
7239
|
}
|
|
5859
7240
|
|
|
5860
7241
|
/**
|
|
@@ -5912,9 +7293,9 @@ class AuroBibtemplate extends LitElement {
|
|
|
5912
7293
|
<div id="bibTemplate" part="bibtemplate">
|
|
5913
7294
|
${this.isFullscreen ? html`
|
|
5914
7295
|
<div id="headerContainer">
|
|
5915
|
-
|
|
7296
|
+
<${this.buttonTag} id="closeButton" aria-label="Close" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
|
|
5916
7297
|
<${this.iconTag} category="interface" name="x-lg"></${this.iconTag}>
|
|
5917
|
-
|
|
7298
|
+
</${this.buttonTag}>
|
|
5918
7299
|
<${this.headerTag} display="${this.large ? 'display' : '600'}" level="3" size="none" id="header" no-margin-block>
|
|
5919
7300
|
<slot name="header"></slot>
|
|
5920
7301
|
</${this.headerTag}>
|
|
@@ -5938,9 +7319,9 @@ class AuroBibtemplate extends LitElement {
|
|
|
5938
7319
|
|
|
5939
7320
|
var bibTemplateVersion = '1.0.0';
|
|
5940
7321
|
|
|
5941
|
-
var colorCss = css`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-
|
|
7322
|
+
var colorCss = css`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
|
|
5942
7323
|
|
|
5943
|
-
var styleCss$1 = css
|
|
7324
|
+
var styleCss$1 = css`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
|
|
5944
7325
|
|
|
5945
7326
|
var tokensCss = css`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
5946
7327
|
|
|
@@ -6146,68 +7527,7 @@ class AuroHelpText extends LitElement {
|
|
|
6146
7527
|
|
|
6147
7528
|
var helpTextVersion = '1.0.0';
|
|
6148
7529
|
|
|
6149
|
-
css
|
|
6150
|
-
|
|
6151
|
-
css`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
|
|
6152
|
-
|
|
6153
|
-
css`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
|
|
6154
|
-
|
|
6155
|
-
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6156
|
-
// See LICENSE in the project root for license information.
|
|
6157
|
-
|
|
6158
|
-
// ---------------------------------------------------------------------
|
|
6159
|
-
|
|
6160
|
-
/**
|
|
6161
|
-
* Converts value to an array.
|
|
6162
|
-
* If the value is a JSON string representing an array, it will be parsed.
|
|
6163
|
-
* If the value is already an array, it is returned.
|
|
6164
|
-
* If the value is undefined, it returns undefined.
|
|
6165
|
-
* @private
|
|
6166
|
-
* @param {any} value - The value to be converted. Can be a string, array, or undefined.
|
|
6167
|
-
* @returns {Array|undefined} - The converted array or undefined.
|
|
6168
|
-
* @throws {Error} - Throws an error if the value is not an array, undefined,
|
|
6169
|
-
* or if the value cannot be parsed into an array from a JSON string.
|
|
6170
|
-
*/
|
|
6171
|
-
function arrayConverter(value) {
|
|
6172
|
-
// Allow undefined
|
|
6173
|
-
if (value === undefined) {
|
|
6174
|
-
return undefined;
|
|
6175
|
-
}
|
|
6176
|
-
|
|
6177
|
-
// Return the value if it is already an array
|
|
6178
|
-
if (Array.isArray(value)) {
|
|
6179
|
-
return value;
|
|
6180
|
-
}
|
|
6181
|
-
|
|
6182
|
-
try {
|
|
6183
|
-
// If value is a JSON string, parse it
|
|
6184
|
-
const parsed = typeof value === 'string' ? JSON.parse(value) : value;
|
|
6185
|
-
|
|
6186
|
-
// Check if the parsed value is an array
|
|
6187
|
-
if (Array.isArray(parsed)) {
|
|
6188
|
-
return parsed;
|
|
6189
|
-
}
|
|
6190
|
-
} catch (error) {
|
|
6191
|
-
// If JSON parsing fails, continue to throw an error below
|
|
6192
|
-
/* eslint-disable no-console */
|
|
6193
|
-
console.error('JSON parsing failed:', error);
|
|
6194
|
-
}
|
|
6195
|
-
|
|
6196
|
-
// Throw error if the input is not an array or undefined
|
|
6197
|
-
throw new Error('Invalid value: Input must be an array or undefined');
|
|
6198
|
-
}
|
|
6199
|
-
|
|
6200
|
-
css`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
|
|
6201
|
-
|
|
6202
|
-
css`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
|
|
6203
|
-
|
|
6204
|
-
css`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
|
|
6205
|
-
|
|
6206
|
-
css`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
|
|
6207
|
-
|
|
6208
|
-
css`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
|
|
6209
|
-
|
|
6210
|
-
var styleCss = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color)}.mainContent{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;justify-content:center;align-items:center}::slotted([slot=typeIcon]){margin-right:8px}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;align-items:center;justify-content:center;width:100%;padding:0 8px 0 24px}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([disabled]) *{user-select:none}`;
|
|
7530
|
+
var styleCss = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color)}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}.mainContent{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent,:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) [auro-dropdown] label.withValue{font-size:var(--ds-text-body-size-xs);line-height:20px}:host([layout*=emphasized]) [auro-dropdown] label.withValue{font-size:var(--ds-text-body-size-xs);line-height:20px}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{cursor:text;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host([layout*=classic]) label.withValue{font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([layout*=classic]) .value{height:auto;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
6211
7531
|
|
|
6212
7532
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6213
7533
|
// See LICENSE in the project root for license information.
|
|
@@ -6220,9 +7540,10 @@ var styleCss = css`.util_displayInline{display:inline}.util_displayInlineBlock{d
|
|
|
6220
7540
|
* @slot - Default slot for the menu content.
|
|
6221
7541
|
* @slot bib.fullscreen.headline - Defines the headline to display above menu-options
|
|
6222
7542
|
* @slot label - Defines the content of the label.
|
|
7543
|
+
* @slot {HTMLSlotElement} optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
6223
7544
|
* @slot helpText - Defines the content of the helpText.
|
|
6224
|
-
* @slot placeholder - Defines the content of the placeholder to be shown when there is no value
|
|
6225
7545
|
* @slot valueText - Dropdown value text display.
|
|
7546
|
+
* @slot displayValue - Allows custom HTML content to display the selected value when select is not focused.
|
|
6226
7547
|
* @event auroSelect-valueSet - Notifies that the component has a new value set.
|
|
6227
7548
|
* @event input - Notifies every time the value prop of the element is changed. The updated `value` and `optionSelected` will be delivered in `detail` object.
|
|
6228
7549
|
* @event auroFormElement-validated - Notifies that the `validity` and `errorMessage` values have changed.
|
|
@@ -6240,11 +7561,11 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6240
7561
|
const idSubstrEnd = 8;
|
|
6241
7562
|
const idSubstrStart = 2;
|
|
6242
7563
|
|
|
6243
|
-
this.matchWidth =
|
|
7564
|
+
this.matchWidth = false;
|
|
6244
7565
|
|
|
6245
7566
|
// Layout Config
|
|
6246
|
-
this.layout = '
|
|
6247
|
-
this.shape = '
|
|
7567
|
+
this.layout = 'snowflake';
|
|
7568
|
+
this.shape = 'snowflake';
|
|
6248
7569
|
this.size = 'xl';
|
|
6249
7570
|
|
|
6250
7571
|
// floaterConfig
|
|
@@ -6255,6 +7576,10 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6255
7576
|
|
|
6256
7577
|
this.forceDisplayValue = false;
|
|
6257
7578
|
|
|
7579
|
+
this.layout = 'classic';
|
|
7580
|
+
this.shape = 'classic';
|
|
7581
|
+
this.size = 'xl';
|
|
7582
|
+
|
|
6258
7583
|
/**
|
|
6259
7584
|
* @private
|
|
6260
7585
|
*/
|
|
@@ -6270,7 +7595,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6270
7595
|
/**
|
|
6271
7596
|
* @private
|
|
6272
7597
|
*/
|
|
6273
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
7598
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
6274
7599
|
|
|
6275
7600
|
/**
|
|
6276
7601
|
* Generate unique names for dependency components.
|
|
@@ -6319,6 +7644,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6319
7644
|
this.value = undefined;
|
|
6320
7645
|
this.fullscreenBreakpoint = 'sm';
|
|
6321
7646
|
this.onDark = false;
|
|
7647
|
+
this.isPopoverVisible = false;
|
|
6322
7648
|
}
|
|
6323
7649
|
|
|
6324
7650
|
// This function is to define props used within the scope of this component
|
|
@@ -6360,6 +7686,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6360
7686
|
reflect: true
|
|
6361
7687
|
},
|
|
6362
7688
|
|
|
7689
|
+
/**
|
|
7690
|
+
* @private
|
|
7691
|
+
*/
|
|
7692
|
+
isPopoverVisible: {
|
|
7693
|
+
type: Boolean,
|
|
7694
|
+
reflect: false
|
|
7695
|
+
},
|
|
7696
|
+
|
|
6363
7697
|
/**
|
|
6364
7698
|
* If declared, the popover and trigger will be set to the same width.
|
|
6365
7699
|
*/
|
|
@@ -6376,14 +7710,6 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6376
7710
|
reflect: true
|
|
6377
7711
|
},
|
|
6378
7712
|
|
|
6379
|
-
/**
|
|
6380
|
-
* If set, makes dropdown width match the size of the content, rather than the width of the trigger.
|
|
6381
|
-
*/
|
|
6382
|
-
flexMenuWidth: {
|
|
6383
|
-
type: Boolean,
|
|
6384
|
-
reflect: true
|
|
6385
|
-
},
|
|
6386
|
-
|
|
6387
7713
|
/**
|
|
6388
7714
|
* Defines the screen size breakpoint (`xs`, `sm`, `md`, `lg`, `xl`, `disabled`)
|
|
6389
7715
|
* at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.
|
|
@@ -6477,7 +7803,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6477
7803
|
* "top" | "right" | "bottom" | "left" |
|
|
6478
7804
|
* "bottom-start" | "top-start" | "top-end" |
|
|
6479
7805
|
* "right-start" | "right-end" | "bottom-end" |
|
|
6480
|
-
* "left-start" | "left-end"
|
|
7806
|
+
* "left-start" | "left-end".
|
|
6481
7807
|
* @default bottom-start
|
|
6482
7808
|
*/
|
|
6483
7809
|
placement: {
|
|
@@ -6485,6 +7811,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6485
7811
|
reflect: true
|
|
6486
7812
|
},
|
|
6487
7813
|
|
|
7814
|
+
/**
|
|
7815
|
+
* Define custom placeholder text.
|
|
7816
|
+
*/
|
|
7817
|
+
placeholder: {
|
|
7818
|
+
type: String,
|
|
7819
|
+
reflect: true
|
|
7820
|
+
},
|
|
7821
|
+
|
|
6488
7822
|
/**
|
|
6489
7823
|
* Populates the `required` attribute on the element. Used for client-side validation.
|
|
6490
7824
|
*/
|
|
@@ -6531,11 +7865,12 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6531
7865
|
},
|
|
6532
7866
|
|
|
6533
7867
|
/**
|
|
6534
|
-
* Value selected for the component.
|
|
6535
|
-
* @type {String|Array<String>}
|
|
7868
|
+
* Value selected for the component.
|
|
6536
7869
|
*/
|
|
6537
7870
|
value: {
|
|
6538
|
-
type:
|
|
7871
|
+
type: String,
|
|
7872
|
+
reflect: true,
|
|
7873
|
+
attribute: 'value'
|
|
6539
7874
|
},
|
|
6540
7875
|
|
|
6541
7876
|
/**
|
|
@@ -6582,15 +7917,47 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6582
7917
|
static get styles() {
|
|
6583
7918
|
return [
|
|
6584
7919
|
css`${shapeSizeCss$1}`,
|
|
6585
|
-
css`${tokensCss$
|
|
7920
|
+
css`${tokensCss$5}`,
|
|
6586
7921
|
css`${styleCss}`,
|
|
6587
7922
|
];
|
|
6588
7923
|
}
|
|
6589
7924
|
|
|
7925
|
+
/**
|
|
7926
|
+
* Formatted value based on `multiSelect` state.
|
|
7927
|
+
* Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
|
|
7928
|
+
* @private
|
|
7929
|
+
* @returns {String|Array<String>}
|
|
7930
|
+
*/
|
|
7931
|
+
get formattedValue() {
|
|
7932
|
+
if (this.multiSelect) {
|
|
7933
|
+
if (!this.value) {
|
|
7934
|
+
return undefined;
|
|
7935
|
+
}
|
|
7936
|
+
if (this.value.startsWith("[")) {
|
|
7937
|
+
return JSON.parse(this.value);
|
|
7938
|
+
}
|
|
7939
|
+
return [this.value];
|
|
7940
|
+
}
|
|
7941
|
+
return this.value;
|
|
7942
|
+
}
|
|
7943
|
+
|
|
7944
|
+
/**
|
|
7945
|
+
* Returns classmap configuration for html5 input labels in all layouts.
|
|
7946
|
+
* @private
|
|
7947
|
+
* @returns {void}
|
|
7948
|
+
*/
|
|
7949
|
+
get commonLabelClasses() {
|
|
7950
|
+
return {
|
|
7951
|
+
'is-disabled': this.disabled,
|
|
7952
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7953
|
+
'util_displayHiddenVisually': this.hasDisplayValueContent && !this.hasFocus && this.value && this.value.length > 0
|
|
7954
|
+
};
|
|
7955
|
+
}
|
|
7956
|
+
|
|
6590
7957
|
/**
|
|
6591
7958
|
* Returns classmap configuration for wrapper elements in each layout.
|
|
6592
7959
|
* @private
|
|
6593
|
-
* @
|
|
7960
|
+
* @returns {object} - Returns classmap.
|
|
6594
7961
|
*/
|
|
6595
7962
|
get commonWrapperClasses() {
|
|
6596
7963
|
return {
|
|
@@ -6606,8 +7973,27 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6606
7973
|
configureDropdown() {
|
|
6607
7974
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
6608
7975
|
|
|
7976
|
+
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
7977
|
+
this.isPopoverVisible = this.dropdown.isPopoverVisible;
|
|
7978
|
+
|
|
7979
|
+
if (this.dropdown.isPopoverVisible) {
|
|
7980
|
+
// wait til the bib gets fully rendered
|
|
7981
|
+
setTimeout(() => {
|
|
7982
|
+
if (this.dropdown.isBibFullscreen) {
|
|
7983
|
+
// trigger holds the focus since menu is not a focusable element.
|
|
7984
|
+
this.dropdown.trigger.focus();
|
|
7985
|
+
|
|
7986
|
+
// default focus indicator on the first menu option
|
|
7987
|
+
if (this.menu.index < 0) {
|
|
7988
|
+
this.menu.navigateOptions('down');
|
|
7989
|
+
}
|
|
7990
|
+
}
|
|
7991
|
+
});
|
|
7992
|
+
}
|
|
7993
|
+
});
|
|
7994
|
+
|
|
6609
7995
|
// setting up bibtemplate
|
|
6610
|
-
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
7996
|
+
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
6611
7997
|
|
|
6612
7998
|
if (this.customBibWidth) {
|
|
6613
7999
|
this.dropdown.dropdownWidth = this.customBibWidth;
|
|
@@ -6626,7 +8012,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6626
8012
|
*
|
|
6627
8013
|
*/
|
|
6628
8014
|
static register(name = "auro-select") {
|
|
6629
|
-
AuroLibraryRuntimeUtils$
|
|
8015
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroSelect);
|
|
6630
8016
|
}
|
|
6631
8017
|
|
|
6632
8018
|
/**
|
|
@@ -6638,13 +8024,18 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6638
8024
|
const triggerContentEl = this.dropdown.querySelector('#triggerFocus');
|
|
6639
8025
|
|
|
6640
8026
|
// Clear out old value
|
|
6641
|
-
// const placeholder = triggerContentEl.querySelector('#placeholder');
|
|
6642
8027
|
const valueElem = triggerContentEl.querySelector('#value');
|
|
6643
8028
|
if (valueElem) {
|
|
6644
8029
|
valueElem.innerHTML = '';
|
|
6645
|
-
// valueElem.innerHTML = ''.appendChild(value);
|
|
6646
8030
|
}
|
|
6647
8031
|
|
|
8032
|
+
const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
|
|
8033
|
+
const slottedElements = slot.assignedElements();
|
|
8034
|
+
|
|
8035
|
+
slottedElements.forEach((element) => {
|
|
8036
|
+
element.remove();
|
|
8037
|
+
});
|
|
8038
|
+
|
|
6648
8039
|
// Handle selected options
|
|
6649
8040
|
if (this.optionSelected) {
|
|
6650
8041
|
if (this.multiSelect && this.optionSelected.length > 0) {
|
|
@@ -6654,10 +8045,8 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6654
8045
|
} else {
|
|
6655
8046
|
valueElem.innerHTML = this.optionSelected.innerHTML;
|
|
6656
8047
|
const displayValueEl = this.optionSelected.querySelector("[slot='displayValue']");
|
|
6657
|
-
if (displayValueEl) {
|
|
6658
|
-
const oldDisplayValueEl = this.querySelectorAll("[slot='displayValue']");
|
|
6659
|
-
oldDisplayValueEl.forEach((el) => el.remove());
|
|
6660
8048
|
|
|
8049
|
+
if (displayValueEl) {
|
|
6661
8050
|
this.appendChild(displayValueEl.cloneNode(true));
|
|
6662
8051
|
}
|
|
6663
8052
|
this.hasDisplayValueContent = displayValueEl !== null;
|
|
@@ -6683,6 +8072,15 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6683
8072
|
return;
|
|
6684
8073
|
}
|
|
6685
8074
|
|
|
8075
|
+
// set menu's default size if there it's not specified.
|
|
8076
|
+
if (!this.menu.getAttribute('size')) {
|
|
8077
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8078
|
+
}
|
|
8079
|
+
|
|
8080
|
+
if (!this.getAttribute('shape')) {
|
|
8081
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8082
|
+
}
|
|
8083
|
+
|
|
6686
8084
|
if (this.multiSelect) {
|
|
6687
8085
|
this.menu.multiSelect = this.multiSelect;
|
|
6688
8086
|
}
|
|
@@ -6742,46 +8140,58 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6742
8140
|
configureSelect() {
|
|
6743
8141
|
|
|
6744
8142
|
this.addEventListener('keydown', (evt) => {
|
|
6745
|
-
|
|
6746
|
-
|
|
8143
|
+
// when the focus is on trigger not on close button
|
|
8144
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8145
|
+
if (evt.key === 'ArrowUp') {
|
|
8146
|
+
evt.preventDefault();
|
|
6747
8147
|
|
|
6748
|
-
|
|
8148
|
+
this.dropdown.show();
|
|
8149
|
+
|
|
8150
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8151
|
+
this.menu.navigateOptions('up');
|
|
8152
|
+
}
|
|
6749
8153
|
|
|
6750
|
-
|
|
6751
|
-
this.menu.navigateOptions('up');
|
|
8154
|
+
return;
|
|
6752
8155
|
}
|
|
6753
8156
|
|
|
6754
|
-
|
|
6755
|
-
|
|
8157
|
+
if (evt.key === 'ArrowDown') {
|
|
8158
|
+
evt.preventDefault();
|
|
6756
8159
|
|
|
6757
|
-
|
|
6758
|
-
evt.preventDefault();
|
|
8160
|
+
this.dropdown.show();
|
|
6759
8161
|
|
|
6760
|
-
|
|
8162
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8163
|
+
this.menu.navigateOptions('down');
|
|
8164
|
+
}
|
|
6761
8165
|
|
|
6762
|
-
|
|
6763
|
-
this.menu.navigateOptions('down');
|
|
8166
|
+
return;
|
|
6764
8167
|
}
|
|
6765
8168
|
|
|
6766
|
-
|
|
6767
|
-
|
|
8169
|
+
if (evt.key === 'Enter') {
|
|
8170
|
+
if (!this.dropdown.isPopoverVisible) {
|
|
8171
|
+
evt.preventDefault();
|
|
8172
|
+
this.menu.makeSelection();
|
|
8173
|
+
}
|
|
6768
8174
|
|
|
6769
|
-
|
|
6770
|
-
if (!this.dropdown.isPopoverVisible) {
|
|
6771
|
-
evt.preventDefault();
|
|
6772
|
-
this.menu.makeSelection();
|
|
8175
|
+
return;
|
|
6773
8176
|
}
|
|
6774
|
-
|
|
6775
|
-
return;
|
|
6776
8177
|
}
|
|
6777
8178
|
|
|
6778
|
-
if (evt.key === 'Tab') {
|
|
8179
|
+
if (evt.key === 'Tab' && this.dropdown.isPopoverVisible) {
|
|
6779
8180
|
if (this.dropdown.isBibFullscreen) {
|
|
6780
8181
|
evt.preventDefault();
|
|
8182
|
+
|
|
8183
|
+
// when the focus is on trigger not on close button
|
|
8184
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8185
|
+
// `dropdown.focus` will move focus to the first focusable element in bib when it's open,
|
|
8186
|
+
// when bib it not open, it will focus onto trigger.
|
|
8187
|
+
this.dropdown.focus();
|
|
8188
|
+
} else {
|
|
8189
|
+
// when close button has the focus, move focus back to the trigger
|
|
8190
|
+
this.dropdown.trigger.focus();
|
|
8191
|
+
}
|
|
6781
8192
|
} else {
|
|
6782
8193
|
this.dropdown.hide();
|
|
6783
8194
|
}
|
|
6784
|
-
|
|
6785
8195
|
return;
|
|
6786
8196
|
}
|
|
6787
8197
|
|
|
@@ -6946,34 +8356,39 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6946
8356
|
// Add the tag name as an attribute if it is different than the component name
|
|
6947
8357
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-select');
|
|
6948
8358
|
|
|
6949
|
-
this.configureMenu();
|
|
6950
8359
|
this.configureDropdown();
|
|
8360
|
+
this.configureMenu();
|
|
6951
8361
|
this.configureSelect();
|
|
8362
|
+
}
|
|
6952
8363
|
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
|
|
8364
|
+
/**
|
|
8365
|
+
* Update the menu value. With checks for menu existence. Awaits value update.
|
|
8366
|
+
* @param {string} value - The value to set in the menu.
|
|
8367
|
+
* @returns {void}
|
|
8368
|
+
* @private
|
|
8369
|
+
*/
|
|
8370
|
+
async updateMenuValue(value) {
|
|
8371
|
+
if (!this.menu) return;
|
|
8372
|
+
|
|
8373
|
+
this.menu.setAttribute('value', value);
|
|
8374
|
+
this.menu.value = value;
|
|
8375
|
+
await this.menu.updateComplete;
|
|
6958
8376
|
}
|
|
6959
8377
|
|
|
6960
8378
|
async updated(changedProperties) {
|
|
6961
|
-
if (changedProperties.has('multiSelect')) {
|
|
8379
|
+
if (changedProperties.has('multiSelect') && !changedProperties.has('value')) {
|
|
6962
8380
|
this.clearSelection();
|
|
6963
8381
|
}
|
|
6964
8382
|
|
|
6965
8383
|
if (changedProperties.has('value')) {
|
|
6966
8384
|
if (this.value) {
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
this.menu.value = this.value;
|
|
8385
|
+
await this.updateMenuValue(this.value);
|
|
6970
8386
|
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
|
|
6974
|
-
this.optionSelected = this.menu.optionSelected;
|
|
8387
|
+
if (this.menu) {
|
|
8388
|
+
this.optionSelected = this.menu.optionSelected;
|
|
8389
|
+
}
|
|
6975
8390
|
} else {
|
|
6976
|
-
this.
|
|
8391
|
+
await this.updateMenuValue(undefined);
|
|
6977
8392
|
}
|
|
6978
8393
|
|
|
6979
8394
|
this._updateNativeSelect();
|
|
@@ -6992,7 +8407,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6992
8407
|
composed: true,
|
|
6993
8408
|
detail: {
|
|
6994
8409
|
optionSelected: this.optionSelected,
|
|
6995
|
-
value: this.
|
|
8410
|
+
value: this.formattedValue
|
|
6996
8411
|
}
|
|
6997
8412
|
}));
|
|
6998
8413
|
}
|
|
@@ -7004,6 +8419,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7004
8419
|
if (changedProperties.has('error')) {
|
|
7005
8420
|
this.validate(true);
|
|
7006
8421
|
}
|
|
8422
|
+
|
|
8423
|
+
if (changedProperties.has('shape') && this.menu) {
|
|
8424
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8425
|
+
}
|
|
8426
|
+
|
|
8427
|
+
if (changedProperties.has('size') && this.menu) {
|
|
8428
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8429
|
+
}
|
|
7007
8430
|
}
|
|
7008
8431
|
|
|
7009
8432
|
/**
|
|
@@ -7043,13 +8466,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7043
8466
|
const selectedValue = selectedOption.value;
|
|
7044
8467
|
|
|
7045
8468
|
if (this.multiSelect) {
|
|
7046
|
-
const currentArray =
|
|
8469
|
+
const currentArray = this.formattedValue;
|
|
7047
8470
|
|
|
7048
8471
|
if (!currentArray.includes(selectedValue)) {
|
|
7049
|
-
this.value = [
|
|
8472
|
+
this.value = JSON.stringify([
|
|
7050
8473
|
...currentArray,
|
|
7051
8474
|
selectedValue
|
|
7052
|
-
];
|
|
8475
|
+
]);
|
|
7053
8476
|
}
|
|
7054
8477
|
} else {
|
|
7055
8478
|
const currentValue = this.value;
|
|
@@ -7072,12 +8495,17 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7072
8495
|
}
|
|
7073
8496
|
|
|
7074
8497
|
if (this.multiSelect) {
|
|
7075
|
-
nativeSelect.value = this.
|
|
8498
|
+
nativeSelect.value = this.multiSelect ? this.multiSelect[0] : '';
|
|
7076
8499
|
} else {
|
|
7077
8500
|
nativeSelect.value = this.value || '';
|
|
7078
8501
|
}
|
|
7079
8502
|
}
|
|
7080
8503
|
|
|
8504
|
+
/**
|
|
8505
|
+
* Returns HTML for the hidden a11y screen reader content.
|
|
8506
|
+
* @private
|
|
8507
|
+
* @returns {html} - Returns HTML for the hidden a11y screen reader content.
|
|
8508
|
+
*/
|
|
7081
8509
|
renderAriaHtml() {
|
|
7082
8510
|
return html`
|
|
7083
8511
|
<div aria-live="polite" class="util_displayHiddenVisually">
|
|
@@ -7098,9 +8526,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7098
8526
|
`;
|
|
7099
8527
|
}
|
|
7100
8528
|
|
|
8529
|
+
/**
|
|
8530
|
+
* Returns HTML for the hidden HTML5 select.
|
|
8531
|
+
* @private
|
|
8532
|
+
* @returns {html} - Returns HTML for the hidden HTML5 select.
|
|
8533
|
+
*/
|
|
7101
8534
|
renderNativeSelect() {
|
|
7102
8535
|
return html`
|
|
7103
|
-
<div class="nativeSelectWrapper">
|
|
8536
|
+
<div class="nativeSelectWrapper util_displayHidden">
|
|
7104
8537
|
<select
|
|
7105
8538
|
tabindex="-1"
|
|
7106
8539
|
id="${`native-select-${this.id || this.uniqueId}`}"
|
|
@@ -7137,14 +8570,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7137
8570
|
? html`
|
|
7138
8571
|
<${this.helpTextTag} ?onDark="${this.onDark}">
|
|
7139
8572
|
<p id="${this.uniqueId}" part="helpText">
|
|
7140
|
-
<slot name="
|
|
8573
|
+
<slot name="helpText"></slot>
|
|
7141
8574
|
</p>
|
|
7142
8575
|
</${this.helpTextTag}>
|
|
7143
8576
|
`
|
|
7144
8577
|
: html`
|
|
7145
8578
|
<${this.helpTextTag} error ?onDark="${this.onDark}">
|
|
7146
8579
|
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
7147
|
-
|
|
8580
|
+
${this.errorMessage}
|
|
7148
8581
|
</p>
|
|
7149
8582
|
</${this.helpTextTag}>
|
|
7150
8583
|
`
|
|
@@ -7157,23 +8590,22 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7157
8590
|
* @private
|
|
7158
8591
|
* @returns {import("lit").TemplateResult} - Returns HTML for the emphasized layout.
|
|
7159
8592
|
*/
|
|
7160
|
-
// TODO update to use util class
|
|
7161
8593
|
renderLayoutEmphasized() {
|
|
7162
8594
|
const placeholderClass = {
|
|
7163
|
-
|
|
8595
|
+
'util_displayHidden': this.value
|
|
7164
8596
|
};
|
|
7165
8597
|
|
|
7166
8598
|
const displayValueClasses = {
|
|
7167
8599
|
'displayValue': true,
|
|
7168
8600
|
'hasContent': this.hasDisplayValueContent,
|
|
7169
|
-
'hasFocus': this.
|
|
7170
|
-
'withValue': this.value && this.value.length > 0,
|
|
8601
|
+
'hasFocus': this.isPopoverVisible,
|
|
8602
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7171
8603
|
'force': this.forceDisplayValue,
|
|
7172
8604
|
};
|
|
7173
8605
|
|
|
7174
8606
|
const valueContainerClasses = {
|
|
7175
8607
|
'valueContainer': true,
|
|
7176
|
-
'util_displayHiddenVisually':
|
|
8608
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
7177
8609
|
};
|
|
7178
8610
|
|
|
7179
8611
|
return html`
|
|
@@ -7184,16 +8616,16 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7184
8616
|
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
7185
8617
|
</div>
|
|
7186
8618
|
<${this.dropdownTag}
|
|
8619
|
+
a11yRole="select"
|
|
7187
8620
|
?autoPlacement="${this.autoPlacement}"
|
|
7188
8621
|
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7189
|
-
?matchWidth="${
|
|
8622
|
+
?matchWidth="${this.matchWidth}"
|
|
7190
8623
|
?noFlip="${this.noFlip}"
|
|
7191
8624
|
?onDark="${this.onDark}"
|
|
7192
8625
|
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7193
8626
|
.offset="${this.offset}"
|
|
7194
8627
|
.placement="${this.placement}"
|
|
7195
8628
|
chevron
|
|
7196
|
-
fluid
|
|
7197
8629
|
for="selectMenu"
|
|
7198
8630
|
layout="${this.layout}"
|
|
7199
8631
|
part="dropdown"
|
|
@@ -7205,15 +8637,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7205
8637
|
</div>
|
|
7206
8638
|
<div class="mainContent">
|
|
7207
8639
|
<div class="${classMap(valueContainerClasses)}">
|
|
7208
|
-
<label>
|
|
8640
|
+
<label class="${classMap(this.commonLabelClasses)}">
|
|
7209
8641
|
<slot name="label"></slot>
|
|
8642
|
+
${this.required ? undefined : html`<slot name="optionalLabel"> (optional)</slot>`}
|
|
7210
8643
|
</label>
|
|
7211
8644
|
<div class="value" id="value"></div>
|
|
7212
|
-
${
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
</div>
|
|
7216
|
-
`}
|
|
8645
|
+
<div id="placeholder" class="${classMap(placeholderClass)}">
|
|
8646
|
+
${this.placeholder}
|
|
8647
|
+
</div>
|
|
7217
8648
|
</div>
|
|
7218
8649
|
<div class="${classMap(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
7219
8650
|
<slot name="displayValue"></slot>
|
|
@@ -7240,20 +8671,20 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7240
8671
|
*/
|
|
7241
8672
|
renderLayoutSnowflake() {
|
|
7242
8673
|
const placeholderClass = {
|
|
7243
|
-
|
|
8674
|
+
'util_displayHidden': this.value
|
|
7244
8675
|
};
|
|
7245
8676
|
|
|
7246
8677
|
const displayValueClasses = {
|
|
7247
8678
|
'displayValue': true,
|
|
7248
8679
|
'hasContent': this.hasDisplayValueContent,
|
|
7249
|
-
'hasFocus': this.
|
|
7250
|
-
'withValue': this.value && this.value.length > 0,
|
|
8680
|
+
'hasFocus': this.isPopoverVisible,
|
|
8681
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7251
8682
|
'force': this.forceDisplayValue,
|
|
7252
8683
|
};
|
|
7253
8684
|
|
|
7254
8685
|
const valueContainerClasses = {
|
|
7255
8686
|
'valueContainer': true,
|
|
7256
|
-
'util_displayHiddenVisually': (this.forceDisplayValue || !this.
|
|
8687
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
7257
8688
|
};
|
|
7258
8689
|
|
|
7259
8690
|
return html`
|
|
@@ -7266,14 +8697,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7266
8697
|
<${this.dropdownTag}
|
|
7267
8698
|
?autoPlacement="${this.autoPlacement}"
|
|
7268
8699
|
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7269
|
-
?matchWidth="${
|
|
8700
|
+
?matchWidth="${this.matchWidth}"
|
|
7270
8701
|
?noFlip="${this.noFlip}"
|
|
7271
8702
|
?onDark="${this.onDark}"
|
|
7272
8703
|
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7273
8704
|
.offset="${this.offset}"
|
|
7274
8705
|
.placement="${this.placement}"
|
|
7275
8706
|
chevron
|
|
7276
|
-
fluid
|
|
7277
8707
|
for="selectMenu"
|
|
7278
8708
|
layout="${this.layout}"
|
|
7279
8709
|
part="dropdown"
|
|
@@ -7285,15 +8715,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7285
8715
|
</div>
|
|
7286
8716
|
<div class="mainContent">
|
|
7287
8717
|
<div class="${classMap(valueContainerClasses)}">
|
|
7288
|
-
<label>
|
|
8718
|
+
<label class="${classMap(this.commonLabelClasses)}">
|
|
7289
8719
|
<slot name="label"></slot>
|
|
8720
|
+
${this.required ? undefined : html`<slot name="optionalLabel"> (optional)</slot>`}
|
|
7290
8721
|
</label>
|
|
7291
8722
|
<div class="value" id="value"></div>
|
|
7292
|
-
${
|
|
7293
|
-
|
|
7294
|
-
|
|
7295
|
-
</div>
|
|
7296
|
-
`}
|
|
8723
|
+
<div id="placeholder" class="${classMap(placeholderClass)}">
|
|
8724
|
+
${this.placeholder}
|
|
8725
|
+
</div>
|
|
7297
8726
|
</div>
|
|
7298
8727
|
<div class="${classMap(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
7299
8728
|
<slot name="displayValue"></slot>
|
|
@@ -7309,6 +8738,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7309
8738
|
${this.renderHtmlHelpText()}
|
|
7310
8739
|
</div>
|
|
7311
8740
|
</${this.dropdownTag}>
|
|
8741
|
+
${this.renderNativeSelect()}
|
|
7312
8742
|
</div>
|
|
7313
8743
|
`;
|
|
7314
8744
|
}
|
|
@@ -7319,11 +8749,75 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7319
8749
|
* @returns {import("lit").TemplateResult} - Returns HTML for the classic layout.
|
|
7320
8750
|
*/
|
|
7321
8751
|
renderLayoutClassic() {
|
|
8752
|
+
const placeholderClass = {
|
|
8753
|
+
'util_displayHidden': this.value
|
|
8754
|
+
};
|
|
8755
|
+
|
|
8756
|
+
const displayValueClasses = {
|
|
8757
|
+
'displayValue': true,
|
|
8758
|
+
'hasContent': this.hasDisplayValueContent,
|
|
8759
|
+
'hasFocus': this.isPopoverVisible,
|
|
8760
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
8761
|
+
'force': this.forceDisplayValue,
|
|
8762
|
+
};
|
|
8763
|
+
|
|
8764
|
+
const valueContainerClasses = {
|
|
8765
|
+
'valueContainer': true,
|
|
8766
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
8767
|
+
};
|
|
8768
|
+
|
|
7322
8769
|
return html`
|
|
7323
8770
|
<div
|
|
7324
|
-
class="${classMap(this.commonWrapperClasses)}
|
|
8771
|
+
class="${classMap(this.commonWrapperClasses)}"
|
|
7325
8772
|
part="wrapper">
|
|
7326
|
-
|
|
8773
|
+
<div id="slotHolder" aria-hidden="true">
|
|
8774
|
+
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
8775
|
+
</div>
|
|
8776
|
+
<${this.dropdownTag}
|
|
8777
|
+
?autoPlacement="${this.autoPlacement}"
|
|
8778
|
+
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
8779
|
+
?matchWidth="${!this.flexMenuWidth}"
|
|
8780
|
+
?noFlip="${this.noFlip}"
|
|
8781
|
+
?onDark="${this.onDark}"
|
|
8782
|
+
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
8783
|
+
.offset="${this.offset}"
|
|
8784
|
+
.placement="${this.placement}"
|
|
8785
|
+
chevron
|
|
8786
|
+
for="selectMenu"
|
|
8787
|
+
layout="${this.layout}"
|
|
8788
|
+
part="dropdown"
|
|
8789
|
+
shape="${this.shape}"
|
|
8790
|
+
size="${this.size}">
|
|
8791
|
+
<div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
|
|
8792
|
+
<div class="accents left">
|
|
8793
|
+
<slot name="typeIcon"></slot>
|
|
8794
|
+
</div>
|
|
8795
|
+
<div class="mainContent">
|
|
8796
|
+
<div class="${classMap(valueContainerClasses)}">
|
|
8797
|
+
<label class="${classMap(this.commonLabelClasses)}">
|
|
8798
|
+
<slot name="label"></slot>
|
|
8799
|
+
${this.required ? undefined : html`<slot name="optionalLabel"> (optional)</slot>`}
|
|
8800
|
+
</label>
|
|
8801
|
+
<div class="value" id="value"></div>
|
|
8802
|
+
<div id="placeholder" class="${classMap(placeholderClass)}">
|
|
8803
|
+
${this.placeholder}
|
|
8804
|
+
</div>
|
|
8805
|
+
</div>
|
|
8806
|
+
<div class="${classMap(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
8807
|
+
<slot name="displayValue"></slot>
|
|
8808
|
+
</div>
|
|
8809
|
+
</div>
|
|
8810
|
+
<div class="accents right"></div>
|
|
8811
|
+
</div>
|
|
8812
|
+
<div class="menuWrapper"></div>
|
|
8813
|
+
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
8814
|
+
<slot></slot>
|
|
8815
|
+
</${this.bibtemplateTag}>
|
|
8816
|
+
<div slot="helpText">
|
|
8817
|
+
${this.renderHtmlHelpText()}
|
|
8818
|
+
</div>
|
|
8819
|
+
</${this.dropdownTag}>
|
|
8820
|
+
${this.renderNativeSelect()}
|
|
7327
8821
|
</div>
|
|
7328
8822
|
`;
|
|
7329
8823
|
}
|
|
@@ -7357,105 +8851,6 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7357
8851
|
|
|
7358
8852
|
// When using auroElement, use the following attribute and function when hiding content from screen readers.
|
|
7359
8853
|
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
7360
|
-
|
|
7361
|
-
// function that renders the HTML and CSS into the scope of the component
|
|
7362
|
-
renderBACKUP() {
|
|
7363
|
-
const placeholderClass = {
|
|
7364
|
-
hidden: this.value,
|
|
7365
|
-
};
|
|
7366
|
-
|
|
7367
|
-
return html`
|
|
7368
|
-
<div class="outerWrapper">
|
|
7369
|
-
<div aria-live="polite" class="util_displayHiddenVisually">
|
|
7370
|
-
${this.optionActive && this.options.length > 0
|
|
7371
|
-
? html`
|
|
7372
|
-
${`${this.optionActive.innerText}, option ${this.options.indexOf(this.optionActive) + 1} of ${this.options.length}`}
|
|
7373
|
-
`
|
|
7374
|
-
: undefined
|
|
7375
|
-
};
|
|
7376
|
-
|
|
7377
|
-
${this.optionSelected && this.options.length > 0
|
|
7378
|
-
? html`
|
|
7379
|
-
${`${this.optionSelected.innerText} selected`}
|
|
7380
|
-
`
|
|
7381
|
-
: undefined
|
|
7382
|
-
};
|
|
7383
|
-
</div>
|
|
7384
|
-
<div id="slotHolder" aria-hidden="true">
|
|
7385
|
-
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
7386
|
-
</div>
|
|
7387
|
-
<${this.dropdownTag}
|
|
7388
|
-
?autoPlacement="${this.autoPlacement}"
|
|
7389
|
-
?disabled="${this.disabled}"
|
|
7390
|
-
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7391
|
-
?matchWidth="${!this.flexMenuWidth}"
|
|
7392
|
-
?noFlip="${this.noFlip}"
|
|
7393
|
-
?onDark="${this.onDark}"
|
|
7394
|
-
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7395
|
-
.offset="${this.offset}"
|
|
7396
|
-
.placement="${this.placement}"
|
|
7397
|
-
chevron
|
|
7398
|
-
fluid
|
|
7399
|
-
for="selectMenu"
|
|
7400
|
-
layout="${this.layout}"
|
|
7401
|
-
part="dropdown"
|
|
7402
|
-
shape="${this.shape}"
|
|
7403
|
-
size="${this.size}">
|
|
7404
|
-
<span slot="trigger" aria-haspopup="true" id="triggerFocus">
|
|
7405
|
-
<span id="placeholder"
|
|
7406
|
-
class="${classMap(placeholderClass)}"
|
|
7407
|
-
?aria-hidden="${this.optionSelected && this.optionSelected.length ? 'true' : false}"
|
|
7408
|
-
>
|
|
7409
|
-
<slot name="placeholder"></slot>
|
|
7410
|
-
</span>
|
|
7411
|
-
<slot name="valueText" id="valueText"></slot>
|
|
7412
|
-
</span>
|
|
7413
|
-
|
|
7414
|
-
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
7415
|
-
<slot></slot>
|
|
7416
|
-
</${this.bibtemplateTag}>
|
|
7417
|
-
<slot name="label" slot="label"></slot>
|
|
7418
|
-
<p slot="helpText">
|
|
7419
|
-
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
7420
|
-
? html`
|
|
7421
|
-
<span id="${this.uniqueId}" part="helpText">
|
|
7422
|
-
<slot name="helpText"></slot>
|
|
7423
|
-
</span>`
|
|
7424
|
-
: html`
|
|
7425
|
-
<span id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
7426
|
-
${this.errorMessage}
|
|
7427
|
-
</span>`
|
|
7428
|
-
}
|
|
7429
|
-
</p>
|
|
7430
|
-
</${this.dropdownTag}>
|
|
7431
|
-
<div class="nativeSelectWrapper">
|
|
7432
|
-
<select
|
|
7433
|
-
tabindex="-1"
|
|
7434
|
-
id="${`native-select-${this.id || this.uniqueId}`}"
|
|
7435
|
-
name="${this.name || ''}"
|
|
7436
|
-
?disabled="${this.disabled}"
|
|
7437
|
-
?required="${this.required}"
|
|
7438
|
-
aria-hidden="true"
|
|
7439
|
-
autocomplete="${ifDefined$1(this.autocomplete)}"
|
|
7440
|
-
@change="${this._handleNativeSelectChange}">
|
|
7441
|
-
<option value="" ?selected="${!this.value}"></option>
|
|
7442
|
-
${this.options.map((option) => {
|
|
7443
|
-
const optionValue = option.value || option.textContent;
|
|
7444
|
-
return html`
|
|
7445
|
-
<option
|
|
7446
|
-
value="${optionValue}"
|
|
7447
|
-
?selected="${this.value === optionValue}">
|
|
7448
|
-
${option.textContent}
|
|
7449
|
-
</option>
|
|
7450
|
-
`;
|
|
7451
|
-
})}
|
|
7452
|
-
</select>
|
|
7453
|
-
</div>
|
|
7454
|
-
<!-- Help text and error message template -->
|
|
7455
|
-
${this.renderHtmlHelpText()}
|
|
7456
|
-
</div>
|
|
7457
|
-
`;
|
|
7458
|
-
}
|
|
7459
8854
|
}
|
|
7460
8855
|
|
|
7461
8856
|
export { AuroSelect };
|