@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.6 → 0.0.0-pr624.60
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 +49 -37
- package/components/checkbox/demo/index.html +16 -10
- package/components/checkbox/demo/index.md +2 -2
- package/components/checkbox/demo/index.min.js +49 -37
- 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 +49 -37
- package/components/checkbox/dist/registered.js +49 -37
- package/components/combobox/demo/api.html +16 -10
- package/components/combobox/demo/api.md +112 -8
- package/components/combobox/demo/api.min.js +2941 -851
- package/components/combobox/demo/index.html +16 -10
- package/components/combobox/demo/index.md +6 -30
- package/components/combobox/demo/index.min.js +2941 -851
- package/components/combobox/demo/readme.html +16 -9
- package/components/combobox/dist/auro-combobox.d.ts +37 -8
- package/components/combobox/dist/index.js +2730 -736
- package/components/combobox/dist/registered.js +2730 -736
- package/components/counter/demo/api.html +17 -10
- package/components/counter/demo/api.md +156 -21
- package/components/counter/demo/api.min.js +6696 -4097
- package/components/counter/demo/index.html +17 -10
- package/components/counter/demo/index.md +185 -34
- package/components/counter/demo/index.min.js +6696 -4097
- 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 +6696 -4097
- package/components/counter/dist/registered.js +6696 -4097
- package/components/datepicker/demo/api.html +16 -10
- package/components/datepicker/demo/api.md +24 -16
- package/components/datepicker/demo/api.min.js +11749 -8230
- package/components/datepicker/demo/index.html +16 -10
- package/components/datepicker/demo/index.md +71 -4
- package/components/datepicker/demo/index.min.js +11749 -8230
- package/components/datepicker/demo/readme.html +16 -9
- package/components/datepicker/dist/auro-datepicker.d.ts +84 -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 +6531 -3012
- package/components/datepicker/dist/popoverVersion.d.ts +1 -1
- package/components/datepicker/dist/registered.js +6531 -3012
- 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 +226 -129
- package/components/input/demo/api.min.js +828 -234
- package/components/input/demo/index.html +16 -10
- package/components/input/demo/index.md +48 -32
- package/components/input/demo/index.min.js +828 -234
- 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 +33 -9
- package/components/input/dist/buttonVersion.d.ts +1 -1
- package/components/input/dist/iconVersion.d.ts +1 -1
- package/components/input/dist/index.js +828 -234
- package/components/input/dist/registered.js +828 -234
- 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 +72 -85
- package/components/radio/demo/index.html +16 -10
- package/components/radio/demo/index.min.js +72 -85
- 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 +72 -85
- package/components/radio/dist/registered.js +72 -85
- 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 +2107 -639
- package/components/select/demo/index.html +16 -11
- package/components/select/demo/index.md +45 -158
- package/components/select/demo/index.min.js +2104 -624
- package/components/select/demo/readme.html +16 -9
- package/components/select/dist/auro-select.d.ts +57 -16
- package/components/select/dist/index.js +2028 -644
- package/components/select/dist/registered.js +2028 -644
- 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
|
@@ -44,7 +44,7 @@ const t={ATTRIBUTE:1},e$1=t=>(...e)=>({_$litDirective$:t,values:e});let i$1 = cl
|
|
|
44
44
|
*/
|
|
45
45
|
const a=Symbol.for(""),o$1=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=false;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$1(i));)c+=s+r[++$],f=true;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u;}return t(r,...e)},u=n(x);
|
|
46
46
|
|
|
47
|
-
let AuroElement$
|
|
47
|
+
let AuroElement$4 = class AuroElement extends i$2 {
|
|
48
48
|
static get properties() {
|
|
49
49
|
return {
|
|
50
50
|
|
|
@@ -79,18 +79,21 @@ let AuroElement$3 = class AuroElement extends i$2 {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
resetShapeClasses() {
|
|
82
|
-
|
|
83
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
82
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
if (wrapper) {
|
|
85
|
+
wrapper.classList.forEach((className) => {
|
|
86
|
+
if (className.startsWith('shape-')) {
|
|
87
|
+
wrapper.classList.remove(className);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
91
90
|
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (this.shape && this.size) {
|
|
94
|
+
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
95
|
+
} else {
|
|
96
|
+
wrapper.classList.add('shape-none');
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
|
|
@@ -136,9 +139,9 @@ let AuroElement$3 = class AuroElement extends i$2 {
|
|
|
136
139
|
}
|
|
137
140
|
};
|
|
138
141
|
|
|
139
|
-
var shapeSizeCss$1 = i$5`.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:
|
|
142
|
+
var shapeSizeCss$1 = i$5`.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}`;
|
|
140
143
|
|
|
141
|
-
var tokensCss$5 = i$5`: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-
|
|
144
|
+
var tokensCss$5 = i$5`: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}`;
|
|
142
145
|
|
|
143
146
|
class DateFormatter {
|
|
144
147
|
|
|
@@ -556,7 +559,7 @@ const {
|
|
|
556
559
|
|
|
557
560
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
558
561
|
|
|
559
|
-
let AuroLibraryRuntimeUtils$
|
|
562
|
+
let AuroLibraryRuntimeUtils$6 = class AuroLibraryRuntimeUtils {
|
|
560
563
|
|
|
561
564
|
/* eslint-disable jsdoc/require-param */
|
|
562
565
|
|
|
@@ -626,7 +629,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
|
|
|
626
629
|
class AuroFormValidation {
|
|
627
630
|
|
|
628
631
|
constructor() {
|
|
629
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
632
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
630
633
|
}
|
|
631
634
|
|
|
632
635
|
/**
|
|
@@ -686,19 +689,19 @@ class AuroFormValidation {
|
|
|
686
689
|
{
|
|
687
690
|
check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
|
|
688
691
|
validity: 'tooShort',
|
|
689
|
-
message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
|
|
692
|
+
message: e => e.getAttribute('setCustomValidityTooShort') || e.setCustomValidity || ''
|
|
690
693
|
},
|
|
691
694
|
{
|
|
692
695
|
check: (e) => e.value?.length > e.maxLength,
|
|
693
696
|
validity: 'tooLong',
|
|
694
|
-
message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
|
|
697
|
+
message: e => e.getAttribute('setCustomValidityTooLong') || e.setCustomValidity || ''
|
|
695
698
|
}
|
|
696
699
|
],
|
|
697
700
|
pattern: [
|
|
698
701
|
{
|
|
699
702
|
check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
|
|
700
703
|
validity: 'patternMismatch',
|
|
701
|
-
message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
|
|
704
|
+
message: e => e.getAttribute('setCustomValidityPatternMismatch') || e.setCustomValidity || ''
|
|
702
705
|
}
|
|
703
706
|
]
|
|
704
707
|
},
|
|
@@ -893,10 +896,10 @@ class AuroFormValidation {
|
|
|
893
896
|
if (!hasValue && elem.required && elem.touched) {
|
|
894
897
|
elem.validity = 'valueMissing';
|
|
895
898
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
896
|
-
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
899
|
+
} else if (hasValue && this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
897
900
|
this.validateType(elem);
|
|
898
901
|
this.validateElementAttributes(elem);
|
|
899
|
-
} else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
|
|
902
|
+
} else if (hasValue && (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group'))) {
|
|
900
903
|
this.validateElementAttributes(elem);
|
|
901
904
|
}
|
|
902
905
|
}
|
|
@@ -905,7 +908,9 @@ class AuroFormValidation {
|
|
|
905
908
|
elem.validity = this.auroInputElements[0].validity;
|
|
906
909
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
907
910
|
|
|
908
|
-
|
|
911
|
+
// combobox has 2 inputs but no need to check validity on the 2nd one which is in fullscreen bib.
|
|
912
|
+
// combobox's 2nd input will have noValidate set true.
|
|
913
|
+
if (elem.validity === 'valid' && this.auroInputElements.length > 1 && !this.auroInputElements[1].noValidate) {
|
|
909
914
|
elem.validity = this.auroInputElements[1].validity;
|
|
910
915
|
elem.errorMessage = this.auroInputElements[1].errorMessage;
|
|
911
916
|
}
|
|
@@ -2717,7 +2722,7 @@ class AuroFloatingUI {
|
|
|
2717
2722
|
*/
|
|
2718
2723
|
mirrorSize() {
|
|
2719
2724
|
// mirror the boxsize from bibSizer
|
|
2720
|
-
if (this.element.bibSizer) {
|
|
2725
|
+
if (this.element.bibSizer && this.element.matchWidth) {
|
|
2721
2726
|
const sizerStyle = window.getComputedStyle(this.element.bibSizer);
|
|
2722
2727
|
const bibContent = this.element.bib.shadowRoot.querySelector(".container");
|
|
2723
2728
|
if (sizerStyle.width !== '0px') {
|
|
@@ -2929,13 +2934,13 @@ class AuroFloatingUI {
|
|
|
2929
2934
|
if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
|
|
2930
2935
|
return;
|
|
2931
2936
|
}
|
|
2932
|
-
|
|
2937
|
+
|
|
2933
2938
|
// if fullscreen bib is in fullscreen mode, do not close
|
|
2934
2939
|
if (this.element.bib.hasAttribute('isfullscreen')) {
|
|
2935
2940
|
return;
|
|
2936
2941
|
}
|
|
2937
2942
|
|
|
2938
|
-
this.hideBib();
|
|
2943
|
+
this.hideBib("keydown");
|
|
2939
2944
|
}
|
|
2940
2945
|
|
|
2941
2946
|
setupHideHandlers() {
|
|
@@ -2960,7 +2965,7 @@ class AuroFloatingUI {
|
|
|
2960
2965
|
document.expandedAuroFormkitDropdown = null;
|
|
2961
2966
|
document.expandedAuroFloater = this;
|
|
2962
2967
|
} else {
|
|
2963
|
-
this.hideBib();
|
|
2968
|
+
this.hideBib("click");
|
|
2964
2969
|
}
|
|
2965
2970
|
}
|
|
2966
2971
|
};
|
|
@@ -2973,7 +2978,7 @@ class AuroFloatingUI {
|
|
|
2973
2978
|
// if something else is open, let it handle itself
|
|
2974
2979
|
return;
|
|
2975
2980
|
}
|
|
2976
|
-
this.hideBib();
|
|
2981
|
+
this.hideBib("keydown");
|
|
2977
2982
|
}
|
|
2978
2983
|
};
|
|
2979
2984
|
|
|
@@ -3056,7 +3061,11 @@ class AuroFloatingUI {
|
|
|
3056
3061
|
}
|
|
3057
3062
|
}
|
|
3058
3063
|
|
|
3059
|
-
|
|
3064
|
+
/**
|
|
3065
|
+
* Hides the floating UI element.
|
|
3066
|
+
* @param {String} eventType - The event type that triggered the hiding action.
|
|
3067
|
+
*/
|
|
3068
|
+
hideBib(eventType = "unknown") {
|
|
3060
3069
|
if (!this.element.disabled && !this.element.noToggle) {
|
|
3061
3070
|
this.lockScroll(false);
|
|
3062
3071
|
this.element.triggerChevron?.removeAttribute('data-expanded');
|
|
@@ -3067,7 +3076,7 @@ class AuroFloatingUI {
|
|
|
3067
3076
|
if (this.showing) {
|
|
3068
3077
|
this.cleanupHideHandlers();
|
|
3069
3078
|
this.showing = false;
|
|
3070
|
-
this.dispatchEventDropdownToggle();
|
|
3079
|
+
this.dispatchEventDropdownToggle(eventType);
|
|
3071
3080
|
}
|
|
3072
3081
|
}
|
|
3073
3082
|
document.expandedAuroFloater = null;
|
|
@@ -3076,11 +3085,13 @@ class AuroFloatingUI {
|
|
|
3076
3085
|
/**
|
|
3077
3086
|
* @private
|
|
3078
3087
|
* @returns {void} Dispatches event with an object showing the state of the dropdown.
|
|
3088
|
+
* @param {String} eventType - The event type that triggered the toggle action.
|
|
3079
3089
|
*/
|
|
3080
|
-
dispatchEventDropdownToggle() {
|
|
3090
|
+
dispatchEventDropdownToggle(eventType) {
|
|
3081
3091
|
const event = new CustomEvent(this.eventPrefix ? `${this.eventPrefix}-toggled` : 'toggled', {
|
|
3082
3092
|
detail: {
|
|
3083
3093
|
expanded: this.showing,
|
|
3094
|
+
eventType: eventType || "unknown",
|
|
3084
3095
|
},
|
|
3085
3096
|
composed: true
|
|
3086
3097
|
});
|
|
@@ -3090,7 +3101,7 @@ class AuroFloatingUI {
|
|
|
3090
3101
|
|
|
3091
3102
|
handleClick() {
|
|
3092
3103
|
if (this.element.isPopoverVisible) {
|
|
3093
|
-
this.hideBib();
|
|
3104
|
+
this.hideBib("click");
|
|
3094
3105
|
} else {
|
|
3095
3106
|
this.showBib();
|
|
3096
3107
|
}
|
|
@@ -3113,8 +3124,9 @@ class AuroFloatingUI {
|
|
|
3113
3124
|
// Space is included as it's expected behavior for interactive elements
|
|
3114
3125
|
|
|
3115
3126
|
const origin = event.composedPath()[0];
|
|
3116
|
-
if (event.key === 'Enter' || (
|
|
3117
|
-
|
|
3127
|
+
if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
|
|
3128
|
+
|
|
3129
|
+
event.preventDefault();
|
|
3118
3130
|
this.handleClick();
|
|
3119
3131
|
}
|
|
3120
3132
|
break;
|
|
@@ -3125,7 +3137,7 @@ class AuroFloatingUI {
|
|
|
3125
3137
|
break;
|
|
3126
3138
|
case 'mouseleave':
|
|
3127
3139
|
if (this.element.hoverToggle) {
|
|
3128
|
-
this.hideBib();
|
|
3140
|
+
this.hideBib("mouseleave");
|
|
3129
3141
|
}
|
|
3130
3142
|
break;
|
|
3131
3143
|
case 'focus':
|
|
@@ -3268,6 +3280,267 @@ class AuroFloatingUI {
|
|
|
3268
3280
|
}
|
|
3269
3281
|
}
|
|
3270
3282
|
|
|
3283
|
+
// Selectors for focusable elements
|
|
3284
|
+
const FOCUSABLE_SELECTORS = [
|
|
3285
|
+
'a[href]',
|
|
3286
|
+
'button:not([disabled])',
|
|
3287
|
+
'textarea:not([disabled])',
|
|
3288
|
+
'input:not([disabled])',
|
|
3289
|
+
'select:not([disabled])',
|
|
3290
|
+
'[role="tab"]:not([disabled])',
|
|
3291
|
+
'[role="link"]:not([disabled])',
|
|
3292
|
+
'[role="button"]:not([disabled])',
|
|
3293
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
3294
|
+
'[contenteditable]:not([contenteditable="false"])'
|
|
3295
|
+
];
|
|
3296
|
+
|
|
3297
|
+
// List of custom components that are known to be focusable
|
|
3298
|
+
const FOCUSABLE_COMPONENTS = [
|
|
3299
|
+
'auro-checkbox',
|
|
3300
|
+
'auro-radio',
|
|
3301
|
+
'auro-dropdown',
|
|
3302
|
+
'auro-button',
|
|
3303
|
+
'auro-combobox',
|
|
3304
|
+
'auro-input',
|
|
3305
|
+
'auro-counter',
|
|
3306
|
+
'auro-menu',
|
|
3307
|
+
'auro-select',
|
|
3308
|
+
'auro-datepicker',
|
|
3309
|
+
'auro-hyperlink',
|
|
3310
|
+
'auro-accordion',
|
|
3311
|
+
];
|
|
3312
|
+
|
|
3313
|
+
/**
|
|
3314
|
+
* Determines if a given element is a custom focusable component.
|
|
3315
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
3316
|
+
*
|
|
3317
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
3318
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
3319
|
+
*/
|
|
3320
|
+
function isFocusableComponent(element) {
|
|
3321
|
+
const componentName = element.tagName.toLowerCase();
|
|
3322
|
+
|
|
3323
|
+
// Guard Clause: Element is a focusable component
|
|
3324
|
+
if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
|
|
3325
|
+
|
|
3326
|
+
// Guard Clause: Element is not disabled
|
|
3327
|
+
if (element.hasAttribute('disabled')) return false;
|
|
3328
|
+
|
|
3329
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
3330
|
+
if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
|
|
3331
|
+
|
|
3332
|
+
// If all guard clauses pass, the element is a focusable component
|
|
3333
|
+
return true;
|
|
3334
|
+
}
|
|
3335
|
+
|
|
3336
|
+
/**
|
|
3337
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3338
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3339
|
+
*
|
|
3340
|
+
* @param {HTMLElement} container The container to search within
|
|
3341
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3342
|
+
*/
|
|
3343
|
+
function getFocusableElements(container) {
|
|
3344
|
+
// Get elements in DOM order by walking the tree
|
|
3345
|
+
const orderedFocusableElements = [];
|
|
3346
|
+
|
|
3347
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
3348
|
+
const collectFocusableElements = (root) => {
|
|
3349
|
+
// Check if current element is focusable
|
|
3350
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
3351
|
+
// Check if this is a custom component that is focusable
|
|
3352
|
+
const isComponentFocusable = isFocusableComponent(root);
|
|
3353
|
+
|
|
3354
|
+
if (isComponentFocusable) {
|
|
3355
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
3356
|
+
orderedFocusableElements.push(root);
|
|
3357
|
+
return; // Skip traversing inside this component
|
|
3358
|
+
}
|
|
3359
|
+
|
|
3360
|
+
// Check if the element itself matches any selector
|
|
3361
|
+
for (const selector of FOCUSABLE_SELECTORS) {
|
|
3362
|
+
if (root.matches?.(selector)) {
|
|
3363
|
+
orderedFocusableElements.push(root);
|
|
3364
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
3365
|
+
}
|
|
3366
|
+
}
|
|
3367
|
+
|
|
3368
|
+
// Process shadow DOM only for non-Auro components
|
|
3369
|
+
if (root.shadowRoot) {
|
|
3370
|
+
// Process shadow DOM children in order
|
|
3371
|
+
if (root.shadowRoot.children) {
|
|
3372
|
+
Array.from(root.shadowRoot.children).forEach(child => {
|
|
3373
|
+
collectFocusableElements(child);
|
|
3374
|
+
});
|
|
3375
|
+
}
|
|
3376
|
+
}
|
|
3377
|
+
|
|
3378
|
+
// Process slots and their assigned nodes in order
|
|
3379
|
+
if (root.tagName === 'SLOT') {
|
|
3380
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
3381
|
+
for (const node of assignedNodes) {
|
|
3382
|
+
collectFocusableElements(node);
|
|
3383
|
+
}
|
|
3384
|
+
} else {
|
|
3385
|
+
// Process light DOM children in order
|
|
3386
|
+
if (root.children) {
|
|
3387
|
+
Array.from(root.children).forEach(child => {
|
|
3388
|
+
collectFocusableElements(child);
|
|
3389
|
+
});
|
|
3390
|
+
}
|
|
3391
|
+
}
|
|
3392
|
+
}
|
|
3393
|
+
};
|
|
3394
|
+
|
|
3395
|
+
// Start the traversal from the container
|
|
3396
|
+
collectFocusableElements(container);
|
|
3397
|
+
|
|
3398
|
+
// Remove duplicates that might have been collected through different paths
|
|
3399
|
+
// while preserving order
|
|
3400
|
+
const uniqueElements = [];
|
|
3401
|
+
const seen = new Set();
|
|
3402
|
+
|
|
3403
|
+
for (const element of orderedFocusableElements) {
|
|
3404
|
+
if (!seen.has(element)) {
|
|
3405
|
+
seen.add(element);
|
|
3406
|
+
uniqueElements.push(element);
|
|
3407
|
+
}
|
|
3408
|
+
}
|
|
3409
|
+
|
|
3410
|
+
return uniqueElements;
|
|
3411
|
+
}
|
|
3412
|
+
|
|
3413
|
+
/**
|
|
3414
|
+
* FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
|
|
3415
|
+
* It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
|
|
3416
|
+
*/
|
|
3417
|
+
class FocusTrap {
|
|
3418
|
+
/**
|
|
3419
|
+
* Creates a new FocusTrap instance for the given container element.
|
|
3420
|
+
* Initializes event listeners and prepares the container for focus management.
|
|
3421
|
+
*
|
|
3422
|
+
* @param {HTMLElement} container The DOM element to trap focus within.
|
|
3423
|
+
* @throws {Error} If the provided container is not a valid HTMLElement.
|
|
3424
|
+
*/
|
|
3425
|
+
constructor(container) {
|
|
3426
|
+
if (!container || !(container instanceof HTMLElement)) {
|
|
3427
|
+
throw new Error("FocusTrap requires a valid HTMLElement.");
|
|
3428
|
+
}
|
|
3429
|
+
|
|
3430
|
+
this.container = container;
|
|
3431
|
+
this.tabDirection = 'forward'; // or 'backward'
|
|
3432
|
+
|
|
3433
|
+
this._init();
|
|
3434
|
+
}
|
|
3435
|
+
|
|
3436
|
+
/**
|
|
3437
|
+
* Initializes the focus trap by setting up event listeners and attributes on the container.
|
|
3438
|
+
* Prepares the container for focus management, including support for shadow DOM and inert attributes.
|
|
3439
|
+
*
|
|
3440
|
+
* @private
|
|
3441
|
+
*/
|
|
3442
|
+
_init() {
|
|
3443
|
+
|
|
3444
|
+
// Add inert attribute to prevent focusing programmatically as well (if supported)
|
|
3445
|
+
if ('inert' in HTMLElement.prototype) {
|
|
3446
|
+
this.container.inert = false; // Ensure the container isn't inert
|
|
3447
|
+
this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
|
|
3448
|
+
}
|
|
3449
|
+
|
|
3450
|
+
// Track tab direction
|
|
3451
|
+
this.container.addEventListener('keydown', this._onKeydown);
|
|
3452
|
+
}
|
|
3453
|
+
|
|
3454
|
+
/**
|
|
3455
|
+
* Handles keydown events to manage tab navigation within the container.
|
|
3456
|
+
* Ensures that focus wraps around when reaching the first or last focusable element.
|
|
3457
|
+
*
|
|
3458
|
+
* @param {KeyboardEvent} e The keyboard event triggered by user interaction.
|
|
3459
|
+
* @private
|
|
3460
|
+
*/
|
|
3461
|
+
_onKeydown = (e) => {
|
|
3462
|
+
|
|
3463
|
+
if (e.key === 'Tab') {
|
|
3464
|
+
|
|
3465
|
+
// Set the tab direction based on the key pressed
|
|
3466
|
+
this.tabDirection = e.shiftKey ? 'backward' : 'forward';
|
|
3467
|
+
|
|
3468
|
+
// Get the active element(s) in the document and shadow root
|
|
3469
|
+
// This will include the active element in the shadow DOM if it exists
|
|
3470
|
+
// Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
|
|
3471
|
+
let activeElement = document.activeElement;
|
|
3472
|
+
const actives = [activeElement];
|
|
3473
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
3474
|
+
actives.push(activeElement.shadowRoot.activeElement);
|
|
3475
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
3476
|
+
}
|
|
3477
|
+
|
|
3478
|
+
// Update the focusable elements
|
|
3479
|
+
const focusables = this._getFocusableElements();
|
|
3480
|
+
|
|
3481
|
+
// If we're at either end of the focusable elements, wrap around to the other end
|
|
3482
|
+
const focusIndex =
|
|
3483
|
+
(actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
|
|
3484
|
+
? focusables.length - 1
|
|
3485
|
+
: actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
|
|
3486
|
+
? 0
|
|
3487
|
+
: null;
|
|
3488
|
+
|
|
3489
|
+
if (focusIndex !== null) {
|
|
3490
|
+
focusables[focusIndex].focus();
|
|
3491
|
+
e.preventDefault(); // Prevent default tab behavior
|
|
3492
|
+
e.stopPropagation(); // Stop the event from bubbling up
|
|
3493
|
+
}
|
|
3494
|
+
}
|
|
3495
|
+
};
|
|
3496
|
+
|
|
3497
|
+
/**
|
|
3498
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3499
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3500
|
+
*
|
|
3501
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3502
|
+
* @private
|
|
3503
|
+
*/
|
|
3504
|
+
_getFocusableElements() {
|
|
3505
|
+
// Use the imported utility function to get focusable elements
|
|
3506
|
+
const elements = getFocusableElements(this.container);
|
|
3507
|
+
|
|
3508
|
+
// Filter out any elements with the 'focus-bookend' class
|
|
3509
|
+
return elements;
|
|
3510
|
+
}
|
|
3511
|
+
|
|
3512
|
+
/**
|
|
3513
|
+
* Moves focus to the first focusable element within the container.
|
|
3514
|
+
* Useful for setting initial focus when activating the focus trap.
|
|
3515
|
+
*/
|
|
3516
|
+
focusFirstElement() {
|
|
3517
|
+
const focusables = this._getFocusableElements();
|
|
3518
|
+
if (focusables.length) focusables[0].focus();
|
|
3519
|
+
}
|
|
3520
|
+
|
|
3521
|
+
/**
|
|
3522
|
+
* Moves focus to the last focusable element within the container.
|
|
3523
|
+
* Useful for setting focus when deactivating or cycling focus in reverse.
|
|
3524
|
+
*/
|
|
3525
|
+
focusLastElement() {
|
|
3526
|
+
const focusables = this._getFocusableElements();
|
|
3527
|
+
if (focusables.length) focusables[focusables.length - 1].focus();
|
|
3528
|
+
}
|
|
3529
|
+
|
|
3530
|
+
/**
|
|
3531
|
+
* Removes event listeners and attributes added by the focus trap.
|
|
3532
|
+
* Call this method to clean up when the focus trap is no longer needed.
|
|
3533
|
+
*/
|
|
3534
|
+
disconnect() {
|
|
3535
|
+
|
|
3536
|
+
if (this.container.hasAttribute('data-focus-trap-container')) {
|
|
3537
|
+
this.container.removeAttribute('data-focus-trap-container');
|
|
3538
|
+
}
|
|
3539
|
+
|
|
3540
|
+
this.container.removeEventListener('keydown', this._onKeydown);
|
|
3541
|
+
}
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3271
3544
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3272
3545
|
// See LICENSE in the project root for license information.
|
|
3273
3546
|
|
|
@@ -3458,9 +3731,9 @@ let BaseIcon$2 = class BaseIcon extends AuroElement$1$1 {
|
|
|
3458
3731
|
}
|
|
3459
3732
|
};
|
|
3460
3733
|
|
|
3461
|
-
var tokensCss$2$
|
|
3734
|
+
var tokensCss$2$2 = i$5`: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)}`;
|
|
3462
3735
|
|
|
3463
|
-
var colorCss$3$
|
|
3736
|
+
var colorCss$3$2 = i$5`: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)}`;
|
|
3464
3737
|
|
|
3465
3738
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3466
3739
|
// See LICENSE in the project root for license information.
|
|
@@ -3618,9 +3891,9 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3618
3891
|
static get styles() {
|
|
3619
3892
|
return [
|
|
3620
3893
|
super.styles,
|
|
3621
|
-
i$5`${tokensCss$2$
|
|
3894
|
+
i$5`${tokensCss$2$2}`,
|
|
3622
3895
|
i$5`${styleCss$2$2}`,
|
|
3623
|
-
i$5`${colorCss$3$
|
|
3896
|
+
i$5`${colorCss$3$2}`
|
|
3624
3897
|
];
|
|
3625
3898
|
}
|
|
3626
3899
|
|
|
@@ -3654,8 +3927,12 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3654
3927
|
async firstUpdated() {
|
|
3655
3928
|
await super.firstUpdated();
|
|
3656
3929
|
|
|
3657
|
-
|
|
3658
|
-
|
|
3930
|
+
/**
|
|
3931
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
3932
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
3933
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
3934
|
+
*/
|
|
3935
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
3659
3936
|
const svgDesc = this.svg.querySelector('desc');
|
|
3660
3937
|
|
|
3661
3938
|
if (svgDesc) {
|
|
@@ -3701,11 +3978,11 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3701
3978
|
|
|
3702
3979
|
var iconVersion$2 = '6.1.2';
|
|
3703
3980
|
|
|
3704
|
-
var styleCss$1$2 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}.container{
|
|
3981
|
+
var styleCss$1$2 = i$5`: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}`;
|
|
3705
3982
|
|
|
3706
|
-
var colorCss$2$
|
|
3983
|
+
var colorCss$2$2 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
3707
3984
|
|
|
3708
|
-
var tokensCss$1$
|
|
3985
|
+
var tokensCss$1$2 = i$5`: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)}`;
|
|
3709
3986
|
|
|
3710
3987
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
3711
3988
|
// See LICENSE in the project root for license information.
|
|
@@ -3726,7 +4003,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
|
|
|
3726
4003
|
*/
|
|
3727
4004
|
|
|
3728
4005
|
class AuroDropdownBib extends i$2 {
|
|
3729
|
-
|
|
4006
|
+
// not extending AuroElement because Bib needs only `shape` prop
|
|
3730
4007
|
constructor() {
|
|
3731
4008
|
super();
|
|
3732
4009
|
|
|
@@ -3736,13 +4013,16 @@ class AuroDropdownBib extends i$2 {
|
|
|
3736
4013
|
this._mobileBreakpointValue = undefined;
|
|
3737
4014
|
|
|
3738
4015
|
AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
|
|
4016
|
+
|
|
4017
|
+
this.shape = "rounded";
|
|
4018
|
+
this.matchWidth = false;
|
|
3739
4019
|
}
|
|
3740
4020
|
|
|
3741
4021
|
static get styles() {
|
|
3742
4022
|
return [
|
|
3743
4023
|
styleCss$1$2,
|
|
3744
|
-
colorCss$2$
|
|
3745
|
-
tokensCss$1$
|
|
4024
|
+
colorCss$2$2,
|
|
4025
|
+
tokensCss$1$2
|
|
3746
4026
|
];
|
|
3747
4027
|
}
|
|
3748
4028
|
|
|
@@ -3773,6 +4053,15 @@ class AuroDropdownBib extends i$2 {
|
|
|
3773
4053
|
reflect: true
|
|
3774
4054
|
},
|
|
3775
4055
|
|
|
4056
|
+
/**
|
|
4057
|
+
* If declared, the bib width will match the trigger width.
|
|
4058
|
+
* @private
|
|
4059
|
+
*/
|
|
4060
|
+
matchWidth: {
|
|
4061
|
+
type: Boolean,
|
|
4062
|
+
reflect: true
|
|
4063
|
+
},
|
|
4064
|
+
|
|
3776
4065
|
/**
|
|
3777
4066
|
* If declared, will apply border-radius to the bib.
|
|
3778
4067
|
*/
|
|
@@ -3786,6 +4075,11 @@ class AuroDropdownBib extends i$2 {
|
|
|
3786
4075
|
*/
|
|
3787
4076
|
bibTemplate: {
|
|
3788
4077
|
type: Object
|
|
4078
|
+
},
|
|
4079
|
+
|
|
4080
|
+
shape: {
|
|
4081
|
+
type: String,
|
|
4082
|
+
reflect: true
|
|
3789
4083
|
}
|
|
3790
4084
|
};
|
|
3791
4085
|
}
|
|
@@ -3865,8 +4159,16 @@ class AuroDropdownBib extends i$2 {
|
|
|
3865
4159
|
|
|
3866
4160
|
// function that renders the HTML and CSS into the scope of the component
|
|
3867
4161
|
render() {
|
|
4162
|
+
const classes = {
|
|
4163
|
+
container: true
|
|
4164
|
+
};
|
|
4165
|
+
|
|
4166
|
+
// Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
|
|
4167
|
+
// mimicking the class naming convention used in AuroElement.resetShapeClasses.
|
|
4168
|
+
classes[`shape-${this.shape}`] = true;
|
|
4169
|
+
|
|
3868
4170
|
return u`
|
|
3869
|
-
<div class="
|
|
4171
|
+
<div class="${e(classes)}" part="bibContainer">
|
|
3870
4172
|
<slot></slot>
|
|
3871
4173
|
</div>
|
|
3872
4174
|
`;
|
|
@@ -3875,21 +4177,21 @@ class AuroDropdownBib extends i$2 {
|
|
|
3875
4177
|
|
|
3876
4178
|
var dropdownVersion$1 = '3.0.0';
|
|
3877
4179
|
|
|
3878
|
-
var shapeSizeCss = i$5`.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:
|
|
4180
|
+
var shapeSizeCss = i$5`.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}`;
|
|
3879
4181
|
|
|
3880
|
-
var colorCss$1$2 = i$5`: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:
|
|
4182
|
+
var colorCss$1$2 = i$5`: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)}`;
|
|
3881
4183
|
|
|
3882
|
-
var classicColorCss = i$5
|
|
4184
|
+
var classicColorCss = i$5``;
|
|
3883
4185
|
|
|
3884
|
-
var classicLayoutCss = i$5`: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]) .
|
|
4186
|
+
var classicLayoutCss = i$5`: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%}`;
|
|
3885
4187
|
|
|
3886
|
-
var styleEmphasizedCss = i$5`: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
|
|
4188
|
+
var styleEmphasizedCss = i$5`: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)}`;
|
|
3887
4189
|
|
|
3888
|
-
var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex
|
|
4190
|
+
var styleSnowflakeCss = i$5`: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)}`;
|
|
3889
4191
|
|
|
3890
|
-
var colorCss$5 = i$5`: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-
|
|
4192
|
+
var colorCss$5 = i$5`: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)}`;
|
|
3891
4193
|
|
|
3892
|
-
var styleCss$6 = i$5
|
|
4194
|
+
var styleCss$6 = i$5`: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}`;
|
|
3893
4195
|
|
|
3894
4196
|
var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
3895
4197
|
|
|
@@ -3900,7 +4202,7 @@ var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
|
|
|
3900
4202
|
|
|
3901
4203
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
3902
4204
|
|
|
3903
|
-
let AuroLibraryRuntimeUtils$
|
|
4205
|
+
let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
|
|
3904
4206
|
|
|
3905
4207
|
/* eslint-disable jsdoc/require-param */
|
|
3906
4208
|
|
|
@@ -3981,7 +4283,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
3981
4283
|
this.onDark = false;
|
|
3982
4284
|
this.hasTextContent = false;
|
|
3983
4285
|
|
|
3984
|
-
AuroLibraryRuntimeUtils$
|
|
4286
|
+
AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
|
|
3985
4287
|
}
|
|
3986
4288
|
|
|
3987
4289
|
static get styles() {
|
|
@@ -4037,7 +4339,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
4037
4339
|
*
|
|
4038
4340
|
*/
|
|
4039
4341
|
static register(name = "auro-helptext") {
|
|
4040
|
-
AuroLibraryRuntimeUtils$
|
|
4342
|
+
AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
|
|
4041
4343
|
}
|
|
4042
4344
|
|
|
4043
4345
|
updated() {
|
|
@@ -4095,7 +4397,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
4095
4397
|
|
|
4096
4398
|
var helpTextVersion$1 = '1.0.0';
|
|
4097
4399
|
|
|
4098
|
-
let AuroElement$
|
|
4400
|
+
let AuroElement$3 = class AuroElement extends i$2 {
|
|
4099
4401
|
static get properties() {
|
|
4100
4402
|
return {
|
|
4101
4403
|
|
|
@@ -4130,18 +4432,21 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
4130
4432
|
}
|
|
4131
4433
|
|
|
4132
4434
|
resetShapeClasses() {
|
|
4133
|
-
|
|
4134
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
4435
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
4135
4436
|
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4437
|
+
if (wrapper) {
|
|
4438
|
+
wrapper.classList.forEach((className) => {
|
|
4439
|
+
if (className.startsWith('shape-')) {
|
|
4440
|
+
wrapper.classList.remove(className);
|
|
4441
|
+
}
|
|
4442
|
+
});
|
|
4142
4443
|
|
|
4143
|
-
|
|
4144
|
-
|
|
4444
|
+
}
|
|
4445
|
+
|
|
4446
|
+
if (this.shape && this.size) {
|
|
4447
|
+
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
4448
|
+
} else {
|
|
4449
|
+
wrapper.classList.add('shape-none');
|
|
4145
4450
|
}
|
|
4146
4451
|
}
|
|
4147
4452
|
|
|
@@ -4191,10 +4496,8 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
4191
4496
|
// See LICENSE in the project root for license information.
|
|
4192
4497
|
|
|
4193
4498
|
|
|
4194
|
-
|
|
4195
|
-
* @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
|
|
4499
|
+
/*
|
|
4196
4500
|
* @slot - Default slot for the popover content.
|
|
4197
|
-
* @slot label - Defines the content of the label.
|
|
4198
4501
|
* @slot helpText - Defines the content of the helpText.
|
|
4199
4502
|
* @slot trigger - Defines the content of the trigger.
|
|
4200
4503
|
* @csspart trigger - The trigger content container.
|
|
@@ -4204,7 +4507,7 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
4204
4507
|
* @event auroDropdown-toggled - Notifies that the visibility of the dropdown bib has changed.
|
|
4205
4508
|
* @event auroDropdown-idAdded - Notifies consumers that the unique ID for the dropdown bib has been generated.
|
|
4206
4509
|
*/
|
|
4207
|
-
class AuroDropdown extends AuroElement$
|
|
4510
|
+
class AuroDropdown extends AuroElement$3 {
|
|
4208
4511
|
constructor() {
|
|
4209
4512
|
super();
|
|
4210
4513
|
|
|
@@ -4213,23 +4516,25 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4213
4516
|
this.matchWidth = false;
|
|
4214
4517
|
this.noHideOnThisFocusLoss = false;
|
|
4215
4518
|
|
|
4216
|
-
this.errorMessage =
|
|
4519
|
+
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
4217
4520
|
|
|
4218
4521
|
// Layout Config
|
|
4219
|
-
this.layout =
|
|
4220
|
-
this.shape =
|
|
4221
|
-
this.size =
|
|
4522
|
+
this.layout = undefined;
|
|
4523
|
+
this.shape = undefined;
|
|
4524
|
+
this.size = undefined;
|
|
4525
|
+
|
|
4222
4526
|
this.parentBorder = false;
|
|
4223
4527
|
|
|
4224
|
-
|
|
4225
|
-
|
|
4528
|
+
/** @private */
|
|
4529
|
+
this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
|
|
4226
4530
|
|
|
4227
|
-
|
|
4228
|
-
return {
|
|
4229
|
-
// 'withValue': this.value && this.value.length > 0
|
|
4230
|
-
};
|
|
4531
|
+
this.privateDefaults();
|
|
4231
4532
|
}
|
|
4232
4533
|
|
|
4534
|
+
/**
|
|
4535
|
+
* @private
|
|
4536
|
+
* @returns {object} Class definition for the wrapper element.
|
|
4537
|
+
*/
|
|
4233
4538
|
get commonWrapperClasses() {
|
|
4234
4539
|
return {
|
|
4235
4540
|
'trigger': true,
|
|
@@ -4247,13 +4552,10 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4247
4552
|
privateDefaults() {
|
|
4248
4553
|
this.chevron = false;
|
|
4249
4554
|
this.disabled = false;
|
|
4555
|
+
this.disableFocusTrap = false;
|
|
4250
4556
|
this.error = false;
|
|
4251
|
-
this.inset = false;
|
|
4252
|
-
this.rounded = false;
|
|
4253
4557
|
this.tabIndex = 0;
|
|
4254
4558
|
this.noToggle = false;
|
|
4255
|
-
this.a11yAutocomplete = 'none';
|
|
4256
|
-
this.labeled = true;
|
|
4257
4559
|
this.a11yRole = 'button';
|
|
4258
4560
|
this.onDark = false;
|
|
4259
4561
|
this.showTriggerBorders = true;
|
|
@@ -4349,6 +4651,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4349
4651
|
this.floater.showBib();
|
|
4350
4652
|
}
|
|
4351
4653
|
|
|
4654
|
+
/**
|
|
4655
|
+
* When bib is open, focus on the first element inside of bib.
|
|
4656
|
+
* If not, trigger element will get focus.
|
|
4657
|
+
*/
|
|
4658
|
+
focus() {
|
|
4659
|
+
if (this.isPopoverVisible && this.focusTrap) {
|
|
4660
|
+
this.focusTrap.focusFirstElement();
|
|
4661
|
+
} else {
|
|
4662
|
+
this.trigger.focus();
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4665
|
+
|
|
4352
4666
|
// function to define props used within the scope of this component
|
|
4353
4667
|
static get properties() {
|
|
4354
4668
|
return {
|
|
@@ -4362,6 +4676,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4362
4676
|
reflect: true
|
|
4363
4677
|
},
|
|
4364
4678
|
|
|
4679
|
+
/**
|
|
4680
|
+
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
4681
|
+
* @default false
|
|
4682
|
+
*/
|
|
4683
|
+
disableEventShow: {
|
|
4684
|
+
type: Boolean,
|
|
4685
|
+
reflect: true
|
|
4686
|
+
},
|
|
4687
|
+
|
|
4365
4688
|
/**
|
|
4366
4689
|
* If declared, applies a border around the trigger slot.
|
|
4367
4690
|
*/
|
|
@@ -4380,17 +4703,17 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4380
4703
|
},
|
|
4381
4704
|
|
|
4382
4705
|
/**
|
|
4383
|
-
* If declared, the dropdown
|
|
4706
|
+
* If declared, the dropdown is not interactive.
|
|
4384
4707
|
*/
|
|
4385
|
-
|
|
4708
|
+
disabled: {
|
|
4386
4709
|
type: Boolean,
|
|
4387
4710
|
reflect: true
|
|
4388
4711
|
},
|
|
4389
4712
|
|
|
4390
4713
|
/**
|
|
4391
|
-
* If declared, the
|
|
4714
|
+
* If declared, the focus trap inside of bib will be turned off.
|
|
4392
4715
|
*/
|
|
4393
|
-
|
|
4716
|
+
disableFocusTrap: {
|
|
4394
4717
|
type: Boolean,
|
|
4395
4718
|
reflect: true
|
|
4396
4719
|
},
|
|
@@ -4435,22 +4758,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4435
4758
|
reflect: true
|
|
4436
4759
|
},
|
|
4437
4760
|
|
|
4438
|
-
/**
|
|
4439
|
-
* Makes the trigger to be full width of its parent container.
|
|
4440
|
-
*/
|
|
4441
|
-
fluid: {
|
|
4442
|
-
type: Boolean,
|
|
4443
|
-
reflect: true
|
|
4444
|
-
},
|
|
4445
|
-
|
|
4446
|
-
/**
|
|
4447
|
-
* If declared, will apply padding around trigger slot content.
|
|
4448
|
-
*/
|
|
4449
|
-
inset: {
|
|
4450
|
-
type: Boolean,
|
|
4451
|
-
reflect: true
|
|
4452
|
-
},
|
|
4453
|
-
|
|
4454
4761
|
/**
|
|
4455
4762
|
* If true, the dropdown bib is displayed.
|
|
4456
4763
|
*/
|
|
@@ -4494,15 +4801,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4494
4801
|
reflect: true
|
|
4495
4802
|
},
|
|
4496
4803
|
|
|
4497
|
-
/**
|
|
4498
|
-
* Defines if there is a label preset.
|
|
4499
|
-
* @private
|
|
4500
|
-
*/
|
|
4501
|
-
labeled: {
|
|
4502
|
-
type: Boolean,
|
|
4503
|
-
reflect: true
|
|
4504
|
-
},
|
|
4505
|
-
|
|
4506
4804
|
/**
|
|
4507
4805
|
* Defines if the trigger should size based on the parent element providing the border UI.
|
|
4508
4806
|
* @private
|
|
@@ -4563,6 +4861,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4563
4861
|
reflect: true
|
|
4564
4862
|
},
|
|
4565
4863
|
|
|
4864
|
+
/**
|
|
4865
|
+
* If declared, and a function is set, that function will execute when the slot content is updated.
|
|
4866
|
+
*/
|
|
4566
4867
|
onSlotChange: {
|
|
4567
4868
|
type: Function,
|
|
4568
4869
|
reflect: false
|
|
@@ -4577,14 +4878,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4577
4878
|
reflect: true
|
|
4578
4879
|
},
|
|
4579
4880
|
|
|
4580
|
-
/**
|
|
4581
|
-
* If declared, will apply border-radius to trigger and default slots.
|
|
4582
|
-
*/
|
|
4583
|
-
rounded: {
|
|
4584
|
-
type: Boolean,
|
|
4585
|
-
reflect: true
|
|
4586
|
-
},
|
|
4587
|
-
|
|
4588
4881
|
/**
|
|
4589
4882
|
* @private
|
|
4590
4883
|
*/
|
|
@@ -4599,22 +4892,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4599
4892
|
type: String || undefined,
|
|
4600
4893
|
attribute: false,
|
|
4601
4894
|
reflect: false
|
|
4602
|
-
},
|
|
4603
|
-
|
|
4604
|
-
/**
|
|
4605
|
-
* The value for the aria-autocomplete attribute of the trigger element.
|
|
4606
|
-
*/
|
|
4607
|
-
a11yAutocomplete: {
|
|
4608
|
-
type: String,
|
|
4609
|
-
attribute: false,
|
|
4610
4895
|
}
|
|
4611
4896
|
};
|
|
4612
4897
|
}
|
|
4613
4898
|
|
|
4614
4899
|
static get styles() {
|
|
4615
4900
|
return [
|
|
4901
|
+
tokensCss$1$2,
|
|
4616
4902
|
colorCss$1$2,
|
|
4617
|
-
tokensCss$1$1,
|
|
4618
4903
|
|
|
4619
4904
|
// default layout
|
|
4620
4905
|
classicColorCss,
|
|
@@ -4676,13 +4961,27 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4676
4961
|
if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
|
|
4677
4962
|
this.handleTriggerContentSlotChange();
|
|
4678
4963
|
}
|
|
4964
|
+
}
|
|
4679
4965
|
|
|
4966
|
+
/**
|
|
4967
|
+
* Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
|
|
4968
|
+
* @private
|
|
4969
|
+
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
4970
|
+
*/
|
|
4971
|
+
handleDropdownToggle(event) {
|
|
4972
|
+
this.updateFocusTrap();
|
|
4973
|
+
this.isPopoverVisible = event.detail.expanded;
|
|
4974
|
+
const eventType = event.detail.eventType || "unknown";
|
|
4975
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4976
|
+
this.trigger.focus();
|
|
4977
|
+
}
|
|
4680
4978
|
}
|
|
4681
4979
|
|
|
4682
4980
|
firstUpdated() {
|
|
4683
4981
|
|
|
4684
4982
|
// Configure the floater to, this will generate the ID for the bib
|
|
4685
4983
|
this.floater.configure(this, 'auroDropdown');
|
|
4984
|
+
this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
|
|
4686
4985
|
|
|
4687
4986
|
/**
|
|
4688
4987
|
* @description Let subscribers know that the dropdown ID ha been generated and added.
|
|
@@ -4742,6 +5041,27 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4742
5041
|
this.hasFocus = true;
|
|
4743
5042
|
}
|
|
4744
5043
|
|
|
5044
|
+
/**
|
|
5045
|
+
* @private
|
|
5046
|
+
*/
|
|
5047
|
+
updateFocusTrap() {
|
|
5048
|
+
// If the dropdown is open, create a focus trap and focus the first element
|
|
5049
|
+
if (this.isPopoverVisible && !this.disableFocusTrap) {
|
|
5050
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
5051
|
+
this.focusTrap.focusFirstElement();
|
|
5052
|
+
return;
|
|
5053
|
+
}
|
|
5054
|
+
|
|
5055
|
+
// Guard Clause: Ensure there is a focus trap currently active before continuing
|
|
5056
|
+
if (!this.focusTrap) {
|
|
5057
|
+
return;
|
|
5058
|
+
}
|
|
5059
|
+
|
|
5060
|
+
// If the dropdown is not open, disconnect the focus trap if it exists
|
|
5061
|
+
this.focusTrap.disconnect();
|
|
5062
|
+
this.focusTrap = undefined;
|
|
5063
|
+
}
|
|
5064
|
+
|
|
4745
5065
|
/**
|
|
4746
5066
|
* Function to support @focusout event.
|
|
4747
5067
|
* @private
|
|
@@ -4902,14 +5222,13 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4902
5222
|
* @returns {void}
|
|
4903
5223
|
*/
|
|
4904
5224
|
handleTriggerContentSlotChange(event) {
|
|
4905
|
-
|
|
4906
5225
|
this.floater.handleTriggerTabIndex();
|
|
4907
5226
|
|
|
4908
5227
|
// Get the trigger
|
|
4909
5228
|
const trigger = this.shadowRoot.querySelector('#trigger');
|
|
4910
5229
|
|
|
4911
5230
|
// Get the trigger slot
|
|
4912
|
-
const triggerSlot = this.shadowRoot.querySelector('.
|
|
5231
|
+
const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
|
|
4913
5232
|
|
|
4914
5233
|
// If there's a trigger slot
|
|
4915
5234
|
if (triggerSlot) {
|
|
@@ -4972,7 +5291,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4972
5291
|
*
|
|
4973
5292
|
* @private
|
|
4974
5293
|
* @method handleDefaultSlot
|
|
4975
|
-
* @param {Event} event - The event object representing the slot change.
|
|
4976
5294
|
* @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
|
|
4977
5295
|
*/
|
|
4978
5296
|
handleDefaultSlot() {
|
|
@@ -4982,29 +5300,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4982
5300
|
}
|
|
4983
5301
|
}
|
|
4984
5302
|
|
|
4985
|
-
/**
|
|
4986
|
-
* @private
|
|
4987
|
-
* @method handleLabelSlotChange
|
|
4988
|
-
* @param {event} event - The event object representing the slot change.
|
|
4989
|
-
* @description Handles the slot change event for the label slot.
|
|
4990
|
-
*/
|
|
4991
|
-
handleLabelSlotChange (event) {
|
|
4992
|
-
|
|
4993
|
-
// Get the nodes from the event
|
|
4994
|
-
const nodes = event.target.assignedNodes();
|
|
4995
|
-
|
|
4996
|
-
// Guard clause for no nodes
|
|
4997
|
-
if (!nodes) {
|
|
4998
|
-
return;
|
|
4999
|
-
}
|
|
5000
|
-
|
|
5001
|
-
// Convert the nodes to a measurable array so we can get the length
|
|
5002
|
-
const nodesArr = Array.from(nodes);
|
|
5003
|
-
|
|
5004
|
-
// If the nodes array has a length, the dropdown is labeled
|
|
5005
|
-
this.labeled = nodesArr.length > 0;
|
|
5006
|
-
}
|
|
5007
|
-
|
|
5008
5303
|
/**
|
|
5009
5304
|
* Returns HTML for the common portion of the layouts.
|
|
5010
5305
|
* @private
|
|
@@ -5019,22 +5314,17 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5019
5314
|
class="${e(this.commonWrapperClasses)}" part="wrapper"
|
|
5020
5315
|
tabindex="${this.tabIndex}"
|
|
5021
5316
|
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
5022
|
-
aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5023
|
-
aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5317
|
+
aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5318
|
+
aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5024
5319
|
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
5025
5320
|
@focusin="${this.handleFocusin}"
|
|
5026
5321
|
@blur="${this.handleFocusOut}">
|
|
5027
|
-
<div class="triggerContentWrapper">
|
|
5028
|
-
<
|
|
5029
|
-
|
|
5030
|
-
|
|
5031
|
-
<div class="triggerContent">
|
|
5032
|
-
<slot
|
|
5033
|
-
name="trigger"
|
|
5034
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
5035
|
-
</div>
|
|
5322
|
+
<div class="triggerContentWrapper" id="triggerLabel">
|
|
5323
|
+
<slot
|
|
5324
|
+
name="trigger"
|
|
5325
|
+
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
5036
5326
|
</div>
|
|
5037
|
-
${this.chevron
|
|
5327
|
+
${this.chevron ? u`
|
|
5038
5328
|
<div
|
|
5039
5329
|
id="showStateIcon"
|
|
5040
5330
|
class="chevron"
|
|
@@ -5055,11 +5345,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5055
5345
|
<div id="bibSizer" part="size"></div>
|
|
5056
5346
|
<${this.dropdownBibTag}
|
|
5057
5347
|
id="bib"
|
|
5348
|
+
shape="${this.shape}"
|
|
5058
5349
|
?data-show="${this.isPopoverVisible}"
|
|
5059
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
5060
|
-
?common="${this.common}"
|
|
5061
|
-
?rounded="${this.common || this.rounded}"
|
|
5062
|
-
?inset="${this.common || this.inset}">
|
|
5350
|
+
?isfullscreen="${this.isBibFullscreen}">
|
|
5063
5351
|
<div class="slotContent">
|
|
5064
5352
|
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
5065
5353
|
</div>
|
|
@@ -5074,62 +5362,13 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5074
5362
|
* @returns {html} - Returns HTML for the classic layout.
|
|
5075
5363
|
*/
|
|
5076
5364
|
renderLayoutClassic() {
|
|
5365
|
+
// TODO: check with Doug why this was never used?
|
|
5366
|
+
const helpTextClasses = {
|
|
5367
|
+
'helpText': true
|
|
5368
|
+
};
|
|
5077
5369
|
|
|
5078
5370
|
return u`
|
|
5079
|
-
|
|
5080
|
-
<div
|
|
5081
|
-
id="trigger"
|
|
5082
|
-
class="trigger"
|
|
5083
|
-
part="trigger"
|
|
5084
|
-
tabindex="${this.tabIndex}"
|
|
5085
|
-
?showBorder="${this.showTriggerBorders}"
|
|
5086
|
-
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
5087
|
-
aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5088
|
-
aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5089
|
-
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
5090
|
-
>
|
|
5091
|
-
<div class="triggerContentWrapper">
|
|
5092
|
-
<label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
|
|
5093
|
-
<slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
|
|
5094
|
-
</label>
|
|
5095
|
-
<div class="triggerContent">
|
|
5096
|
-
<slot
|
|
5097
|
-
name="trigger"
|
|
5098
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
5099
|
-
</div>
|
|
5100
|
-
</div>
|
|
5101
|
-
${this.chevron || this.common ? u`
|
|
5102
|
-
<div
|
|
5103
|
-
id="showStateIcon"
|
|
5104
|
-
part="chevron">
|
|
5105
|
-
<${this.iconTag}
|
|
5106
|
-
category="interface"
|
|
5107
|
-
name="chevron-down"
|
|
5108
|
-
?onDark="${this.onDark}"
|
|
5109
|
-
variant="${this.disabled ? 'disabled' : 'muted'}">
|
|
5110
|
-
>
|
|
5111
|
-
</${this.iconTag}>
|
|
5112
|
-
</div>
|
|
5113
|
-
` : undefined }
|
|
5114
|
-
</div>
|
|
5115
|
-
<${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
|
|
5116
|
-
<slot name="helpText"></slot>
|
|
5117
|
-
</${this.helpTextTag}>
|
|
5118
|
-
|
|
5119
|
-
<div id="bibSizer" part="size"></div>
|
|
5120
|
-
<${this.dropdownBibTag}
|
|
5121
|
-
id="bib"
|
|
5122
|
-
?data-show="${this.isPopoverVisible}"
|
|
5123
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
5124
|
-
?common="${this.common}"
|
|
5125
|
-
?rounded="${this.common || this.rounded}"
|
|
5126
|
-
?inset="${this.common || this.inset}"
|
|
5127
|
-
>
|
|
5128
|
-
<div class="slotContent">
|
|
5129
|
-
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
5130
|
-
</div>
|
|
5131
|
-
</${this.dropdownBibTag}>
|
|
5132
|
-
</div>
|
|
5371
|
+
${this.renderBasicHtml(helpTextClasses)}
|
|
5133
5372
|
`;
|
|
5134
5373
|
}
|
|
5135
5374
|
|
|
@@ -5197,9 +5436,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5197
5436
|
|
|
5198
5437
|
var dropdownVersion = '3.0.0';
|
|
5199
5438
|
|
|
5200
|
-
var colorCss$
|
|
5439
|
+
var colorCss$3$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
5201
5440
|
|
|
5202
|
-
var styleCss$
|
|
5441
|
+
var styleCss$4$1 = i$5`#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)}`;
|
|
5203
5442
|
|
|
5204
5443
|
var tokenCss = i$5`: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)}`;
|
|
5205
5444
|
|
|
@@ -5210,109 +5449,1153 @@ var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-
|
|
|
5210
5449
|
|
|
5211
5450
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5212
5451
|
|
|
5213
|
-
let AuroLibraryRuntimeUtils$
|
|
5452
|
+
let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
|
|
5453
|
+
|
|
5454
|
+
/* eslint-disable jsdoc/require-param */
|
|
5455
|
+
|
|
5456
|
+
/**
|
|
5457
|
+
* This will register a new custom element with the browser.
|
|
5458
|
+
* @param {String} name - The name of the custom element.
|
|
5459
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
5460
|
+
* @returns {void}
|
|
5461
|
+
*/
|
|
5462
|
+
registerComponent(name, componentClass) {
|
|
5463
|
+
if (!customElements.get(name)) {
|
|
5464
|
+
customElements.define(name, class extends componentClass {});
|
|
5465
|
+
}
|
|
5466
|
+
}
|
|
5467
|
+
|
|
5468
|
+
/**
|
|
5469
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
5470
|
+
* @returns {void}
|
|
5471
|
+
*/
|
|
5472
|
+
closestElement(
|
|
5473
|
+
selector, // selector like in .closest()
|
|
5474
|
+
base = this, // extra functionality to skip a parent
|
|
5475
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
5476
|
+
!el || el === document || el === window
|
|
5477
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
5478
|
+
: found
|
|
5479
|
+
? found // found a selector INside this element
|
|
5480
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
5481
|
+
) {
|
|
5482
|
+
return __Closest(base);
|
|
5483
|
+
}
|
|
5484
|
+
/* eslint-enable jsdoc/require-param */
|
|
5485
|
+
|
|
5486
|
+
/**
|
|
5487
|
+
* 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.
|
|
5488
|
+
* @param {Object} elem - The element to check.
|
|
5489
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
5490
|
+
* @returns {void}
|
|
5491
|
+
*/
|
|
5492
|
+
handleComponentTagRename(elem, tagName) {
|
|
5493
|
+
const tag = tagName.toLowerCase();
|
|
5494
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5495
|
+
|
|
5496
|
+
if (elemTag !== tag) {
|
|
5497
|
+
elem.setAttribute(tag, true);
|
|
5498
|
+
}
|
|
5499
|
+
}
|
|
5500
|
+
|
|
5501
|
+
/**
|
|
5502
|
+
* Validates if an element is a specific Auro component.
|
|
5503
|
+
* @param {Object} elem - The element to validate.
|
|
5504
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
5505
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
5506
|
+
*/
|
|
5507
|
+
elementMatch(elem, tagName) {
|
|
5508
|
+
const tag = tagName.toLowerCase();
|
|
5509
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5510
|
+
|
|
5511
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
5512
|
+
}
|
|
5513
|
+
};
|
|
5514
|
+
|
|
5515
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5516
|
+
// See LICENSE in the project root for license information.
|
|
5517
|
+
|
|
5518
|
+
|
|
5519
|
+
class AuroDependencyVersioning {
|
|
5520
|
+
|
|
5521
|
+
/**
|
|
5522
|
+
* Generates a unique string to be used for child auro element naming.
|
|
5523
|
+
* @private
|
|
5524
|
+
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5525
|
+
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5526
|
+
* @returns {string} - Unique string to be used for naming.
|
|
5527
|
+
*/
|
|
5528
|
+
generateElementName(baseName, version) {
|
|
5529
|
+
let result = baseName;
|
|
5530
|
+
|
|
5531
|
+
result += '-';
|
|
5532
|
+
result += version.replace(/[.]/g, '_');
|
|
5533
|
+
|
|
5534
|
+
return result;
|
|
5535
|
+
}
|
|
5536
|
+
|
|
5537
|
+
/**
|
|
5538
|
+
* Generates a unique string to be used for child auro element naming.
|
|
5539
|
+
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5540
|
+
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5541
|
+
* @returns {string} - Unique string to be used for naming.
|
|
5542
|
+
*/
|
|
5543
|
+
generateTag(baseName, version, tagClass) {
|
|
5544
|
+
const elementName = this.generateElementName(baseName, version);
|
|
5545
|
+
const tag = i`${s(elementName)}`;
|
|
5546
|
+
|
|
5547
|
+
if (!customElements.get(elementName)) {
|
|
5548
|
+
customElements.define(elementName, class extends tagClass {});
|
|
5549
|
+
}
|
|
5550
|
+
|
|
5551
|
+
return tag;
|
|
5552
|
+
}
|
|
5553
|
+
}
|
|
5554
|
+
|
|
5555
|
+
/**
|
|
5556
|
+
* Private module-level WeakMap to hold MutationObservers for each host element.
|
|
5557
|
+
*/
|
|
5558
|
+
const _observers = new WeakMap();
|
|
5559
|
+
|
|
5560
|
+
/**
|
|
5561
|
+
* Private module-level WeakMap to hold attribute matchers and targets for each host element.
|
|
5562
|
+
* Structure: {
|
|
5563
|
+
* host: {
|
|
5564
|
+
* matchers: Set<Function>,
|
|
5565
|
+
* targets: Map<HTMLElement, Map<Function, {removeOriginal: boolean, currentAttributes: Map<string, string>}>>
|
|
5566
|
+
* }
|
|
5567
|
+
* }
|
|
5568
|
+
*/
|
|
5569
|
+
const _transportConfig = new WeakMap();
|
|
5570
|
+
|
|
5571
|
+
/**
|
|
5572
|
+
* Transfers all matching attributes from a host element to a target element and observes for future changes.
|
|
5573
|
+
*
|
|
5574
|
+
* @param {Object} params - The parameters for the function.
|
|
5575
|
+
* @param {HTMLElement} params.host - The host element from which attributes will be transported.
|
|
5576
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5577
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove the attributes from the host element.
|
|
5578
|
+
* @param {boolean} [params.observe=true] - Whether to attach a MutationObserver to the host element.
|
|
5579
|
+
* @returns {Function} A function to detach the observer when no longer needed.
|
|
5580
|
+
* @throws {TypeError} If the host or target parameters are not instances of HTMLElement.
|
|
5581
|
+
*/
|
|
5582
|
+
const transportAttributes = ({ host, target, match, removeOriginal = true }) => {
|
|
5583
|
+
// Guard Clause: Ensure host is valid HTMLElement instance
|
|
5584
|
+
if (typeof host !== 'object' || !(host instanceof HTMLElement)) {
|
|
5585
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "host" parameter must be an instance of HTMLElement.');
|
|
5586
|
+
}
|
|
5587
|
+
|
|
5588
|
+
// Guard Clause: Ensure target is valid HTMLElement instance
|
|
5589
|
+
if (typeof target !== 'object' || !(target instanceof HTMLElement)) {
|
|
5590
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "target" parameter must be an instance of HTMLElement.');
|
|
5591
|
+
}
|
|
5592
|
+
|
|
5593
|
+
// Guard Clause: Ensure match is a function
|
|
5594
|
+
if (typeof match !== 'function') {
|
|
5595
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "match" parameter must be a function.');
|
|
5596
|
+
}
|
|
5597
|
+
|
|
5598
|
+
// Guard Clause: Ensure removeOriginal is a boolean
|
|
5599
|
+
if (typeof removeOriginal !== 'boolean') {
|
|
5600
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "removeOriginal" parameter must be a boolean.');
|
|
5601
|
+
}
|
|
5602
|
+
|
|
5603
|
+
// Register this transport and get cleanup function
|
|
5604
|
+
return _registerTransport({
|
|
5605
|
+
host,
|
|
5606
|
+
target,
|
|
5607
|
+
matcher: match,
|
|
5608
|
+
removeOriginal
|
|
5609
|
+
});
|
|
5610
|
+
};
|
|
5611
|
+
|
|
5612
|
+
/**
|
|
5613
|
+
* Registers a matcher and target for a host element and attaches an observer if needed.
|
|
5614
|
+
*
|
|
5615
|
+
* @param {Object} params - The parameters object.
|
|
5616
|
+
* @param {HTMLElement} params.host - The host element to observe.
|
|
5617
|
+
* @param {HTMLElement} params.target - The target element to receive attributes.
|
|
5618
|
+
* @param {Function} params.matcher - Function that determines which attributes to transport.
|
|
5619
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes.
|
|
5620
|
+
* @param {boolean} [params.observe=true] - Whether to observe for attribute changes.
|
|
5621
|
+
* @returns {Function} Function to detach the specific matcher and target pairing.
|
|
5622
|
+
* @private
|
|
5623
|
+
*/
|
|
5624
|
+
const _registerTransport = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5625
|
+
// Initialize config for this host if it doesn't exist
|
|
5626
|
+
if (!_transportConfig.has(host)) {
|
|
5627
|
+
_transportConfig.set(host, {
|
|
5628
|
+
matchers: new Set(),
|
|
5629
|
+
targets: new Map()
|
|
5630
|
+
});
|
|
5631
|
+
}
|
|
5632
|
+
|
|
5633
|
+
const config = _transportConfig.get(host);
|
|
5634
|
+
|
|
5635
|
+
// Add the matcher to the set of matchers for this host
|
|
5636
|
+
config.matchers.add(matcher);
|
|
5637
|
+
|
|
5638
|
+
// Initialize target entry if it doesn't exist
|
|
5639
|
+
if (!config.targets.has(target)) {
|
|
5640
|
+
config.targets.set(target, new Map());
|
|
5641
|
+
}
|
|
5642
|
+
|
|
5643
|
+
// Store the matcher with its removeOriginal setting for this target
|
|
5644
|
+
config.targets.get(target).set(matcher, {
|
|
5645
|
+
removeOriginal,
|
|
5646
|
+
currentAttributes: new Map()
|
|
5647
|
+
});
|
|
5648
|
+
|
|
5649
|
+
// Perform initial attribute transport
|
|
5650
|
+
_transportAttributes({ host, target, matcher, removeOriginal });
|
|
5651
|
+
|
|
5652
|
+
// Attach observer
|
|
5653
|
+
_attachObserver(host);
|
|
5654
|
+
|
|
5655
|
+
// Return cleanup function and utility functions
|
|
5656
|
+
return {
|
|
5657
|
+
cleanup: () => _cleanupTransport(host, target, matcher),
|
|
5658
|
+
getObservedAttributes: () => _getObservedAttributes(host, target, matcher),
|
|
5659
|
+
getObservedAttribute: (attr) => _getObservedAttribute(host, target, matcher, attr),
|
|
5660
|
+
}
|
|
5661
|
+
};
|
|
5662
|
+
|
|
5663
|
+
/**
|
|
5664
|
+
* Cleans up resources associated with a specific matcher and target for a host element.
|
|
5665
|
+
*
|
|
5666
|
+
* @param {HTMLElement} host - The host element
|
|
5667
|
+
* @param {HTMLElement} target - The target element
|
|
5668
|
+
* @param {Function} matcher - The matcher function
|
|
5669
|
+
* @private
|
|
5670
|
+
*/
|
|
5671
|
+
const _cleanupTransport = (host, target, matcher) => {
|
|
5672
|
+
const config = _transportConfig.get(host);
|
|
5673
|
+
if (!config) return;
|
|
5674
|
+
|
|
5675
|
+
// Remove this matcher from this target
|
|
5676
|
+
const targetMatchers = config.targets.get(target);
|
|
5677
|
+
if (targetMatchers) {
|
|
5678
|
+
targetMatchers.delete(matcher);
|
|
5679
|
+
|
|
5680
|
+
// If this target has no more matchers, remove it
|
|
5681
|
+
if (targetMatchers.size === 0) {
|
|
5682
|
+
config.targets.delete(target);
|
|
5683
|
+
}
|
|
5684
|
+
}
|
|
5685
|
+
|
|
5686
|
+
// Check if this matcher is still used by any target
|
|
5687
|
+
let matcherStillUsed = false;
|
|
5688
|
+
for (const matcherMap of config.targets.values()) {
|
|
5689
|
+
if (matcherMap.has(matcher)) {
|
|
5690
|
+
matcherStillUsed = true;
|
|
5691
|
+
break;
|
|
5692
|
+
}
|
|
5693
|
+
}
|
|
5694
|
+
|
|
5695
|
+
// If not used anymore, remove from matchers set
|
|
5696
|
+
if (!matcherStillUsed) {
|
|
5697
|
+
config.matchers.delete(matcher);
|
|
5698
|
+
}
|
|
5699
|
+
|
|
5700
|
+
// If no more targets or matchers, detach observer
|
|
5701
|
+
if (config.targets.size === 0 || config.matchers.size === 0) {
|
|
5702
|
+
_detachObserver(host);
|
|
5703
|
+
}
|
|
5704
|
+
};
|
|
5705
|
+
|
|
5706
|
+
/**
|
|
5707
|
+
* Generic function to transport attributes from a host element to a target element.
|
|
5708
|
+
*
|
|
5709
|
+
* @param {Object} params - The parameters object.
|
|
5710
|
+
* @param {HTMLElement} params.host - The host element from which to transport attributes.
|
|
5711
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5712
|
+
* @param {Function} params.matcher - Function that takes an attribute name and returns true if it should be transported.
|
|
5713
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes from host.
|
|
5714
|
+
* @returns {void}
|
|
5715
|
+
* @private
|
|
5716
|
+
*/
|
|
5717
|
+
const _transportAttributes = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5718
|
+
// Get a list of all matching attributes on the host element and their values
|
|
5719
|
+
const matchingAttributes = host.getAttributeNames()
|
|
5720
|
+
.filter(attr => matcher(attr))
|
|
5721
|
+
.reduce((acc, attr) => {
|
|
5722
|
+
acc[attr] = host.getAttribute(attr);
|
|
5723
|
+
return acc;
|
|
5724
|
+
}, {});
|
|
5725
|
+
|
|
5726
|
+
// Move matching attributes to the target element, removing them from the host if removeOriginal is true
|
|
5727
|
+
Object.entries(matchingAttributes).forEach(([key, value]) => {
|
|
5728
|
+
_setObservedAttribute(host, target, matcher, key, value);
|
|
5729
|
+
target.setAttribute(key, value);
|
|
5730
|
+
if (removeOriginal) {
|
|
5731
|
+
host.removeAttribute(key);
|
|
5732
|
+
}
|
|
5733
|
+
});
|
|
5734
|
+
};
|
|
5735
|
+
|
|
5736
|
+
/**
|
|
5737
|
+
* Attaches a MutationObserver to the host element to monitor attribute changes.
|
|
5738
|
+
*
|
|
5739
|
+
* @param {HTMLElement} host - The element to observe for attribute changes.
|
|
5740
|
+
* @returns {MutationObserver} The observer instance.
|
|
5741
|
+
* @private
|
|
5742
|
+
*/
|
|
5743
|
+
const _attachObserver = (host) => {
|
|
5744
|
+
// If an observer for this host already exists, return it
|
|
5745
|
+
if (_observers.has(host)) {
|
|
5746
|
+
return _observers.get(host);
|
|
5747
|
+
}
|
|
5748
|
+
|
|
5749
|
+
// Create a new MutationObserver
|
|
5750
|
+
const observer = new MutationObserver((mutations) => {
|
|
5751
|
+
const config = _transportConfig.get(host);
|
|
5752
|
+
if (!config) return;
|
|
5753
|
+
|
|
5754
|
+
// For each mutation affecting attributes
|
|
5755
|
+
mutations
|
|
5756
|
+
.filter(mutation => mutation.type === 'attributes')
|
|
5757
|
+
.forEach(mutation => {
|
|
5758
|
+
const attributeName = mutation.attributeName;
|
|
5759
|
+
|
|
5760
|
+
// Find matchers that care about this attribute
|
|
5761
|
+
for (const matcher of config.matchers) {
|
|
5762
|
+
if (matcher(attributeName)) {
|
|
5763
|
+
// For each target that uses this matcher
|
|
5764
|
+
for (const [target, matcherConfigs] of config.targets.entries()) {
|
|
5765
|
+
if (matcherConfigs.has(matcher)) {
|
|
5766
|
+
const { removeOriginal } = matcherConfigs.get(matcher);
|
|
5767
|
+
_transportAttributes({
|
|
5768
|
+
host,
|
|
5769
|
+
target,
|
|
5770
|
+
matcher,
|
|
5771
|
+
removeOriginal
|
|
5772
|
+
});
|
|
5773
|
+
}
|
|
5774
|
+
}
|
|
5775
|
+
}
|
|
5776
|
+
}
|
|
5777
|
+
});
|
|
5778
|
+
});
|
|
5779
|
+
|
|
5780
|
+
// Start observing attribute changes
|
|
5781
|
+
observer.observe(host, { attributes: true });
|
|
5782
|
+
|
|
5783
|
+
// Store the observer
|
|
5784
|
+
_observers.set(host, observer);
|
|
5785
|
+
|
|
5786
|
+
return observer;
|
|
5787
|
+
};
|
|
5788
|
+
|
|
5789
|
+
/**
|
|
5790
|
+
* Detaches and cleans up the MutationObserver for a given host element.
|
|
5791
|
+
*
|
|
5792
|
+
* @param {HTMLElement} host - The element whose observer should be detached.
|
|
5793
|
+
* @private
|
|
5794
|
+
*/
|
|
5795
|
+
const _detachObserver = (host) => {
|
|
5796
|
+
if (_observers.has(host)) {
|
|
5797
|
+
const observer = _observers.get(host);
|
|
5798
|
+
observer.disconnect();
|
|
5799
|
+
_observers.delete(host);
|
|
5800
|
+
}
|
|
5801
|
+
|
|
5802
|
+
// Clean up the transport config as well
|
|
5803
|
+
if (_transportConfig.has(host)) {
|
|
5804
|
+
_transportConfig.delete(host);
|
|
5805
|
+
}
|
|
5806
|
+
};
|
|
5807
|
+
|
|
5808
|
+
/**
|
|
5809
|
+
* Gets the matcher configuration for a specific host, target, and matcher
|
|
5810
|
+
* @param {HTMLElement} host - The host element
|
|
5811
|
+
* @param {HTMLElement} target - The target element
|
|
5812
|
+
* @param {Function} matcher - The matcher function
|
|
5813
|
+
* @returns {Object|undefined} The matcher configuration if found
|
|
5814
|
+
* @private
|
|
5815
|
+
*/
|
|
5816
|
+
const _getMatcherConfig = (host, target, matcher) => {
|
|
5817
|
+
const config = _transportConfig.get(host);
|
|
5818
|
+
if (!config) return undefined;
|
|
5819
|
+
|
|
5820
|
+
const targetMatchers = config.targets.get(target);
|
|
5821
|
+
if (!targetMatchers) return undefined;
|
|
5822
|
+
|
|
5823
|
+
return targetMatchers.get(matcher);
|
|
5824
|
+
};
|
|
5825
|
+
|
|
5826
|
+
/**
|
|
5827
|
+
* Sets an observed attribute value
|
|
5828
|
+
* @param {HTMLElement} host - The host element
|
|
5829
|
+
* @param {HTMLElement} target - The target element
|
|
5830
|
+
* @param {Function} matcher - The matcher function
|
|
5831
|
+
* @param {string} key - The attribute name
|
|
5832
|
+
* @param {string} value - The attribute value
|
|
5833
|
+
* @private
|
|
5834
|
+
*/
|
|
5835
|
+
const _setObservedAttribute = (host, target, matcher, key, value) => {
|
|
5836
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5837
|
+
if (matcherConfig) {
|
|
5838
|
+
matcherConfig.currentAttributes.set(key, value);
|
|
5839
|
+
}
|
|
5840
|
+
};
|
|
5841
|
+
|
|
5842
|
+
const _getObservedAttribute = (host, target, matcher, attr) => {
|
|
5843
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5844
|
+
if (matcherConfig) return matcherConfig.currentAttributes.get(attr);
|
|
5845
|
+
return undefined;
|
|
5846
|
+
};
|
|
5847
|
+
|
|
5848
|
+
const _getObservedAttributes = (host, target, matcher) => {
|
|
5849
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5850
|
+
if (matcherConfig) return Array.from(matcherConfig.currentAttributes.entries());
|
|
5851
|
+
return [];
|
|
5852
|
+
};
|
|
5853
|
+
|
|
5854
|
+
const _matchers = {
|
|
5855
|
+
'aria-': attr => attr.startsWith('aria-'),
|
|
5856
|
+
'role': attr => attr.match(/^role$/)
|
|
5857
|
+
};
|
|
5858
|
+
|
|
5859
|
+
const transportAllA11yAttributes = ({ host, target, removeOriginal = true }) => {
|
|
5860
|
+
return transportAttributes({
|
|
5861
|
+
host,
|
|
5862
|
+
target,
|
|
5863
|
+
match: attr => {
|
|
5864
|
+
for (const key in _matchers) {
|
|
5865
|
+
if (_matchers[key](attr)) return true;
|
|
5866
|
+
}
|
|
5867
|
+
return false;
|
|
5868
|
+
},
|
|
5869
|
+
removeOriginal
|
|
5870
|
+
});
|
|
5871
|
+
};
|
|
5872
|
+
|
|
5873
|
+
let AuroElement$1 = class AuroElement extends i$2 {
|
|
5874
|
+
|
|
5875
|
+
/**
|
|
5876
|
+
* @type {Object} return object from transportAttributes via a11yUtilities
|
|
5877
|
+
* @property {Function} cleanup - Function to clean up the attribute watcher.
|
|
5878
|
+
* @property {Function} getCurrentAttributes - Function to get the current attributes being watched and their values.
|
|
5879
|
+
* @property {Function} getObservedAttribute - Function to get the value of a specific observed attribute by name.
|
|
5880
|
+
* @private
|
|
5881
|
+
*/
|
|
5882
|
+
attributeWatcher;
|
|
5883
|
+
|
|
5884
|
+
static get properties() {
|
|
5885
|
+
return {
|
|
5886
|
+
|
|
5887
|
+
/**
|
|
5888
|
+
* Defines the layout of an element.
|
|
5889
|
+
* @default {'default'}
|
|
5890
|
+
*/
|
|
5891
|
+
layout: {
|
|
5892
|
+
type: String,
|
|
5893
|
+
attribute: "layout",
|
|
5894
|
+
reflect: true
|
|
5895
|
+
},
|
|
5896
|
+
|
|
5897
|
+
/**
|
|
5898
|
+
* Defines the shape of an element.
|
|
5899
|
+
* @property {'default', 'rounded', 'pill', 'circle'}
|
|
5900
|
+
* @default {'default'}
|
|
5901
|
+
*/
|
|
5902
|
+
shape: {
|
|
5903
|
+
type: String,
|
|
5904
|
+
attribute: "shape",
|
|
5905
|
+
reflect: true
|
|
5906
|
+
},
|
|
5907
|
+
|
|
5908
|
+
/**
|
|
5909
|
+
* Defines the size of an element.
|
|
5910
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'}
|
|
5911
|
+
* @default {'md'}
|
|
5912
|
+
*/
|
|
5913
|
+
size: {
|
|
5914
|
+
type: String,
|
|
5915
|
+
attribute: "size",
|
|
5916
|
+
reflect: true
|
|
5917
|
+
},
|
|
5918
|
+
|
|
5919
|
+
/**
|
|
5920
|
+
* This Boolean attribute lets you specify that the element should be rendered in dark mode.
|
|
5921
|
+
* @default {false}
|
|
5922
|
+
*/
|
|
5923
|
+
onDark: {
|
|
5924
|
+
type: Boolean,
|
|
5925
|
+
attribute: "ondark",
|
|
5926
|
+
reflect: true
|
|
5927
|
+
},
|
|
5928
|
+
|
|
5929
|
+
/**
|
|
5930
|
+
* A reference to the wrapper element in the shadow DOM.
|
|
5931
|
+
* This is used to apply layout and shape classes dynamically.
|
|
5932
|
+
* @type {HTMLElement|null}
|
|
5933
|
+
* @default {null}
|
|
5934
|
+
* @private
|
|
5935
|
+
*/
|
|
5936
|
+
wrapper: {
|
|
5937
|
+
attribute: false,
|
|
5938
|
+
reflect: false
|
|
5939
|
+
}
|
|
5940
|
+
};
|
|
5941
|
+
}
|
|
5942
|
+
|
|
5943
|
+
|
|
5944
|
+
|
|
5945
|
+
resetShapeClasses() {
|
|
5946
|
+
if (this.shape && this.size) {
|
|
5947
|
+
|
|
5948
|
+
if (this.wrapper) {
|
|
5949
|
+
this.wrapper.classList.forEach((className) => {
|
|
5950
|
+
if (className.startsWith('shape-')) {
|
|
5951
|
+
this.wrapper.classList.remove(className);
|
|
5952
|
+
}
|
|
5953
|
+
});
|
|
5954
|
+
|
|
5955
|
+
this.wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
5956
|
+
}
|
|
5957
|
+
}
|
|
5958
|
+
}
|
|
5959
|
+
|
|
5960
|
+
resetLayoutClasses() {
|
|
5961
|
+
if (this.layout) {
|
|
5962
|
+
if (this.wrapper) {
|
|
5963
|
+
this.wrapper.classList.forEach((className) => {
|
|
5964
|
+
if (className.startsWith('layout-')) {
|
|
5965
|
+
this.wrapper.classList.remove(className);
|
|
5966
|
+
}
|
|
5967
|
+
});
|
|
5968
|
+
|
|
5969
|
+
this.wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
|
|
5970
|
+
}
|
|
5971
|
+
}
|
|
5972
|
+
}
|
|
5973
|
+
|
|
5974
|
+
updateComponentArchitecture() {
|
|
5975
|
+
this.resetLayoutClasses();
|
|
5976
|
+
this.resetShapeClasses();
|
|
5977
|
+
}
|
|
5978
|
+
|
|
5979
|
+
updated(changedProperties) {
|
|
5980
|
+
if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
|
|
5981
|
+
this.updateComponentArchitecture();
|
|
5982
|
+
}
|
|
5983
|
+
}
|
|
5984
|
+
|
|
5985
|
+
firstUpdated() {
|
|
5986
|
+
super.firstUpdated();
|
|
5987
|
+
|
|
5988
|
+
// Set a reference to the wrapper element in the shadow DOM
|
|
5989
|
+
this.wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
5990
|
+
|
|
5991
|
+
// Initialize the transportation of ARIA attributes to the target element and get the disconnect function for cleanup
|
|
5992
|
+
this.attributeWatcher = transportAllA11yAttributes({ host: this, target: this.shadowRoot.querySelector('.wrapper') });
|
|
5993
|
+
}
|
|
5994
|
+
|
|
5995
|
+
disconnectedCallback() {
|
|
5996
|
+
super.disconnectedCallback();
|
|
5997
|
+
|
|
5998
|
+
// Cleanup the ARIA observer if it exists
|
|
5999
|
+
if (this.attributeWatcher) {
|
|
6000
|
+
this.attributeWatcher.cleanup();
|
|
6001
|
+
this.attributeWatcher = null;
|
|
6002
|
+
}
|
|
6003
|
+
}
|
|
6004
|
+
|
|
6005
|
+
// Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
|
|
6006
|
+
// This will catch if an invalid layout value is passed in and render the default layout if so.
|
|
6007
|
+
render() {
|
|
6008
|
+
try {
|
|
6009
|
+
return this.renderLayout();
|
|
6010
|
+
} catch (error) {
|
|
6011
|
+
// failed to get the defined layout
|
|
6012
|
+
console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
|
|
6013
|
+
|
|
6014
|
+
// fallback to the default layout
|
|
6015
|
+
return this.getLayout('default');
|
|
6016
|
+
}
|
|
6017
|
+
}
|
|
6018
|
+
};
|
|
6019
|
+
|
|
6020
|
+
var styleCss$3$1 = i$5`: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}`;
|
|
6021
|
+
|
|
6022
|
+
var colorCss$2$1 = i$5`[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)}`;
|
|
6023
|
+
|
|
6024
|
+
var tokensCss$2$1 = i$5`: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}`;
|
|
6025
|
+
|
|
6026
|
+
var shapeSize = i$5`.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}`;
|
|
6027
|
+
|
|
6028
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6029
|
+
// See LICENSE in the project root for license information.
|
|
6030
|
+
|
|
6031
|
+
// ---------------------------------------------------------------------
|
|
6032
|
+
|
|
6033
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
6034
|
+
|
|
6035
|
+
let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
|
|
6036
|
+
|
|
6037
|
+
/* eslint-disable jsdoc/require-param */
|
|
6038
|
+
|
|
6039
|
+
/**
|
|
6040
|
+
* This will register a new custom element with the browser.
|
|
6041
|
+
* @param {String} name - The name of the custom element.
|
|
6042
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
6043
|
+
* @returns {void}
|
|
6044
|
+
*/
|
|
6045
|
+
registerComponent(name, componentClass) {
|
|
6046
|
+
if (!customElements.get(name)) {
|
|
6047
|
+
customElements.define(name, class extends componentClass {});
|
|
6048
|
+
}
|
|
6049
|
+
}
|
|
6050
|
+
|
|
6051
|
+
/**
|
|
6052
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
6053
|
+
* @returns {void}
|
|
6054
|
+
*/
|
|
6055
|
+
closestElement(
|
|
6056
|
+
selector, // selector like in .closest()
|
|
6057
|
+
base = this, // extra functionality to skip a parent
|
|
6058
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
6059
|
+
!el || el === document || el === window
|
|
6060
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
6061
|
+
: found
|
|
6062
|
+
? found // found a selector INside this element
|
|
6063
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
6064
|
+
) {
|
|
6065
|
+
return __Closest(base);
|
|
6066
|
+
}
|
|
6067
|
+
/* eslint-enable jsdoc/require-param */
|
|
6068
|
+
|
|
6069
|
+
/**
|
|
6070
|
+
* 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.
|
|
6071
|
+
* @param {Object} elem - The element to check.
|
|
6072
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
6073
|
+
* @returns {void}
|
|
6074
|
+
*/
|
|
6075
|
+
handleComponentTagRename(elem, tagName) {
|
|
6076
|
+
const tag = tagName.toLowerCase();
|
|
6077
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6078
|
+
|
|
6079
|
+
if (elemTag !== tag) {
|
|
6080
|
+
elem.setAttribute(tag, true);
|
|
6081
|
+
}
|
|
6082
|
+
}
|
|
6083
|
+
|
|
6084
|
+
/**
|
|
6085
|
+
* Validates if an element is a specific Auro component.
|
|
6086
|
+
* @param {Object} elem - The element to validate.
|
|
6087
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
6088
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6089
|
+
*/
|
|
6090
|
+
elementMatch(elem, tagName) {
|
|
6091
|
+
const tag = tagName.toLowerCase();
|
|
6092
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6093
|
+
|
|
6094
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
6095
|
+
}
|
|
6096
|
+
};
|
|
6097
|
+
|
|
6098
|
+
var styleCss$2$1 = i$5`: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}}`;
|
|
6099
|
+
|
|
6100
|
+
var colorCss$1$1 = i$5`: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}`;
|
|
6101
|
+
|
|
6102
|
+
var tokensCss$1$1 = i$5`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
|
|
6103
|
+
|
|
6104
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6105
|
+
// See LICENSE in the project root for license information.
|
|
6106
|
+
|
|
6107
|
+
|
|
6108
|
+
class AuroLoader extends i$2 {
|
|
6109
|
+
constructor() {
|
|
6110
|
+
super();
|
|
6111
|
+
|
|
6112
|
+
/**
|
|
6113
|
+
* @private
|
|
6114
|
+
*/
|
|
6115
|
+
this.keys = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
6116
|
+
|
|
6117
|
+
/**
|
|
6118
|
+
* @private
|
|
6119
|
+
*/
|
|
6120
|
+
this.mdCount = 3;
|
|
6121
|
+
|
|
6122
|
+
/**
|
|
6123
|
+
* @private
|
|
6124
|
+
*/
|
|
6125
|
+
this.smCount = 2;
|
|
6126
|
+
|
|
6127
|
+
/**
|
|
6128
|
+
* @private
|
|
6129
|
+
*/
|
|
6130
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
|
|
6131
|
+
|
|
6132
|
+
this.orbit = false;
|
|
6133
|
+
this.ringworm = false;
|
|
6134
|
+
this.laser = false;
|
|
6135
|
+
this.pulse = false;
|
|
6136
|
+
}
|
|
6137
|
+
|
|
6138
|
+
// function to define props used within the scope of this component
|
|
6139
|
+
static get properties() {
|
|
6140
|
+
return {
|
|
6141
|
+
|
|
6142
|
+
/**
|
|
6143
|
+
* Sets loader to laser type.
|
|
6144
|
+
*/
|
|
6145
|
+
laser: {
|
|
6146
|
+
type: Boolean,
|
|
6147
|
+
reflect: true
|
|
6148
|
+
},
|
|
6149
|
+
|
|
6150
|
+
/**
|
|
6151
|
+
* Sets loader to orbit type.
|
|
6152
|
+
*/
|
|
6153
|
+
orbit: {
|
|
6154
|
+
type: Boolean,
|
|
6155
|
+
reflect: true
|
|
6156
|
+
},
|
|
6157
|
+
|
|
6158
|
+
/**
|
|
6159
|
+
* Sets loader to pulse type.
|
|
6160
|
+
*/
|
|
6161
|
+
pulse: {
|
|
6162
|
+
type: Boolean,
|
|
6163
|
+
reflect: true
|
|
6164
|
+
},
|
|
6165
|
+
|
|
6166
|
+
/**
|
|
6167
|
+
* Sets loader to ringworm type.
|
|
6168
|
+
*/
|
|
6169
|
+
ringworm: {
|
|
6170
|
+
type: Boolean,
|
|
6171
|
+
reflect: true
|
|
6172
|
+
}
|
|
6173
|
+
};
|
|
6174
|
+
}
|
|
6175
|
+
|
|
6176
|
+
static get styles() {
|
|
6177
|
+
return [
|
|
6178
|
+
i$5`${styleCss$2$1}`,
|
|
6179
|
+
i$5`${colorCss$1$1}`,
|
|
6180
|
+
i$5`${tokensCss$1$1}`
|
|
6181
|
+
];
|
|
6182
|
+
}
|
|
6183
|
+
|
|
6184
|
+
/**
|
|
6185
|
+
* This will register this element with the browser.
|
|
6186
|
+
* @param {string} [name="auro-loader"] - The name of element that you want to register to.
|
|
6187
|
+
*
|
|
6188
|
+
* @example
|
|
6189
|
+
* AuroLoader.register("custom-loader") // this will register this element to <custom-loader/>
|
|
6190
|
+
*
|
|
6191
|
+
*/
|
|
6192
|
+
static register(name = "auro-loader") {
|
|
6193
|
+
AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroLoader);
|
|
6194
|
+
}
|
|
6195
|
+
|
|
6196
|
+
firstUpdated() {
|
|
6197
|
+
// Add the tag name as an attribute if it is different than the component name
|
|
6198
|
+
this.runtimeUtils.handleComponentTagRename(this, 'auro-loader');
|
|
6199
|
+
}
|
|
6200
|
+
|
|
6201
|
+
connectedCallback() {
|
|
6202
|
+
super.connectedCallback();
|
|
6203
|
+
}
|
|
6204
|
+
|
|
6205
|
+
/**
|
|
6206
|
+
* @private
|
|
6207
|
+
* @returns {Array} Numbered array for template map.
|
|
6208
|
+
*/
|
|
6209
|
+
defineTemplate() {
|
|
6210
|
+
let nodes = Array.from(Array(this.mdCount).keys());
|
|
6211
|
+
|
|
6212
|
+
if (this.orbit || this.laser) {
|
|
6213
|
+
nodes = Array.from(Array(this.smCount).keys());
|
|
6214
|
+
} else if (this.ringworm) {
|
|
6215
|
+
nodes = Array.from(Array(0).keys());
|
|
6216
|
+
}
|
|
6217
|
+
|
|
6218
|
+
return nodes;
|
|
6219
|
+
}
|
|
6220
|
+
|
|
6221
|
+
// When using auroElement, use the following attribute and function when hiding content from screen readers.
|
|
6222
|
+
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
6223
|
+
|
|
6224
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
6225
|
+
render() {
|
|
6226
|
+
return x`
|
|
6227
|
+
${this.defineTemplate().map((idx) => x`
|
|
6228
|
+
<span part="element" class="loader node-${idx}"></span>
|
|
6229
|
+
`)}
|
|
6230
|
+
|
|
6231
|
+
<div class="no-animation">Loading...</div>
|
|
6232
|
+
|
|
6233
|
+
${this.ringworm ? x`
|
|
6234
|
+
<svg part="element" class="circular" viewBox="25 25 50 50">
|
|
6235
|
+
<circle class="path" cx="50" cy="50" r="20" fill="none"/>
|
|
6236
|
+
</svg>`
|
|
6237
|
+
: ``
|
|
6238
|
+
}
|
|
6239
|
+
`;
|
|
6240
|
+
}
|
|
6241
|
+
}
|
|
6242
|
+
|
|
6243
|
+
var loaderVersion = '5.0.0';
|
|
6244
|
+
|
|
6245
|
+
/* eslint-disable max-lines, curly, jsdoc/no-undefined-types */
|
|
6246
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6247
|
+
// See LICENSE in the project root for license information.
|
|
6248
|
+
|
|
6249
|
+
|
|
6250
|
+
/**
|
|
6251
|
+
* @slot - Default slot for the text of the button.
|
|
6252
|
+
* @csspart button - Apply CSS to HTML5 button.
|
|
6253
|
+
* @csspart loader - Apply CSS to auro-loader.
|
|
6254
|
+
* @csspart text - Apply CSS to text slot.
|
|
6255
|
+
* @csspart icon - Apply CSS to icon slot.
|
|
6256
|
+
*/
|
|
6257
|
+
|
|
6258
|
+
/* eslint-disable lit/no-invalid-html, lit/binding-positions */
|
|
6259
|
+
|
|
6260
|
+
const ICON_ONLY_SHAPES = ['circle'];
|
|
6261
|
+
|
|
6262
|
+
/**
|
|
6263
|
+
* AuroButton is a custom element that provides a styled, accessible button with support for various states and form association.
|
|
6264
|
+
* It is designed to be flexible, supporting loading states, icon slots, and integration with HTML5 forms.
|
|
6265
|
+
* @property {'default', 'rounded', 'pill', 'circle'} shape - Defines the shape of the button.
|
|
6266
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'} size - Defines the size of the button.
|
|
6267
|
+
* @property {'primary', 'secondary', 'tertiary', 'ghost', 'flat'} variant - Sets the button variant.
|
|
6268
|
+
* @property {'submit', 'reset', 'button'} type - The type of button. Matches HTML5 Button Spec.
|
|
6269
|
+
* @property {boolean} onDark - Indicates if the button is rendered in dark mode.
|
|
6270
|
+
*/
|
|
6271
|
+
class AuroButton extends AuroElement$1 {
|
|
6272
|
+
|
|
6273
|
+
/**
|
|
6274
|
+
* Enables form association for this element.
|
|
6275
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals
|
|
6276
|
+
* @returns {boolean} - Returns true to enable form association.
|
|
6277
|
+
*/
|
|
6278
|
+
static get formAssociated() {
|
|
6279
|
+
return true;
|
|
6280
|
+
}
|
|
6281
|
+
|
|
6282
|
+
constructor() {
|
|
6283
|
+
super();
|
|
6284
|
+
this.autofocus = false;
|
|
6285
|
+
this.disabled = false;
|
|
6286
|
+
this.loading = false;
|
|
6287
|
+
this.size = "md";
|
|
6288
|
+
this.shape = "rounded";
|
|
6289
|
+
this.onDark = false;
|
|
6290
|
+
this.fluid = false;
|
|
6291
|
+
this.loadingText = this.loadingText || 'Loading...';
|
|
6292
|
+
|
|
6293
|
+
// Support for HTML5 forms
|
|
6294
|
+
if (typeof this.attachInternals === 'function') {
|
|
6295
|
+
this.internals = this.attachInternals();
|
|
6296
|
+
} else {
|
|
6297
|
+
this.internals = null;
|
|
6298
|
+
|
|
6299
|
+
// eslint-disable-next-line no-console
|
|
6300
|
+
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.');
|
|
6301
|
+
}
|
|
6302
|
+
|
|
6303
|
+
/**
|
|
6304
|
+
* Generate unique names for dependency components.
|
|
6305
|
+
*/
|
|
6306
|
+
const versioning = new AuroDependencyVersioning();
|
|
6307
|
+
|
|
6308
|
+
/**
|
|
6309
|
+
* @private
|
|
6310
|
+
*/
|
|
6311
|
+
this.loaderTag = versioning.generateTag('auro-loader', loaderVersion, AuroLoader);
|
|
6312
|
+
|
|
6313
|
+
/**
|
|
6314
|
+
* @private
|
|
6315
|
+
*/
|
|
6316
|
+
this.buttonHref = undefined;
|
|
6317
|
+
|
|
6318
|
+
/**
|
|
6319
|
+
* @private
|
|
6320
|
+
*/
|
|
6321
|
+
this.buttonTarget = undefined;
|
|
6322
|
+
|
|
6323
|
+
/**
|
|
6324
|
+
* @private
|
|
6325
|
+
*/
|
|
6326
|
+
this.buttonRel = undefined;
|
|
6327
|
+
}
|
|
6328
|
+
|
|
6329
|
+
static get styles() {
|
|
6330
|
+
return [
|
|
6331
|
+
tokensCss$2$1,
|
|
6332
|
+
styleCss$3$1,
|
|
6333
|
+
colorCss$2$1,
|
|
6334
|
+
shapeSize
|
|
6335
|
+
];
|
|
6336
|
+
}
|
|
6337
|
+
|
|
6338
|
+
static get properties() {
|
|
6339
|
+
return {
|
|
6340
|
+
|
|
6341
|
+
...super.properties,
|
|
6342
|
+
|
|
6343
|
+
/**
|
|
6344
|
+
* Override layout since it isn't used in this component.
|
|
6345
|
+
* @private
|
|
6346
|
+
*/
|
|
6347
|
+
layout: {
|
|
6348
|
+
type: Boolean,
|
|
6349
|
+
attribute: false,
|
|
6350
|
+
reflect: false
|
|
6351
|
+
},
|
|
6352
|
+
|
|
6353
|
+
/**
|
|
6354
|
+
* This Boolean attribute lets you specify that the button should have input focus when the page loads, unless overridden by the user.
|
|
6355
|
+
*/
|
|
6356
|
+
autofocus: {
|
|
6357
|
+
type: Boolean,
|
|
6358
|
+
reflect: true
|
|
6359
|
+
},
|
|
6360
|
+
|
|
6361
|
+
/**
|
|
6362
|
+
* If set to true, button will become disabled and not allow for interactions.
|
|
6363
|
+
*/
|
|
6364
|
+
disabled: {
|
|
6365
|
+
type: Boolean,
|
|
6366
|
+
reflect: true
|
|
6367
|
+
},
|
|
6368
|
+
|
|
6369
|
+
/**
|
|
6370
|
+
* Alters the shape of the button to be full width of its parent container.
|
|
6371
|
+
*/
|
|
6372
|
+
fluid: {
|
|
6373
|
+
type: Boolean,
|
|
6374
|
+
reflect: true
|
|
6375
|
+
},
|
|
6376
|
+
|
|
6377
|
+
/**
|
|
6378
|
+
* If set to true button text will be replaced with `auro-loader` and become disabled.
|
|
6379
|
+
*/
|
|
6380
|
+
loading: {
|
|
6381
|
+
type: Boolean,
|
|
6382
|
+
reflect: true
|
|
6383
|
+
},
|
|
6384
|
+
|
|
6385
|
+
/**
|
|
6386
|
+
* 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.
|
|
6387
|
+
*/
|
|
6388
|
+
loadingText: {
|
|
6389
|
+
type: String
|
|
6390
|
+
},
|
|
6391
|
+
|
|
6392
|
+
/**
|
|
6393
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6394
|
+
*/
|
|
6395
|
+
tIndex: {
|
|
6396
|
+
type: String,
|
|
6397
|
+
reflect: true
|
|
6398
|
+
},
|
|
6399
|
+
|
|
6400
|
+
/**
|
|
6401
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6402
|
+
* Must be used with "." to ensure the host element does not retain a reference to the `tabindex` attribute.
|
|
6403
|
+
* Example: `<auro-button .tabindex="${this.disabled ? '-1' : '0'}"></auro-button>`
|
|
6404
|
+
*/
|
|
6405
|
+
tabindex: {
|
|
6406
|
+
type: String,
|
|
6407
|
+
reflect: false
|
|
6408
|
+
},
|
|
6409
|
+
|
|
6410
|
+
/**
|
|
6411
|
+
* Sets title attribute. The information is most often shown as a tooltip text when the mouse moves over the element.
|
|
6412
|
+
*/
|
|
6413
|
+
title: {
|
|
6414
|
+
type: String,
|
|
6415
|
+
reflect: true
|
|
6416
|
+
},
|
|
6417
|
+
|
|
6418
|
+
/**
|
|
6419
|
+
* The type of the button. Possible values are: `submit`, `reset`, `button`.
|
|
6420
|
+
*/
|
|
6421
|
+
type: {
|
|
6422
|
+
type: String,
|
|
6423
|
+
reflect: true
|
|
6424
|
+
},
|
|
6425
|
+
|
|
6426
|
+
/**
|
|
6427
|
+
* Defines the value associated with the button which is submitted with the form data.
|
|
6428
|
+
*/
|
|
6429
|
+
value: {
|
|
6430
|
+
type: String,
|
|
6431
|
+
reflect: true
|
|
6432
|
+
},
|
|
6433
|
+
|
|
6434
|
+
/**
|
|
6435
|
+
* Sets button variant option.
|
|
6436
|
+
* @default primary
|
|
6437
|
+
*/
|
|
6438
|
+
variant: {
|
|
6439
|
+
type: String,
|
|
6440
|
+
reflect: true
|
|
6441
|
+
},
|
|
6442
|
+
|
|
6443
|
+
/**
|
|
6444
|
+
* @private
|
|
6445
|
+
*/
|
|
6446
|
+
buttonHref: {
|
|
6447
|
+
type: String,
|
|
6448
|
+
},
|
|
6449
|
+
|
|
6450
|
+
/**
|
|
6451
|
+
* @private
|
|
6452
|
+
*/
|
|
6453
|
+
buttonTarget: {
|
|
6454
|
+
type: String,
|
|
6455
|
+
},
|
|
5214
6456
|
|
|
5215
|
-
|
|
6457
|
+
/**
|
|
6458
|
+
* @private
|
|
6459
|
+
*/
|
|
6460
|
+
buttonRel: {
|
|
6461
|
+
type: String,
|
|
6462
|
+
},
|
|
6463
|
+
};
|
|
6464
|
+
}
|
|
5216
6465
|
|
|
5217
6466
|
/**
|
|
5218
|
-
* This will register
|
|
5219
|
-
* @param {
|
|
5220
|
-
*
|
|
5221
|
-
* @
|
|
6467
|
+
* This will register this element with the browser.
|
|
6468
|
+
* @param {string} [name="auro-button"] - The name of element that you want to register to.
|
|
6469
|
+
*
|
|
6470
|
+
* @example
|
|
6471
|
+
* AuroButton.register("custom-button") // this will register this element to <custom-button/>
|
|
6472
|
+
*
|
|
5222
6473
|
*/
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
customElements.define(name, class extends componentClass {});
|
|
5226
|
-
}
|
|
6474
|
+
static register(name = "auro-button") {
|
|
6475
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroButton);
|
|
5227
6476
|
}
|
|
5228
6477
|
|
|
5229
6478
|
/**
|
|
5230
|
-
*
|
|
6479
|
+
* Internal method to apply focus to the HTML5 button.
|
|
6480
|
+
* @private
|
|
5231
6481
|
* @returns {void}
|
|
5232
6482
|
*/
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
base = this, // extra functionality to skip a parent
|
|
5236
|
-
__Closest = (el, found = el && el.closest(selector)) =>
|
|
5237
|
-
!el || el === document || el === window
|
|
5238
|
-
? null // standard .closest() returns null for non-found selectors also
|
|
5239
|
-
: found
|
|
5240
|
-
? found // found a selector INside this element
|
|
5241
|
-
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
5242
|
-
) {
|
|
5243
|
-
return __Closest(base);
|
|
6483
|
+
focus() {
|
|
6484
|
+
this.renderRoot.querySelector('button').focus();
|
|
5244
6485
|
}
|
|
5245
|
-
/* eslint-enable jsdoc/require-param */
|
|
5246
6486
|
|
|
5247
6487
|
/**
|
|
5248
|
-
*
|
|
5249
|
-
* @
|
|
5250
|
-
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
6488
|
+
* Submits the form that this button is associated with.
|
|
6489
|
+
* @private
|
|
5251
6490
|
* @returns {void}
|
|
5252
6491
|
*/
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
if (elemTag !== tag) {
|
|
5258
|
-
elem.setAttribute(tag, true);
|
|
6492
|
+
surfaceSubmitEvent() {
|
|
6493
|
+
if (this.form) {
|
|
6494
|
+
this.form.requestSubmit();
|
|
5259
6495
|
}
|
|
5260
6496
|
}
|
|
5261
6497
|
|
|
5262
6498
|
/**
|
|
5263
|
-
*
|
|
5264
|
-
* @
|
|
5265
|
-
* @
|
|
5266
|
-
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6499
|
+
* Returns the form element that this button is associated with.
|
|
6500
|
+
* @private
|
|
6501
|
+
* @returns {HTMLFormElement | null}
|
|
5267
6502
|
*/
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
const elemTag = elem.tagName.toLowerCase();
|
|
5271
|
-
|
|
5272
|
-
return elemTag === tag || elem.hasAttribute(tag);
|
|
6503
|
+
get form() {
|
|
6504
|
+
return this.internals ? this.internals.form : null;
|
|
5273
6505
|
}
|
|
5274
|
-
};
|
|
5275
6506
|
|
|
5276
|
-
|
|
5277
|
-
|
|
6507
|
+
/**
|
|
6508
|
+
* @private
|
|
6509
|
+
* @returns {Boolean}
|
|
6510
|
+
*/
|
|
6511
|
+
get hideText() {
|
|
6512
|
+
return ICON_ONLY_SHAPES.includes(this.shape);
|
|
6513
|
+
}
|
|
5278
6514
|
|
|
6515
|
+
/**
|
|
6516
|
+
* Returns the current value of the projected `aria-label` attribute or undefined if not set.
|
|
6517
|
+
* @returns {string | undefined}
|
|
6518
|
+
* @private
|
|
6519
|
+
*/
|
|
6520
|
+
get currentAriaLabel() {
|
|
6521
|
+
if (!this.attributeWatcher) return undefined;
|
|
5279
6522
|
|
|
5280
|
-
|
|
6523
|
+
const ariaLabel = this.attributeWatcher.getObservedAttribute("aria-label");
|
|
6524
|
+
return ariaLabel || undefined;
|
|
6525
|
+
}
|
|
5281
6526
|
|
|
5282
6527
|
/**
|
|
5283
|
-
*
|
|
6528
|
+
* Returns the current value of the projected `aria-labelledby` attribute or undefined if not set.
|
|
6529
|
+
* @returns {string | undefined}
|
|
5284
6530
|
* @private
|
|
5285
|
-
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5286
|
-
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5287
|
-
* @returns {string} - Unique string to be used for naming.
|
|
5288
6531
|
*/
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
result += '-';
|
|
5293
|
-
result += version.replace(/[.]/g, '_');
|
|
6532
|
+
get currentAriaLabelledBy() {
|
|
6533
|
+
if (!this.attributeWatcher) return undefined;
|
|
5294
6534
|
|
|
5295
|
-
|
|
6535
|
+
const ariaLabelledBy = this.attributeWatcher.getObservedAttribute("aria-labelledby");
|
|
6536
|
+
return ariaLabelledBy || undefined;
|
|
5296
6537
|
}
|
|
5297
6538
|
|
|
5298
6539
|
/**
|
|
5299
|
-
*
|
|
5300
|
-
* @
|
|
5301
|
-
* @
|
|
5302
|
-
* @returns {string} - Unique string to be used for naming.
|
|
6540
|
+
* Renders the default layout for the button.
|
|
6541
|
+
* @returns {TemplateResult}
|
|
6542
|
+
* @private
|
|
5303
6543
|
*/
|
|
5304
|
-
|
|
5305
|
-
const
|
|
5306
|
-
|
|
6544
|
+
renderLayoutDefault() {
|
|
6545
|
+
const classes = {
|
|
6546
|
+
"util_insetLg--squish": true,
|
|
6547
|
+
"auro-button": true,
|
|
6548
|
+
"icon-only": this.hideText,
|
|
6549
|
+
wrapper: true,
|
|
6550
|
+
loading: this.loading,
|
|
6551
|
+
};
|
|
5307
6552
|
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
}
|
|
6553
|
+
const tag = this.buttonHref ? i`a` : i`button`;
|
|
6554
|
+
const part = this.buttonHref ? 'link' : 'button';
|
|
5311
6555
|
|
|
5312
|
-
return
|
|
6556
|
+
return u`
|
|
6557
|
+
<${tag}
|
|
6558
|
+
part="${part}"
|
|
6559
|
+
aria-label="${o(this.loading ? this.loadingText : this.currentAriaLabel || undefined)}"
|
|
6560
|
+
aria-labelledby="${o(this.loading ? undefined : this.currentAriaLabelledBy || undefined)}"
|
|
6561
|
+
tabindex="${o(this.tIndex || this.tabindex)}"
|
|
6562
|
+
?autofocus="${this.autofocus}"
|
|
6563
|
+
class=${e(classes)}
|
|
6564
|
+
?disabled="${this.disabled || this.loading}"
|
|
6565
|
+
?onDark="${this.onDark}"
|
|
6566
|
+
title="${o(this.title ? this.title : undefined)}"
|
|
6567
|
+
name="${o(this.name ? this.name : undefined)}"
|
|
6568
|
+
type="${o(this.type ? this.type : undefined)}"
|
|
6569
|
+
variant="${o(this.variant ? this.variant : undefined)}"
|
|
6570
|
+
.value="${o(this.value ? this.value : undefined)}"
|
|
6571
|
+
@click="${this.type === 'submit' ? this.surfaceSubmitEvent : undefined}"
|
|
6572
|
+
href="${o(this.buttonHref || undefined)}"
|
|
6573
|
+
target="${o(this.buttonTarget || undefined)}"
|
|
6574
|
+
rel="${o(this.buttonRel || undefined)}"
|
|
6575
|
+
>
|
|
6576
|
+
${o(this.loading ? u`<${this.loaderTag} pulse part="loader"></${this.loaderTag}>` : undefined)}
|
|
6577
|
+
|
|
6578
|
+
<span class="contentWrapper">
|
|
6579
|
+
<span class="textSlot" part="text">
|
|
6580
|
+
<slot></slot>
|
|
6581
|
+
</span>
|
|
6582
|
+
</span>
|
|
6583
|
+
</${tag}>
|
|
6584
|
+
`;
|
|
6585
|
+
}
|
|
6586
|
+
|
|
6587
|
+
/**
|
|
6588
|
+
* Renders the layout of the button.
|
|
6589
|
+
* @returns {TemplateResult}
|
|
6590
|
+
* @private
|
|
6591
|
+
*/
|
|
6592
|
+
renderLayout() {
|
|
6593
|
+
return this.renderLayoutDefault();
|
|
5313
6594
|
}
|
|
5314
6595
|
}
|
|
5315
6596
|
|
|
6597
|
+
var buttonVersion = '11.2.1';
|
|
6598
|
+
|
|
5316
6599
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5317
6600
|
// See LICENSE in the project root for license information.
|
|
5318
6601
|
|
|
@@ -5323,7 +6606,7 @@ class AuroDependencyVersioning {
|
|
|
5323
6606
|
* @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
|
|
5324
6607
|
*/
|
|
5325
6608
|
|
|
5326
|
-
let AuroElement$
|
|
6609
|
+
let AuroElement$2 = class AuroElement extends i$2 {
|
|
5327
6610
|
|
|
5328
6611
|
// function to define props used within the scope of this component
|
|
5329
6612
|
static get properties() {
|
|
@@ -5391,7 +6674,7 @@ var styleCss$1$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}
|
|
|
5391
6674
|
*/
|
|
5392
6675
|
|
|
5393
6676
|
// build the component class
|
|
5394
|
-
let BaseIcon$1 = class BaseIcon extends AuroElement$
|
|
6677
|
+
let BaseIcon$1 = class BaseIcon extends AuroElement$2 {
|
|
5395
6678
|
constructor() {
|
|
5396
6679
|
super();
|
|
5397
6680
|
this.onDark = false;
|
|
@@ -5474,7 +6757,7 @@ var colorCss$4 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){
|
|
|
5474
6757
|
|
|
5475
6758
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5476
6759
|
|
|
5477
|
-
let AuroLibraryRuntimeUtils$
|
|
6760
|
+
let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
|
|
5478
6761
|
|
|
5479
6762
|
/* eslint-disable jsdoc/require-param */
|
|
5480
6763
|
|
|
@@ -5556,7 +6839,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5556
6839
|
*/
|
|
5557
6840
|
privateDefaults() {
|
|
5558
6841
|
this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
|
|
5559
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
6842
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
|
|
5560
6843
|
}
|
|
5561
6844
|
|
|
5562
6845
|
// function to define props used within the scope of this component
|
|
@@ -5638,7 +6921,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5638
6921
|
*
|
|
5639
6922
|
*/
|
|
5640
6923
|
static register(name = "auro-icon") {
|
|
5641
|
-
AuroLibraryRuntimeUtils$
|
|
6924
|
+
AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroIcon);
|
|
5642
6925
|
}
|
|
5643
6926
|
|
|
5644
6927
|
connectedCallback() {
|
|
@@ -5659,8 +6942,12 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5659
6942
|
async firstUpdated() {
|
|
5660
6943
|
await super.firstUpdated();
|
|
5661
6944
|
|
|
5662
|
-
|
|
5663
|
-
|
|
6945
|
+
/**
|
|
6946
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
6947
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
6948
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
6949
|
+
*/
|
|
6950
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
5664
6951
|
const svgDesc = this.svg.querySelector('desc');
|
|
5665
6952
|
|
|
5666
6953
|
if (svgDesc) {
|
|
@@ -5704,7 +6991,77 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5704
6991
|
}
|
|
5705
6992
|
};
|
|
5706
6993
|
|
|
5707
|
-
var iconVersion$1 = '8.0.
|
|
6994
|
+
var iconVersion$1 = '8.0.4';
|
|
6995
|
+
|
|
6996
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6997
|
+
// See LICENSE in the project root for license information.
|
|
6998
|
+
|
|
6999
|
+
// ---------------------------------------------------------------------
|
|
7000
|
+
|
|
7001
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
7002
|
+
|
|
7003
|
+
let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
|
|
7004
|
+
|
|
7005
|
+
/* eslint-disable jsdoc/require-param */
|
|
7006
|
+
|
|
7007
|
+
/**
|
|
7008
|
+
* This will register a new custom element with the browser.
|
|
7009
|
+
* @param {String} name - The name of the custom element.
|
|
7010
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
7011
|
+
* @returns {void}
|
|
7012
|
+
*/
|
|
7013
|
+
registerComponent(name, componentClass) {
|
|
7014
|
+
if (!customElements.get(name)) {
|
|
7015
|
+
customElements.define(name, class extends componentClass {});
|
|
7016
|
+
}
|
|
7017
|
+
}
|
|
7018
|
+
|
|
7019
|
+
/**
|
|
7020
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
7021
|
+
* @returns {void}
|
|
7022
|
+
*/
|
|
7023
|
+
closestElement(
|
|
7024
|
+
selector, // selector like in .closest()
|
|
7025
|
+
base = this, // extra functionality to skip a parent
|
|
7026
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
7027
|
+
!el || el === document || el === window
|
|
7028
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
7029
|
+
: found
|
|
7030
|
+
? found // found a selector INside this element
|
|
7031
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
7032
|
+
) {
|
|
7033
|
+
return __Closest(base);
|
|
7034
|
+
}
|
|
7035
|
+
/* eslint-enable jsdoc/require-param */
|
|
7036
|
+
|
|
7037
|
+
/**
|
|
7038
|
+
* 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.
|
|
7039
|
+
* @param {Object} elem - The element to check.
|
|
7040
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
7041
|
+
* @returns {void}
|
|
7042
|
+
*/
|
|
7043
|
+
handleComponentTagRename(elem, tagName) {
|
|
7044
|
+
const tag = tagName.toLowerCase();
|
|
7045
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7046
|
+
|
|
7047
|
+
if (elemTag !== tag) {
|
|
7048
|
+
elem.setAttribute(tag, true);
|
|
7049
|
+
}
|
|
7050
|
+
}
|
|
7051
|
+
|
|
7052
|
+
/**
|
|
7053
|
+
* Validates if an element is a specific Auro component.
|
|
7054
|
+
* @param {Object} elem - The element to validate.
|
|
7055
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
7056
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
7057
|
+
*/
|
|
7058
|
+
elementMatch(elem, tagName) {
|
|
7059
|
+
const tag = tagName.toLowerCase();
|
|
7060
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7061
|
+
|
|
7062
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
7063
|
+
}
|
|
7064
|
+
};
|
|
5708
7065
|
|
|
5709
7066
|
var styleCss$5 = i$5`.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)}`;
|
|
5710
7067
|
|
|
@@ -5735,7 +7092,7 @@ class AuroHeader extends i$2 {
|
|
|
5735
7092
|
/**
|
|
5736
7093
|
* @private
|
|
5737
7094
|
*/
|
|
5738
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
7095
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
|
|
5739
7096
|
}
|
|
5740
7097
|
|
|
5741
7098
|
// function to define props used within the scope of this component
|
|
@@ -5765,7 +7122,7 @@ class AuroHeader extends i$2 {
|
|
|
5765
7122
|
*
|
|
5766
7123
|
*/
|
|
5767
7124
|
static register(name = "auro-header") {
|
|
5768
|
-
AuroLibraryRuntimeUtils$
|
|
7125
|
+
AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHeader);
|
|
5769
7126
|
}
|
|
5770
7127
|
|
|
5771
7128
|
firstUpdated() {
|
|
@@ -5861,17 +7218,30 @@ class AuroBibtemplate extends i$2 {
|
|
|
5861
7218
|
|
|
5862
7219
|
this.large = false;
|
|
5863
7220
|
|
|
5864
|
-
AuroLibraryRuntimeUtils$
|
|
7221
|
+
AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
|
|
5865
7222
|
|
|
5866
7223
|
const versioning = new AuroDependencyVersioning();
|
|
7224
|
+
|
|
7225
|
+
/**
|
|
7226
|
+
* @private
|
|
7227
|
+
*/
|
|
5867
7228
|
this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion$1, AuroIcon$1);
|
|
7229
|
+
|
|
7230
|
+
/**
|
|
7231
|
+
* @private
|
|
7232
|
+
*/
|
|
5868
7233
|
this.headerTag = versioning.generateTag('auro-formkit-bibtemplate-header', headerVersion, AuroHeader);
|
|
7234
|
+
|
|
7235
|
+
/**
|
|
7236
|
+
* @private
|
|
7237
|
+
*/
|
|
7238
|
+
this.buttonTag = versioning.generateTag('auro-formkit-input-button', buttonVersion, AuroButton);
|
|
5869
7239
|
}
|
|
5870
7240
|
|
|
5871
7241
|
static get styles() {
|
|
5872
7242
|
return [
|
|
5873
|
-
colorCss$
|
|
5874
|
-
styleCss$
|
|
7243
|
+
colorCss$3$1,
|
|
7244
|
+
styleCss$4$1,
|
|
5875
7245
|
tokenCss
|
|
5876
7246
|
];
|
|
5877
7247
|
}
|
|
@@ -5900,7 +7270,7 @@ class AuroBibtemplate extends i$2 {
|
|
|
5900
7270
|
*
|
|
5901
7271
|
*/
|
|
5902
7272
|
static register(name = "auro-bibtemplate") {
|
|
5903
|
-
AuroLibraryRuntimeUtils$
|
|
7273
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroBibtemplate);
|
|
5904
7274
|
}
|
|
5905
7275
|
|
|
5906
7276
|
/**
|
|
@@ -5958,9 +7328,9 @@ class AuroBibtemplate extends i$2 {
|
|
|
5958
7328
|
<div id="bibTemplate" part="bibtemplate">
|
|
5959
7329
|
${this.isFullscreen ? u`
|
|
5960
7330
|
<div id="headerContainer">
|
|
5961
|
-
|
|
7331
|
+
<${this.buttonTag} id="closeButton" aria-label="Close" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
|
|
5962
7332
|
<${this.iconTag} category="interface" name="x-lg"></${this.iconTag}>
|
|
5963
|
-
|
|
7333
|
+
</${this.buttonTag}>
|
|
5964
7334
|
<${this.headerTag} display="${this.large ? 'display' : '600'}" level="3" size="none" id="header" no-margin-block>
|
|
5965
7335
|
<slot name="header"></slot>
|
|
5966
7336
|
</${this.headerTag}>
|
|
@@ -5984,9 +7354,9 @@ class AuroBibtemplate extends i$2 {
|
|
|
5984
7354
|
|
|
5985
7355
|
var bibTemplateVersion = '1.0.0';
|
|
5986
7356
|
|
|
5987
|
-
var colorCss$3 = i$5`: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-
|
|
7357
|
+
var colorCss$3 = i$5`: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)}`;
|
|
5988
7358
|
|
|
5989
|
-
var styleCss$4 = i$5
|
|
7359
|
+
var styleCss$4 = i$5`: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}`;
|
|
5990
7360
|
|
|
5991
7361
|
var tokensCss$2 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
5992
7362
|
|
|
@@ -6192,68 +7562,7 @@ class AuroHelpText extends i$2 {
|
|
|
6192
7562
|
|
|
6193
7563
|
var helpTextVersion = '1.0.0';
|
|
6194
7564
|
|
|
6195
|
-
i$5
|
|
6196
|
-
|
|
6197
|
-
i$5`: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)}`;
|
|
6198
|
-
|
|
6199
|
-
i$5`: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)}`;
|
|
6200
|
-
|
|
6201
|
-
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6202
|
-
// See LICENSE in the project root for license information.
|
|
6203
|
-
|
|
6204
|
-
// ---------------------------------------------------------------------
|
|
6205
|
-
|
|
6206
|
-
/**
|
|
6207
|
-
* Converts value to an array.
|
|
6208
|
-
* If the value is a JSON string representing an array, it will be parsed.
|
|
6209
|
-
* If the value is already an array, it is returned.
|
|
6210
|
-
* If the value is undefined, it returns undefined.
|
|
6211
|
-
* @private
|
|
6212
|
-
* @param {any} value - The value to be converted. Can be a string, array, or undefined.
|
|
6213
|
-
* @returns {Array|undefined} - The converted array or undefined.
|
|
6214
|
-
* @throws {Error} - Throws an error if the value is not an array, undefined,
|
|
6215
|
-
* or if the value cannot be parsed into an array from a JSON string.
|
|
6216
|
-
*/
|
|
6217
|
-
function arrayConverter(value) {
|
|
6218
|
-
// Allow undefined
|
|
6219
|
-
if (value === undefined) {
|
|
6220
|
-
return undefined;
|
|
6221
|
-
}
|
|
6222
|
-
|
|
6223
|
-
// Return the value if it is already an array
|
|
6224
|
-
if (Array.isArray(value)) {
|
|
6225
|
-
return value;
|
|
6226
|
-
}
|
|
6227
|
-
|
|
6228
|
-
try {
|
|
6229
|
-
// If value is a JSON string, parse it
|
|
6230
|
-
const parsed = typeof value === 'string' ? JSON.parse(value) : value;
|
|
6231
|
-
|
|
6232
|
-
// Check if the parsed value is an array
|
|
6233
|
-
if (Array.isArray(parsed)) {
|
|
6234
|
-
return parsed;
|
|
6235
|
-
}
|
|
6236
|
-
} catch (error) {
|
|
6237
|
-
// If JSON parsing fails, continue to throw an error below
|
|
6238
|
-
/* eslint-disable no-console */
|
|
6239
|
-
console.error('JSON parsing failed:', error);
|
|
6240
|
-
}
|
|
6241
|
-
|
|
6242
|
-
// Throw error if the input is not an array or undefined
|
|
6243
|
-
throw new Error('Invalid value: Input must be an array or undefined');
|
|
6244
|
-
}
|
|
6245
|
-
|
|
6246
|
-
i$5`: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}`;
|
|
6247
|
-
|
|
6248
|
-
i$5`: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)}`;
|
|
6249
|
-
|
|
6250
|
-
i$5`: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}`;
|
|
6251
|
-
|
|
6252
|
-
i$5`: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)}`;
|
|
6253
|
-
|
|
6254
|
-
i$5`: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)}`;
|
|
6255
|
-
|
|
6256
|
-
var styleCss$3 = i$5`.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}`;
|
|
7565
|
+
var styleCss$3 = i$5`.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}`;
|
|
6257
7566
|
|
|
6258
7567
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6259
7568
|
// See LICENSE in the project root for license information.
|
|
@@ -6266,9 +7575,10 @@ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock
|
|
|
6266
7575
|
* @slot - Default slot for the menu content.
|
|
6267
7576
|
* @slot bib.fullscreen.headline - Defines the headline to display above menu-options
|
|
6268
7577
|
* @slot label - Defines the content of the label.
|
|
7578
|
+
* @slot {HTMLSlotElement} optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
6269
7579
|
* @slot helpText - Defines the content of the helpText.
|
|
6270
|
-
* @slot placeholder - Defines the content of the placeholder to be shown when there is no value
|
|
6271
7580
|
* @slot valueText - Dropdown value text display.
|
|
7581
|
+
* @slot displayValue - Allows custom HTML content to display the selected value when select is not focused.
|
|
6272
7582
|
* @event auroSelect-valueSet - Notifies that the component has a new value set.
|
|
6273
7583
|
* @event input - Notifies every time the value prop of the element is changed. The updated `value` and `optionSelected` will be delivered in `detail` object.
|
|
6274
7584
|
* @event auroFormElement-validated - Notifies that the `validity` and `errorMessage` values have changed.
|
|
@@ -6276,7 +7586,7 @@ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock
|
|
|
6276
7586
|
*/
|
|
6277
7587
|
|
|
6278
7588
|
// build the component class
|
|
6279
|
-
class AuroSelect extends AuroElement$
|
|
7589
|
+
class AuroSelect extends AuroElement$4 {
|
|
6280
7590
|
constructor() {
|
|
6281
7591
|
super();
|
|
6282
7592
|
|
|
@@ -6286,11 +7596,11 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6286
7596
|
const idSubstrEnd = 8;
|
|
6287
7597
|
const idSubstrStart = 2;
|
|
6288
7598
|
|
|
6289
|
-
this.matchWidth =
|
|
7599
|
+
this.matchWidth = false;
|
|
6290
7600
|
|
|
6291
7601
|
// Layout Config
|
|
6292
|
-
this.layout = '
|
|
6293
|
-
this.shape = '
|
|
7602
|
+
this.layout = 'snowflake';
|
|
7603
|
+
this.shape = 'snowflake';
|
|
6294
7604
|
this.size = 'xl';
|
|
6295
7605
|
|
|
6296
7606
|
// floaterConfig
|
|
@@ -6301,6 +7611,10 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6301
7611
|
|
|
6302
7612
|
this.forceDisplayValue = false;
|
|
6303
7613
|
|
|
7614
|
+
this.layout = 'classic';
|
|
7615
|
+
this.shape = 'classic';
|
|
7616
|
+
this.size = 'xl';
|
|
7617
|
+
|
|
6304
7618
|
/**
|
|
6305
7619
|
* @private
|
|
6306
7620
|
*/
|
|
@@ -6316,7 +7630,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6316
7630
|
/**
|
|
6317
7631
|
* @private
|
|
6318
7632
|
*/
|
|
6319
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
7633
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
6320
7634
|
|
|
6321
7635
|
/**
|
|
6322
7636
|
* Generate unique names for dependency components.
|
|
@@ -6365,6 +7679,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6365
7679
|
this.value = undefined;
|
|
6366
7680
|
this.fullscreenBreakpoint = 'sm';
|
|
6367
7681
|
this.onDark = false;
|
|
7682
|
+
this.isPopoverVisible = false;
|
|
6368
7683
|
}
|
|
6369
7684
|
|
|
6370
7685
|
// This function is to define props used within the scope of this component
|
|
@@ -6406,6 +7721,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6406
7721
|
reflect: true
|
|
6407
7722
|
},
|
|
6408
7723
|
|
|
7724
|
+
/**
|
|
7725
|
+
* @private
|
|
7726
|
+
*/
|
|
7727
|
+
isPopoverVisible: {
|
|
7728
|
+
type: Boolean,
|
|
7729
|
+
reflect: false
|
|
7730
|
+
},
|
|
7731
|
+
|
|
6409
7732
|
/**
|
|
6410
7733
|
* If declared, the popover and trigger will be set to the same width.
|
|
6411
7734
|
*/
|
|
@@ -6422,14 +7745,6 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6422
7745
|
reflect: true
|
|
6423
7746
|
},
|
|
6424
7747
|
|
|
6425
|
-
/**
|
|
6426
|
-
* If set, makes dropdown width match the size of the content, rather than the width of the trigger.
|
|
6427
|
-
*/
|
|
6428
|
-
flexMenuWidth: {
|
|
6429
|
-
type: Boolean,
|
|
6430
|
-
reflect: true
|
|
6431
|
-
},
|
|
6432
|
-
|
|
6433
7748
|
/**
|
|
6434
7749
|
* Defines the screen size breakpoint (`xs`, `sm`, `md`, `lg`, `xl`, `disabled`)
|
|
6435
7750
|
* at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.
|
|
@@ -6523,7 +7838,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6523
7838
|
* "top" | "right" | "bottom" | "left" |
|
|
6524
7839
|
* "bottom-start" | "top-start" | "top-end" |
|
|
6525
7840
|
* "right-start" | "right-end" | "bottom-end" |
|
|
6526
|
-
* "left-start" | "left-end"
|
|
7841
|
+
* "left-start" | "left-end".
|
|
6527
7842
|
* @default bottom-start
|
|
6528
7843
|
*/
|
|
6529
7844
|
placement: {
|
|
@@ -6531,6 +7846,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6531
7846
|
reflect: true
|
|
6532
7847
|
},
|
|
6533
7848
|
|
|
7849
|
+
/**
|
|
7850
|
+
* Define custom placeholder text.
|
|
7851
|
+
*/
|
|
7852
|
+
placeholder: {
|
|
7853
|
+
type: String,
|
|
7854
|
+
reflect: true
|
|
7855
|
+
},
|
|
7856
|
+
|
|
6534
7857
|
/**
|
|
6535
7858
|
* Populates the `required` attribute on the element. Used for client-side validation.
|
|
6536
7859
|
*/
|
|
@@ -6577,11 +7900,12 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6577
7900
|
},
|
|
6578
7901
|
|
|
6579
7902
|
/**
|
|
6580
|
-
* Value selected for the component.
|
|
6581
|
-
* @type {String|Array<String>}
|
|
7903
|
+
* Value selected for the component.
|
|
6582
7904
|
*/
|
|
6583
7905
|
value: {
|
|
6584
|
-
type:
|
|
7906
|
+
type: String,
|
|
7907
|
+
reflect: true,
|
|
7908
|
+
attribute: 'value'
|
|
6585
7909
|
},
|
|
6586
7910
|
|
|
6587
7911
|
/**
|
|
@@ -6633,10 +7957,42 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6633
7957
|
];
|
|
6634
7958
|
}
|
|
6635
7959
|
|
|
7960
|
+
/**
|
|
7961
|
+
* Formatted value based on `multiSelect` state.
|
|
7962
|
+
* Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
|
|
7963
|
+
* @private
|
|
7964
|
+
* @returns {String|Array<String>}
|
|
7965
|
+
*/
|
|
7966
|
+
get formattedValue() {
|
|
7967
|
+
if (this.multiSelect) {
|
|
7968
|
+
if (!this.value) {
|
|
7969
|
+
return undefined;
|
|
7970
|
+
}
|
|
7971
|
+
if (this.value.startsWith("[")) {
|
|
7972
|
+
return JSON.parse(this.value);
|
|
7973
|
+
}
|
|
7974
|
+
return [this.value];
|
|
7975
|
+
}
|
|
7976
|
+
return this.value;
|
|
7977
|
+
}
|
|
7978
|
+
|
|
7979
|
+
/**
|
|
7980
|
+
* Returns classmap configuration for html5 input labels in all layouts.
|
|
7981
|
+
* @private
|
|
7982
|
+
* @returns {void}
|
|
7983
|
+
*/
|
|
7984
|
+
get commonLabelClasses() {
|
|
7985
|
+
return {
|
|
7986
|
+
'is-disabled': this.disabled,
|
|
7987
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7988
|
+
'util_displayHiddenVisually': this.hasDisplayValueContent && !this.hasFocus && this.value && this.value.length > 0
|
|
7989
|
+
};
|
|
7990
|
+
}
|
|
7991
|
+
|
|
6636
7992
|
/**
|
|
6637
7993
|
* Returns classmap configuration for wrapper elements in each layout.
|
|
6638
7994
|
* @private
|
|
6639
|
-
* @
|
|
7995
|
+
* @returns {object} - Returns classmap.
|
|
6640
7996
|
*/
|
|
6641
7997
|
get commonWrapperClasses() {
|
|
6642
7998
|
return {
|
|
@@ -6652,8 +8008,27 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6652
8008
|
configureDropdown() {
|
|
6653
8009
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
6654
8010
|
|
|
8011
|
+
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
8012
|
+
this.isPopoverVisible = this.dropdown.isPopoverVisible;
|
|
8013
|
+
|
|
8014
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8015
|
+
// wait til the bib gets fully rendered
|
|
8016
|
+
setTimeout(() => {
|
|
8017
|
+
if (this.dropdown.isBibFullscreen) {
|
|
8018
|
+
// trigger holds the focus since menu is not a focusable element.
|
|
8019
|
+
this.dropdown.trigger.focus();
|
|
8020
|
+
|
|
8021
|
+
// default focus indicator on the first menu option
|
|
8022
|
+
if (this.menu.index < 0) {
|
|
8023
|
+
this.menu.navigateOptions('down');
|
|
8024
|
+
}
|
|
8025
|
+
}
|
|
8026
|
+
});
|
|
8027
|
+
}
|
|
8028
|
+
});
|
|
8029
|
+
|
|
6655
8030
|
// setting up bibtemplate
|
|
6656
|
-
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
8031
|
+
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
6657
8032
|
|
|
6658
8033
|
if (this.customBibWidth) {
|
|
6659
8034
|
this.dropdown.dropdownWidth = this.customBibWidth;
|
|
@@ -6672,7 +8047,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6672
8047
|
*
|
|
6673
8048
|
*/
|
|
6674
8049
|
static register(name = "auro-select") {
|
|
6675
|
-
AuroLibraryRuntimeUtils$
|
|
8050
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroSelect);
|
|
6676
8051
|
}
|
|
6677
8052
|
|
|
6678
8053
|
/**
|
|
@@ -6684,13 +8059,18 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6684
8059
|
const triggerContentEl = this.dropdown.querySelector('#triggerFocus');
|
|
6685
8060
|
|
|
6686
8061
|
// Clear out old value
|
|
6687
|
-
// const placeholder = triggerContentEl.querySelector('#placeholder');
|
|
6688
8062
|
const valueElem = triggerContentEl.querySelector('#value');
|
|
6689
8063
|
if (valueElem) {
|
|
6690
8064
|
valueElem.innerHTML = '';
|
|
6691
|
-
// valueElem.innerHTML = ''.appendChild(value);
|
|
6692
8065
|
}
|
|
6693
8066
|
|
|
8067
|
+
const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
|
|
8068
|
+
const slottedElements = slot.assignedElements();
|
|
8069
|
+
|
|
8070
|
+
slottedElements.forEach((element) => {
|
|
8071
|
+
element.remove();
|
|
8072
|
+
});
|
|
8073
|
+
|
|
6694
8074
|
// Handle selected options
|
|
6695
8075
|
if (this.optionSelected) {
|
|
6696
8076
|
if (this.multiSelect && this.optionSelected.length > 0) {
|
|
@@ -6700,10 +8080,8 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6700
8080
|
} else {
|
|
6701
8081
|
valueElem.innerHTML = this.optionSelected.innerHTML;
|
|
6702
8082
|
const displayValueEl = this.optionSelected.querySelector("[slot='displayValue']");
|
|
6703
|
-
if (displayValueEl) {
|
|
6704
|
-
const oldDisplayValueEl = this.querySelectorAll("[slot='displayValue']");
|
|
6705
|
-
oldDisplayValueEl.forEach((el) => el.remove());
|
|
6706
8083
|
|
|
8084
|
+
if (displayValueEl) {
|
|
6707
8085
|
this.appendChild(displayValueEl.cloneNode(true));
|
|
6708
8086
|
}
|
|
6709
8087
|
this.hasDisplayValueContent = displayValueEl !== null;
|
|
@@ -6729,6 +8107,15 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6729
8107
|
return;
|
|
6730
8108
|
}
|
|
6731
8109
|
|
|
8110
|
+
// set menu's default size if there it's not specified.
|
|
8111
|
+
if (!this.menu.getAttribute('size')) {
|
|
8112
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8113
|
+
}
|
|
8114
|
+
|
|
8115
|
+
if (!this.getAttribute('shape')) {
|
|
8116
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8117
|
+
}
|
|
8118
|
+
|
|
6732
8119
|
if (this.multiSelect) {
|
|
6733
8120
|
this.menu.multiSelect = this.multiSelect;
|
|
6734
8121
|
}
|
|
@@ -6788,46 +8175,58 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6788
8175
|
configureSelect() {
|
|
6789
8176
|
|
|
6790
8177
|
this.addEventListener('keydown', (evt) => {
|
|
6791
|
-
|
|
6792
|
-
|
|
8178
|
+
// when the focus is on trigger not on close button
|
|
8179
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8180
|
+
if (evt.key === 'ArrowUp') {
|
|
8181
|
+
evt.preventDefault();
|
|
6793
8182
|
|
|
6794
|
-
|
|
8183
|
+
this.dropdown.show();
|
|
8184
|
+
|
|
8185
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8186
|
+
this.menu.navigateOptions('up');
|
|
8187
|
+
}
|
|
6795
8188
|
|
|
6796
|
-
|
|
6797
|
-
this.menu.navigateOptions('up');
|
|
8189
|
+
return;
|
|
6798
8190
|
}
|
|
6799
8191
|
|
|
6800
|
-
|
|
6801
|
-
|
|
8192
|
+
if (evt.key === 'ArrowDown') {
|
|
8193
|
+
evt.preventDefault();
|
|
6802
8194
|
|
|
6803
|
-
|
|
6804
|
-
evt.preventDefault();
|
|
8195
|
+
this.dropdown.show();
|
|
6805
8196
|
|
|
6806
|
-
|
|
8197
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8198
|
+
this.menu.navigateOptions('down');
|
|
8199
|
+
}
|
|
6807
8200
|
|
|
6808
|
-
|
|
6809
|
-
this.menu.navigateOptions('down');
|
|
8201
|
+
return;
|
|
6810
8202
|
}
|
|
6811
8203
|
|
|
6812
|
-
|
|
6813
|
-
|
|
8204
|
+
if (evt.key === 'Enter') {
|
|
8205
|
+
if (!this.dropdown.isPopoverVisible) {
|
|
8206
|
+
evt.preventDefault();
|
|
8207
|
+
this.menu.makeSelection();
|
|
8208
|
+
}
|
|
6814
8209
|
|
|
6815
|
-
|
|
6816
|
-
if (!this.dropdown.isPopoverVisible) {
|
|
6817
|
-
evt.preventDefault();
|
|
6818
|
-
this.menu.makeSelection();
|
|
8210
|
+
return;
|
|
6819
8211
|
}
|
|
6820
|
-
|
|
6821
|
-
return;
|
|
6822
8212
|
}
|
|
6823
8213
|
|
|
6824
|
-
if (evt.key === 'Tab') {
|
|
8214
|
+
if (evt.key === 'Tab' && this.dropdown.isPopoverVisible) {
|
|
6825
8215
|
if (this.dropdown.isBibFullscreen) {
|
|
6826
8216
|
evt.preventDefault();
|
|
8217
|
+
|
|
8218
|
+
// when the focus is on trigger not on close button
|
|
8219
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8220
|
+
// `dropdown.focus` will move focus to the first focusable element in bib when it's open,
|
|
8221
|
+
// when bib it not open, it will focus onto trigger.
|
|
8222
|
+
this.dropdown.focus();
|
|
8223
|
+
} else {
|
|
8224
|
+
// when close button has the focus, move focus back to the trigger
|
|
8225
|
+
this.dropdown.trigger.focus();
|
|
8226
|
+
}
|
|
6827
8227
|
} else {
|
|
6828
8228
|
this.dropdown.hide();
|
|
6829
8229
|
}
|
|
6830
|
-
|
|
6831
8230
|
return;
|
|
6832
8231
|
}
|
|
6833
8232
|
|
|
@@ -6992,34 +8391,39 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6992
8391
|
// Add the tag name as an attribute if it is different than the component name
|
|
6993
8392
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-select');
|
|
6994
8393
|
|
|
6995
|
-
this.configureMenu();
|
|
6996
8394
|
this.configureDropdown();
|
|
8395
|
+
this.configureMenu();
|
|
6997
8396
|
this.configureSelect();
|
|
8397
|
+
}
|
|
6998
8398
|
|
|
6999
|
-
|
|
7000
|
-
|
|
7001
|
-
|
|
7002
|
-
|
|
7003
|
-
|
|
8399
|
+
/**
|
|
8400
|
+
* Update the menu value. With checks for menu existence. Awaits value update.
|
|
8401
|
+
* @param {string} value - The value to set in the menu.
|
|
8402
|
+
* @returns {void}
|
|
8403
|
+
* @private
|
|
8404
|
+
*/
|
|
8405
|
+
async updateMenuValue(value) {
|
|
8406
|
+
if (!this.menu) return;
|
|
8407
|
+
|
|
8408
|
+
this.menu.setAttribute('value', value);
|
|
8409
|
+
this.menu.value = value;
|
|
8410
|
+
await this.menu.updateComplete;
|
|
7004
8411
|
}
|
|
7005
8412
|
|
|
7006
8413
|
async updated(changedProperties) {
|
|
7007
|
-
if (changedProperties.has('multiSelect')) {
|
|
8414
|
+
if (changedProperties.has('multiSelect') && !changedProperties.has('value')) {
|
|
7008
8415
|
this.clearSelection();
|
|
7009
8416
|
}
|
|
7010
8417
|
|
|
7011
8418
|
if (changedProperties.has('value')) {
|
|
7012
8419
|
if (this.value) {
|
|
7013
|
-
|
|
8420
|
+
await this.updateMenuValue(this.value);
|
|
7014
8421
|
|
|
7015
|
-
this.menu
|
|
7016
|
-
|
|
7017
|
-
|
|
7018
|
-
await this.menu.updateComplete;
|
|
7019
|
-
|
|
7020
|
-
this.optionSelected = this.menu.optionSelected;
|
|
8422
|
+
if (this.menu) {
|
|
8423
|
+
this.optionSelected = this.menu.optionSelected;
|
|
8424
|
+
}
|
|
7021
8425
|
} else {
|
|
7022
|
-
this.
|
|
8426
|
+
await this.updateMenuValue(undefined);
|
|
7023
8427
|
}
|
|
7024
8428
|
|
|
7025
8429
|
this._updateNativeSelect();
|
|
@@ -7038,7 +8442,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7038
8442
|
composed: true,
|
|
7039
8443
|
detail: {
|
|
7040
8444
|
optionSelected: this.optionSelected,
|
|
7041
|
-
value: this.
|
|
8445
|
+
value: this.formattedValue
|
|
7042
8446
|
}
|
|
7043
8447
|
}));
|
|
7044
8448
|
}
|
|
@@ -7050,6 +8454,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7050
8454
|
if (changedProperties.has('error')) {
|
|
7051
8455
|
this.validate(true);
|
|
7052
8456
|
}
|
|
8457
|
+
|
|
8458
|
+
if (changedProperties.has('shape') && this.menu) {
|
|
8459
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8460
|
+
}
|
|
8461
|
+
|
|
8462
|
+
if (changedProperties.has('size') && this.menu) {
|
|
8463
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8464
|
+
}
|
|
7053
8465
|
}
|
|
7054
8466
|
|
|
7055
8467
|
/**
|
|
@@ -7089,13 +8501,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7089
8501
|
const selectedValue = selectedOption.value;
|
|
7090
8502
|
|
|
7091
8503
|
if (this.multiSelect) {
|
|
7092
|
-
const currentArray =
|
|
8504
|
+
const currentArray = this.formattedValue;
|
|
7093
8505
|
|
|
7094
8506
|
if (!currentArray.includes(selectedValue)) {
|
|
7095
|
-
this.value = [
|
|
8507
|
+
this.value = JSON.stringify([
|
|
7096
8508
|
...currentArray,
|
|
7097
8509
|
selectedValue
|
|
7098
|
-
];
|
|
8510
|
+
]);
|
|
7099
8511
|
}
|
|
7100
8512
|
} else {
|
|
7101
8513
|
const currentValue = this.value;
|
|
@@ -7118,12 +8530,17 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7118
8530
|
}
|
|
7119
8531
|
|
|
7120
8532
|
if (this.multiSelect) {
|
|
7121
|
-
nativeSelect.value = this.
|
|
8533
|
+
nativeSelect.value = this.multiSelect ? this.multiSelect[0] : '';
|
|
7122
8534
|
} else {
|
|
7123
8535
|
nativeSelect.value = this.value || '';
|
|
7124
8536
|
}
|
|
7125
8537
|
}
|
|
7126
8538
|
|
|
8539
|
+
/**
|
|
8540
|
+
* Returns HTML for the hidden a11y screen reader content.
|
|
8541
|
+
* @private
|
|
8542
|
+
* @returns {html} - Returns HTML for the hidden a11y screen reader content.
|
|
8543
|
+
*/
|
|
7127
8544
|
renderAriaHtml() {
|
|
7128
8545
|
return u`
|
|
7129
8546
|
<div aria-live="polite" class="util_displayHiddenVisually">
|
|
@@ -7144,9 +8561,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7144
8561
|
`;
|
|
7145
8562
|
}
|
|
7146
8563
|
|
|
8564
|
+
/**
|
|
8565
|
+
* Returns HTML for the hidden HTML5 select.
|
|
8566
|
+
* @private
|
|
8567
|
+
* @returns {html} - Returns HTML for the hidden HTML5 select.
|
|
8568
|
+
*/
|
|
7147
8569
|
renderNativeSelect() {
|
|
7148
8570
|
return u`
|
|
7149
|
-
<div class="nativeSelectWrapper">
|
|
8571
|
+
<div class="nativeSelectWrapper util_displayHidden">
|
|
7150
8572
|
<select
|
|
7151
8573
|
tabindex="-1"
|
|
7152
8574
|
id="${`native-select-${this.id || this.uniqueId}`}"
|
|
@@ -7183,14 +8605,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7183
8605
|
? u`
|
|
7184
8606
|
<${this.helpTextTag} ?onDark="${this.onDark}">
|
|
7185
8607
|
<p id="${this.uniqueId}" part="helpText">
|
|
7186
|
-
<slot name="
|
|
8608
|
+
<slot name="helpText"></slot>
|
|
7187
8609
|
</p>
|
|
7188
8610
|
</${this.helpTextTag}>
|
|
7189
8611
|
`
|
|
7190
8612
|
: u`
|
|
7191
8613
|
<${this.helpTextTag} error ?onDark="${this.onDark}">
|
|
7192
8614
|
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
7193
|
-
|
|
8615
|
+
${this.errorMessage}
|
|
7194
8616
|
</p>
|
|
7195
8617
|
</${this.helpTextTag}>
|
|
7196
8618
|
`
|
|
@@ -7203,23 +8625,22 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7203
8625
|
* @private
|
|
7204
8626
|
* @returns {import("lit").TemplateResult} - Returns HTML for the emphasized layout.
|
|
7205
8627
|
*/
|
|
7206
|
-
// TODO update to use util class
|
|
7207
8628
|
renderLayoutEmphasized() {
|
|
7208
8629
|
const placeholderClass = {
|
|
7209
|
-
|
|
8630
|
+
'util_displayHidden': this.value
|
|
7210
8631
|
};
|
|
7211
8632
|
|
|
7212
8633
|
const displayValueClasses = {
|
|
7213
8634
|
'displayValue': true,
|
|
7214
8635
|
'hasContent': this.hasDisplayValueContent,
|
|
7215
|
-
'hasFocus': this.
|
|
7216
|
-
'withValue': this.value && this.value.length > 0,
|
|
8636
|
+
'hasFocus': this.isPopoverVisible,
|
|
8637
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7217
8638
|
'force': this.forceDisplayValue,
|
|
7218
8639
|
};
|
|
7219
8640
|
|
|
7220
8641
|
const valueContainerClasses = {
|
|
7221
8642
|
'valueContainer': true,
|
|
7222
|
-
'util_displayHiddenVisually':
|
|
8643
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
7223
8644
|
};
|
|
7224
8645
|
|
|
7225
8646
|
return u`
|
|
@@ -7230,16 +8651,16 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7230
8651
|
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
7231
8652
|
</div>
|
|
7232
8653
|
<${this.dropdownTag}
|
|
8654
|
+
a11yRole="select"
|
|
7233
8655
|
?autoPlacement="${this.autoPlacement}"
|
|
7234
8656
|
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7235
|
-
?matchWidth="${
|
|
8657
|
+
?matchWidth="${this.matchWidth}"
|
|
7236
8658
|
?noFlip="${this.noFlip}"
|
|
7237
8659
|
?onDark="${this.onDark}"
|
|
7238
8660
|
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7239
8661
|
.offset="${this.offset}"
|
|
7240
8662
|
.placement="${this.placement}"
|
|
7241
8663
|
chevron
|
|
7242
|
-
fluid
|
|
7243
8664
|
for="selectMenu"
|
|
7244
8665
|
layout="${this.layout}"
|
|
7245
8666
|
part="dropdown"
|
|
@@ -7251,15 +8672,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7251
8672
|
</div>
|
|
7252
8673
|
<div class="mainContent">
|
|
7253
8674
|
<div class="${e(valueContainerClasses)}">
|
|
7254
|
-
<label>
|
|
8675
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
7255
8676
|
<slot name="label"></slot>
|
|
8677
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
7256
8678
|
</label>
|
|
7257
8679
|
<div class="value" id="value"></div>
|
|
7258
|
-
${
|
|
7259
|
-
|
|
7260
|
-
|
|
7261
|
-
</div>
|
|
7262
|
-
`}
|
|
8680
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8681
|
+
${this.placeholder}
|
|
8682
|
+
</div>
|
|
7263
8683
|
</div>
|
|
7264
8684
|
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
7265
8685
|
<slot name="displayValue"></slot>
|
|
@@ -7286,20 +8706,20 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7286
8706
|
*/
|
|
7287
8707
|
renderLayoutSnowflake() {
|
|
7288
8708
|
const placeholderClass = {
|
|
7289
|
-
|
|
8709
|
+
'util_displayHidden': this.value
|
|
7290
8710
|
};
|
|
7291
8711
|
|
|
7292
8712
|
const displayValueClasses = {
|
|
7293
8713
|
'displayValue': true,
|
|
7294
8714
|
'hasContent': this.hasDisplayValueContent,
|
|
7295
|
-
'hasFocus': this.
|
|
7296
|
-
'withValue': this.value && this.value.length > 0,
|
|
8715
|
+
'hasFocus': this.isPopoverVisible,
|
|
8716
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7297
8717
|
'force': this.forceDisplayValue,
|
|
7298
8718
|
};
|
|
7299
8719
|
|
|
7300
8720
|
const valueContainerClasses = {
|
|
7301
8721
|
'valueContainer': true,
|
|
7302
|
-
'util_displayHiddenVisually': (this.forceDisplayValue || !this.
|
|
8722
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
7303
8723
|
};
|
|
7304
8724
|
|
|
7305
8725
|
return u`
|
|
@@ -7312,14 +8732,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7312
8732
|
<${this.dropdownTag}
|
|
7313
8733
|
?autoPlacement="${this.autoPlacement}"
|
|
7314
8734
|
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7315
|
-
?matchWidth="${
|
|
8735
|
+
?matchWidth="${this.matchWidth}"
|
|
7316
8736
|
?noFlip="${this.noFlip}"
|
|
7317
8737
|
?onDark="${this.onDark}"
|
|
7318
8738
|
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7319
8739
|
.offset="${this.offset}"
|
|
7320
8740
|
.placement="${this.placement}"
|
|
7321
8741
|
chevron
|
|
7322
|
-
fluid
|
|
7323
8742
|
for="selectMenu"
|
|
7324
8743
|
layout="${this.layout}"
|
|
7325
8744
|
part="dropdown"
|
|
@@ -7331,15 +8750,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7331
8750
|
</div>
|
|
7332
8751
|
<div class="mainContent">
|
|
7333
8752
|
<div class="${e(valueContainerClasses)}">
|
|
7334
|
-
<label>
|
|
8753
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
7335
8754
|
<slot name="label"></slot>
|
|
8755
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
7336
8756
|
</label>
|
|
7337
8757
|
<div class="value" id="value"></div>
|
|
7338
|
-
${
|
|
7339
|
-
|
|
7340
|
-
|
|
7341
|
-
</div>
|
|
7342
|
-
`}
|
|
8758
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8759
|
+
${this.placeholder}
|
|
8760
|
+
</div>
|
|
7343
8761
|
</div>
|
|
7344
8762
|
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
7345
8763
|
<slot name="displayValue"></slot>
|
|
@@ -7355,6 +8773,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7355
8773
|
${this.renderHtmlHelpText()}
|
|
7356
8774
|
</div>
|
|
7357
8775
|
</${this.dropdownTag}>
|
|
8776
|
+
${this.renderNativeSelect()}
|
|
7358
8777
|
</div>
|
|
7359
8778
|
`;
|
|
7360
8779
|
}
|
|
@@ -7365,11 +8784,75 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7365
8784
|
* @returns {import("lit").TemplateResult} - Returns HTML for the classic layout.
|
|
7366
8785
|
*/
|
|
7367
8786
|
renderLayoutClassic() {
|
|
8787
|
+
const placeholderClass = {
|
|
8788
|
+
'util_displayHidden': this.value
|
|
8789
|
+
};
|
|
8790
|
+
|
|
8791
|
+
const displayValueClasses = {
|
|
8792
|
+
'displayValue': true,
|
|
8793
|
+
'hasContent': this.hasDisplayValueContent,
|
|
8794
|
+
'hasFocus': this.isPopoverVisible,
|
|
8795
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
8796
|
+
'force': this.forceDisplayValue,
|
|
8797
|
+
};
|
|
8798
|
+
|
|
8799
|
+
const valueContainerClasses = {
|
|
8800
|
+
'valueContainer': true,
|
|
8801
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
8802
|
+
};
|
|
8803
|
+
|
|
7368
8804
|
return u`
|
|
7369
8805
|
<div
|
|
7370
|
-
class="${e(this.commonWrapperClasses)}
|
|
8806
|
+
class="${e(this.commonWrapperClasses)}"
|
|
7371
8807
|
part="wrapper">
|
|
7372
|
-
|
|
8808
|
+
<div id="slotHolder" aria-hidden="true">
|
|
8809
|
+
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
8810
|
+
</div>
|
|
8811
|
+
<${this.dropdownTag}
|
|
8812
|
+
?autoPlacement="${this.autoPlacement}"
|
|
8813
|
+
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
8814
|
+
?matchWidth="${!this.flexMenuWidth}"
|
|
8815
|
+
?noFlip="${this.noFlip}"
|
|
8816
|
+
?onDark="${this.onDark}"
|
|
8817
|
+
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
8818
|
+
.offset="${this.offset}"
|
|
8819
|
+
.placement="${this.placement}"
|
|
8820
|
+
chevron
|
|
8821
|
+
for="selectMenu"
|
|
8822
|
+
layout="${this.layout}"
|
|
8823
|
+
part="dropdown"
|
|
8824
|
+
shape="${this.shape}"
|
|
8825
|
+
size="${this.size}">
|
|
8826
|
+
<div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
|
|
8827
|
+
<div class="accents left">
|
|
8828
|
+
<slot name="typeIcon"></slot>
|
|
8829
|
+
</div>
|
|
8830
|
+
<div class="mainContent">
|
|
8831
|
+
<div class="${e(valueContainerClasses)}">
|
|
8832
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
8833
|
+
<slot name="label"></slot>
|
|
8834
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
8835
|
+
</label>
|
|
8836
|
+
<div class="value" id="value"></div>
|
|
8837
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8838
|
+
${this.placeholder}
|
|
8839
|
+
</div>
|
|
8840
|
+
</div>
|
|
8841
|
+
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
8842
|
+
<slot name="displayValue"></slot>
|
|
8843
|
+
</div>
|
|
8844
|
+
</div>
|
|
8845
|
+
<div class="accents right"></div>
|
|
8846
|
+
</div>
|
|
8847
|
+
<div class="menuWrapper"></div>
|
|
8848
|
+
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
8849
|
+
<slot></slot>
|
|
8850
|
+
</${this.bibtemplateTag}>
|
|
8851
|
+
<div slot="helpText">
|
|
8852
|
+
${this.renderHtmlHelpText()}
|
|
8853
|
+
</div>
|
|
8854
|
+
</${this.dropdownTag}>
|
|
8855
|
+
${this.renderNativeSelect()}
|
|
7373
8856
|
</div>
|
|
7374
8857
|
`;
|
|
7375
8858
|
}
|
|
@@ -7403,112 +8886,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7403
8886
|
|
|
7404
8887
|
// When using auroElement, use the following attribute and function when hiding content from screen readers.
|
|
7405
8888
|
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
7406
|
-
|
|
7407
|
-
// function that renders the HTML and CSS into the scope of the component
|
|
7408
|
-
renderBACKUP() {
|
|
7409
|
-
const placeholderClass = {
|
|
7410
|
-
hidden: this.value,
|
|
7411
|
-
};
|
|
7412
|
-
|
|
7413
|
-
return u`
|
|
7414
|
-
<div class="outerWrapper">
|
|
7415
|
-
<div aria-live="polite" class="util_displayHiddenVisually">
|
|
7416
|
-
${this.optionActive && this.options.length > 0
|
|
7417
|
-
? u`
|
|
7418
|
-
${`${this.optionActive.innerText}, option ${this.options.indexOf(this.optionActive) + 1} of ${this.options.length}`}
|
|
7419
|
-
`
|
|
7420
|
-
: undefined
|
|
7421
|
-
};
|
|
7422
|
-
|
|
7423
|
-
${this.optionSelected && this.options.length > 0
|
|
7424
|
-
? u`
|
|
7425
|
-
${`${this.optionSelected.innerText} selected`}
|
|
7426
|
-
`
|
|
7427
|
-
: undefined
|
|
7428
|
-
};
|
|
7429
|
-
</div>
|
|
7430
|
-
<div id="slotHolder" aria-hidden="true">
|
|
7431
|
-
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
7432
|
-
</div>
|
|
7433
|
-
<${this.dropdownTag}
|
|
7434
|
-
?autoPlacement="${this.autoPlacement}"
|
|
7435
|
-
?disabled="${this.disabled}"
|
|
7436
|
-
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7437
|
-
?matchWidth="${!this.flexMenuWidth}"
|
|
7438
|
-
?noFlip="${this.noFlip}"
|
|
7439
|
-
?onDark="${this.onDark}"
|
|
7440
|
-
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7441
|
-
.offset="${this.offset}"
|
|
7442
|
-
.placement="${this.placement}"
|
|
7443
|
-
chevron
|
|
7444
|
-
fluid
|
|
7445
|
-
for="selectMenu"
|
|
7446
|
-
layout="${this.layout}"
|
|
7447
|
-
part="dropdown"
|
|
7448
|
-
shape="${this.shape}"
|
|
7449
|
-
size="${this.size}">
|
|
7450
|
-
<span slot="trigger" aria-haspopup="true" id="triggerFocus">
|
|
7451
|
-
<span id="placeholder"
|
|
7452
|
-
class="${e(placeholderClass)}"
|
|
7453
|
-
?aria-hidden="${this.optionSelected && this.optionSelected.length ? 'true' : false}"
|
|
7454
|
-
>
|
|
7455
|
-
<slot name="placeholder"></slot>
|
|
7456
|
-
</span>
|
|
7457
|
-
<slot name="valueText" id="valueText"></slot>
|
|
7458
|
-
</span>
|
|
7459
|
-
|
|
7460
|
-
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
7461
|
-
<slot></slot>
|
|
7462
|
-
</${this.bibtemplateTag}>
|
|
7463
|
-
<slot name="label" slot="label"></slot>
|
|
7464
|
-
<p slot="helpText">
|
|
7465
|
-
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
7466
|
-
? u`
|
|
7467
|
-
<span id="${this.uniqueId}" part="helpText">
|
|
7468
|
-
<slot name="helpText"></slot>
|
|
7469
|
-
</span>`
|
|
7470
|
-
: u`
|
|
7471
|
-
<span id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
7472
|
-
${this.errorMessage}
|
|
7473
|
-
</span>`
|
|
7474
|
-
}
|
|
7475
|
-
</p>
|
|
7476
|
-
</${this.dropdownTag}>
|
|
7477
|
-
<div class="nativeSelectWrapper">
|
|
7478
|
-
<select
|
|
7479
|
-
tabindex="-1"
|
|
7480
|
-
id="${`native-select-${this.id || this.uniqueId}`}"
|
|
7481
|
-
name="${this.name || ''}"
|
|
7482
|
-
?disabled="${this.disabled}"
|
|
7483
|
-
?required="${this.required}"
|
|
7484
|
-
aria-hidden="true"
|
|
7485
|
-
autocomplete="${o(this.autocomplete)}"
|
|
7486
|
-
@change="${this._handleNativeSelectChange}">
|
|
7487
|
-
<option value="" ?selected="${!this.value}"></option>
|
|
7488
|
-
${this.options.map((option) => {
|
|
7489
|
-
const optionValue = option.value || option.textContent;
|
|
7490
|
-
return u`
|
|
7491
|
-
<option
|
|
7492
|
-
value="${optionValue}"
|
|
7493
|
-
?selected="${this.value === optionValue}">
|
|
7494
|
-
${option.textContent}
|
|
7495
|
-
</option>
|
|
7496
|
-
`;
|
|
7497
|
-
})}
|
|
7498
|
-
</select>
|
|
7499
|
-
</div>
|
|
7500
|
-
<!-- Help text and error message template -->
|
|
7501
|
-
${this.renderHtmlHelpText()}
|
|
7502
|
-
</div>
|
|
7503
|
-
`;
|
|
7504
|
-
}
|
|
7505
8889
|
}
|
|
7506
8890
|
|
|
7507
|
-
var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:
|
|
8891
|
+
var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:block;vertical-align:middle}:host .wrapper{box-sizing:border-box;display:inline-block;width:100%;margin:0;padding:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host [loadingplaceholder].empty{opacity:0;position:absolute}:host [loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}:host [loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}:host([root]){overflow-y:auto}:host([root]) .wrapper[class*=-lg]{padding:var(--ds-size-150, 0.75rem)}:host([root]) .wrapper[class*=-xl]{padding:var(--ds-size-200, 1rem)}`;
|
|
7508
8892
|
|
|
7509
8893
|
var colorCss$2 = i$5`: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)}`;
|
|
7510
8894
|
|
|
7511
|
-
var tokensCss$1 = i$5`: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)}`;
|
|
8895
|
+
var tokensCss$1 = i$5`: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-container-border-color: var(--ds-auro-menuoption-container-color);--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
|
|
7512
8896
|
|
|
7513
8897
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
7514
8898
|
// See LICENSE in the project root for license information.
|
|
@@ -7561,7 +8945,6 @@ function dispatchMenuEvent(element, eventName, detail = null) {
|
|
|
7561
8945
|
* @attr {boolean} nocheckmark - When true, selected option will not show the checkmark.
|
|
7562
8946
|
* @attr {boolean} loading - When true, displays a loading state using the loadingIcon and loadingText slots if provided.
|
|
7563
8947
|
* @attr {boolean} multiselect - When true, the selected option can be multiple options.
|
|
7564
|
-
* @attr {String|Array<string>} value - Value selected for the menu, type `string` by default. In multi-select mode, `value` is an array of strings.
|
|
7565
8948
|
* @prop {boolean} hasLoadingPlaceholder - Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state.
|
|
7566
8949
|
* @event {CustomEvent<Element>} auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
|
|
7567
8950
|
* @event {CustomEvent<any>} auroMenu-customEventFired - Notifies that a custom event has been fired.
|
|
@@ -7574,14 +8957,17 @@ function dispatchMenuEvent(element, eventName, detail = null) {
|
|
|
7574
8957
|
* @slot - Slot for insertion of menu options.
|
|
7575
8958
|
*/
|
|
7576
8959
|
|
|
7577
|
-
/* eslint-disable no-magic-numbers, max-lines, no-extra-parens */
|
|
8960
|
+
/* eslint-disable no-magic-numbers, max-lines, no-extra-parens, no-inline-comments, line-comment-position */
|
|
7578
8961
|
|
|
7579
|
-
class AuroMenu extends
|
|
8962
|
+
class AuroMenu extends AuroElement$4 {
|
|
7580
8963
|
constructor() {
|
|
7581
8964
|
super();
|
|
7582
8965
|
|
|
7583
8966
|
// State properties (reactive)
|
|
7584
8967
|
|
|
8968
|
+
this.shape = ""; // box, rounded, pill
|
|
8969
|
+
this.size = ""; // md, lg, xl
|
|
8970
|
+
|
|
7585
8971
|
// Value of the selected options
|
|
7586
8972
|
this.value = undefined;
|
|
7587
8973
|
// Currently selected option
|
|
@@ -7640,6 +9026,7 @@ class AuroMenu extends i$2 {
|
|
|
7640
9026
|
|
|
7641
9027
|
static get properties() {
|
|
7642
9028
|
return {
|
|
9029
|
+
...super.properties,
|
|
7643
9030
|
noCheckmark: {
|
|
7644
9031
|
type: Boolean,
|
|
7645
9032
|
reflect: true,
|
|
@@ -7670,9 +9057,24 @@ class AuroMenu extends i$2 {
|
|
|
7670
9057
|
reflect: true,
|
|
7671
9058
|
attribute: 'multiselect'
|
|
7672
9059
|
},
|
|
9060
|
+
|
|
9061
|
+
/**
|
|
9062
|
+
* Value selected for the component.
|
|
9063
|
+
*/
|
|
7673
9064
|
value: {
|
|
7674
|
-
|
|
7675
|
-
|
|
9065
|
+
type: String,
|
|
9066
|
+
reflect: true,
|
|
9067
|
+
attribute: 'value'
|
|
9068
|
+
},
|
|
9069
|
+
|
|
9070
|
+
/**
|
|
9071
|
+
* Indent level for submenus.
|
|
9072
|
+
* @private
|
|
9073
|
+
*/
|
|
9074
|
+
level: {
|
|
9075
|
+
type: Number,
|
|
9076
|
+
reflect: false,
|
|
9077
|
+
attribute: false
|
|
7676
9078
|
}
|
|
7677
9079
|
};
|
|
7678
9080
|
}
|
|
@@ -7694,7 +9096,26 @@ class AuroMenu extends i$2 {
|
|
|
7694
9096
|
*
|
|
7695
9097
|
*/
|
|
7696
9098
|
static register(name = "auro-menu") {
|
|
7697
|
-
AuroLibraryRuntimeUtils$
|
|
9099
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenu);
|
|
9100
|
+
}
|
|
9101
|
+
|
|
9102
|
+
/**
|
|
9103
|
+
* Formatted value based on `multiSelect` state.
|
|
9104
|
+
* Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
|
|
9105
|
+
* @private
|
|
9106
|
+
* @returns {String|Array<String>}
|
|
9107
|
+
*/
|
|
9108
|
+
get formattedValue() {
|
|
9109
|
+
if (this.multiSelect) {
|
|
9110
|
+
if (!this.value) {
|
|
9111
|
+
return undefined;
|
|
9112
|
+
}
|
|
9113
|
+
if (this.value.startsWith("[")) {
|
|
9114
|
+
return JSON.parse(this.value);
|
|
9115
|
+
}
|
|
9116
|
+
return [this.value];
|
|
9117
|
+
}
|
|
9118
|
+
return this.value;
|
|
7698
9119
|
}
|
|
7699
9120
|
|
|
7700
9121
|
// Lifecycle Methods
|
|
@@ -7706,6 +9127,7 @@ class AuroMenu extends i$2 {
|
|
|
7706
9127
|
this.addEventListener('mousedown', this.handleMouseSelect);
|
|
7707
9128
|
this.addEventListener('auroMenuOption-mouseover', this.handleOptionHover);
|
|
7708
9129
|
this.addEventListener('slotchange', this.handleSlotChange);
|
|
9130
|
+
this.setTagAttribute("auro-menu");
|
|
7709
9131
|
}
|
|
7710
9132
|
|
|
7711
9133
|
disconnectedCallback() {
|
|
@@ -7718,19 +9140,33 @@ class AuroMenu extends i$2 {
|
|
|
7718
9140
|
}
|
|
7719
9141
|
|
|
7720
9142
|
firstUpdated() {
|
|
7721
|
-
AuroLibraryRuntimeUtils$
|
|
9143
|
+
AuroLibraryRuntimeUtils$6.prototype.handleComponentTagRename(this, 'auro-menu');
|
|
7722
9144
|
|
|
7723
9145
|
this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
|
|
7724
9146
|
this.initializeMenu();
|
|
7725
9147
|
}
|
|
7726
9148
|
|
|
9149
|
+
/**
|
|
9150
|
+
* Sets an attribute that matches the default tag name if the tag name is not the default.
|
|
9151
|
+
* @param {string} tagName - The tag name to set as an attribute.
|
|
9152
|
+
* @private
|
|
9153
|
+
*/
|
|
9154
|
+
setTagAttribute(tagName) {
|
|
9155
|
+
if (this.tagName.toLowerCase() !== tagName) {
|
|
9156
|
+
this.setAttribute(tagName, true);
|
|
9157
|
+
}
|
|
9158
|
+
}
|
|
9159
|
+
|
|
7727
9160
|
updated(changedProperties) {
|
|
7728
|
-
|
|
9161
|
+
super.updated(changedProperties);
|
|
9162
|
+
|
|
9163
|
+
if (changedProperties.has('multiSelect') && !changedProperties.has("value")) {
|
|
7729
9164
|
// Reset selection if multiSelect mode changes
|
|
7730
9165
|
this.clearSelection();
|
|
7731
9166
|
}
|
|
7732
9167
|
|
|
7733
|
-
|
|
9168
|
+
|
|
9169
|
+
if (changedProperties.has("value")) {
|
|
7734
9170
|
// Handle null/undefined case
|
|
7735
9171
|
if (this.value === undefined || this.value === null) {
|
|
7736
9172
|
this.optionSelected = undefined;
|
|
@@ -7738,7 +9174,7 @@ class AuroMenu extends i$2 {
|
|
|
7738
9174
|
} else {
|
|
7739
9175
|
if (this.multiSelect) {
|
|
7740
9176
|
// In multiselect mode, this.value should be an array of strings
|
|
7741
|
-
const valueArray =
|
|
9177
|
+
const valueArray = this.formattedValue;
|
|
7742
9178
|
const matchingOptions = this.items.filter((item) => valueArray.includes(item.value));
|
|
7743
9179
|
|
|
7744
9180
|
this.optionSelected = matchingOptions.length > 0 ? matchingOptions : undefined;
|
|
@@ -7798,6 +9234,19 @@ class AuroMenu extends i$2 {
|
|
|
7798
9234
|
this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]').forEach((element) => element.setAttribute('noCheckmark', ''));
|
|
7799
9235
|
}
|
|
7800
9236
|
|
|
9237
|
+
// Handle layout propagation to all menus and options
|
|
9238
|
+
const propagationTargets = this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]');
|
|
9239
|
+
[
|
|
9240
|
+
'size',
|
|
9241
|
+
'shape'
|
|
9242
|
+
].forEach((prop) => {
|
|
9243
|
+
if (changedProperties.has(prop)) {
|
|
9244
|
+
propagationTargets.forEach((el) => {
|
|
9245
|
+
el.setAttribute(prop, this[prop]);
|
|
9246
|
+
});
|
|
9247
|
+
}
|
|
9248
|
+
});
|
|
9249
|
+
|
|
7801
9250
|
// Regex for matchWord if needed
|
|
7802
9251
|
let regexWord = null;
|
|
7803
9252
|
|
|
@@ -7892,14 +9341,14 @@ class AuroMenu extends i$2 {
|
|
|
7892
9341
|
*/
|
|
7893
9342
|
handleSelectState(option) {
|
|
7894
9343
|
if (this.multiSelect) {
|
|
7895
|
-
const currentValue = this.
|
|
9344
|
+
const currentValue = this.formattedValue || [];
|
|
7896
9345
|
const currentSelected = this.optionSelected || [];
|
|
7897
9346
|
|
|
7898
9347
|
if (!currentValue.includes(option.value)) {
|
|
7899
|
-
this.value = [
|
|
9348
|
+
this.value = JSON.stringify([
|
|
7900
9349
|
...currentValue,
|
|
7901
9350
|
option.value
|
|
7902
|
-
];
|
|
9351
|
+
]);
|
|
7903
9352
|
}
|
|
7904
9353
|
if (!currentSelected.includes(option)) {
|
|
7905
9354
|
this.optionSelected = [
|
|
@@ -7922,13 +9371,15 @@ class AuroMenu extends i$2 {
|
|
|
7922
9371
|
* @param {HTMLElement} option - The menuoption to be deselected.
|
|
7923
9372
|
*/
|
|
7924
9373
|
handleDeselectState(option) {
|
|
7925
|
-
if (this.multiSelect
|
|
9374
|
+
if (this.multiSelect) {
|
|
7926
9375
|
// Remove this option from array
|
|
7927
|
-
|
|
9376
|
+
const newFormattedValue = (this.formattedValue || []).filter((val) => val !== option.value);
|
|
7928
9377
|
|
|
7929
9378
|
// If array is empty after removal, set back to undefined
|
|
7930
|
-
if (
|
|
9379
|
+
if (newFormattedValue && newFormattedValue.length === 0) {
|
|
7931
9380
|
this.value = undefined;
|
|
9381
|
+
} else {
|
|
9382
|
+
this.value = JSON.stringify(newFormattedValue);
|
|
7932
9383
|
}
|
|
7933
9384
|
|
|
7934
9385
|
this.optionSelected = this.optionSelected.filter((val) => val !== option);
|
|
@@ -7994,21 +9445,20 @@ class AuroMenu extends i$2 {
|
|
|
7994
9445
|
* @param {HTMLElement} menu - Root menu element.
|
|
7995
9446
|
*/
|
|
7996
9447
|
handleNestedMenus(menu) {
|
|
7997
|
-
|
|
9448
|
+
menu.level = menu.parentElement.level >= 0 ? menu.parentElement.level + 1 : 0;
|
|
7998
9449
|
|
|
7999
|
-
|
|
8000
|
-
|
|
8001
|
-
|
|
8002
|
-
if (!
|
|
8003
|
-
|
|
9450
|
+
if (menu.level > 0) {
|
|
9451
|
+
menu.setAttribute('role', 'group');
|
|
9452
|
+
menu.removeAttribute("root");
|
|
9453
|
+
if (!menu.hasAttribute('aria-label')) {
|
|
9454
|
+
menu.setAttribute('aria-label', 'submenu');
|
|
8004
9455
|
}
|
|
9456
|
+
}
|
|
8005
9457
|
|
|
8006
|
-
|
|
8007
|
-
|
|
8008
|
-
|
|
8009
|
-
|
|
8010
|
-
|
|
8011
|
-
this.handleNestedMenus(nestedMenu);
|
|
9458
|
+
const options = menu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption]');
|
|
9459
|
+
options.forEach((option) => {
|
|
9460
|
+
const regex = new RegExp(this.nestingSpacer, "gu");
|
|
9461
|
+
option.innerHTML = this.nestingSpacer.repeat(menu.level) + option.innerHTML.replace(regex, '');
|
|
8012
9462
|
});
|
|
8013
9463
|
}
|
|
8014
9464
|
|
|
@@ -8250,28 +9700,39 @@ class AuroMenu extends i$2 {
|
|
|
8250
9700
|
}
|
|
8251
9701
|
|
|
8252
9702
|
/**
|
|
8253
|
-
*
|
|
8254
|
-
* @
|
|
9703
|
+
* Logic to determine the layout of the component.
|
|
9704
|
+
* @protected
|
|
9705
|
+
* @returns {void}
|
|
8255
9706
|
*/
|
|
8256
|
-
|
|
9707
|
+
renderLayout() {
|
|
8257
9708
|
if (this.loading) {
|
|
8258
9709
|
return x`
|
|
8259
|
-
<
|
|
8260
|
-
<
|
|
8261
|
-
|
|
8262
|
-
|
|
8263
|
-
|
|
8264
|
-
|
|
9710
|
+
<div class="wrapper">
|
|
9711
|
+
<auro-menuoption
|
|
9712
|
+
disabled
|
|
9713
|
+
loadingplaceholder
|
|
9714
|
+
class="${this.hasLoadingPlaceholder ? "" : "empty"}"
|
|
9715
|
+
>
|
|
9716
|
+
<div>
|
|
9717
|
+
<slot name="loadingIcon"></slot>
|
|
9718
|
+
<slot name="loadingText"></slot>
|
|
9719
|
+
</div>
|
|
9720
|
+
</auro-menuoption>
|
|
9721
|
+
</div>
|
|
8265
9722
|
`;
|
|
8266
9723
|
}
|
|
8267
9724
|
|
|
8268
|
-
return x
|
|
9725
|
+
return x`
|
|
9726
|
+
<div class="wrapper">
|
|
9727
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
9728
|
+
</div>
|
|
9729
|
+
`;
|
|
8269
9730
|
}
|
|
8270
9731
|
}
|
|
8271
9732
|
|
|
8272
|
-
var styleCss$1 = i$5`:host{display:flex;align-items:center;padding:var(--ds-size-
|
|
9733
|
+
var styleCss$1 = i$5`:host{cursor:pointer;user-select:none}:host .wrapper{display:flex;align-items:center;padding-right:var(--ds-size-200, 1rem);padding-left:calc(var(--ds-size-150, 0.75rem) + var(--ds-size-300, 1.5rem) + var(--ds-size-100, 0.5rem));padding-top:var(--ds-size-50, 0.25rem);padding-bottom:var(--ds-size-50, 0.25rem);-webkit-tap-highlight-color:transparent}:host .wrapper[class*=shape-box],:host .wrapper[class*=shape-snowflake]{border-radius:unset}:host .wrapper[class*=shape-pill]{border-radius:30px}:host .wrapper[class*=-lg]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-75, 0.375rem);padding-bottom:var(--ds-size-75, 0.375rem);padding-right:var(--ds-size-150, 0.75rem)}:host .wrapper[class*=-lg]:not(:last-child){margin-bottom:var(--ds-size-50, 0.25rem)}:host .wrapper[class*=-xl]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-100, 0.5rem);padding-bottom:var(--ds-size-100, 0.5rem);padding-right:var(--ds-size-200, 1rem)}:host .wrapper[class*=-xl]:not(:last-child){margin-bottom:var(--ds-size-100, 0.5rem)}: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([loadingplaceholder]) .wrapper{padding-left:calc(var(--ds-size-150, 0.75rem) + var(--ds-size-300, 1.5rem) + var(--ds-size-100, 0.5rem))}:host([selected]) .wrapper{padding-left:0}:host([nocheckmark]) .wrapper{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-lg]{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-xl]{padding-left:var(--ds-size-200, 1rem)}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
|
|
8273
9734
|
|
|
8274
|
-
var colorCss$1 = i$5`: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)}`;
|
|
9735
|
+
var colorCss$1 = i$5`:host .wrapper{border:1px solid var(--ds-auro-menuoption-container-border-color);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)}`;
|
|
8275
9736
|
|
|
8276
9737
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
8277
9738
|
// See LICENSE in the project root for license information.
|
|
@@ -8619,8 +10080,12 @@ class AuroIcon extends BaseIcon {
|
|
|
8619
10080
|
async firstUpdated() {
|
|
8620
10081
|
await super.firstUpdated();
|
|
8621
10082
|
|
|
8622
|
-
|
|
8623
|
-
|
|
10083
|
+
/**
|
|
10084
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
10085
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
10086
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
10087
|
+
*/
|
|
10088
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
8624
10089
|
const svgDesc = this.svg.querySelector('desc');
|
|
8625
10090
|
|
|
8626
10091
|
if (svgDesc) {
|
|
@@ -8664,7 +10129,7 @@ class AuroIcon extends BaseIcon {
|
|
|
8664
10129
|
}
|
|
8665
10130
|
}
|
|
8666
10131
|
|
|
8667
|
-
var iconVersion = '8.0.
|
|
10132
|
+
var iconVersion = '8.0.4';
|
|
8668
10133
|
|
|
8669
10134
|
var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"checkmark-sm__desc\" class=\"ico_squareLarge\" role=\"img\" style=\"min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor\" viewBox=\"0 0 24 24\" part=\"svg\"><title/><desc id=\"checkmark-sm__desc\">a small check mark.</desc><path d=\"M8.461 11.84a.625.625 0 1 0-.922.844l2.504 2.738c.247.27.674.27.922 0l5.496-6a.625.625 0 1 0-.922-.844l-5.035 5.496z\"/></svg>"};
|
|
8670
10135
|
|
|
@@ -8682,10 +10147,13 @@ var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlin
|
|
|
8682
10147
|
* @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
|
|
8683
10148
|
* @slot - Specifies text for an option, but is not the value.
|
|
8684
10149
|
*/
|
|
8685
|
-
class AuroMenuOption extends
|
|
10150
|
+
class AuroMenuOption extends AuroElement$4 {
|
|
8686
10151
|
constructor() {
|
|
8687
10152
|
super();
|
|
8688
10153
|
|
|
10154
|
+
this.size = ""; // md, lg, xl
|
|
10155
|
+
this.shape = ""; // box, rounded, pill
|
|
10156
|
+
|
|
8689
10157
|
/**
|
|
8690
10158
|
* Generate unique names for dependency components.
|
|
8691
10159
|
*/
|
|
@@ -8704,11 +10172,12 @@ class AuroMenuOption extends i$2 {
|
|
|
8704
10172
|
/**
|
|
8705
10173
|
* @private
|
|
8706
10174
|
*/
|
|
8707
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
10175
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
8708
10176
|
}
|
|
8709
10177
|
|
|
8710
10178
|
static get properties() {
|
|
8711
10179
|
return {
|
|
10180
|
+
...super.properties,
|
|
8712
10181
|
nocheckmark: {
|
|
8713
10182
|
type: Boolean,
|
|
8714
10183
|
reflect: true
|
|
@@ -8748,7 +10217,7 @@ class AuroMenuOption extends i$2 {
|
|
|
8748
10217
|
*
|
|
8749
10218
|
*/
|
|
8750
10219
|
static register(name = "auro-menuoption") {
|
|
8751
|
-
AuroLibraryRuntimeUtils$
|
|
10220
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenuOption);
|
|
8752
10221
|
}
|
|
8753
10222
|
|
|
8754
10223
|
firstUpdated() {
|
|
@@ -8770,6 +10239,8 @@ class AuroMenuOption extends i$2 {
|
|
|
8770
10239
|
|
|
8771
10240
|
// observer for selected property changes
|
|
8772
10241
|
updated(changedProperties) {
|
|
10242
|
+
super.updated(changedProperties);
|
|
10243
|
+
|
|
8773
10244
|
if (changedProperties.has('selected')) {
|
|
8774
10245
|
this.setAttribute('aria-selected', this.selected.toString());
|
|
8775
10246
|
}
|
|
@@ -8791,10 +10262,19 @@ class AuroMenuOption extends i$2 {
|
|
|
8791
10262
|
return u`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
|
|
8792
10263
|
}
|
|
8793
10264
|
|
|
8794
|
-
|
|
10265
|
+
/**
|
|
10266
|
+
* Logic to determine the layout of the component.
|
|
10267
|
+
* @protected
|
|
10268
|
+
* @returns {void}
|
|
10269
|
+
*/
|
|
10270
|
+
renderLayout() {
|
|
8795
10271
|
return u`
|
|
8796
|
-
|
|
8797
|
-
|
|
10272
|
+
<div class="wrapper">
|
|
10273
|
+
${this.selected && !this.nocheckmark
|
|
10274
|
+
? this.generateIconHtml(checkmarkIcon.svg)
|
|
10275
|
+
: undefined}
|
|
10276
|
+
<slot></slot>
|
|
10277
|
+
</div>
|
|
8798
10278
|
`;
|
|
8799
10279
|
}
|
|
8800
10280
|
}
|