@aurodesignsystem/auro-formkit 1.6.0-beta.6 → 1.6.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/cache/01de6ab3df8b7e1e-meta.json +1 -0
- package/.turbo/cache/{754a6b5c5ce1ed00.tar.zst → 01de6ab3df8b7e1e.tar.zst} +0 -0
- package/.turbo/cache/10feda0f037804bb-meta.json +1 -1
- package/.turbo/cache/11079d2746265545-meta.json +1 -1
- package/.turbo/cache/11079d2746265545.tar.zst +0 -0
- package/.turbo/cache/115c4b73a12f5275-meta.json +1 -0
- package/.turbo/cache/115c4b73a12f5275.tar.zst +0 -0
- package/.turbo/cache/144e8e78657bf800-meta.json +1 -1
- package/.turbo/cache/18939b2c7c83b163-meta.json +1 -1
- package/.turbo/cache/1de685df0eaa39c8-meta.json +1 -1
- package/.turbo/cache/1ec139dcf090d547-meta.json +1 -1
- package/.turbo/cache/1f53ce3a28c56cdf-meta.json +1 -1
- package/.turbo/cache/23bf100310bd9f5a-meta.json +1 -1
- package/.turbo/cache/2900e7ec28e1488f-meta.json +1 -1
- package/.turbo/cache/296074aadfa2f8c9-meta.json +1 -1
- package/.turbo/cache/296074aadfa2f8c9.tar.zst +0 -0
- package/.turbo/cache/29e29355bf6fb4fd-meta.json +1 -1
- package/.turbo/cache/2cbcbc4a17387253-meta.json +1 -0
- package/.turbo/cache/2cbcbc4a17387253.tar.zst +0 -0
- package/.turbo/cache/2f6c898fbb51e995-meta.json +1 -1
- package/.turbo/cache/2f6c898fbb51e995.tar.zst +0 -0
- package/.turbo/cache/3073b96f6e4d867c-meta.json +1 -1
- package/.turbo/cache/33466ea2930c3714-meta.json +1 -1
- package/.turbo/cache/3426941a74b0731e-meta.json +1 -0
- package/.turbo/cache/{3f41d958c755a6f0.tar.zst → 3426941a74b0731e.tar.zst} +0 -0
- package/.turbo/cache/38b0799e2f7e62c5-meta.json +1 -0
- package/.turbo/cache/38b0799e2f7e62c5.tar.zst +0 -0
- package/.turbo/cache/3fbc89f461c495db-meta.json +1 -0
- package/.turbo/cache/3fbc89f461c495db.tar.zst +0 -0
- package/.turbo/cache/451e562c76f74ec6-meta.json +1 -1
- package/.turbo/cache/4520919609c97850-meta.json +1 -1
- package/.turbo/cache/452908d0b0b676bc-meta.json +1 -1
- package/.turbo/cache/48c197e39ed31fd2-meta.json +1 -1
- package/.turbo/cache/48c197e39ed31fd2.tar.zst +0 -0
- package/.turbo/cache/5058ecc7f1e34496-meta.json +1 -1
- package/.turbo/cache/5a66a99aa1344401-meta.json +1 -1
- package/.turbo/cache/5b66ce21630716cc-meta.json +1 -1
- package/.turbo/cache/6002b76d50b8d1ff-meta.json +1 -0
- package/.turbo/cache/6002b76d50b8d1ff.tar.zst +0 -0
- package/.turbo/cache/627e964e19b2bda5-meta.json +1 -0
- package/.turbo/cache/627e964e19b2bda5.tar.zst +0 -0
- package/.turbo/cache/6907ebaae4f3a96b-meta.json +1 -0
- package/.turbo/cache/6907ebaae4f3a96b.tar.zst +0 -0
- package/.turbo/cache/6f7175be597945f7-meta.json +1 -0
- package/.turbo/cache/6f7175be597945f7.tar.zst +0 -0
- package/.turbo/cache/70d7b72f15ee97a4-meta.json +1 -1
- package/.turbo/cache/7cfdc01c415c836c-meta.json +1 -0
- package/.turbo/cache/7cfdc01c415c836c.tar.zst +0 -0
- package/.turbo/cache/897b0d8a0c301207-meta.json +1 -1
- package/.turbo/cache/8b7cdb9a0d4c3112-meta.json +1 -1
- package/.turbo/cache/8e1f402b247ebed6-meta.json +1 -1
- package/.turbo/cache/8e1f402b247ebed6.tar.zst +0 -0
- package/.turbo/cache/90b8d9ccef5e09aa-meta.json +1 -1
- package/.turbo/cache/936bccb44ade3650-meta.json +1 -1
- package/.turbo/cache/94bcc4c6536ada9d-meta.json +1 -1
- package/.turbo/cache/990b9def0e83d33c-meta.json +1 -0
- package/.turbo/cache/990b9def0e83d33c.tar.zst +0 -0
- package/.turbo/cache/a532f4b8302ca13e-meta.json +1 -1
- package/.turbo/cache/a7bf477bbdabc7bc-meta.json +1 -1
- package/.turbo/cache/a90aa34f427a2f62-meta.json +1 -1
- package/.turbo/cache/aedda428051043c4-meta.json +1 -1
- package/.turbo/cache/afc38ab505ef6dbb-meta.json +1 -0
- package/.turbo/cache/{2ca214d032893e74.tar.zst → afc38ab505ef6dbb.tar.zst} +0 -0
- package/.turbo/cache/b1ed317b29e85c9d-meta.json +1 -0
- package/.turbo/cache/b1ed317b29e85c9d.tar.zst +0 -0
- package/.turbo/cache/b61416daf63fbaad-meta.json +1 -1
- package/.turbo/cache/b76edfbd1c076b0a-meta.json +1 -0
- package/.turbo/cache/b76edfbd1c076b0a.tar.zst +0 -0
- package/.turbo/cache/b9463532618cdc61-meta.json +1 -1
- package/.turbo/cache/bb3afea40c91e8ba-meta.json +1 -1
- package/.turbo/cache/c4df38a7e2cc767a-meta.json +1 -0
- package/.turbo/cache/{77bf3068f493ef24.tar.zst → c4df38a7e2cc767a.tar.zst} +0 -0
- package/.turbo/cache/c63dc7b6157da70b-meta.json +1 -1
- package/.turbo/cache/c8b63b6e8a190eb9-meta.json +1 -1
- package/.turbo/cache/d35b1eee9f2881af-meta.json +1 -1
- package/.turbo/cache/d5188c0fbe45d578-meta.json +1 -1
- package/.turbo/cache/e4b3ec56d4ae56ba-meta.json +1 -1
- package/.turbo/cache/e6f030eddf6fbf4e-meta.json +1 -1
- package/.turbo/cache/ff7e6d09efd93145-meta.json +1 -1
- package/.turbo/cache/ff7e6d09efd93145.tar.zst +0 -0
- package/CHANGELOG.md +19 -0
- package/components/checkbox/.turbo/turbo-build.log +3 -3
- package/components/checkbox/.turbo/turbo-bundler.log +3 -3
- package/components/combobox/.turbo/turbo-build.log +6 -3
- package/components/combobox/demo/api.html +1 -0
- package/components/combobox/demo/api.js +2 -0
- package/components/combobox/demo/api.md +73 -0
- package/components/combobox/demo/api.min.js +962 -835
- package/components/combobox/demo/index.min.js +920 -832
- package/components/combobox/dist/auro-combobox.d.ts +20 -0
- package/components/combobox/dist/auro-combobox.d.ts.map +1 -1
- package/components/combobox/dist/index.js +58 -22
- package/components/combobox/src/auro-combobox.js +58 -22
- package/components/counter/.turbo/turbo-build.log +2 -2
- package/components/counter/.turbo/turbo-bundler.log +3 -3
- package/components/datepicker/.turbo/turbo-build.log +2 -2
- package/components/dropdown/.turbo/turbo-build.log +3 -3
- package/components/dropdown/.turbo/turbo-bundler.log +3 -3
- package/components/form/.turbo/turbo-build.log +3 -3
- package/components/form/.turbo/turbo-bundler.log +3 -3
- package/components/input/.turbo/turbo-build.log +3 -3
- package/components/input/.turbo/turbo-bundler.log +3 -3
- package/components/menu/.turbo/turbo-build.log +6 -3
- package/components/menu/.turbo/turbo-bundler.log +3 -3
- package/components/menu/demo/api.html +2 -0
- package/components/menu/demo/api.js +2 -0
- package/components/menu/demo/api.md +164 -22
- package/components/menu/demo/api.min.js +912 -853
- package/components/menu/demo/index.min.js +905 -853
- package/components/menu/dist/auro-menu.d.ts +28 -2
- package/components/menu/dist/auro-menu.d.ts.map +1 -1
- package/components/menu/dist/auro-menuoption.d.ts +1 -1
- package/components/menu/dist/index.js +905 -853
- package/components/menu/src/auro-menu.js +57 -7
- package/components/menu/src/auro-menuoption.js +1 -1
- package/components/menu/src/styles/style-menu-css.js +1 -1
- package/components/menu/src/styles/style-menu.css +21 -3
- package/components/menu/src/styles/style-menu.scss +25 -3
- package/components/radio/.turbo/turbo-build.log +3 -3
- package/components/radio/.turbo/turbo-bundler.log +3 -3
- package/components/select/.turbo/turbo-build.log +6 -3
- package/components/select/demo/api.html +1 -0
- package/components/select/demo/api.js +2 -0
- package/components/select/demo/api.md +66 -0
- package/components/select/demo/api.min.js +927 -811
- package/components/select/demo/index.min.js +895 -811
- package/components/select/dist/auro-select.d.ts +19 -0
- package/components/select/dist/auro-select.d.ts.map +1 -1
- package/components/select/dist/index.js +32 -0
- package/components/select/src/auro-select.js +32 -0
- package/package.json +1 -1
- package/packages/build-tools/src/docProcessor.mjs +4 -4
- package/packages/build-tools/src/kitDocProcessor.mjs +4 -4
- package/.turbo/cache/05be1236a4cd5e72-meta.json +0 -1
- package/.turbo/cache/05be1236a4cd5e72.tar.zst +0 -0
- package/.turbo/cache/2ca214d032893e74-meta.json +0 -1
- package/.turbo/cache/3792d285b464b3e6-meta.json +0 -1
- package/.turbo/cache/3792d285b464b3e6.tar.zst +0 -0
- package/.turbo/cache/3ac4a22a21bdc2be-meta.json +0 -1
- package/.turbo/cache/3ac4a22a21bdc2be.tar.zst +0 -0
- package/.turbo/cache/3f41d958c755a6f0-meta.json +0 -1
- package/.turbo/cache/5d064e768a262314-meta.json +0 -1
- package/.turbo/cache/5d064e768a262314.tar.zst +0 -0
- package/.turbo/cache/6646f884a18a970a-meta.json +0 -1
- package/.turbo/cache/6646f884a18a970a.tar.zst +0 -0
- package/.turbo/cache/71212615220331ea-meta.json +0 -1
- package/.turbo/cache/71212615220331ea.tar.zst +0 -0
- package/.turbo/cache/754a6b5c5ce1ed00-meta.json +0 -1
- package/.turbo/cache/77bf3068f493ef24-meta.json +0 -1
- package/.turbo/cache/7ddb7ace73fe6ec2-meta.json +0 -1
- package/.turbo/cache/7ddb7ace73fe6ec2.tar.zst +0 -0
- package/.turbo/cache/9135f474c69d1b3c-meta.json +0 -1
- package/.turbo/cache/9135f474c69d1b3c.tar.zst +0 -0
- package/.turbo/cache/9a7ab914e08ce75f-meta.json +0 -1
- package/.turbo/cache/9a7ab914e08ce75f.tar.zst +0 -0
- package/.turbo/cache/aa68cd3545395c90-meta.json +0 -1
- package/.turbo/cache/aa68cd3545395c90.tar.zst +0 -0
- package/.turbo/cache/dce6f67be2b63c18-meta.json +0 -1
- package/.turbo/cache/dce6f67be2b63c18.tar.zst +0 -0
- package/.turbo/cache/e28ee527154c4cb2-meta.json +0 -1
- package/.turbo/cache/e28ee527154c4cb2.tar.zst +0 -0
|
@@ -57,6 +57,37 @@ function inDialogExample() {
|
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
function auroMenuLoadingExample() {
|
|
61
|
+
const select = document.querySelector("#loadingExample");
|
|
62
|
+
const menu = document.querySelector("#loadingExampleSelectMenu");
|
|
63
|
+
|
|
64
|
+
const emptyMenu = () => {
|
|
65
|
+
const menuoptions = menu.querySelectorAll('auro-menuoption');
|
|
66
|
+
menuoptions.forEach(mo => menu.removeChild(mo));
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const fillMenu = () => {
|
|
70
|
+
menu.innerHTML += `
|
|
71
|
+
<auro-menuoption value="stops">Stops</auro-menuoption>
|
|
72
|
+
<auro-menuoption value="price">Price</auro-menuoption>
|
|
73
|
+
<auro-menuoption value="duration">Duration</auro-menuoption>
|
|
74
|
+
<auro-menuoption value="departure">Departure</auro-menuoption>
|
|
75
|
+
<auro-menuoption value="arrival">Arrival</auro-menuoption>
|
|
76
|
+
<auro-menuoption value="prefer alaska">Prefer Alaska</auro-menuoption>`;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
select.addEventListener("click", () => {
|
|
80
|
+
if (!menu.hasAttribute('loading') && !select.value) {
|
|
81
|
+
emptyMenu();
|
|
82
|
+
menu.setAttribute('loading', 'loading');
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
menu.removeAttribute('loading');
|
|
85
|
+
fillMenu();
|
|
86
|
+
}, 1000);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
60
91
|
/**
|
|
61
92
|
* @license
|
|
62
93
|
* Copyright 2019 Google LLC
|
|
@@ -3340,6 +3371,11 @@ class AuroSelect extends r$4 {
|
|
|
3340
3371
|
* @private
|
|
3341
3372
|
*/
|
|
3342
3373
|
this.dropdownTag = versioning.generateTag('auro-dropdown', dropdownVersion, AuroDropdown);
|
|
3374
|
+
|
|
3375
|
+
/**
|
|
3376
|
+
* @private
|
|
3377
|
+
*/
|
|
3378
|
+
this.isHiddenWhileLoading = false;
|
|
3343
3379
|
}
|
|
3344
3380
|
|
|
3345
3381
|
/**
|
|
@@ -3492,6 +3528,7 @@ class AuroSelect extends r$4 {
|
|
|
3492
3528
|
*/
|
|
3493
3529
|
configureMenu() {
|
|
3494
3530
|
this.menu = this.querySelector('auro-menu, [auro-menu]');
|
|
3531
|
+
this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
|
|
3495
3532
|
// racing condition on custom-select with custom-menu
|
|
3496
3533
|
if (!this.menu) {
|
|
3497
3534
|
setTimeout(() => {
|
|
@@ -3601,6 +3638,32 @@ class AuroSelect extends r$4 {
|
|
|
3601
3638
|
this.labelForSr();
|
|
3602
3639
|
}
|
|
3603
3640
|
|
|
3641
|
+
/**
|
|
3642
|
+
* Manages the visibility of the dropdown based on loading state changes.
|
|
3643
|
+
*
|
|
3644
|
+
* This method listens for loading state changes and adjusts the visibility of the dropdown accordingly.
|
|
3645
|
+
* If the dropdown is visible and loading is true without any loading placeholders, it hides the dropdown
|
|
3646
|
+
* and sets a flag to indicate it is hidden while loading. If loading is false and the dropdown was previously
|
|
3647
|
+
* hidden, it checks if the active element is within the dropdown and shows it again if true.
|
|
3648
|
+
*
|
|
3649
|
+
* @private
|
|
3650
|
+
* @param {CustomEvent} event - The event object containing details about the loading state change.
|
|
3651
|
+
* @param {boolean} event.detail.loading - Indicates whether the menu is currently loading.
|
|
3652
|
+
* @param {boolean} event.detail.hasLoadingPlaceholder - Indicates if there are loading placeholders present.
|
|
3653
|
+
* @returns {void}
|
|
3654
|
+
*/
|
|
3655
|
+
handleMenuLoadingChange(event) {
|
|
3656
|
+
if (this.dropdown.isPopoverVisible && event.detail.loading && !event.detail.hasLoadingPlaceholder) {
|
|
3657
|
+
this.isHiddenWhileLoading = true;
|
|
3658
|
+
this.dropdown.hide();
|
|
3659
|
+
} else if (!event.detail.loading && this.isHiddenWhileLoading) {
|
|
3660
|
+
if (this.contains(document.activeElement)) {
|
|
3661
|
+
this.dropdown.show();
|
|
3662
|
+
}
|
|
3663
|
+
this.isHiddenWhileLoading = false;
|
|
3664
|
+
}
|
|
3665
|
+
}
|
|
3666
|
+
|
|
3604
3667
|
/**
|
|
3605
3668
|
* Function to support @focusin event.
|
|
3606
3669
|
* @private
|
|
@@ -3792,1033 +3855,1085 @@ class AuroSelect extends r$4 {
|
|
|
3792
3855
|
}
|
|
3793
3856
|
}
|
|
3794
3857
|
|
|
3795
|
-
var styleCss$2 = i$b`:root{--ds-asset-font-circular-family-name: "AS Circular";--ds-asset-font-circular-filename: "ASCircularWeb";--ds-asset-font-circular-weight-light: "-Light";--ds-asset-font-circular-weight-medium: "-Medium";--ds-asset-font-circular-weight-book: "-Book";--ds-border-radius: 0.375rem;--ds-size-25: 0.125rem;--ds-size-50: 0.25rem;--ds-size-75: 0.375rem;--ds-size-100: 0.5rem;--ds-size-150: 0.75rem;--ds-size-200: 1rem;--ds-size-250: 1.25rem;--ds-size-300: 1.5rem;--ds-size-400: 2rem;--ds-size-500: 2.5rem;--ds-size-600: 3rem;--ds-size-700: 3.5rem;--ds-size-800: 4rem;--ds-size-900: 4.5rem;--ds-size-1000: 5rem;--ds-unitless-scale-20: 0.25;--ds-unitless-scale-50: 0.5;--ds-unitless-scale-100: 1;--ds-unitless-scale-140: 1.4;--ds-unitless-scale-150: 1.5;--ds-unitless-scale-200: 2;--ds-unitless-scale-300: 3;--ds-unitless-scale-350: 3.5;--ds-animation-default-property: all;--ds-animation-default-duration: 0.3s;--ds-animation-default-timing: ease-out;--ds-depth-overlay: 200;--ds-depth-modal: 300;--ds-depth-tooltip: 400;--ds-elevation-100: 0px 0px 5px rgba(0, 0, 0, 0.15);--ds-elevation-200: 0px 0px 10px rgba(0, 0, 0, 0.15);--ds-elevation-300: 0px 0px 15px rgba(0, 0, 0, 0.2);--ds-grid-breakpoint-xs: 320px;--ds-grid-breakpoint-sm: 576px;--ds-grid-breakpoint-md: 768px;--ds-grid-breakpoint-lg: 1024px;--ds-grid-breakpoint-xl: 1232px;--ds-grid-column-xs: 6;--ds-grid-column-sm: 12;--ds-grid-column-md: 12;--ds-grid-column-lg: 12;--ds-grid-column-xl: 12;--ds-grid-gutter-xs: 0.5rem;--ds-grid-gutter-sm: 1rem;--ds-grid-gutter-md: 1.5rem;--ds-grid-gutter-lg: 1.5rem;--ds-grid-gutter-xl: 2rem;--ds-grid-margin-xs: 1rem;--ds-grid-margin-sm: 1rem;--ds-grid-margin-md: 1.5rem;--ds-grid-margin-lg: 2rem;--ds-grid-margin-xl: 2rem;--ds-font-family-default: "AS Circular", Helvetica Neue, Arial, sans-serif;--ds-font-family-mono: Menlo, Monaco, Consolas, "Courier New", monospace;--ds-text-heading-300-weight: 300;--ds-text-heading-300-px: 18px;--ds-text-heading-300-size: 1.125rem;--ds-text-heading-300-height: 1.625rem;--ds-text-heading-300-height-px: 26px;--ds-text-heading-400-weight: 300;--ds-text-heading-400-px: 20px;--ds-text-heading-400-size: 1.25rem;--ds-text-heading-400-height: 1.625rem;--ds-text-heading-400-height-px: 26px;--ds-text-heading-500-weight: 300;--ds-text-heading-500-px-breakpoint-sm: 22px;--ds-text-heading-500-px-breakpoint-md: 24px;--ds-text-heading-500-px-breakpoint-lg: 24px;--ds-text-heading-500-size-breakpoint-sm: 1.375rem;--ds-text-heading-500-size-breakpoint-md: 1.5rem;--ds-text-heading-500-size-breakpoint-lg: 1.5rem;--ds-text-heading-500-height-breakpoint-sm: 1.625rem;--ds-text-heading-500-height-breakpoint-px-sm: 26px;--ds-text-heading-500-height-breakpoint-md: 1.875rem;--ds-text-heading-500-height-breakpoint-px-md: 30px;--ds-text-heading-500-height-breakpoint-lg: 2rem;--ds-text-heading-500-height-breakpoint-px-lg: 32px;--ds-text-heading-600-weight: 300;--ds-text-heading-600-px-breakpoint-sm: 26px;--ds-text-heading-600-px-breakpoint-md: 28px;--ds-text-heading-600-px-breakpoint-lg: 28px;--ds-text-heading-600-size-breakpoint-sm: 1.625rem;--ds-text-heading-600-size-breakpoint-md: 1.75rem;--ds-text-heading-600-size-breakpoint-lg: 1.75rem;--ds-text-heading-600-height-breakpoint-sm: 1.875rem;--ds-text-heading-600-height-breakpoint-px-sm: 30px;--ds-text-heading-600-height-breakpoint-md: 2.125rem;--ds-text-heading-600-height-breakpoint-px-md: 34px;--ds-text-heading-600-height-breakpoint-lg: 2.25rem;--ds-text-heading-600-height-breakpoint-px-lg: 36px;--ds-text-heading-700-weight: 500;--ds-text-heading-700-px-breakpoint-sm: 28px;--ds-text-heading-700-px-breakpoint-md: 32px;--ds-text-heading-700-px-breakpoint-lg: 36px;--ds-text-heading-700-size-breakpoint-sm: 1.75rem;--ds-text-heading-700-size-breakpoint-md: 2rem;--ds-text-heading-700-size-breakpoint-lg: 2.25rem;--ds-text-heading-700-height-breakpoint-sm: 2.125rem;--ds-text-heading-700-height-breakpoint-px-sm: 34px;--ds-text-heading-700-height-breakpoint-md: 2.375rem;--ds-text-heading-700-height-breakpoint-px-md: 38px;--ds-text-heading-700-height-breakpoint-lg: 2.75rem;--ds-text-heading-700-height-breakpoint-px-lg: 44px;--ds-text-heading-800-weight: 500;--ds-text-heading-800-px-breakpoint-sm: 32px;--ds-text-heading-800-px-breakpoint-md: 36px;--ds-text-heading-800-px-breakpoint-lg: 40px;--ds-text-heading-800-size-breakpoint-sm: 2rem;--ds-text-heading-800-size-breakpoint-md: 2.25rem;--ds-text-heading-800-size-breakpoint-lg: 2.5rem;--ds-text-heading-800-height-breakpoint-sm: 2.375rem;--ds-text-heading-800-height-breakpoint-px-sm: 38px;--ds-text-heading-800-height-breakpoint-md: 2.625rem;--ds-text-heading-800-height-breakpoint-px-md: 42px;--ds-text-heading-800-height-breakpoint-lg: 3rem;--ds-text-heading-800-height-breakpoint-px-lg: 48px;--ds-text-heading-default-weight: 500;--ds-text-heading-default-margin: 0;--ds-text-heading-default-spacing: -0.2px;--ds-text-heading-medium-weight: 300;--ds-text-heading-display-weight: 100;--ds-text-heading-display-px-breakpoint-sm: 44px;--ds-text-heading-display-px-breakpoint-md: 48px;--ds-text-heading-display-px-breakpoint-lg: 56px;--ds-text-heading-display-size-breakpoint-sm: 2.75rem;--ds-text-heading-display-size-breakpoint-md: 3rem;--ds-text-heading-display-size-breakpoint-lg: 3.5rem;--ds-text-heading-display-height-breakpoint-sm: 3.375rem;--ds-text-heading-display-height-breakpoint-px-sm: 54px;--ds-text-heading-display-height-breakpoint-md: 3.75rem;--ds-text-heading-display-height-breakpoint-px-md: 60px;--ds-text-heading-display-height-breakpoint-lg: 4.25rem;--ds-text-heading-display-height-breakpoint-px-lg: 68px;--ds-text-body-default-weight: 500;--ds-text-body-size-xxs: 0.625rem;--ds-text-body-size-xs: 0.75rem;--ds-text-body-size-sm: 0.875rem;--ds-text-body-size-default: 1rem;--ds-text-body-size-lg: 1.125rem;--ds-text-body-height-xs: 1rem;--ds-text-body-height-sm: 1.25rem;--ds-text-body-height-default: 1.5rem;--ds-text-body-height-lg: 1.625rem;--ds-color-alert-notification-default: #0074c8;--ds-color-alert-warning-default: #de750c;--ds-color-alert-error-default: #df0b37;--ds-color-alert-success-default: #00805d;--ds-color-alert-advisory-default: #fff0cd;--ds-color-alert-bkg-success-default: #ddf6e8;--ds-color-alert-bkg-error-default: #ffedf1;--ds-color-background-primary-100-default: #ffffff;--ds-color-background-primary-100-inverse: #0e2b4f;--ds-color-background-primary-200-default: #f7f7f7;--ds-color-background-primary-200-inverse: #194069;--ds-color-background-primary-300-default: #e4e8ec;--ds-color-background-primary-300-inverse: #265688;--ds-color-background-primary-400-default: #dddddd;--ds-color-background-primary-400-inverse: #326aa5;--ds-color-background-success-default: #eef8f5;--ds-color-background-success-inverse: #173c30;--ds-color-background-error-default: #fff4f4;--ds-color-background-error-inverse: #74110e;--ds-color-background-warning-default: #fef8e9;--ds-color-background-warning-inverse: #5d4514;--ds-color-background-info-default: #f0f7fd;--ds-color-background-info-inverse: #193d73;--ds-color-background-subtle-default: #f7f8fa;--ds-color-background-subtle-inverse: #2a2a2a;--ds-color-background-accent-default: #ebfafd;--ds-color-background-accent-inverse: #275b72;--ds-color-background-emphasis-default: #c9e0f7;--ds-color-background-emphasis-inverse: #225296;--ds-color-background-scrimmed-default: rgba(0, 0, 0, 0.5);--ds-color-background-lightest: #ffffff;--ds-color-background-lighter: #f7f7f7;--ds-color-background-darker: #01426a;--ds-color-background-darkest: #00274a;--ds-color-background-gradient-default: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5));--ds-color-base-white: #ffffff;--ds-color-base-white-100: rgba(255, 255, 255, 0.03);--ds-color-base-white-200: rgba(255, 255, 255, 0.06);--ds-color-base-white-300: rgba(255, 255, 255, 0.12);--ds-color-base-white-400: rgba(255, 255, 255, 0.25);--ds-color-base-white-500: rgba(255, 255, 255, 0.5);--ds-color-base-white-opacity-50: rgba(255, 255, 255, 0.5);--ds-color-base-white-opacity-40: rgba(255, 255, 255, 0.4);--ds-color-base-white-opacity-0: rgba(255, 255, 255, 0);--ds-color-base-black: #000000;--ds-color-base-black-100: rgba(0, 0, 0, 0.03);--ds-color-base-black-200: rgba(0, 0, 0, 0.06);--ds-color-base-black-300: rgba(0, 0, 0, 0.12);--ds-color-base-black-400: rgba(0, 0, 0, 0.25);--ds-color-base-black-500: rgba(0, 0, 0, 0.5);--ds-color-base-black-opacity-15: rgba(0, 0, 0, 0.15);--ds-color-base-blue-100: #f0f7fd;--ds-color-base-blue-200: #c9e0f7;--ds-color-base-blue-300: #a0c9f1;--ds-color-base-blue-400: #79b2ec;--ds-color-base-blue-500: #5398e6;--ds-color-base-blue-600: #3b7fd2;--ds-color-base-blue-700: #2c67b5;--ds-color-base-blue-800: #225296;--ds-color-base-blue-900: #193d73;--ds-color-base-blue-1000: #102a51;--ds-color-base-cyan-100: #ebfafd;--ds-color-base-cyan-200: #a8e9f7;--ds-color-base-cyan-300: #6ad5ef;--ds-color-base-cyan-400: #56bbde;--ds-color-base-cyan-500: #4aa2c7;--ds-color-base-cyan-600: #3e89aa;--ds-color-base-cyan-700: #32718e;--ds-color-base-cyan-800: #275b72;--ds-color-base-cyan-900: #1d4658;--ds-color-base-cyan-1000: #12303d;--ds-color-base-error-100: #fff4f4;--ds-color-base-error-200: #f9aca6;--ds-color-base-error-300: #f16359;--ds-color-base-error-400: #cc1816;--ds-color-base-error-500: #74110e;--ds-color-base-gray-100: #f7f7f7;--ds-color-base-gray-200: #d4d4d4;--ds-color-base-gray-300: #c5c5c5;--ds-color-base-gray-400: #adadad;--ds-color-base-gray-500: #959595;--ds-color-base-gray-600: #7e7e7e;--ds-color-base-gray-700: #676767;--ds-color-base-gray-800: #525252;--ds-color-base-gray-900: #3d3d3d;--ds-color-base-gray-1000: #2a2a2a;--ds-color-base-green-100: #f3faf7;--ds-color-base-green-200: #000000;--ds-color-base-green-300: #addbca;--ds-color-base-green-400: #7ec6ac;--ds-color-base-green-500: #51ae8c;--ds-color-base-green-600: #459578;--ds-color-base-green-700: #3a7d64;--ds-color-base-green-800: #306854;--ds-color-base-green-900: #285545;--ds-color-base-green-1000: #1f4436;--ds-color-base-lime-100: #f5fbeb;--ds-color-base-lime-200: #d8efb4;--ds-color-base-lime-300: #badd81;--ds-color-base-lime-400: #a2c270;--ds-color-base-lime-500: #8ca761;--ds-color-base-lime-600: #778f53;--ds-color-base-lime-700: #647845;--ds-color-base-lime-800: #53643a;--ds-color-base-lime-900: #44522f;--ds-color-base-lime-1000: #364126;--ds-color-base-navy-100: #f2f7fb;--ds-color-base-navy-200: #cfe0ef;--ds-color-base-navy-300: #acc9e2;--ds-color-base-navy-400: #89b2d4;--ds-color-base-navy-500: #6899c6;--ds-color-base-navy-600: #4a82b7;--ds-color-base-navy-700: #326aa5;--ds-color-base-navy-800: #265688;--ds-color-base-navy-900: #194069;--ds-color-base-navy-1000: #0e2b4f;--ds-color-base-neutral-100: #f7f8fa;--ds-color-base-neutral-200: #e4e8ec;--ds-color-base-neutral-300: #ccd2db;--ds-color-base-neutral-400: #afb9c6;--ds-color-base-neutral-500: #939fad;--ds-color-base-neutral-600: #7e8894;--ds-color-base-neutral-700: #6a717c;--ds-color-base-neutral-800: #585e67;--ds-color-base-neutral-900: #484d55;--ds-color-base-neutral-1000: #393d43;--ds-color-base-pink-100: #fff7f8;--ds-color-base-pink-200: #fde0e6;--ds-color-base-pink-300: #fcc2ce;--ds-color-base-pink-400: #fa9db0;--ds-color-base-pink-500: #f7738e;--ds-color-base-pink-600: #e45472;--ds-color-base-pink-700: #bf475f;--ds-color-base-pink-800: #a03b50;--ds-color-base-pink-900: #833142;--ds-color-base-pink-1000: #692734;--ds-color-base-purple-100: #fbf8fe;--ds-color-base-purple-200: #ede3fd;--ds-color-base-purple-300: #ddc9fb;--ds-color-base-purple-400: #c9a9f8;--ds-color-base-purple-500: #b588f5;--ds-color-base-purple-600: #a268f3;--ds-color-base-purple-700: #8d47f0;--ds-color-base-purple-800: #7633d7;--ds-color-base-purple-900: #622ab2;--ds-color-base-purple-1000: #4e228d;--ds-color-base-red-100: #fef7f5;--ds-color-base-red-200: #fae2da;--ds-color-base-red-300: #f5c7b8;--ds-color-base-red-400: #f0a68d;--ds-color-base-red-500: #e9815e;--ds-color-base-red-600: #e35c2f;--ds-color-base-red-700: #d03a08;--ds-color-base-red-800: #ae3007;--ds-color-base-red-900: #902806;--ds-color-base-red-1000: #732005;--ds-color-base-success-100: #eef8f5;--ds-color-base-success-200: #8eceb9;--ds-color-base-success-300: #40a080;--ds-color-base-success-400: #0b6f4d;--ds-color-base-success-500: #173c30;--ds-color-base-turquoise-100: #f7fafa;--ds-color-base-turquoise-200: #dfe9ea;--ds-color-base-turquoise-300: #c2d5d6;--ds-color-base-turquoise-400: #9fbdbe;--ds-color-base-turquoise-500: #7ba5a6;--ds-color-base-turquoise-600: #5c8f91;--ds-color-base-turquoise-700: #3d7a7d;--ds-color-base-turquoise-800: #21686a;--ds-color-base-turquoise-900: #085659;--ds-color-base-turquoise-1000: #004447;--ds-color-base-yellow-100: #fff9df;--ds-color-base-yellow-200: #ffe87e;--ds-color-base-yellow-300: #f9ce06;--ds-color-base-yellow-400: #d6b622;--ds-color-base-yellow-500: #b49d35;--ds-color-base-yellow-600: #96873e;--ds-color-base-yellow-700: #7c7140;--ds-color-base-yellow-800: #665e3d;--ds-color-base-yellow-900: #524e38;--ds-color-base-yellow-1000: #403d30;--ds-color-base-warning-100: #fef8e9;--ds-color-base-warning-200: #f2c153;--ds-color-base-warning-300: #c49432;--ds-color-base-warning-400: #8e6b22;--ds-color-base-warning-500: #5d4514;--ds-color-state-error-100: #ff999b;--ds-color-state-error-500: #df0b37;--ds-color-state-success-100: #69cf96;--ds-color-state-success-500: #00805d;--ds-color-state-warning-500: #de750c;--ds-color-border-primary-default: #585e67;--ds-color-border-primary-inverse: #afb9c6;--ds-color-border-secondary-default: #939fad;--ds-color-border-secondary-inverse: #7e8894;--ds-color-border-tertiary-default: #dddddd;--ds-color-border-tertiary-inverse: #676767;--ds-color-border-error-default: #cc1816;--ds-color-border-error-inverse: #f9aca6;--ds-color-border-divider-default: rgba(0, 0, 0, 0.12);--ds-color-border-divider-inverse: rgba(255, 255, 255, 0.25);--ds-color-border-subtle-default: #f0f7fd;--ds-color-border-subtle-inverse: #326aa5;--ds-color-border-emphasis-default: #194069;--ds-color-border-emphasis-inverse: #f2f7fb;--ds-color-border-accent-default: #badd81;--ds-color-border-accent-inverse: #a2c270;--ds-color-border-success-default: #0b6f4d;--ds-color-border-success-inverse: #8eceb9;--ds-color-border-warning-default: #c49432;--ds-color-border-warning-inverse: #f2c153;--ds-color-border-info-default: #326aa5;--ds-color-border-info-inverse: #89b2d4;--ds-color-border-ui-default-default: #2c67b5;--ds-color-border-ui-default-inverse: #56bbde;--ds-color-border-ui-hover-default: #193d73;--ds-color-border-ui-hover-inverse: #a8e9f7;--ds-color-border-ui-active-default: #225296;--ds-color-border-ui-active-inverse: #6ad5ef;--ds-color-border-ui-focus-default: #2c67b5;--ds-color-border-ui-focus-inverse: #56bbde;--ds-color-border-ui-disabled-default: #adadad;--ds-color-border-ui-disabled-inverse: #7e7e7e;--ds-color-border-active-default: #0074c8;--ds-color-border-active-inverse: #00cff0;--ds-color-border-disabled-default: #d4d4d4;--ds-color-border-focus-default: #959595;--ds-color-brand-neutral-100: #f7f8fa;--ds-color-brand-neutral-200: #e4e8ec;--ds-color-brand-neutral-300: #ccd2db;--ds-color-brand-neutral-400: #afb9c6;--ds-color-brand-neutral-500: #939fad;--ds-color-brand-neutral-600: #7e8894;--ds-color-brand-neutral-700: #6a717c;--ds-color-brand-neutral-800: #585e67;--ds-color-brand-neutral-900: #484d55;--ds-color-brand-neutral-1000: #393d43;--ds-color-brand-gray-100: #f7f7f7;--ds-color-brand-gray-200: #dddddd;--ds-color-brand-gray-300: #c5c5c5;--ds-color-brand-gray-400: #adadad;--ds-color-brand-gray-500: #959595;--ds-color-brand-gray-600: #7e7e7e;--ds-color-brand-gray-700: #676767;--ds-color-brand-gray-800: #525252;--ds-color-brand-gray-900: #3d3d3d;--ds-color-brand-gray-1000: #2a2a2a;--ds-color-brand-red-100: #fef7f5;--ds-color-brand-red-200: #fae2da;--ds-color-brand-red-300: #f5c7b8;--ds-color-brand-red-400: #f0a68d;--ds-color-brand-red-500: #e9815e;--ds-color-brand-red-600: #e35c2f;--ds-color-brand-red-700: #d03a08;--ds-color-brand-red-800: #ae3007;--ds-color-brand-red-900: #902806;--ds-color-brand-red-1000: #732005;--ds-color-brand-yellow-100: #fff9df;--ds-color-brand-yellow-200: #ffe87e;--ds-color-brand-yellow-300: #f9ce06;--ds-color-brand-yellow-400: #d6b622;--ds-color-brand-yellow-500: #b49d35;--ds-color-brand-yellow-600: #96873e;--ds-color-brand-yellow-700: #7c7140;--ds-color-brand-yellow-800: #665e3d;--ds-color-brand-yellow-900: #524e38;--ds-color-brand-yellow-1000: #403d30;--ds-color-brand-lime-100: #f5fbeb;--ds-color-brand-lime-200: #d8efb4;--ds-color-brand-lime-300: #badd81;--ds-color-brand-lime-400: #a2c270;--ds-color-brand-lime-500: #8ca761;--ds-color-brand-lime-600: #778f53;--ds-color-brand-lime-700: #647845;--ds-color-brand-lime-800: #53643a;--ds-color-brand-lime-900: #44522f;--ds-color-brand-lime-1000: #364126;--ds-color-brand-green-100: #f3faf7;--ds-color-brand-green-200: #d4ece4;--ds-color-brand-green-300: #addbca;--ds-color-brand-green-400: #7ec6ac;--ds-color-brand-green-500: #51ae8c;--ds-color-brand-green-600: #459578;--ds-color-brand-green-700: #3a7d64;--ds-color-brand-green-800: #306854;--ds-color-brand-green-900: #285545;--ds-color-brand-green-1000: #1f4436;--ds-color-brand-turquoise-100: #f7fafa;--ds-color-brand-turquoise-200: #dfe9ea;--ds-color-brand-turquoise-300: #c2d5d6;--ds-color-brand-turquoise-400: #9fbdbe;--ds-color-brand-turquoise-500: #7ba5a6;--ds-color-brand-turquoise-600: #5c8f91;--ds-color-brand-turquoise-700: #3d7a7d;--ds-color-brand-turquoise-800: #21686a;--ds-color-brand-turquoise-900: #085659;--ds-color-brand-turquoise-1000: #004447;--ds-color-brand-cyan-100: #ebfafd;--ds-color-brand-cyan-200: #a8e9f7;--ds-color-brand-cyan-300: #6ad5ef;--ds-color-brand-cyan-400: #56bbde;--ds-color-brand-cyan-500: #4aa2c7;--ds-color-brand-cyan-600: #3e89aa;--ds-color-brand-cyan-700: #32718e;--ds-color-brand-cyan-800: #275b72;--ds-color-brand-cyan-900: #1d4658;--ds-color-brand-cyan-1000: #12303d;--ds-color-brand-blue-100: #f0f7fd;--ds-color-brand-blue-200: #c9e0f7;--ds-color-brand-blue-300: #a0c9f1;--ds-color-brand-blue-400: #79b2ec;--ds-color-brand-blue-500: #5398e6;--ds-color-brand-blue-600: #3b7fd2;--ds-color-brand-blue-700: #2c67b5;--ds-color-brand-blue-800: #225296;--ds-color-brand-blue-900: #193d73;--ds-color-brand-blue-1000: #102a51;--ds-color-brand-navy-100: #f2f7fb;--ds-color-brand-navy-200: #cfe0ef;--ds-color-brand-navy-300: #acc9e2;--ds-color-brand-navy-400: #89b2d4;--ds-color-brand-navy-500: #6899c6;--ds-color-brand-navy-600: #4a82b7;--ds-color-brand-navy-700: #326aa5;--ds-color-brand-navy-800: #265688;--ds-color-brand-navy-900: #194069;--ds-color-brand-navy-1000: #0e2b4f;--ds-color-brand-purple-100: #fbf8fe;--ds-color-brand-purple-200: #ede3fd;--ds-color-brand-purple-300: #ddc9fb;--ds-color-brand-purple-400: #c9a9f8;--ds-color-brand-purple-500: #b588f5;--ds-color-brand-purple-600: #a268f3;--ds-color-brand-purple-700: #8d47f0;--ds-color-brand-purple-800: #7633d7;--ds-color-brand-purple-900: #622ab2;--ds-color-brand-purple-1000: #4e228d;--ds-color-brand-pink-100: #fff7f8;--ds-color-brand-pink-200: #fde0e6;--ds-color-brand-pink-300: #fcc2ce;--ds-color-brand-pink-400: #fa9db0;--ds-color-brand-pink-500: #f7738e;--ds-color-brand-pink-600: #e45472;--ds-color-brand-pink-700: #bf475f;--ds-color-brand-pink-800: #a03b50;--ds-color-brand-pink-900: #833142;--ds-color-brand-pink-1000: #692734;--ds-color-brand-midnight-100: #c1daf0;--ds-color-brand-midnight-200: #569ed7;--ds-color-brand-midnight-300: #156fad;--ds-color-brand-midnight-400: #01426a;--ds-color-brand-midnight-500: #00274a;--ds-color-brand-atlas-100: #cde6ff;--ds-color-brand-atlas-200: #6bb7fb;--ds-color-brand-atlas-300: #2492eb;--ds-color-brand-atlas-400: #0074c8;--ds-color-brand-atlas-500: #054687;--ds-color-brand-atlas-400-opacity-20: rgba(0, 116, 200, 0.2);--ds-color-brand-breeze-100: #c0f7ff;--ds-color-brand-breeze-200: #5de3f7;--ds-color-brand-breeze-300: #00cff0;--ds-color-brand-breeze-400: #099dc5;--ds-color-brand-breeze-500: #0b5575;--ds-color-brand-breeze-300-opacity-30: rgba(0, 207, 240, 0.3);--ds-color-brand-tropical-100: #e2ffcd;--ds-color-brand-tropical-200: #d0fba6;--ds-color-brand-tropical-300: #c0e585;--ds-color-brand-tropical-400: #91be62;--ds-color-brand-tropical-500: #5e8741;--ds-color-brand-alpine-100: #bcaae6;--ds-color-brand-alpine-200: #9e73ea;--ds-color-brand-alpine-300: #8439ef;--ds-color-brand-alpine-400: #631db8;--ds-color-brand-alpine-500: #39115c;--ds-color-brand-flamingo-100: #ffebee;--ds-color-brand-flamingo-200: #ffc0ca;--ds-color-brand-flamingo-300: #ff94a7;--ds-color-brand-flamingo-400: #f65b7b;--ds-color-brand-flamingo-500: #b82b47;--ds-color-brand-canyon-100: #ffcab6;--ds-color-brand-canyon-200: #f99574;--ds-color-brand-canyon-300: #f26135;--ds-color-brand-canyon-400: #de3e09;--ds-color-brand-canyon-500: #b83302;--ds-color-brand-goldcoast-100: #fff0cd;--ds-color-brand-goldcoast-200: #ffdb67;--ds-color-brand-goldcoast-300: #ffd200;--ds-color-brand-goldcoast-400: #e5ad07;--ds-color-brand-goldcoast-500: #b88624;--ds-color-brand-goldgray-100: #c5c1bf;--ds-color-brand-goldgray-200: #726e6c;--ds-color-brand-gold-100: #ccbc94;--ds-color-brand-gold-200: #7f682e;--ds-color-brand-emerald: #139142;--ds-color-brand-sapphire: #015daa;--ds-color-brand-ruby: #a41d4a;--ds-color-brand-lounge: #01426a;--ds-color-brand-loungeplus: #53b390;--ds-color-container-accent-default: #f5fbeb;--ds-color-container-accent-inverse: #badd81;--ds-color-container-emphasis-default: #ebfafd;--ds-color-container-emphasis-inverse: #6ad5ef;--ds-color-container-error-default: #fff4f4;--ds-color-container-error-inverse: #74110e;--ds-color-container-info-default: #f0f7fd;--ds-color-container-info-inverse: #193d73;--ds-color-container-primary-default: #ffffff;--ds-color-container-primary-inverse: #0e2b4f;--ds-color-container-secondary-default: #f7f7f7;--ds-color-container-secondary-inverse: #194069;--ds-color-container-subtle-default: #f7f8fa;--ds-color-container-subtle-inverse: #393d43;--ds-color-container-success-default: #eef8f5;--ds-color-container-success-inverse: #173c30;--ds-color-container-tertiary-default: rgba(0, 0, 0, 0.03);--ds-color-container-tertiary-inverse: rgba(255, 255, 255, 0.06);--ds-color-container-warning-default: #fef8e9;--ds-color-container-warning-inverse: #5d4514;--ds-color-container-ui-primary-active-default: #225296;--ds-color-container-ui-primary-active-inverse: #6ad5ef;--ds-color-container-ui-primary-default-default: #2c67b5;--ds-color-container-ui-primary-default-inverse: #56bbde;--ds-color-container-ui-primary-disabled-default: #a0c9f1;--ds-color-container-ui-primary-disabled-inverse: #275b72;--ds-color-container-ui-primary-focus-default: #2c67b5;--ds-color-container-ui-primary-focus-inverse: #56bbde;--ds-color-container-ui-primary-hover-default: #193d73;--ds-color-container-ui-primary-hover-inverse: #a8e9f7;--ds-color-container-ui-secondary-active-default: #f0f7fd;--ds-color-container-ui-secondary-active-inverse: rgba(255, 255, 255, 0.06);--ds-color-container-ui-secondary-default-default: #ffffff;--ds-color-container-ui-secondary-default-inverse: rgba(255, 255, 255, 0.03);--ds-color-container-ui-secondary-disabled-default: #f7f7f7;--ds-color-container-ui-secondary-disabled-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-secondary-focus-default: #ffffff;--ds-color-container-ui-secondary-focus-inverse: rgba(255, 255, 255, 0.03);--ds-color-container-ui-secondary-hover-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-secondary-hover-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-tertiary-active-default: rgba(0, 0, 0, 0.06);--ds-color-container-ui-tertiary-active-inverse: rgba(255, 255, 255, 0.06);--ds-color-container-ui-tertiary-default-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-tertiary-default-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-tertiary-disabled-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-tertiary-disabled-inverse: rgba(255, 255, 255, 0.25);--ds-color-container-ui-tertiary-focus-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-tertiary-focus-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-tertiary-hover-default: rgba(0, 0, 0, 0.12);--ds-color-container-ui-tertiary-hover-inverse: rgba(255, 255, 255, 0.25);--ds-color-icon-primary-default: #676767;--ds-color-icon-primary-inverse: #f7f7f7;--ds-color-icon-secondary-default: #7e8894;--ds-color-icon-secondary-inverse: #ccd2db;--ds-color-icon-tertiary-default: #afb9c6;--ds-color-icon-tertiary-inverse: #939fad;--ds-color-icon-emphasis-default: #2a2a2a;--ds-color-icon-emphasis-inverse: #ffffff;--ds-color-icon-accent-default: #a2c270;--ds-color-icon-accent-inverse: #badd81;--ds-color-icon-info-default: #326aa5;--ds-color-icon-info-inverse: #89b2d4;--ds-color-icon-error-default: #cc1816;--ds-color-icon-error-inverse: #f9aca6;--ds-color-icon-warning-default: #c49432;--ds-color-icon-warning-inverse: #f2c153;--ds-color-icon-success-default: #40a080;--ds-color-icon-success-inverse: #8eceb9;--ds-color-icon-subtle-default: #a0c9f1;--ds-color-icon-subtle-inverse: #326aa5;--ds-color-icon-ui-primary-default-default: #2c67b5;--ds-color-icon-ui-primary-default-inverse: #56bbde;--ds-color-icon-ui-primary-hover-default: #193d73;--ds-color-icon-ui-primary-hover-inverse: #a8e9f7;--ds-color-icon-ui-primary-active-default: #225296;--ds-color-icon-ui-primary-active-inverse: #6ad5ef;--ds-color-icon-ui-primary-disabled-default: #adadad;--ds-color-icon-ui-primary-disabled-inverse: #7e7e7e;--ds-color-icon-ui-primary-focus-default: #2c67b5;--ds-color-icon-ui-primary-focus-inverse: #56bbde;--ds-color-icon-ui-secondary-active-default: #676767;--ds-color-icon-ui-secondary-active-inverse: #c5c5c5;--ds-color-icon-ui-secondary-default-default: #7e7e7e;--ds-color-icon-ui-secondary-default-inverse: #adadad;--ds-color-icon-ui-secondary-disabled-default: #adadad;--ds-color-icon-ui-secondary-disabled-inverse: #7e7e7e;--ds-color-icon-ui-secondary-focus-default: #7e7e7e;--ds-color-icon-ui-secondary-focus-inverse: #adadad;--ds-color-icon-ui-secondary-hover-default: #525252;--ds-color-icon-ui-secondary-hover-inverse: #dddddd;--ds-color-icon-brand-red-default: #d03a08;--ds-color-icon-brand-red-inverse: #e9815e;--ds-color-icon-brand-yellow-default: #7c7140;--ds-color-icon-brand-yellow-inverse: #f9ce06;--ds-color-icon-brand-pink-default: #bf475f;--ds-color-icon-brand-pink-inverse: #f7738e;--ds-color-icon-brand-purple-default: #8d47f0;--ds-color-icon-brand-purple-inverse: #b588f5;--ds-color-icon-brand-lime-default: #647845;--ds-color-icon-brand-lime-inverse: #badd81;--ds-color-icon-brand-green-default: #3a7d64;--ds-color-icon-brand-green-inverse: #51ae8c;--ds-color-icon-brand-turquoise-default: #3d7a7d;--ds-color-icon-brand-turquoise-inverse: #7ba5a6;--ds-color-icon-brand-navy-default: #265688;--ds-color-icon-brand-navy-inverse: #6899c6;--ds-color-icon-brand-blue-default: #2c67b5;--ds-color-icon-brand-blue-inverse: #5398e6;--ds-color-icon-brand-cyan-default: #32718e;--ds-color-icon-brand-cyan-inverse: #6ad5ef;--ds-color-icon-brand-gray-default: #676767;--ds-color-icon-brand-gray-inverse: #c5c5c5;--ds-color-icon-brand-neutral-default: #6a717c;--ds-color-icon-brand-neutral-inverse: #afb9c6;--ds-color-icon-disabled-default: rgba(0, 0, 0, 0.15);--ds-color-text-primary-default: #2a2a2a;--ds-color-text-primary-inverse: #ffffff;--ds-color-text-secondary-default: #525252;--ds-color-text-secondary-inverse: #dddddd;--ds-color-text-tertiary-default: #6a717c;--ds-color-text-tertiary-inverse: #adadad;--ds-color-text-error-default: #cc1816;--ds-color-text-error-inverse: #f9aca6;--ds-color-text-emphasis-default: #265688;--ds-color-text-emphasis-inverse: #cfe0ef;--ds-color-text-accent-default: #647845;--ds-color-text-accent-inverse: #badd81;--ds-color-text-info-default: #326aa5;--ds-color-text-info-inverse: #acc9e2;--ds-color-text-subtle-default: #32718e;--ds-color-text-subtle-inverse: #56bbde;--ds-color-text-success-default: #0b6f4d;--ds-color-text-success-inverse: #8eceb9;--ds-color-text-ui-active-default: #225296;--ds-color-text-ui-active-inverse: #6ad5ef;--ds-color-text-ui-default-default: #2c67b5;--ds-color-text-ui-default-inverse: #56bbde;--ds-color-text-ui-disabled-default: #adadad;--ds-color-text-ui-disabled-inverse: #7e7e7e;--ds-color-text-ui-focus-default: #2c67b5;--ds-color-text-ui-focus-inverse: #56bbde;--ds-color-text-ui-hover-default: #193d73;--ds-color-text-ui-hover-inverse: #a8e9f7;--ds-color-text-link-default: #0074c8;--ds-color-text-link-inverse: #00cff0;--ds-color-tier-alaska-mvp-default: #726e6c;--ds-color-tier-alaska-mvp-inverse: #c5c1bf;--ds-color-tier-alaska-mvpgold-default: #7f682e;--ds-color-tier-alaska-mvpgold-inverse: #c5c1bf;--ds-color-tier-alaska-mvpgold75k-default: #7f682e;--ds-color-tier-alaska-mvpgold75k-inverse: #c5c1bf;--ds-color-tier-alaska-mvpgold100k-default: #7f682e;--ds-color-tier-alaska-mvpgold100k-inverse: #c5c1bf;--ds-color-tier-alaska-lounge: #01426a;--ds-color-tier-alaska-loungeplus: #53b390;--ds-color-tier-fare-business-default: #005154;--ds-color-tier-fare-business-inverse: #9fbdbe;--ds-color-tier-fare-economy-default: #2c67b5;--ds-color-tier-fare-economy-inverse: #a0c9f1;--ds-color-tier-fare-first-class-default: #002c4e;--ds-color-tier-fare-first-class-inverse: #89b2d4;--ds-color-tier-fare-saver-default: #4aa2c7;--ds-color-tier-fare-saver-inverse: #a8e9f7;--ds-color-tier-oneworld-emerald: #139142;--ds-color-tier-oneworld-sapphire: #015daa;--ds-color-tier-oneworld-ruby: #a41d4a;--ds-color-ui-default-default: #0074c8;--ds-color-ui-default-inverse: #00cff0;--ds-color-ui-hover-default: #054687;--ds-color-ui-hover-inverse: #5de3f7;--ds-color-ui-active-default: #054687;--ds-color-ui-active-inverse: #5de3f7;--ds-color-ui-disabled-default: rgba(0, 116, 200, 0.2);--ds-color-ui-bkg-default-default: rgba(0, 0, 0, 0.03);--ds-color-ui-bkg-default-inverse: rgba(255, 255, 255, 0.03);--ds-color-ui-bkg-hover-default: rgba(0, 0, 0, 0.06);--ds-color-ui-bkg-hover-inverse: rgba(255, 255, 255, 0.06);--ds-color-utility-blue-default: #79b2ec;--ds-color-utility-blue-inverse: #c9e0f7;--ds-color-utility-cyan-default: #6ad5ef;--ds-color-utility-cyan-inverse: #a8e9f7;--ds-color-utility-green-default: #7ec6ac;--ds-color-utility-green-inverse: #addbca;--ds-color-utility-gray-default: #adadad;--ds-color-utility-gray-inverse: #dddddd;--ds-color-utility-lime-default: #badd81;--ds-color-utility-lime-inverse: #d8efb4;--ds-color-utility-navy-default: #265688;--ds-color-utility-navy-inverse: #acc9e2;--ds-color-utility-neutral-default: #7e8894;--ds-color-utility-neutral-inverse: #ccd2db;--ds-color-utility-pink-default: #f7738e;--ds-color-utility-pink-inverse: #fcc2ce;--ds-color-utility-purple-default: #8d47f0;--ds-color-utility-purple-inverse: #ddc9fb;--ds-color-utility-red-default: #e35c2f;--ds-color-utility-red-inverse: #f0a68d;--ds-color-utility-turquoise-default: #5c8f91;--ds-color-utility-turquoise-inverse: #9fbdbe;--ds-color-utility-yellow-default: #f9ce06;--ds-color-utility-yellow-inverse: #ffe87e;--ds-color-utility-error-default: #cc1816;--ds-color-utility-error-inverse: #f9aca6;--ds-color-utility-warning-default: #f2c153;--ds-color-utility-warning-inverse: #f2c153;--ds-color-utility-success-default: #0b6f4d;--ds-color-utility-success-inverse: #8eceb9}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}*:focus-visible{outline:0}*:focus-visible{outline:0}:focus:not(:focus-visible){outline:3px solid transparent}:host{display:inline-block;width:100%;margin:0;padding:0;vertical-align:middle}:host ::slotted(auro-menuoption),:host ::slotted([auro-menuoption]){padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem))}:host ::slotted([selected]){padding-left: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([nocheckmark]) ::slotted(auro-menuoption){padding-left:var(--ds-size-200, 1rem)}:host([root]){overflow-y:auto}`;
|
|
3858
|
+
var styleCss$2 = i$b`:root{--ds-asset-font-circular-family-name: "AS Circular";--ds-asset-font-circular-filename: "ASCircularWeb";--ds-asset-font-circular-weight-light: "-Light";--ds-asset-font-circular-weight-medium: "-Medium";--ds-asset-font-circular-weight-book: "-Book";--ds-border-radius: 0.375rem;--ds-size-25: 0.125rem;--ds-size-50: 0.25rem;--ds-size-75: 0.375rem;--ds-size-100: 0.5rem;--ds-size-150: 0.75rem;--ds-size-200: 1rem;--ds-size-250: 1.25rem;--ds-size-300: 1.5rem;--ds-size-400: 2rem;--ds-size-500: 2.5rem;--ds-size-600: 3rem;--ds-size-700: 3.5rem;--ds-size-800: 4rem;--ds-size-900: 4.5rem;--ds-size-1000: 5rem;--ds-unitless-scale-20: 0.25;--ds-unitless-scale-50: 0.5;--ds-unitless-scale-100: 1;--ds-unitless-scale-140: 1.4;--ds-unitless-scale-150: 1.5;--ds-unitless-scale-200: 2;--ds-unitless-scale-300: 3;--ds-unitless-scale-350: 3.5;--ds-animation-default-property: all;--ds-animation-default-duration: 0.3s;--ds-animation-default-timing: ease-out;--ds-depth-overlay: 200;--ds-depth-modal: 300;--ds-depth-tooltip: 400;--ds-elevation-100: 0px 0px 5px rgba(0, 0, 0, 0.15);--ds-elevation-200: 0px 0px 10px rgba(0, 0, 0, 0.15);--ds-elevation-300: 0px 0px 15px rgba(0, 0, 0, 0.2);--ds-grid-breakpoint-xs: 320px;--ds-grid-breakpoint-sm: 576px;--ds-grid-breakpoint-md: 768px;--ds-grid-breakpoint-lg: 1024px;--ds-grid-breakpoint-xl: 1232px;--ds-grid-column-xs: 6;--ds-grid-column-sm: 12;--ds-grid-column-md: 12;--ds-grid-column-lg: 12;--ds-grid-column-xl: 12;--ds-grid-gutter-xs: 0.5rem;--ds-grid-gutter-sm: 1rem;--ds-grid-gutter-md: 1.5rem;--ds-grid-gutter-lg: 1.5rem;--ds-grid-gutter-xl: 2rem;--ds-grid-margin-xs: 1rem;--ds-grid-margin-sm: 1rem;--ds-grid-margin-md: 1.5rem;--ds-grid-margin-lg: 2rem;--ds-grid-margin-xl: 2rem;--ds-font-family-default: "AS Circular", Helvetica Neue, Arial, sans-serif;--ds-font-family-mono: Menlo, Monaco, Consolas, "Courier New", monospace;--ds-text-heading-300-weight: 300;--ds-text-heading-300-px: 18px;--ds-text-heading-300-size: 1.125rem;--ds-text-heading-300-height: 1.625rem;--ds-text-heading-300-height-px: 26px;--ds-text-heading-400-weight: 300;--ds-text-heading-400-px: 20px;--ds-text-heading-400-size: 1.25rem;--ds-text-heading-400-height: 1.625rem;--ds-text-heading-400-height-px: 26px;--ds-text-heading-500-weight: 300;--ds-text-heading-500-px-breakpoint-sm: 22px;--ds-text-heading-500-px-breakpoint-md: 24px;--ds-text-heading-500-px-breakpoint-lg: 24px;--ds-text-heading-500-size-breakpoint-sm: 1.375rem;--ds-text-heading-500-size-breakpoint-md: 1.5rem;--ds-text-heading-500-size-breakpoint-lg: 1.5rem;--ds-text-heading-500-height-breakpoint-sm: 1.625rem;--ds-text-heading-500-height-breakpoint-px-sm: 26px;--ds-text-heading-500-height-breakpoint-md: 1.875rem;--ds-text-heading-500-height-breakpoint-px-md: 30px;--ds-text-heading-500-height-breakpoint-lg: 2rem;--ds-text-heading-500-height-breakpoint-px-lg: 32px;--ds-text-heading-600-weight: 300;--ds-text-heading-600-px-breakpoint-sm: 26px;--ds-text-heading-600-px-breakpoint-md: 28px;--ds-text-heading-600-px-breakpoint-lg: 28px;--ds-text-heading-600-size-breakpoint-sm: 1.625rem;--ds-text-heading-600-size-breakpoint-md: 1.75rem;--ds-text-heading-600-size-breakpoint-lg: 1.75rem;--ds-text-heading-600-height-breakpoint-sm: 1.875rem;--ds-text-heading-600-height-breakpoint-px-sm: 30px;--ds-text-heading-600-height-breakpoint-md: 2.125rem;--ds-text-heading-600-height-breakpoint-px-md: 34px;--ds-text-heading-600-height-breakpoint-lg: 2.25rem;--ds-text-heading-600-height-breakpoint-px-lg: 36px;--ds-text-heading-700-weight: 500;--ds-text-heading-700-px-breakpoint-sm: 28px;--ds-text-heading-700-px-breakpoint-md: 32px;--ds-text-heading-700-px-breakpoint-lg: 36px;--ds-text-heading-700-size-breakpoint-sm: 1.75rem;--ds-text-heading-700-size-breakpoint-md: 2rem;--ds-text-heading-700-size-breakpoint-lg: 2.25rem;--ds-text-heading-700-height-breakpoint-sm: 2.125rem;--ds-text-heading-700-height-breakpoint-px-sm: 34px;--ds-text-heading-700-height-breakpoint-md: 2.375rem;--ds-text-heading-700-height-breakpoint-px-md: 38px;--ds-text-heading-700-height-breakpoint-lg: 2.75rem;--ds-text-heading-700-height-breakpoint-px-lg: 44px;--ds-text-heading-800-weight: 500;--ds-text-heading-800-px-breakpoint-sm: 32px;--ds-text-heading-800-px-breakpoint-md: 36px;--ds-text-heading-800-px-breakpoint-lg: 40px;--ds-text-heading-800-size-breakpoint-sm: 2rem;--ds-text-heading-800-size-breakpoint-md: 2.25rem;--ds-text-heading-800-size-breakpoint-lg: 2.5rem;--ds-text-heading-800-height-breakpoint-sm: 2.375rem;--ds-text-heading-800-height-breakpoint-px-sm: 38px;--ds-text-heading-800-height-breakpoint-md: 2.625rem;--ds-text-heading-800-height-breakpoint-px-md: 42px;--ds-text-heading-800-height-breakpoint-lg: 3rem;--ds-text-heading-800-height-breakpoint-px-lg: 48px;--ds-text-heading-default-weight: 500;--ds-text-heading-default-margin: 0;--ds-text-heading-default-spacing: -0.2px;--ds-text-heading-medium-weight: 300;--ds-text-heading-display-weight: 100;--ds-text-heading-display-px-breakpoint-sm: 44px;--ds-text-heading-display-px-breakpoint-md: 48px;--ds-text-heading-display-px-breakpoint-lg: 56px;--ds-text-heading-display-size-breakpoint-sm: 2.75rem;--ds-text-heading-display-size-breakpoint-md: 3rem;--ds-text-heading-display-size-breakpoint-lg: 3.5rem;--ds-text-heading-display-height-breakpoint-sm: 3.375rem;--ds-text-heading-display-height-breakpoint-px-sm: 54px;--ds-text-heading-display-height-breakpoint-md: 3.75rem;--ds-text-heading-display-height-breakpoint-px-md: 60px;--ds-text-heading-display-height-breakpoint-lg: 4.25rem;--ds-text-heading-display-height-breakpoint-px-lg: 68px;--ds-text-body-default-weight: 500;--ds-text-body-size-xxs: 0.625rem;--ds-text-body-size-xs: 0.75rem;--ds-text-body-size-sm: 0.875rem;--ds-text-body-size-default: 1rem;--ds-text-body-size-lg: 1.125rem;--ds-text-body-height-xs: 1rem;--ds-text-body-height-sm: 1.25rem;--ds-text-body-height-default: 1.5rem;--ds-text-body-height-lg: 1.625rem;--ds-color-alert-notification-default: #0074c8;--ds-color-alert-warning-default: #de750c;--ds-color-alert-error-default: #df0b37;--ds-color-alert-success-default: #00805d;--ds-color-alert-advisory-default: #fff0cd;--ds-color-alert-bkg-success-default: #ddf6e8;--ds-color-alert-bkg-error-default: #ffedf1;--ds-color-background-primary-100-default: #ffffff;--ds-color-background-primary-100-inverse: #0e2b4f;--ds-color-background-primary-200-default: #f7f7f7;--ds-color-background-primary-200-inverse: #194069;--ds-color-background-primary-300-default: #e4e8ec;--ds-color-background-primary-300-inverse: #265688;--ds-color-background-primary-400-default: #dddddd;--ds-color-background-primary-400-inverse: #326aa5;--ds-color-background-success-default: #eef8f5;--ds-color-background-success-inverse: #173c30;--ds-color-background-error-default: #fff4f4;--ds-color-background-error-inverse: #74110e;--ds-color-background-warning-default: #fef8e9;--ds-color-background-warning-inverse: #5d4514;--ds-color-background-info-default: #f0f7fd;--ds-color-background-info-inverse: #193d73;--ds-color-background-subtle-default: #f7f8fa;--ds-color-background-subtle-inverse: #2a2a2a;--ds-color-background-accent-default: #ebfafd;--ds-color-background-accent-inverse: #275b72;--ds-color-background-emphasis-default: #c9e0f7;--ds-color-background-emphasis-inverse: #225296;--ds-color-background-scrimmed-default: rgba(0, 0, 0, 0.5);--ds-color-background-lightest: #ffffff;--ds-color-background-lighter: #f7f7f7;--ds-color-background-darker: #01426a;--ds-color-background-darkest: #00274a;--ds-color-background-gradient-default: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5));--ds-color-base-white: #ffffff;--ds-color-base-white-100: rgba(255, 255, 255, 0.03);--ds-color-base-white-200: rgba(255, 255, 255, 0.06);--ds-color-base-white-300: rgba(255, 255, 255, 0.12);--ds-color-base-white-400: rgba(255, 255, 255, 0.25);--ds-color-base-white-500: rgba(255, 255, 255, 0.5);--ds-color-base-white-opacity-50: rgba(255, 255, 255, 0.5);--ds-color-base-white-opacity-40: rgba(255, 255, 255, 0.4);--ds-color-base-white-opacity-0: rgba(255, 255, 255, 0);--ds-color-base-black: #000000;--ds-color-base-black-100: rgba(0, 0, 0, 0.03);--ds-color-base-black-200: rgba(0, 0, 0, 0.06);--ds-color-base-black-300: rgba(0, 0, 0, 0.12);--ds-color-base-black-400: rgba(0, 0, 0, 0.25);--ds-color-base-black-500: rgba(0, 0, 0, 0.5);--ds-color-base-black-opacity-15: rgba(0, 0, 0, 0.15);--ds-color-base-blue-100: #f0f7fd;--ds-color-base-blue-200: #c9e0f7;--ds-color-base-blue-300: #a0c9f1;--ds-color-base-blue-400: #79b2ec;--ds-color-base-blue-500: #5398e6;--ds-color-base-blue-600: #3b7fd2;--ds-color-base-blue-700: #2c67b5;--ds-color-base-blue-800: #225296;--ds-color-base-blue-900: #193d73;--ds-color-base-blue-1000: #102a51;--ds-color-base-cyan-100: #ebfafd;--ds-color-base-cyan-200: #a8e9f7;--ds-color-base-cyan-300: #6ad5ef;--ds-color-base-cyan-400: #56bbde;--ds-color-base-cyan-500: #4aa2c7;--ds-color-base-cyan-600: #3e89aa;--ds-color-base-cyan-700: #32718e;--ds-color-base-cyan-800: #275b72;--ds-color-base-cyan-900: #1d4658;--ds-color-base-cyan-1000: #12303d;--ds-color-base-error-100: #fff4f4;--ds-color-base-error-200: #f9aca6;--ds-color-base-error-300: #f16359;--ds-color-base-error-400: #cc1816;--ds-color-base-error-500: #74110e;--ds-color-base-gray-100: #f7f7f7;--ds-color-base-gray-200: #d4d4d4;--ds-color-base-gray-300: #c5c5c5;--ds-color-base-gray-400: #adadad;--ds-color-base-gray-500: #959595;--ds-color-base-gray-600: #7e7e7e;--ds-color-base-gray-700: #676767;--ds-color-base-gray-800: #525252;--ds-color-base-gray-900: #3d3d3d;--ds-color-base-gray-1000: #2a2a2a;--ds-color-base-green-100: #f3faf7;--ds-color-base-green-200: #000000;--ds-color-base-green-300: #addbca;--ds-color-base-green-400: #7ec6ac;--ds-color-base-green-500: #51ae8c;--ds-color-base-green-600: #459578;--ds-color-base-green-700: #3a7d64;--ds-color-base-green-800: #306854;--ds-color-base-green-900: #285545;--ds-color-base-green-1000: #1f4436;--ds-color-base-lime-100: #f5fbeb;--ds-color-base-lime-200: #d8efb4;--ds-color-base-lime-300: #badd81;--ds-color-base-lime-400: #a2c270;--ds-color-base-lime-500: #8ca761;--ds-color-base-lime-600: #778f53;--ds-color-base-lime-700: #647845;--ds-color-base-lime-800: #53643a;--ds-color-base-lime-900: #44522f;--ds-color-base-lime-1000: #364126;--ds-color-base-navy-100: #f2f7fb;--ds-color-base-navy-200: #cfe0ef;--ds-color-base-navy-300: #acc9e2;--ds-color-base-navy-400: #89b2d4;--ds-color-base-navy-500: #6899c6;--ds-color-base-navy-600: #4a82b7;--ds-color-base-navy-700: #326aa5;--ds-color-base-navy-800: #265688;--ds-color-base-navy-900: #194069;--ds-color-base-navy-1000: #0e2b4f;--ds-color-base-neutral-100: #f7f8fa;--ds-color-base-neutral-200: #e4e8ec;--ds-color-base-neutral-300: #ccd2db;--ds-color-base-neutral-400: #afb9c6;--ds-color-base-neutral-500: #939fad;--ds-color-base-neutral-600: #7e8894;--ds-color-base-neutral-700: #6a717c;--ds-color-base-neutral-800: #585e67;--ds-color-base-neutral-900: #484d55;--ds-color-base-neutral-1000: #393d43;--ds-color-base-pink-100: #fff7f8;--ds-color-base-pink-200: #fde0e6;--ds-color-base-pink-300: #fcc2ce;--ds-color-base-pink-400: #fa9db0;--ds-color-base-pink-500: #f7738e;--ds-color-base-pink-600: #e45472;--ds-color-base-pink-700: #bf475f;--ds-color-base-pink-800: #a03b50;--ds-color-base-pink-900: #833142;--ds-color-base-pink-1000: #692734;--ds-color-base-purple-100: #fbf8fe;--ds-color-base-purple-200: #ede3fd;--ds-color-base-purple-300: #ddc9fb;--ds-color-base-purple-400: #c9a9f8;--ds-color-base-purple-500: #b588f5;--ds-color-base-purple-600: #a268f3;--ds-color-base-purple-700: #8d47f0;--ds-color-base-purple-800: #7633d7;--ds-color-base-purple-900: #622ab2;--ds-color-base-purple-1000: #4e228d;--ds-color-base-red-100: #fef7f5;--ds-color-base-red-200: #fae2da;--ds-color-base-red-300: #f5c7b8;--ds-color-base-red-400: #f0a68d;--ds-color-base-red-500: #e9815e;--ds-color-base-red-600: #e35c2f;--ds-color-base-red-700: #d03a08;--ds-color-base-red-800: #ae3007;--ds-color-base-red-900: #902806;--ds-color-base-red-1000: #732005;--ds-color-base-success-100: #eef8f5;--ds-color-base-success-200: #8eceb9;--ds-color-base-success-300: #40a080;--ds-color-base-success-400: #0b6f4d;--ds-color-base-success-500: #173c30;--ds-color-base-turquoise-100: #f7fafa;--ds-color-base-turquoise-200: #dfe9ea;--ds-color-base-turquoise-300: #c2d5d6;--ds-color-base-turquoise-400: #9fbdbe;--ds-color-base-turquoise-500: #7ba5a6;--ds-color-base-turquoise-600: #5c8f91;--ds-color-base-turquoise-700: #3d7a7d;--ds-color-base-turquoise-800: #21686a;--ds-color-base-turquoise-900: #085659;--ds-color-base-turquoise-1000: #004447;--ds-color-base-yellow-100: #fff9df;--ds-color-base-yellow-200: #ffe87e;--ds-color-base-yellow-300: #f9ce06;--ds-color-base-yellow-400: #d6b622;--ds-color-base-yellow-500: #b49d35;--ds-color-base-yellow-600: #96873e;--ds-color-base-yellow-700: #7c7140;--ds-color-base-yellow-800: #665e3d;--ds-color-base-yellow-900: #524e38;--ds-color-base-yellow-1000: #403d30;--ds-color-base-warning-100: #fef8e9;--ds-color-base-warning-200: #f2c153;--ds-color-base-warning-300: #c49432;--ds-color-base-warning-400: #8e6b22;--ds-color-base-warning-500: #5d4514;--ds-color-state-error-100: #ff999b;--ds-color-state-error-500: #df0b37;--ds-color-state-success-100: #69cf96;--ds-color-state-success-500: #00805d;--ds-color-state-warning-500: #de750c;--ds-color-border-primary-default: #585e67;--ds-color-border-primary-inverse: #afb9c6;--ds-color-border-secondary-default: #939fad;--ds-color-border-secondary-inverse: #7e8894;--ds-color-border-tertiary-default: #dddddd;--ds-color-border-tertiary-inverse: #676767;--ds-color-border-error-default: #cc1816;--ds-color-border-error-inverse: #f9aca6;--ds-color-border-divider-default: rgba(0, 0, 0, 0.12);--ds-color-border-divider-inverse: rgba(255, 255, 255, 0.25);--ds-color-border-subtle-default: #f0f7fd;--ds-color-border-subtle-inverse: #326aa5;--ds-color-border-emphasis-default: #194069;--ds-color-border-emphasis-inverse: #f2f7fb;--ds-color-border-accent-default: #badd81;--ds-color-border-accent-inverse: #a2c270;--ds-color-border-success-default: #0b6f4d;--ds-color-border-success-inverse: #8eceb9;--ds-color-border-warning-default: #c49432;--ds-color-border-warning-inverse: #f2c153;--ds-color-border-info-default: #326aa5;--ds-color-border-info-inverse: #89b2d4;--ds-color-border-ui-default-default: #2c67b5;--ds-color-border-ui-default-inverse: #56bbde;--ds-color-border-ui-hover-default: #193d73;--ds-color-border-ui-hover-inverse: #a8e9f7;--ds-color-border-ui-active-default: #225296;--ds-color-border-ui-active-inverse: #6ad5ef;--ds-color-border-ui-focus-default: #2c67b5;--ds-color-border-ui-focus-inverse: #56bbde;--ds-color-border-ui-disabled-default: #adadad;--ds-color-border-ui-disabled-inverse: #7e7e7e;--ds-color-border-active-default: #0074c8;--ds-color-border-active-inverse: #00cff0;--ds-color-border-disabled-default: #d4d4d4;--ds-color-border-focus-default: #959595;--ds-color-brand-neutral-100: #f7f8fa;--ds-color-brand-neutral-200: #e4e8ec;--ds-color-brand-neutral-300: #ccd2db;--ds-color-brand-neutral-400: #afb9c6;--ds-color-brand-neutral-500: #939fad;--ds-color-brand-neutral-600: #7e8894;--ds-color-brand-neutral-700: #6a717c;--ds-color-brand-neutral-800: #585e67;--ds-color-brand-neutral-900: #484d55;--ds-color-brand-neutral-1000: #393d43;--ds-color-brand-gray-100: #f7f7f7;--ds-color-brand-gray-200: #dddddd;--ds-color-brand-gray-300: #c5c5c5;--ds-color-brand-gray-400: #adadad;--ds-color-brand-gray-500: #959595;--ds-color-brand-gray-600: #7e7e7e;--ds-color-brand-gray-700: #676767;--ds-color-brand-gray-800: #525252;--ds-color-brand-gray-900: #3d3d3d;--ds-color-brand-gray-1000: #2a2a2a;--ds-color-brand-red-100: #fef7f5;--ds-color-brand-red-200: #fae2da;--ds-color-brand-red-300: #f5c7b8;--ds-color-brand-red-400: #f0a68d;--ds-color-brand-red-500: #e9815e;--ds-color-brand-red-600: #e35c2f;--ds-color-brand-red-700: #d03a08;--ds-color-brand-red-800: #ae3007;--ds-color-brand-red-900: #902806;--ds-color-brand-red-1000: #732005;--ds-color-brand-yellow-100: #fff9df;--ds-color-brand-yellow-200: #ffe87e;--ds-color-brand-yellow-300: #f9ce06;--ds-color-brand-yellow-400: #d6b622;--ds-color-brand-yellow-500: #b49d35;--ds-color-brand-yellow-600: #96873e;--ds-color-brand-yellow-700: #7c7140;--ds-color-brand-yellow-800: #665e3d;--ds-color-brand-yellow-900: #524e38;--ds-color-brand-yellow-1000: #403d30;--ds-color-brand-lime-100: #f5fbeb;--ds-color-brand-lime-200: #d8efb4;--ds-color-brand-lime-300: #badd81;--ds-color-brand-lime-400: #a2c270;--ds-color-brand-lime-500: #8ca761;--ds-color-brand-lime-600: #778f53;--ds-color-brand-lime-700: #647845;--ds-color-brand-lime-800: #53643a;--ds-color-brand-lime-900: #44522f;--ds-color-brand-lime-1000: #364126;--ds-color-brand-green-100: #f3faf7;--ds-color-brand-green-200: #d4ece4;--ds-color-brand-green-300: #addbca;--ds-color-brand-green-400: #7ec6ac;--ds-color-brand-green-500: #51ae8c;--ds-color-brand-green-600: #459578;--ds-color-brand-green-700: #3a7d64;--ds-color-brand-green-800: #306854;--ds-color-brand-green-900: #285545;--ds-color-brand-green-1000: #1f4436;--ds-color-brand-turquoise-100: #f7fafa;--ds-color-brand-turquoise-200: #dfe9ea;--ds-color-brand-turquoise-300: #c2d5d6;--ds-color-brand-turquoise-400: #9fbdbe;--ds-color-brand-turquoise-500: #7ba5a6;--ds-color-brand-turquoise-600: #5c8f91;--ds-color-brand-turquoise-700: #3d7a7d;--ds-color-brand-turquoise-800: #21686a;--ds-color-brand-turquoise-900: #085659;--ds-color-brand-turquoise-1000: #004447;--ds-color-brand-cyan-100: #ebfafd;--ds-color-brand-cyan-200: #a8e9f7;--ds-color-brand-cyan-300: #6ad5ef;--ds-color-brand-cyan-400: #56bbde;--ds-color-brand-cyan-500: #4aa2c7;--ds-color-brand-cyan-600: #3e89aa;--ds-color-brand-cyan-700: #32718e;--ds-color-brand-cyan-800: #275b72;--ds-color-brand-cyan-900: #1d4658;--ds-color-brand-cyan-1000: #12303d;--ds-color-brand-blue-100: #f0f7fd;--ds-color-brand-blue-200: #c9e0f7;--ds-color-brand-blue-300: #a0c9f1;--ds-color-brand-blue-400: #79b2ec;--ds-color-brand-blue-500: #5398e6;--ds-color-brand-blue-600: #3b7fd2;--ds-color-brand-blue-700: #2c67b5;--ds-color-brand-blue-800: #225296;--ds-color-brand-blue-900: #193d73;--ds-color-brand-blue-1000: #102a51;--ds-color-brand-navy-100: #f2f7fb;--ds-color-brand-navy-200: #cfe0ef;--ds-color-brand-navy-300: #acc9e2;--ds-color-brand-navy-400: #89b2d4;--ds-color-brand-navy-500: #6899c6;--ds-color-brand-navy-600: #4a82b7;--ds-color-brand-navy-700: #326aa5;--ds-color-brand-navy-800: #265688;--ds-color-brand-navy-900: #194069;--ds-color-brand-navy-1000: #0e2b4f;--ds-color-brand-purple-100: #fbf8fe;--ds-color-brand-purple-200: #ede3fd;--ds-color-brand-purple-300: #ddc9fb;--ds-color-brand-purple-400: #c9a9f8;--ds-color-brand-purple-500: #b588f5;--ds-color-brand-purple-600: #a268f3;--ds-color-brand-purple-700: #8d47f0;--ds-color-brand-purple-800: #7633d7;--ds-color-brand-purple-900: #622ab2;--ds-color-brand-purple-1000: #4e228d;--ds-color-brand-pink-100: #fff7f8;--ds-color-brand-pink-200: #fde0e6;--ds-color-brand-pink-300: #fcc2ce;--ds-color-brand-pink-400: #fa9db0;--ds-color-brand-pink-500: #f7738e;--ds-color-brand-pink-600: #e45472;--ds-color-brand-pink-700: #bf475f;--ds-color-brand-pink-800: #a03b50;--ds-color-brand-pink-900: #833142;--ds-color-brand-pink-1000: #692734;--ds-color-brand-midnight-100: #c1daf0;--ds-color-brand-midnight-200: #569ed7;--ds-color-brand-midnight-300: #156fad;--ds-color-brand-midnight-400: #01426a;--ds-color-brand-midnight-500: #00274a;--ds-color-brand-atlas-100: #cde6ff;--ds-color-brand-atlas-200: #6bb7fb;--ds-color-brand-atlas-300: #2492eb;--ds-color-brand-atlas-400: #0074c8;--ds-color-brand-atlas-500: #054687;--ds-color-brand-atlas-400-opacity-20: rgba(0, 116, 200, 0.2);--ds-color-brand-breeze-100: #c0f7ff;--ds-color-brand-breeze-200: #5de3f7;--ds-color-brand-breeze-300: #00cff0;--ds-color-brand-breeze-400: #099dc5;--ds-color-brand-breeze-500: #0b5575;--ds-color-brand-breeze-300-opacity-30: rgba(0, 207, 240, 0.3);--ds-color-brand-tropical-100: #e2ffcd;--ds-color-brand-tropical-200: #d0fba6;--ds-color-brand-tropical-300: #c0e585;--ds-color-brand-tropical-400: #91be62;--ds-color-brand-tropical-500: #5e8741;--ds-color-brand-alpine-100: #bcaae6;--ds-color-brand-alpine-200: #9e73ea;--ds-color-brand-alpine-300: #8439ef;--ds-color-brand-alpine-400: #631db8;--ds-color-brand-alpine-500: #39115c;--ds-color-brand-flamingo-100: #ffebee;--ds-color-brand-flamingo-200: #ffc0ca;--ds-color-brand-flamingo-300: #ff94a7;--ds-color-brand-flamingo-400: #f65b7b;--ds-color-brand-flamingo-500: #b82b47;--ds-color-brand-canyon-100: #ffcab6;--ds-color-brand-canyon-200: #f99574;--ds-color-brand-canyon-300: #f26135;--ds-color-brand-canyon-400: #de3e09;--ds-color-brand-canyon-500: #b83302;--ds-color-brand-goldcoast-100: #fff0cd;--ds-color-brand-goldcoast-200: #ffdb67;--ds-color-brand-goldcoast-300: #ffd200;--ds-color-brand-goldcoast-400: #e5ad07;--ds-color-brand-goldcoast-500: #b88624;--ds-color-brand-goldgray-100: #c5c1bf;--ds-color-brand-goldgray-200: #726e6c;--ds-color-brand-gold-100: #ccbc94;--ds-color-brand-gold-200: #7f682e;--ds-color-brand-emerald: #139142;--ds-color-brand-sapphire: #015daa;--ds-color-brand-ruby: #a41d4a;--ds-color-brand-lounge: #01426a;--ds-color-brand-loungeplus: #53b390;--ds-color-container-accent-default: #f5fbeb;--ds-color-container-accent-inverse: #badd81;--ds-color-container-emphasis-default: #ebfafd;--ds-color-container-emphasis-inverse: #6ad5ef;--ds-color-container-error-default: #fff4f4;--ds-color-container-error-inverse: #74110e;--ds-color-container-info-default: #f0f7fd;--ds-color-container-info-inverse: #193d73;--ds-color-container-primary-default: #ffffff;--ds-color-container-primary-inverse: #0e2b4f;--ds-color-container-secondary-default: #f7f7f7;--ds-color-container-secondary-inverse: #194069;--ds-color-container-subtle-default: #f7f8fa;--ds-color-container-subtle-inverse: #393d43;--ds-color-container-success-default: #eef8f5;--ds-color-container-success-inverse: #173c30;--ds-color-container-tertiary-default: rgba(0, 0, 0, 0.03);--ds-color-container-tertiary-inverse: rgba(255, 255, 255, 0.06);--ds-color-container-warning-default: #fef8e9;--ds-color-container-warning-inverse: #5d4514;--ds-color-container-ui-primary-active-default: #225296;--ds-color-container-ui-primary-active-inverse: #6ad5ef;--ds-color-container-ui-primary-default-default: #2c67b5;--ds-color-container-ui-primary-default-inverse: #56bbde;--ds-color-container-ui-primary-disabled-default: #a0c9f1;--ds-color-container-ui-primary-disabled-inverse: #275b72;--ds-color-container-ui-primary-focus-default: #2c67b5;--ds-color-container-ui-primary-focus-inverse: #56bbde;--ds-color-container-ui-primary-hover-default: #193d73;--ds-color-container-ui-primary-hover-inverse: #a8e9f7;--ds-color-container-ui-secondary-active-default: #f0f7fd;--ds-color-container-ui-secondary-active-inverse: rgba(255, 255, 255, 0.06);--ds-color-container-ui-secondary-default-default: #ffffff;--ds-color-container-ui-secondary-default-inverse: rgba(255, 255, 255, 0.03);--ds-color-container-ui-secondary-disabled-default: #f7f7f7;--ds-color-container-ui-secondary-disabled-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-secondary-focus-default: #ffffff;--ds-color-container-ui-secondary-focus-inverse: rgba(255, 255, 255, 0.03);--ds-color-container-ui-secondary-hover-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-secondary-hover-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-tertiary-active-default: rgba(0, 0, 0, 0.06);--ds-color-container-ui-tertiary-active-inverse: rgba(255, 255, 255, 0.06);--ds-color-container-ui-tertiary-default-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-tertiary-default-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-tertiary-disabled-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-tertiary-disabled-inverse: rgba(255, 255, 255, 0.25);--ds-color-container-ui-tertiary-focus-default: rgba(0, 0, 0, 0.03);--ds-color-container-ui-tertiary-focus-inverse: rgba(255, 255, 255, 0.12);--ds-color-container-ui-tertiary-hover-default: rgba(0, 0, 0, 0.12);--ds-color-container-ui-tertiary-hover-inverse: rgba(255, 255, 255, 0.25);--ds-color-icon-primary-default: #676767;--ds-color-icon-primary-inverse: #f7f7f7;--ds-color-icon-secondary-default: #7e8894;--ds-color-icon-secondary-inverse: #ccd2db;--ds-color-icon-tertiary-default: #afb9c6;--ds-color-icon-tertiary-inverse: #939fad;--ds-color-icon-emphasis-default: #2a2a2a;--ds-color-icon-emphasis-inverse: #ffffff;--ds-color-icon-accent-default: #a2c270;--ds-color-icon-accent-inverse: #badd81;--ds-color-icon-info-default: #326aa5;--ds-color-icon-info-inverse: #89b2d4;--ds-color-icon-error-default: #cc1816;--ds-color-icon-error-inverse: #f9aca6;--ds-color-icon-warning-default: #c49432;--ds-color-icon-warning-inverse: #f2c153;--ds-color-icon-success-default: #40a080;--ds-color-icon-success-inverse: #8eceb9;--ds-color-icon-subtle-default: #a0c9f1;--ds-color-icon-subtle-inverse: #326aa5;--ds-color-icon-ui-primary-default-default: #2c67b5;--ds-color-icon-ui-primary-default-inverse: #56bbde;--ds-color-icon-ui-primary-hover-default: #193d73;--ds-color-icon-ui-primary-hover-inverse: #a8e9f7;--ds-color-icon-ui-primary-active-default: #225296;--ds-color-icon-ui-primary-active-inverse: #6ad5ef;--ds-color-icon-ui-primary-disabled-default: #adadad;--ds-color-icon-ui-primary-disabled-inverse: #7e7e7e;--ds-color-icon-ui-primary-focus-default: #2c67b5;--ds-color-icon-ui-primary-focus-inverse: #56bbde;--ds-color-icon-ui-secondary-active-default: #676767;--ds-color-icon-ui-secondary-active-inverse: #c5c5c5;--ds-color-icon-ui-secondary-default-default: #7e7e7e;--ds-color-icon-ui-secondary-default-inverse: #adadad;--ds-color-icon-ui-secondary-disabled-default: #adadad;--ds-color-icon-ui-secondary-disabled-inverse: #7e7e7e;--ds-color-icon-ui-secondary-focus-default: #7e7e7e;--ds-color-icon-ui-secondary-focus-inverse: #adadad;--ds-color-icon-ui-secondary-hover-default: #525252;--ds-color-icon-ui-secondary-hover-inverse: #dddddd;--ds-color-icon-brand-red-default: #d03a08;--ds-color-icon-brand-red-inverse: #e9815e;--ds-color-icon-brand-yellow-default: #7c7140;--ds-color-icon-brand-yellow-inverse: #f9ce06;--ds-color-icon-brand-pink-default: #bf475f;--ds-color-icon-brand-pink-inverse: #f7738e;--ds-color-icon-brand-purple-default: #8d47f0;--ds-color-icon-brand-purple-inverse: #b588f5;--ds-color-icon-brand-lime-default: #647845;--ds-color-icon-brand-lime-inverse: #badd81;--ds-color-icon-brand-green-default: #3a7d64;--ds-color-icon-brand-green-inverse: #51ae8c;--ds-color-icon-brand-turquoise-default: #3d7a7d;--ds-color-icon-brand-turquoise-inverse: #7ba5a6;--ds-color-icon-brand-navy-default: #265688;--ds-color-icon-brand-navy-inverse: #6899c6;--ds-color-icon-brand-blue-default: #2c67b5;--ds-color-icon-brand-blue-inverse: #5398e6;--ds-color-icon-brand-cyan-default: #32718e;--ds-color-icon-brand-cyan-inverse: #6ad5ef;--ds-color-icon-brand-gray-default: #676767;--ds-color-icon-brand-gray-inverse: #c5c5c5;--ds-color-icon-brand-neutral-default: #6a717c;--ds-color-icon-brand-neutral-inverse: #afb9c6;--ds-color-icon-disabled-default: rgba(0, 0, 0, 0.15);--ds-color-text-primary-default: #2a2a2a;--ds-color-text-primary-inverse: #ffffff;--ds-color-text-secondary-default: #525252;--ds-color-text-secondary-inverse: #dddddd;--ds-color-text-tertiary-default: #6a717c;--ds-color-text-tertiary-inverse: #adadad;--ds-color-text-error-default: #cc1816;--ds-color-text-error-inverse: #f9aca6;--ds-color-text-emphasis-default: #265688;--ds-color-text-emphasis-inverse: #cfe0ef;--ds-color-text-accent-default: #647845;--ds-color-text-accent-inverse: #badd81;--ds-color-text-info-default: #326aa5;--ds-color-text-info-inverse: #acc9e2;--ds-color-text-subtle-default: #32718e;--ds-color-text-subtle-inverse: #56bbde;--ds-color-text-success-default: #0b6f4d;--ds-color-text-success-inverse: #8eceb9;--ds-color-text-ui-active-default: #225296;--ds-color-text-ui-active-inverse: #6ad5ef;--ds-color-text-ui-default-default: #2c67b5;--ds-color-text-ui-default-inverse: #56bbde;--ds-color-text-ui-disabled-default: #adadad;--ds-color-text-ui-disabled-inverse: #7e7e7e;--ds-color-text-ui-focus-default: #2c67b5;--ds-color-text-ui-focus-inverse: #56bbde;--ds-color-text-ui-hover-default: #193d73;--ds-color-text-ui-hover-inverse: #a8e9f7;--ds-color-text-link-default: #0074c8;--ds-color-text-link-inverse: #00cff0;--ds-color-tier-alaska-mvp-default: #726e6c;--ds-color-tier-alaska-mvp-inverse: #c5c1bf;--ds-color-tier-alaska-mvpgold-default: #7f682e;--ds-color-tier-alaska-mvpgold-inverse: #c5c1bf;--ds-color-tier-alaska-mvpgold75k-default: #7f682e;--ds-color-tier-alaska-mvpgold75k-inverse: #c5c1bf;--ds-color-tier-alaska-mvpgold100k-default: #7f682e;--ds-color-tier-alaska-mvpgold100k-inverse: #c5c1bf;--ds-color-tier-alaska-lounge: #01426a;--ds-color-tier-alaska-loungeplus: #53b390;--ds-color-tier-fare-business-default: #005154;--ds-color-tier-fare-business-inverse: #9fbdbe;--ds-color-tier-fare-economy-default: #2c67b5;--ds-color-tier-fare-economy-inverse: #a0c9f1;--ds-color-tier-fare-first-class-default: #002c4e;--ds-color-tier-fare-first-class-inverse: #89b2d4;--ds-color-tier-fare-saver-default: #4aa2c7;--ds-color-tier-fare-saver-inverse: #a8e9f7;--ds-color-tier-oneworld-emerald: #139142;--ds-color-tier-oneworld-sapphire: #015daa;--ds-color-tier-oneworld-ruby: #a41d4a;--ds-color-ui-default-default: #0074c8;--ds-color-ui-default-inverse: #00cff0;--ds-color-ui-hover-default: #054687;--ds-color-ui-hover-inverse: #5de3f7;--ds-color-ui-active-default: #054687;--ds-color-ui-active-inverse: #5de3f7;--ds-color-ui-disabled-default: rgba(0, 116, 200, 0.2);--ds-color-ui-bkg-default-default: rgba(0, 0, 0, 0.03);--ds-color-ui-bkg-default-inverse: rgba(255, 255, 255, 0.03);--ds-color-ui-bkg-hover-default: rgba(0, 0, 0, 0.06);--ds-color-ui-bkg-hover-inverse: rgba(255, 255, 255, 0.06);--ds-color-utility-blue-default: #79b2ec;--ds-color-utility-blue-inverse: #c9e0f7;--ds-color-utility-cyan-default: #6ad5ef;--ds-color-utility-cyan-inverse: #a8e9f7;--ds-color-utility-green-default: #7ec6ac;--ds-color-utility-green-inverse: #addbca;--ds-color-utility-gray-default: #adadad;--ds-color-utility-gray-inverse: #dddddd;--ds-color-utility-lime-default: #badd81;--ds-color-utility-lime-inverse: #d8efb4;--ds-color-utility-navy-default: #265688;--ds-color-utility-navy-inverse: #acc9e2;--ds-color-utility-neutral-default: #7e8894;--ds-color-utility-neutral-inverse: #ccd2db;--ds-color-utility-pink-default: #f7738e;--ds-color-utility-pink-inverse: #fcc2ce;--ds-color-utility-purple-default: #8d47f0;--ds-color-utility-purple-inverse: #ddc9fb;--ds-color-utility-red-default: #e35c2f;--ds-color-utility-red-inverse: #f0a68d;--ds-color-utility-turquoise-default: #5c8f91;--ds-color-utility-turquoise-inverse: #9fbdbe;--ds-color-utility-yellow-default: #f9ce06;--ds-color-utility-yellow-inverse: #ffe87e;--ds-color-utility-error-default: #cc1816;--ds-color-utility-error-inverse: #f9aca6;--ds-color-utility-warning-default: #f2c153;--ds-color-utility-warning-inverse: #f2c153;--ds-color-utility-success-default: #0b6f4d;--ds-color-utility-success-inverse: #8eceb9}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}*:focus-visible{outline:0}*:focus-visible{outline:0}:focus:not(:focus-visible){outline:3px solid transparent}:host{display:inline-block;width:100%;margin:0;padding:0;vertical-align:middle}:host ::slotted(auro-menuoption),:host ::slotted([auro-menuoption]),:host auro-menuoption[loadingplaceholder]{padding-left:calc(var(--ds-size-150, 0.75rem) + 24px + var(--ds-size-100, 0.5rem))}:host ::slotted([selected]){padding-left: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([nocheckmark]) ::slotted(auro-menuoption),:host([nocheckmark]) auro-menuoption[loadingplaceholder]{padding-left:var(--ds-size-200, 1rem)}:host([root]){overflow-y:auto}[loadingplaceholder]{color:var(--ds-color-text-secondary-default, #525252)}[loadingplaceholder].empty{opacity:0;position:absolute}[loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}[loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}`;
|
|
3796
3859
|
|
|
3797
3860
|
var colorCss$2 = i$b`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color) !important}`;
|
|
3798
3861
|
|
|
3799
3862
|
var tokensCss$1 = i$b`:host{--ds-auro-menu-divider-color: var(--ds-color-border-divider-default, $ds-color-border-divider-default);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-color-text-primary-default, $ds-color-text-primary-default)}`;
|
|
3800
3863
|
|
|
3801
|
-
|
|
3864
|
+
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
3865
|
+
// See LICENSE in the project root for license information.
|
|
3802
3866
|
|
|
3803
|
-
var colorCss$1 = i$b`: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) !important}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-color-text-ui-disabled-default, #adadad)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-color-container-ui-secondary-hover-default, rgba(0, 0, 0, 0.03))}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-color-container-ui-primary-default-default, #2c67b5);--ds-auro-menuoption-text-color: var(--ds-color-text-primary-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-color-icon-emphasis-inverse, #ffffff)}`;
|
|
3804
3867
|
|
|
3868
|
+
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
3805
3869
|
/**
|
|
3806
|
-
*
|
|
3807
|
-
*
|
|
3808
|
-
*
|
|
3870
|
+
* The auro-menu element provides users a way to select from a list of options.
|
|
3871
|
+
* @attr {Object} optionSelected - Specifies the current selected menuOption.
|
|
3872
|
+
* @attr {String} matchWord - Specifies a string used to highlight matched string parts in options.
|
|
3873
|
+
* @attr {Boolean} disabled - When true, the entire menu and all options are disabled;
|
|
3874
|
+
* @attr {Boolean} noCheckmark - When true, selected option will not show the checkmark.
|
|
3875
|
+
* @attr {Boolean} loading - When true, displays a loading state using the loadingIcon and loadingText slots if provided.
|
|
3876
|
+
* @attr {String} value - Value selected for the menu.
|
|
3877
|
+
* @prop {Boolean} hasLoadingPlaceholder - Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state.
|
|
3878
|
+
* @event auroMenu-selectedOption - Notifies that a new menuoption selection has been made.
|
|
3879
|
+
* @event selectedOption - (DEPRECATED) Notifies that a new menuoption selection has been made.
|
|
3880
|
+
* @event auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
|
|
3881
|
+
* @event auroMenuActivatedOption - (DEPRECATED) Notifies that a menuoption has been made `active`.
|
|
3882
|
+
* @event auroMenu-selectValueFailure - Notifies that a an attempt to select a menuoption by matching a value has failed.
|
|
3883
|
+
* @event auroMenuSelectValueFailure - (DEPRECATED) Notifies that a an attempt to select a menuoption by matching a value has failed.
|
|
3884
|
+
* @event auroMenu-customEventFired - Notifies that a custom event has been fired.
|
|
3885
|
+
* @event auroMenuCustomEventFired - (DEPRECATED) Notifies that a custom event has been fired.
|
|
3886
|
+
* @event auroMenu-selectValueReset - Notifies that the component value has been reset.
|
|
3887
|
+
* @event auroMenu-loadingChange - Notifies when the loading attribute is changed.
|
|
3888
|
+
* @slot loadingText - Text to show while loading attribute is set
|
|
3889
|
+
* @slot loadingIcon - Icon to show while loading attribute is set
|
|
3890
|
+
* @slot - Slot for insertion of menu options.
|
|
3809
3891
|
*/
|
|
3810
|
-
const t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e$1=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i;}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}
|
|
3811
3892
|
|
|
3812
|
-
|
|
3813
|
-
* @license
|
|
3814
|
-
* Copyright 2018 Google LLC
|
|
3815
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
3816
|
-
*/const e=e$1(class extends i{constructor(t$1){if(super(t$1),t$1.type!==t.ATTRIBUTE||"class"!==t$1.name||t$1.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return " "+Object.keys(t).filter((s=>t[s])).join(" ")+" "}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)));}return T$1}});
|
|
3893
|
+
/* eslint-disable no-magic-numbers, max-lines */
|
|
3817
3894
|
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3895
|
+
class AuroMenu extends r$4 {
|
|
3896
|
+
constructor() {
|
|
3897
|
+
super();
|
|
3898
|
+
this.value = undefined;
|
|
3899
|
+
this.optionSelected = undefined;
|
|
3900
|
+
this.matchWord = undefined;
|
|
3901
|
+
this.noCheckmark = false;
|
|
3902
|
+
this.optionActive = undefined;
|
|
3903
|
+
this.loading = false;
|
|
3823
3904
|
|
|
3824
|
-
|
|
3825
|
-
|
|
3905
|
+
/**
|
|
3906
|
+
* @private
|
|
3907
|
+
*/
|
|
3908
|
+
this.rootMenu = true;
|
|
3826
3909
|
|
|
3910
|
+
/**
|
|
3911
|
+
* @private
|
|
3912
|
+
*/
|
|
3913
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
|
|
3827
3914
|
|
|
3828
|
-
/**
|
|
3829
|
-
|
|
3830
|
-
|
|
3831
|
-
|
|
3832
|
-
*/
|
|
3915
|
+
/**
|
|
3916
|
+
* @private
|
|
3917
|
+
*/
|
|
3918
|
+
this.nestingSpacer = '<span class="nestingSpacer"></span>';
|
|
3833
3919
|
|
|
3834
|
-
|
|
3920
|
+
/**
|
|
3921
|
+
* @private
|
|
3922
|
+
*/
|
|
3923
|
+
this.loadingSlots = null;
|
|
3924
|
+
}
|
|
3835
3925
|
|
|
3836
|
-
// function to define props used within the scope of this component
|
|
3837
3926
|
static get properties() {
|
|
3838
3927
|
return {
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3928
|
+
noCheckmark: {
|
|
3929
|
+
type: Boolean,
|
|
3930
|
+
reflect: true
|
|
3931
|
+
},
|
|
3932
|
+
disabled: {
|
|
3933
|
+
type: Boolean,
|
|
3934
|
+
reflect: true
|
|
3935
|
+
},
|
|
3936
|
+
loading: {
|
|
3937
|
+
type: Boolean,
|
|
3938
|
+
reflect: true
|
|
3939
|
+
},
|
|
3940
|
+
optionSelected: { type: Object },
|
|
3941
|
+
optionActive: { type: Object },
|
|
3942
|
+
matchWord: { type: String },
|
|
3943
|
+
value: { type: String }
|
|
3845
3944
|
};
|
|
3846
3945
|
}
|
|
3847
3946
|
|
|
3947
|
+
static get styles() {
|
|
3948
|
+
return [
|
|
3949
|
+
styleCss$2,
|
|
3950
|
+
colorCss$2,
|
|
3951
|
+
tokensCss$1
|
|
3952
|
+
];
|
|
3953
|
+
}
|
|
3954
|
+
|
|
3848
3955
|
/**
|
|
3849
|
-
*
|
|
3956
|
+
* This will register this element with the browser.
|
|
3957
|
+
* @param {string} [name="auro-menu"] - The name of element that you want to register to.
|
|
3958
|
+
*
|
|
3959
|
+
* @example
|
|
3960
|
+
* AuroMenu.register("custom-menu") // this will register this element to <custom-menu/>
|
|
3961
|
+
*
|
|
3850
3962
|
*/
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
return 'true'
|
|
3854
|
-
}
|
|
3855
|
-
|
|
3856
|
-
return 'false'
|
|
3963
|
+
static register(name = "auro-menu") {
|
|
3964
|
+
AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroMenu);
|
|
3857
3965
|
}
|
|
3858
|
-
}
|
|
3859
|
-
|
|
3860
|
-
var error = {"role":"img","color":"currentColor","title":"","desc":"Error alert indicator.","width":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","height":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","xmlns":"http://www.w3.org/2000/svg","xmlns_xlink":"http://www.w3.org/1999/xlink","viewBox":"0 0 24 24","path":"/icons","style":"ico_squareLarge","type":"icon","name":"error","category":"alert","deprecated":true,"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"error__desc\" class=\"ico_squareLarge\" data-deprecated=\"true\" 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=\"error__desc\">Error alert indicator.</desc><path d=\"m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583\"/></svg>"};
|
|
3861
3966
|
|
|
3862
|
-
|
|
3967
|
+
/**
|
|
3968
|
+
* Passes the noCheckmark attribute to all nested auro-menuoptions.
|
|
3969
|
+
* @private
|
|
3970
|
+
* @returns {void}
|
|
3971
|
+
*/
|
|
3972
|
+
handleNoCheckmarkAttr() {
|
|
3973
|
+
if (this.noCheckmark) {
|
|
3974
|
+
const menus = this.querySelectorAll('auro-menu, [auro-menu]');
|
|
3863
3975
|
|
|
3864
|
-
|
|
3976
|
+
menus.forEach((menu) => {
|
|
3977
|
+
menu.setAttribute('noCheckmark', '');
|
|
3978
|
+
});
|
|
3865
3979
|
|
|
3866
|
-
|
|
3867
|
-
* A callback to parse Response body.
|
|
3868
|
-
*
|
|
3869
|
-
* @callback ResponseParser
|
|
3870
|
-
* @param {Fetch.Response} response
|
|
3871
|
-
* @returns {Promise}
|
|
3872
|
-
*/
|
|
3980
|
+
const options = this.querySelectorAll('auro-menuoption, [auro-menuoption]');
|
|
3873
3981
|
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
* @param {Object} [options={}]
|
|
3879
|
-
* @param {ResponseParser} [options.responseParser=(response) => response.text()]
|
|
3880
|
-
* @returns {Promise}
|
|
3881
|
-
*/
|
|
3882
|
-
const cacheFetch = (uri, options = {}) => {
|
|
3883
|
-
const responseParser = options.responseParser || ((response) => response.text());
|
|
3884
|
-
if (!_fetchMap.has(uri)) {
|
|
3885
|
-
_fetchMap.set(uri, fetch(uri).then(responseParser));
|
|
3982
|
+
options.forEach((option) => {
|
|
3983
|
+
option.setAttribute('noCheckmark', '');
|
|
3984
|
+
});
|
|
3985
|
+
}
|
|
3886
3986
|
}
|
|
3887
|
-
return _fetchMap.get(uri);
|
|
3888
|
-
};
|
|
3889
3987
|
|
|
3890
|
-
|
|
3988
|
+
firstUpdated() {
|
|
3989
|
+
// Add the tag name as an attribute if it is different than the component name
|
|
3990
|
+
this.runtimeUtils.handleComponentTagRename(this, 'auro-menu');
|
|
3891
3991
|
|
|
3892
|
-
|
|
3893
|
-
// See LICENSE in the project root for license information.
|
|
3992
|
+
this.addEventListener('keydown', this.handleKeyDown);
|
|
3894
3993
|
|
|
3994
|
+
this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
|
|
3995
|
+
}
|
|
3895
3996
|
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
*/
|
|
3997
|
+
updated(changedProperties) {
|
|
3998
|
+
if (changedProperties.has('matchWord')) {
|
|
3999
|
+
this.markOptions();
|
|
4000
|
+
}
|
|
3901
4001
|
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
super();
|
|
3906
|
-
this.onDark = false;
|
|
3907
|
-
}
|
|
4002
|
+
if (changedProperties.has('value')) {
|
|
4003
|
+
this.selectByValue(this.value);
|
|
4004
|
+
}
|
|
3908
4005
|
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
return {
|
|
3912
|
-
...super.properties,
|
|
3913
|
-
onDark: {
|
|
3914
|
-
type: Boolean,
|
|
3915
|
-
reflect: true
|
|
3916
|
-
},
|
|
4006
|
+
if (changedProperties.has('disabled')) {
|
|
4007
|
+
const options = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
|
|
3917
4008
|
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
*/
|
|
3921
|
-
svg: {
|
|
3922
|
-
attribute: false,
|
|
3923
|
-
reflect: true
|
|
4009
|
+
for (const element of options) {
|
|
4010
|
+
element.disabled = this.disabled;
|
|
3924
4011
|
}
|
|
3925
|
-
}
|
|
4012
|
+
}
|
|
4013
|
+
|
|
4014
|
+
if (changedProperties.has('loading')) {
|
|
4015
|
+
const event = new CustomEvent("auroMenu-loadingChange", {
|
|
4016
|
+
detail: {
|
|
4017
|
+
loading: this.loading,
|
|
4018
|
+
hasLoadingPlaceholder:
|
|
4019
|
+
this.hasLoadingPlaceholder
|
|
4020
|
+
}
|
|
4021
|
+
});
|
|
4022
|
+
this.setAttribute("aria-busy", this.hasAttribute("loading"));
|
|
4023
|
+
this.dispatchEvent(event);
|
|
4024
|
+
}
|
|
3926
4025
|
}
|
|
3927
4026
|
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
4027
|
+
/**
|
|
4028
|
+
* @private
|
|
4029
|
+
* @param {Object} option - The menuoption to check for interactive state.
|
|
4030
|
+
* @returns {Boolean} Returns true if the option is interactive.
|
|
4031
|
+
*/
|
|
4032
|
+
optionInteractive(option) {
|
|
4033
|
+
return !option.hasAttribute('hidden') && !option.hasAttribute('disabled') && !option.hasAttribute('static');
|
|
3932
4034
|
}
|
|
3933
4035
|
|
|
3934
4036
|
/**
|
|
3935
|
-
* Async function to fetch requested icon from npm CDN.
|
|
3936
4037
|
* @private
|
|
3937
|
-
* @
|
|
3938
|
-
* @param {string} name - Icon name.
|
|
3939
|
-
* @returns {SVGElement} DOM - Ready HTML to be appended.
|
|
4038
|
+
* @returns {void} When called will update the DOM with visible suggest text matches.
|
|
3940
4039
|
*/
|
|
3941
|
-
|
|
3942
|
-
|
|
4040
|
+
markOptions() {
|
|
4041
|
+
if (this.items && this.items.length > 0 && (this.matchWord && this.matchWord.length > 0)) {
|
|
3943
4042
|
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
} else {
|
|
3947
|
-
iconHTML = await cacheFetch(`${this.uri}/icons/${category}/${name}.svg`);
|
|
3948
|
-
}
|
|
4043
|
+
// Escape special regex characters
|
|
4044
|
+
const escapedWord = this.matchWord.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
|
|
3949
4045
|
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
return dom.body.querySelector('svg');
|
|
3953
|
-
}
|
|
3954
|
-
|
|
3955
|
-
// lifecycle function
|
|
3956
|
-
async firstUpdated() {
|
|
3957
|
-
if (!this.customSvg) {
|
|
3958
|
-
const svg = await this.fetchIcon(this.category, this.name);
|
|
4046
|
+
// Global, case-insensitive, unicode matching regex pattern
|
|
4047
|
+
const regexWord = new RegExp(escapedWord, 'giu');
|
|
3959
4048
|
|
|
3960
|
-
|
|
3961
|
-
this.
|
|
3962
|
-
|
|
3963
|
-
|
|
4049
|
+
this.items.forEach((item) => {
|
|
4050
|
+
if (this.optionInteractive(item) && !item.hasAttribute('persistent')) {
|
|
4051
|
+
const nested = item.querySelectorAll('.nestingSpacer');
|
|
4052
|
+
const nestingSpacerBundle = [...nested].map(() => this.nestingSpacer).join('');
|
|
3964
4053
|
|
|
3965
|
-
|
|
3966
|
-
|
|
4054
|
+
item.innerHTML = nestingSpacerBundle + item.textContent.replace(regexWord, (match) => `<strong>${match}</strong>`);
|
|
4055
|
+
}
|
|
4056
|
+
});
|
|
3967
4057
|
}
|
|
3968
4058
|
}
|
|
3969
|
-
}
|
|
3970
|
-
|
|
3971
|
-
var tokensCss = i$b`:host{--ds-auro-icon-color: var(--ds-color-icon-primary-default, $ds-color-icon-primary-default);--ds-auro-icon-size: var(--ds-size-300, $ds-size-300)}`;
|
|
3972
|
-
|
|
3973
|
-
var colorCss = i$b`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[accent]){--ds-auro-icon-color: var(--ds-color-icon-accent-default, #a2c270)}:host(:not([onDark])[disabled]){--ds-auro-icon-color: var(--ds-color-icon-ui-primary-disabled-default, #adadad)}:host(:not([onDark])[emphasis]){--ds-auro-icon-color: var(--ds-color-icon-emphasis-default, #2a2a2a)}:host(:not([onDark])[error]){--ds-auro-icon-color: var(--ds-color-icon-error-default, #cc1816)}:host(:not([onDark])[info]){--ds-auro-icon-color: var(--ds-color-icon-info-default, #326aa5)}:host(:not([onDark])[secondary]){--ds-auro-icon-color: var(--ds-color-icon-secondary-default, #7e8894)}:host(:not([onDark])[subtle]){--ds-auro-icon-color: var(--ds-color-icon-subtle-default, #a0c9f1)}:host(:not([onDark])[success]){--ds-auro-icon-color: var(--ds-color-icon-success-default, #40a080)}:host(:not([onDark])[tertiary]){--ds-auro-icon-color: var(--ds-color-icon-tertiary-default, #afb9c6)}:host(:not([onDark])[warning]){--ds-auro-icon-color: var(--ds-color-icon-warning-default, #c49432)}:host([onDark]){--ds-auro-icon-color: var(--ds-color-icon-primary-inverse, #f7f7f7)}:host([onDark][accent]){--ds-auro-icon-color: var(--ds-color-icon-accent-inverse, #badd81)}:host([onDark][disabled]){--ds-auro-icon-color: var(--ds-color-icon-ui-primary-disabled-inverse, #7e7e7e)}:host([onDark][emphasis]){--ds-auro-icon-color: var(--ds-color-icon-emphasis-inverse, #ffffff)}:host([onDark][error]){--ds-auro-icon-color: var(--ds-color-icon-error-inverse, #f9aca6)}:host([onDark][info]){--ds-auro-icon-color: var(--ds-color-icon-info-inverse, #89b2d4)}:host([onDark][secondary]){--ds-auro-icon-color: var(--ds-color-icon-secondary-inverse, #ccd2db)}:host([onDark][subtle]){--ds-auro-icon-color: var(--ds-color-icon-subtle-inverse, #326aa5)}:host([onDark][success]){--ds-auro-icon-color: var(--ds-color-icon-success-inverse, #8eceb9)}:host([onDark][tertiary]){--ds-auro-icon-color: var(--ds-color-icon-tertiary-inverse, #939fad)}:host([onDark][warning]){--ds-auro-icon-color: var(--ds-color-icon-warning-inverse, #f2c153)}`;
|
|
3974
|
-
|
|
3975
|
-
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
3976
|
-
// See LICENSE in the project root for license information.
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
3980
|
-
/**
|
|
3981
|
-
* auro-icon provides users a way to use the Auro Icons by simply passing in the category and name.
|
|
3982
|
-
*
|
|
3983
|
-
* @attr {String} category - The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
|
|
3984
|
-
* @attr {String} name - The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage
|
|
3985
|
-
* @attr {Boolean} customColor - Removes primary selector.
|
|
3986
|
-
* @attr {Boolean} customSvg - When true, auro-icon will render a custom SVG inside the default slot.
|
|
3987
|
-
* @attr {Boolean} label - Exposes content in slot as icon label.
|
|
3988
|
-
* @attr {Boolean} primary - DEPRECATED: Sets the icon to use the baseline primary icon style.
|
|
3989
|
-
* @attr {Boolean} accent - Sets the icon to use the accent style.
|
|
3990
|
-
* @attr {Boolean} emphasis - Sets the icon to use the emphasis style.
|
|
3991
|
-
* @attr {Boolean} disabled - Sets the icon to use the disabled style.
|
|
3992
|
-
* @attr {Boolean} error - Sets the icon to use the error style.
|
|
3993
|
-
* @attr {Boolean} info - Sets the icon to use the info style.
|
|
3994
|
-
* @attr {Boolean} secondary - Sets the icon to use the secondary style.
|
|
3995
|
-
* @attr {Boolean} tertiary - Sets the icon to use the tertiary style.
|
|
3996
|
-
* @attr {Boolean} subtle - Sets the icon to use the subtle style.
|
|
3997
|
-
* @attr {Boolean} success - Sets the icon to use the success style.
|
|
3998
|
-
* @attr {Boolean} warning - Sets the icon to use the warning style.
|
|
3999
|
-
* @attr {String} ariaHidden - Set aria-hidden value. Default is `true`. Option is `false`.
|
|
4000
|
-
* @attr {String} uri - Set the uri for CDN used when fetching icons
|
|
4001
|
-
* @slot - Hidden from visibility, used for a11y if icon description is needed.
|
|
4002
|
-
* @slot svg - Used for custom SVG content.
|
|
4003
|
-
*/
|
|
4004
4059
|
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
this.
|
|
4011
|
-
|
|
4012
|
-
|
|
4060
|
+
/**
|
|
4061
|
+
* Reset the menu and all options.
|
|
4062
|
+
*/
|
|
4063
|
+
resetOptionsStates() {
|
|
4064
|
+
this.optionSelected = undefined;
|
|
4065
|
+
if (this.items) {
|
|
4066
|
+
this.items.forEach((item) => {
|
|
4067
|
+
item.classList.remove('active');
|
|
4068
|
+
item.removeAttribute('selected');
|
|
4069
|
+
});
|
|
4070
|
+
}
|
|
4013
4071
|
}
|
|
4014
4072
|
|
|
4015
4073
|
/**
|
|
4016
|
-
*
|
|
4074
|
+
* Set the attributes on the selected menuoption, the menu value and stored option.
|
|
4075
|
+
* @param {Object} option - The menuoption to be selected.
|
|
4017
4076
|
* @private
|
|
4018
|
-
* @returns {void}
|
|
4019
4077
|
*/
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
this.disabled = false;
|
|
4025
|
-
this.emphasis = false;
|
|
4026
|
-
this.error = false;
|
|
4027
|
-
this.info = false;
|
|
4028
|
-
this.label = false;
|
|
4029
|
-
this.primary = false;
|
|
4030
|
-
this.secondary = false;
|
|
4031
|
-
this.subtle = false;
|
|
4032
|
-
this.success = false;
|
|
4033
|
-
this.tertiary = false;
|
|
4034
|
-
this.warning = false;
|
|
4035
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
|
|
4036
|
-
}
|
|
4037
|
-
|
|
4038
|
-
// function to define props used within the scope of this component
|
|
4039
|
-
static get properties() {
|
|
4040
|
-
return {
|
|
4041
|
-
...super.properties,
|
|
4042
|
-
accent: {
|
|
4043
|
-
type: Boolean,
|
|
4044
|
-
reflect: true
|
|
4045
|
-
},
|
|
4046
|
-
ariaHidden: {
|
|
4047
|
-
type: String,
|
|
4048
|
-
reflect: true
|
|
4049
|
-
},
|
|
4050
|
-
category: {
|
|
4051
|
-
type: String,
|
|
4052
|
-
reflect: true
|
|
4053
|
-
},
|
|
4054
|
-
customColor: {
|
|
4055
|
-
type: Boolean
|
|
4056
|
-
},
|
|
4057
|
-
customSvg: {
|
|
4058
|
-
type: Boolean
|
|
4059
|
-
},
|
|
4060
|
-
disabled: {
|
|
4061
|
-
type: Boolean,
|
|
4062
|
-
reflect: true
|
|
4063
|
-
},
|
|
4064
|
-
emphasis: {
|
|
4065
|
-
type: Boolean,
|
|
4066
|
-
reflect: true
|
|
4067
|
-
},
|
|
4068
|
-
error: {
|
|
4069
|
-
type: Boolean,
|
|
4070
|
-
reflect: true
|
|
4071
|
-
},
|
|
4072
|
-
info: {
|
|
4073
|
-
type: Boolean,
|
|
4074
|
-
reflect: true
|
|
4075
|
-
},
|
|
4076
|
-
label: {
|
|
4077
|
-
type: Boolean,
|
|
4078
|
-
reflect: true
|
|
4079
|
-
},
|
|
4080
|
-
name: {
|
|
4081
|
-
type: String,
|
|
4082
|
-
reflect: true
|
|
4083
|
-
},
|
|
4084
|
-
primary: {
|
|
4085
|
-
type: Boolean,
|
|
4086
|
-
reflect: true
|
|
4087
|
-
},
|
|
4088
|
-
secondary: {
|
|
4089
|
-
type: Boolean,
|
|
4090
|
-
reflect: true
|
|
4091
|
-
},
|
|
4092
|
-
subtle: {
|
|
4093
|
-
type: Boolean,
|
|
4094
|
-
reflect: true
|
|
4095
|
-
},
|
|
4096
|
-
success: {
|
|
4097
|
-
type: Boolean,
|
|
4098
|
-
reflect: true
|
|
4099
|
-
},
|
|
4100
|
-
tertiary: {
|
|
4101
|
-
type: Boolean,
|
|
4102
|
-
reflect: true
|
|
4103
|
-
},
|
|
4104
|
-
uri: {
|
|
4105
|
-
type: String
|
|
4106
|
-
},
|
|
4107
|
-
warning: {
|
|
4108
|
-
type: Boolean,
|
|
4109
|
-
reflect: true
|
|
4110
|
-
}
|
|
4111
|
-
};
|
|
4112
|
-
}
|
|
4078
|
+
handleLocalSelectState(option) {
|
|
4079
|
+
option.setAttribute('selected', '');
|
|
4080
|
+
option.classList.add('active');
|
|
4081
|
+
option.ariaSelected = true;
|
|
4113
4082
|
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
i$b`${tokensCss}`,
|
|
4118
|
-
i$b`${styleCss}`,
|
|
4119
|
-
i$b`${colorCss}`
|
|
4120
|
-
];
|
|
4083
|
+
this.value = option.value;
|
|
4084
|
+
this.optionSelected = option;
|
|
4085
|
+
this.index = this.items.indexOf(option);
|
|
4121
4086
|
}
|
|
4122
4087
|
|
|
4123
4088
|
/**
|
|
4124
|
-
*
|
|
4125
|
-
* @
|
|
4126
|
-
*
|
|
4127
|
-
* @example
|
|
4128
|
-
* AuroIcon.register("custom-icon") // this will register this element to <custom-icon/>
|
|
4129
|
-
*
|
|
4089
|
+
* Notify selection change.
|
|
4090
|
+
* @private
|
|
4091
|
+
* @return {void}
|
|
4130
4092
|
*/
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4093
|
+
notifySelectionChange() {
|
|
4094
|
+
// this event needs to be removed after select and combobox are updated to use the new standard name
|
|
4095
|
+
this.dispatchEvent(new CustomEvent('selectedOption', {
|
|
4096
|
+
bubbles: true,
|
|
4097
|
+
cancelable: false,
|
|
4098
|
+
composed: true,
|
|
4099
|
+
}));
|
|
4137
4100
|
|
|
4138
|
-
|
|
4139
|
-
|
|
4101
|
+
this.dispatchEvent(new CustomEvent('auroMenu-selectedOption', {
|
|
4102
|
+
bubbles: true,
|
|
4103
|
+
cancelable: false,
|
|
4104
|
+
composed: true,
|
|
4105
|
+
}));
|
|
4140
4106
|
}
|
|
4141
4107
|
|
|
4142
4108
|
/**
|
|
4143
|
-
*
|
|
4109
|
+
* Process actions for making making a menuoption selection.
|
|
4144
4110
|
*/
|
|
4145
|
-
|
|
4146
|
-
this.
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
// function that renders the HTML and CSS into the scope of the component
|
|
4150
|
-
render() {
|
|
4151
|
-
const a11y = {
|
|
4152
|
-
'labelContainer': true,
|
|
4153
|
-
'util_displayHiddenVisually': !this.label
|
|
4154
|
-
};
|
|
4155
|
-
|
|
4156
|
-
const classes = {
|
|
4157
|
-
'label': this.label
|
|
4158
|
-
};
|
|
4159
|
-
|
|
4160
|
-
return x$1`
|
|
4161
|
-
<div
|
|
4162
|
-
class="${e(classes)}"
|
|
4163
|
-
title="${o(this.title || undefined)}">
|
|
4164
|
-
<span aria-hidden="${o(this.ariaHidden ? this.ariaHidden : true)}" part="svg">
|
|
4165
|
-
${this.customSvg ? x$1`
|
|
4166
|
-
<slot name="svg"></slot>
|
|
4167
|
-
` : x$1`
|
|
4168
|
-
${this.svg}
|
|
4169
|
-
`
|
|
4170
|
-
}
|
|
4171
|
-
</span>
|
|
4111
|
+
makeSelection() {
|
|
4112
|
+
if (!this.items) {
|
|
4113
|
+
this.initItems();
|
|
4114
|
+
}
|
|
4172
4115
|
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
</div>
|
|
4176
|
-
</div>
|
|
4177
|
-
`;
|
|
4178
|
-
}
|
|
4179
|
-
}
|
|
4116
|
+
if (this.items[this.index] && !this.items[this.index].hasAttribute('disabled')) {
|
|
4117
|
+
this.resetOptionsStates();
|
|
4180
4118
|
|
|
4181
|
-
|
|
4119
|
+
if (this.index >= 0) {
|
|
4120
|
+
const option = this.items[this.index];
|
|
4182
4121
|
|
|
4183
|
-
|
|
4122
|
+
// only handle options that are not disabled, hidden or static
|
|
4123
|
+
if (option && this.optionInteractive(option)) {
|
|
4124
|
+
// fire custom event if defined otherwise make selection
|
|
4125
|
+
if (option.hasAttribute('event')) {
|
|
4126
|
+
this.dispatchEvent(new CustomEvent(option.getAttribute('event'), {
|
|
4127
|
+
bubbles: true,
|
|
4128
|
+
cancelable: false,
|
|
4129
|
+
composed: true,
|
|
4130
|
+
}));
|
|
4184
4131
|
|
|
4185
|
-
//
|
|
4186
|
-
|
|
4132
|
+
// this event needs to be removed after select and combobox are updated to use the new standard name
|
|
4133
|
+
this.dispatchEvent(new CustomEvent('auroMenuCustomEventFired', {
|
|
4134
|
+
bubbles: true,
|
|
4135
|
+
cancelable: false,
|
|
4136
|
+
composed: true,
|
|
4137
|
+
}));
|
|
4187
4138
|
|
|
4139
|
+
this.dispatchEvent(new CustomEvent('auroMenu-customEventFired', {
|
|
4140
|
+
bubbles: true,
|
|
4141
|
+
cancelable: false,
|
|
4142
|
+
composed: true,
|
|
4143
|
+
}));
|
|
4144
|
+
} else {
|
|
4145
|
+
this.handleLocalSelectState(option);
|
|
4146
|
+
}
|
|
4147
|
+
}
|
|
4148
|
+
}
|
|
4149
|
+
}
|
|
4188
4150
|
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
*
|
|
4192
|
-
* @attr {String} value - Specifies the value to be sent to a server.
|
|
4193
|
-
* @attr {String} noCheckmark - When true, selected option will not show the checkmark.
|
|
4194
|
-
* @attr {Boolean} disabled - When true specifies that the menuoption is disabled.
|
|
4195
|
-
* @attr {Boolean} selected - Specifies that an option is selected.
|
|
4196
|
-
* @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
|
|
4197
|
-
* @slot Specifies text for an option, but is not the value.
|
|
4198
|
-
*/
|
|
4199
|
-
class AuroMenuOption extends r$4 {
|
|
4200
|
-
constructor() {
|
|
4201
|
-
super();
|
|
4151
|
+
this.notifySelectionChange();
|
|
4152
|
+
}
|
|
4202
4153
|
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4154
|
+
/**
|
|
4155
|
+
* Manage ArrowDown, ArrowUp and Enter keyboard events.
|
|
4156
|
+
* @private
|
|
4157
|
+
* @param {Object} event - Event object from the browser.
|
|
4158
|
+
*/
|
|
4159
|
+
handleKeyDown(event) {
|
|
4160
|
+
event.preventDefault();
|
|
4208
4161
|
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4162
|
+
// With ArrowDown/ArrowUp events, pass new value to selectNextItem()
|
|
4163
|
+
// With Enter event, set value and apply attrs
|
|
4164
|
+
switch (event.key) {
|
|
4165
|
+
case "ArrowDown":
|
|
4166
|
+
this.selectNextItem('down');
|
|
4167
|
+
break;
|
|
4212
4168
|
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
this.tabIndex = -1;
|
|
4169
|
+
case "ArrowUp":
|
|
4170
|
+
this.selectNextItem('up');
|
|
4171
|
+
break;
|
|
4217
4172
|
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4173
|
+
case "Enter":
|
|
4174
|
+
this.makeSelection();
|
|
4175
|
+
break;
|
|
4176
|
+
}
|
|
4222
4177
|
}
|
|
4223
4178
|
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
type: Boolean,
|
|
4232
|
-
reflect: true
|
|
4233
|
-
},
|
|
4234
|
-
disabled: {
|
|
4235
|
-
type: Boolean,
|
|
4236
|
-
reflect: true
|
|
4237
|
-
},
|
|
4238
|
-
value: {
|
|
4239
|
-
type: String,
|
|
4240
|
-
reflect: true
|
|
4241
|
-
},
|
|
4242
|
-
tabIndex: {
|
|
4243
|
-
type: Number,
|
|
4244
|
-
reflect: true
|
|
4245
|
-
}
|
|
4246
|
-
};
|
|
4179
|
+
/**
|
|
4180
|
+
* Initializes all menu options in the DOM. This must be re-run every time the options are changed.
|
|
4181
|
+
* @private
|
|
4182
|
+
*/
|
|
4183
|
+
initItems() {
|
|
4184
|
+
this.items = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
|
|
4185
|
+
this.handleNoCheckmarkAttr();
|
|
4247
4186
|
}
|
|
4248
4187
|
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4188
|
+
/**
|
|
4189
|
+
* Sets the index value of the selected item or first non-disabled menuoption.
|
|
4190
|
+
* @private
|
|
4191
|
+
*/
|
|
4192
|
+
getSelectedIndex() {
|
|
4193
|
+
// find the first `selected` and not `disabled`, `hidden` or `static` option
|
|
4194
|
+
const index = this.items.findIndex((option) => option.hasAttribute('selected') && this.optionInteractive(option));
|
|
4195
|
+
|
|
4196
|
+
if (index >= 0) {
|
|
4197
|
+
this.index = index;
|
|
4198
|
+
this.makeSelection();
|
|
4199
|
+
}
|
|
4255
4200
|
}
|
|
4256
4201
|
|
|
4257
4202
|
/**
|
|
4258
|
-
*
|
|
4259
|
-
*
|
|
4260
|
-
*
|
|
4261
|
-
* @example
|
|
4262
|
-
* AuroMenuOption.register("custom-menuoption") // this will register this element to <custom-menuoption/>
|
|
4203
|
+
* Using value of current this.index evaluates index
|
|
4204
|
+
* of next :focus to set based on array of this.items ignoring items
|
|
4205
|
+
* with disabled attr.
|
|
4263
4206
|
*
|
|
4207
|
+
* The event.target is not used as the function needs to know where to go,
|
|
4208
|
+
* versus knowing where it is.
|
|
4209
|
+
* @param {String} moveDirection - Up or Down based on keyboard event.
|
|
4264
4210
|
*/
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4211
|
+
selectNextItem(moveDirection) {
|
|
4212
|
+
if (this.index >= 0) {
|
|
4213
|
+
this.items[this.index].classList.remove('active');
|
|
4268
4214
|
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
this.runtimeUtils.handleComponentTagRename(this, 'auro-menuoption');
|
|
4215
|
+
// calculate which is the selection we should focus next
|
|
4216
|
+
let increment = 0;
|
|
4272
4217
|
|
|
4273
|
-
|
|
4274
|
-
|
|
4218
|
+
if (moveDirection === 'down') {
|
|
4219
|
+
increment = 1;
|
|
4220
|
+
} else if (moveDirection === 'up') {
|
|
4221
|
+
increment = -1;
|
|
4222
|
+
}
|
|
4275
4223
|
|
|
4276
|
-
|
|
4277
|
-
this.dispatchEvent(new CustomEvent('auroMenuOption-mouseover', {
|
|
4278
|
-
bubbles: true,
|
|
4279
|
-
cancelable: false,
|
|
4280
|
-
composed: true,
|
|
4281
|
-
detail: this
|
|
4282
|
-
}));
|
|
4283
|
-
});
|
|
4284
|
-
}
|
|
4224
|
+
this.index += increment;
|
|
4285
4225
|
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
this.
|
|
4226
|
+
// keep looping inside the array of options
|
|
4227
|
+
if (this.index > this.items.length - 1) {
|
|
4228
|
+
this.index = 0;
|
|
4229
|
+
} else if (this.index < 0) {
|
|
4230
|
+
this.index = this.items.length - 1;
|
|
4231
|
+
}
|
|
4232
|
+
|
|
4233
|
+
// check if new index is disabled, static or hidden, if so, execute again
|
|
4234
|
+
if (!this.optionInteractive(this.items[this.index])) {
|
|
4235
|
+
this.selectNextItem(moveDirection);
|
|
4236
|
+
} else {
|
|
4237
|
+
// apply focus to new index
|
|
4238
|
+
this.updateActiveOption(this.index);
|
|
4239
|
+
}
|
|
4240
|
+
} else {
|
|
4241
|
+
this.index = 0;
|
|
4242
|
+
|
|
4243
|
+
if (this.items[this.index].hasAttribute('hidden') || this.items[this.index].hasAttribute('disabled')) {
|
|
4244
|
+
this.selectNextItem(moveDirection);
|
|
4245
|
+
} else {
|
|
4246
|
+
this.updateActiveOption(this.index);
|
|
4247
|
+
}
|
|
4290
4248
|
}
|
|
4291
4249
|
}
|
|
4292
4250
|
|
|
4293
4251
|
/**
|
|
4294
|
-
*
|
|
4295
|
-
*
|
|
4252
|
+
* Used for applying indentation to each level of nested menu.
|
|
4296
4253
|
* @private
|
|
4297
|
-
* @param {
|
|
4298
|
-
* @returns {Element} The HTML element containing the SVG icon.
|
|
4254
|
+
* @param {String} menu - Root level menu object.
|
|
4299
4255
|
*/
|
|
4300
|
-
|
|
4301
|
-
const
|
|
4302
|
-
const svg = dom.body.firstChild;
|
|
4256
|
+
handleNestedMenus(menu) {
|
|
4257
|
+
const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu');
|
|
4303
4258
|
|
|
4304
|
-
|
|
4259
|
+
if (nestedMenus.length === 0) {
|
|
4260
|
+
return;
|
|
4261
|
+
}
|
|
4305
4262
|
|
|
4306
|
-
|
|
4307
|
-
|
|
4263
|
+
nestedMenus.forEach((nestedMenu) => {
|
|
4264
|
+
const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption');
|
|
4308
4265
|
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
<slot></slot>
|
|
4313
|
-
`;
|
|
4314
|
-
}
|
|
4315
|
-
}
|
|
4266
|
+
options.forEach((option) => {
|
|
4267
|
+
option.innerHTML = this.nestingSpacer + option.innerHTML;
|
|
4268
|
+
});
|
|
4316
4269
|
|
|
4317
|
-
|
|
4318
|
-
|
|
4270
|
+
this.handleNestedMenus(nestedMenu);
|
|
4271
|
+
});
|
|
4272
|
+
}
|
|
4319
4273
|
|
|
4274
|
+
/**
|
|
4275
|
+
* Method to apply `selected` attribute to `menuoption` via `value`.
|
|
4276
|
+
* @private
|
|
4277
|
+
* @param {String} value - Must match a unique `menuoption` value.
|
|
4278
|
+
*/
|
|
4279
|
+
selectByValue(value) {
|
|
4280
|
+
let valueMatch = false;
|
|
4281
|
+
if (!this.items) {
|
|
4282
|
+
this.initItems();
|
|
4283
|
+
}
|
|
4320
4284
|
|
|
4321
|
-
|
|
4322
|
-
/**
|
|
4323
|
-
* The auro-menu element provides users a way to select from a list of options.
|
|
4324
|
-
* @attr {Object} optionSelected - Specifies the current selected menuOption.
|
|
4325
|
-
* @attr {String} matchWord - Specifies the a string used to highlight matched string parts in options.
|
|
4326
|
-
* @attr {Boolean} disabled - When true, the entire menu and all options are disabled;
|
|
4327
|
-
* @attr {Boolean} noCheckmark - When true, selected option will not show the checkmark.
|
|
4328
|
-
* @attr {String} value - Value selected for the menu.
|
|
4329
|
-
* @event auroMenu-selectedOption - Notifies that a new menuoption selection has been made.
|
|
4330
|
-
* @event selectedOption - (DEPRECATED) Notifies that a new menuoption selection has been made.
|
|
4331
|
-
* @event auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
|
|
4332
|
-
* @event auroMenuActivatedOption - (DEPRECATED) Notifies that a menuoption has been made `active`.
|
|
4333
|
-
* @event auroMenu-selectValueFailure - Notifies that a an attempt to select a menuoption by matching a value has failed.
|
|
4334
|
-
* @event auroMenuSelectValueFailure - (DEPRECATED) Notifies that a an attempt to select a menuoption by matching a value has failed.
|
|
4335
|
-
* @event auroMenu-customEventFired - Notifies that a custom event has been fired.
|
|
4336
|
-
* @event auroMenuCustomEventFired - (DEPRECATED) Notifies that a custom event has been fired.
|
|
4337
|
-
* @event auroMenu-selectValueReset - Notifies that the component value has been reset.
|
|
4338
|
-
* @slot Slot for insertion of menu options.
|
|
4339
|
-
*/
|
|
4285
|
+
this.index = undefined;
|
|
4340
4286
|
|
|
4341
|
-
|
|
4287
|
+
if (this.value && this.value.length > 0) {
|
|
4288
|
+
for (let index = 0; index < this.items.length; index += 1) {
|
|
4289
|
+
if (this.items[index].value === value) {
|
|
4290
|
+
valueMatch = true;
|
|
4291
|
+
this.index = index;
|
|
4292
|
+
}
|
|
4293
|
+
}
|
|
4342
4294
|
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
this.value = undefined;
|
|
4347
|
-
this.optionSelected = undefined;
|
|
4348
|
-
this.matchWord = undefined;
|
|
4349
|
-
this.noCheckmark = false;
|
|
4350
|
-
this.optionActive = undefined;
|
|
4295
|
+
if (!valueMatch) {
|
|
4296
|
+
// reset the menu to no selection
|
|
4297
|
+
this.index = undefined;
|
|
4351
4298
|
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4299
|
+
// this event needs to be removed after select and combobox are updated to use the new standard name
|
|
4300
|
+
this.dispatchEvent(new CustomEvent('auroMenuSelectValueFailure', {
|
|
4301
|
+
bubbles: true,
|
|
4302
|
+
cancelable: false,
|
|
4303
|
+
composed: true,
|
|
4304
|
+
}));
|
|
4356
4305
|
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4306
|
+
this.dispatchEvent(new CustomEvent('auroMenu-selectValueFailure', {
|
|
4307
|
+
bubbles: true,
|
|
4308
|
+
cancelable: false,
|
|
4309
|
+
composed: true,
|
|
4310
|
+
}));
|
|
4311
|
+
} else {
|
|
4312
|
+
this.makeSelection();
|
|
4313
|
+
}
|
|
4314
|
+
} else {
|
|
4315
|
+
this.resetOptionsStates();
|
|
4361
4316
|
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4317
|
+
this.dispatchEvent(new CustomEvent('auroMenu-selectValueReset', {
|
|
4318
|
+
bubbles: true,
|
|
4319
|
+
cancelable: false,
|
|
4320
|
+
composed: true,
|
|
4321
|
+
}));
|
|
4322
|
+
}
|
|
4366
4323
|
}
|
|
4367
4324
|
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4325
|
+
/**
|
|
4326
|
+
* Used to make the active state for options follow mouseover.
|
|
4327
|
+
* @param {Number} index - Index of the menuoption that will be made active.
|
|
4328
|
+
* @private
|
|
4329
|
+
*/
|
|
4330
|
+
updateActiveOption(index) {
|
|
4331
|
+
this.items.forEach((item) => {
|
|
4332
|
+
item.classList.remove('active');
|
|
4333
|
+
});
|
|
4334
|
+
this.items[index].classList.add('active');
|
|
4335
|
+
this.optionActive = this.items[index];
|
|
4336
|
+
|
|
4337
|
+
this.dispatchEvent(new CustomEvent('auroMenuActivatedOption', {
|
|
4338
|
+
bubbles: true,
|
|
4339
|
+
cancelable: false,
|
|
4340
|
+
composed: true,
|
|
4341
|
+
detail: this.items[index]
|
|
4342
|
+
}));
|
|
4343
|
+
|
|
4344
|
+
this.dispatchEvent(new CustomEvent('auroMenu-activatedOption', {
|
|
4345
|
+
bubbles: true,
|
|
4346
|
+
cancelable: false,
|
|
4347
|
+
composed: true,
|
|
4348
|
+
detail: this.items[index]
|
|
4349
|
+
}));
|
|
4383
4350
|
}
|
|
4384
4351
|
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4352
|
+
/**
|
|
4353
|
+
* Used to only make a selection when a menuoption is receiving a mousedown event.
|
|
4354
|
+
* @param {Event} evt - Mousedown event.
|
|
4355
|
+
* @private
|
|
4356
|
+
*/
|
|
4357
|
+
handleMenuMouseDown(evt) {
|
|
4358
|
+
if (evt.target !== this) {
|
|
4359
|
+
this.makeSelection();
|
|
4360
|
+
}
|
|
4391
4361
|
}
|
|
4392
4362
|
|
|
4393
4363
|
/**
|
|
4394
|
-
*
|
|
4395
|
-
* @param {string} [name="auro-menu"] - The name of element that you want to register to.
|
|
4364
|
+
* Checks if there are any loading placeholders in the component.
|
|
4396
4365
|
*
|
|
4397
|
-
*
|
|
4398
|
-
*
|
|
4366
|
+
* This getter evaluates the `loadingSlots` collection to determine if it contains any items.
|
|
4367
|
+
* If the size of the collection is greater than zero, it indicates the presence of loading
|
|
4368
|
+
* placeholders, returning true; otherwise, it returns false.
|
|
4399
4369
|
*
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4370
|
+
* @getter hasLoadingPlaceholder
|
|
4371
|
+
* @type {boolean}
|
|
4372
|
+
* @returns {boolean} Returns true if loading placeholders exist; false otherwise.
|
|
4373
|
+
*/
|
|
4374
|
+
get hasLoadingPlaceholder() {
|
|
4375
|
+
return this.loadingSlots.length > 0;
|
|
4403
4376
|
}
|
|
4404
4377
|
|
|
4405
4378
|
/**
|
|
4406
|
-
*
|
|
4379
|
+
* Used for @slotchange event on slotted element.
|
|
4407
4380
|
* @private
|
|
4408
|
-
* @returns {void}
|
|
4409
4381
|
*/
|
|
4410
|
-
|
|
4411
|
-
if
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
menu.setAttribute('noCheckmark', '');
|
|
4416
|
-
});
|
|
4382
|
+
handleSlotItems() {
|
|
4383
|
+
// Determine if this is the root of the menu/submenu layout.
|
|
4384
|
+
if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
|
|
4385
|
+
this.rootMenu = false;
|
|
4386
|
+
}
|
|
4417
4387
|
|
|
4418
|
-
|
|
4388
|
+
// If this is the root menu (not a nested menu) handle events, states and styling.
|
|
4389
|
+
if (this.rootMenu) {
|
|
4390
|
+
this.initItems();
|
|
4391
|
+
this.setAttribute('role', 'listbox');
|
|
4392
|
+
this.setAttribute('root', '');
|
|
4393
|
+
this.handleNestedMenus(this);
|
|
4394
|
+
this.markOptions();
|
|
4395
|
+
this.index = -1;
|
|
4396
|
+
this.getSelectedIndex();
|
|
4419
4397
|
|
|
4420
|
-
|
|
4421
|
-
|
|
4398
|
+
this.addEventListener('keydown', this.handleKeyDown);
|
|
4399
|
+
this.addEventListener('mousedown', this.handleMenuMouseDown);
|
|
4400
|
+
this.addEventListener('auroMenuOption-mouseover', (evt) => {
|
|
4401
|
+
this.index = this.items.indexOf(evt.target);
|
|
4402
|
+
this.updateActiveOption(this.index);
|
|
4422
4403
|
});
|
|
4404
|
+
} else {
|
|
4405
|
+
// make sure to update all menuoption noCheckmark attributes when the menu is dynamically changed
|
|
4406
|
+
this.handleNoCheckmarkAttr();
|
|
4423
4407
|
}
|
|
4424
4408
|
}
|
|
4425
4409
|
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4410
|
+
render() {
|
|
4411
|
+
if (this.loading) {
|
|
4412
|
+
return x$1`
|
|
4413
|
+
<auro-menuoption disabled loadingplaceholder class="${this.hasLoadingPlaceholder ? '' : 'empty'}">
|
|
4414
|
+
<div>
|
|
4415
|
+
<slot name="loadingIcon"></slot>
|
|
4416
|
+
<slot name="loadingText"></slot>
|
|
4417
|
+
</div>
|
|
4418
|
+
</auro-menuoption>
|
|
4419
|
+
`;
|
|
4420
|
+
}
|
|
4421
|
+
return x$1`<slot @slotchange=${this.handleSlotItems}></slot>`;
|
|
4431
4422
|
}
|
|
4423
|
+
}
|
|
4432
4424
|
|
|
4433
|
-
|
|
4434
|
-
if (changedProperties.has('matchWord')) {
|
|
4435
|
-
this.markOptions();
|
|
4436
|
-
}
|
|
4425
|
+
var styleCss$1 = i$b`: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}`;
|
|
4437
4426
|
|
|
4438
|
-
|
|
4439
|
-
this.selectByValue(this.value);
|
|
4440
|
-
}
|
|
4427
|
+
var colorCss$1 = i$b`: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) !important}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-color-text-ui-disabled-default, #adadad)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-color-container-ui-secondary-hover-default, rgba(0, 0, 0, 0.03))}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-color-container-ui-primary-default-default, #2c67b5);--ds-auro-menuoption-text-color: var(--ds-color-text-primary-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-color-icon-emphasis-inverse, #ffffff)}`;
|
|
4441
4428
|
|
|
4442
|
-
|
|
4443
|
-
|
|
4429
|
+
/**
|
|
4430
|
+
* @license
|
|
4431
|
+
* Copyright 2017 Google LLC
|
|
4432
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
4433
|
+
*/
|
|
4434
|
+
const t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e$1=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i;}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}
|
|
4444
4435
|
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4436
|
+
/**
|
|
4437
|
+
* @license
|
|
4438
|
+
* Copyright 2018 Google LLC
|
|
4439
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
4440
|
+
*/const e=e$1(class extends i{constructor(t$1){if(super(t$1),t$1.type!==t.ATTRIBUTE||"class"!==t$1.name||t$1.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return " "+Object.keys(t).filter((s=>t[s])).join(" ")+" "}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)));}return T$1}});
|
|
4450
4441
|
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
optionInteractive(option) {
|
|
4457
|
-
return !option.hasAttribute('hidden') && !option.hasAttribute('disabled') && !option.hasAttribute('static');
|
|
4458
|
-
}
|
|
4442
|
+
/**
|
|
4443
|
+
* @license
|
|
4444
|
+
* Copyright 2018 Google LLC
|
|
4445
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
4446
|
+
*/const o=o=>o??E$1;
|
|
4459
4447
|
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
* @returns {void} When called will update the DOM with visible suggest text matches.
|
|
4463
|
-
*/
|
|
4464
|
-
markOptions() {
|
|
4465
|
-
if (this.items && this.items.length > 0 && (this.matchWord && this.matchWord.length > 0)) {
|
|
4448
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
4449
|
+
// See LICENSE in the project root for license information.
|
|
4466
4450
|
|
|
4467
|
-
// Escape special regex characters
|
|
4468
|
-
const escapedWord = this.matchWord.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
|
|
4469
4451
|
|
|
4470
|
-
|
|
4471
|
-
|
|
4452
|
+
/**
|
|
4453
|
+
* @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
|
|
4454
|
+
* @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
|
|
4455
|
+
* @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
|
|
4456
|
+
*/
|
|
4472
4457
|
|
|
4473
|
-
|
|
4474
|
-
if (this.optionInteractive(item) && !item.hasAttribute('persistent')) {
|
|
4475
|
-
const nested = item.querySelectorAll('.nestingSpacer');
|
|
4476
|
-
const nestingSpacerBundle = [...nested].map(() => this.nestingSpacer).join('');
|
|
4458
|
+
class AuroElement extends r$4 {
|
|
4477
4459
|
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4460
|
+
// function to define props used within the scope of this component
|
|
4461
|
+
static get properties() {
|
|
4462
|
+
return {
|
|
4463
|
+
hidden: { type: Boolean,
|
|
4464
|
+
reflect: true },
|
|
4465
|
+
hiddenVisually: { type: Boolean,
|
|
4466
|
+
reflect: true },
|
|
4467
|
+
hiddenAudible: { type: Boolean,
|
|
4468
|
+
reflect: true },
|
|
4469
|
+
};
|
|
4482
4470
|
}
|
|
4483
4471
|
|
|
4484
4472
|
/**
|
|
4485
|
-
*
|
|
4473
|
+
* @private Function that determines state of aria-hidden
|
|
4486
4474
|
*/
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
this.items.forEach((item) => {
|
|
4491
|
-
item.classList.remove('active');
|
|
4492
|
-
item.removeAttribute('selected');
|
|
4493
|
-
});
|
|
4475
|
+
hideAudible(value) {
|
|
4476
|
+
if (value) {
|
|
4477
|
+
return 'true'
|
|
4494
4478
|
}
|
|
4479
|
+
|
|
4480
|
+
return 'false'
|
|
4495
4481
|
}
|
|
4482
|
+
}
|
|
4496
4483
|
|
|
4497
|
-
|
|
4498
|
-
* Set the attributes on the selected menuoption, the menu value and stored option.
|
|
4499
|
-
* @param {Object} option - The menuoption to be selected.
|
|
4500
|
-
* @private
|
|
4501
|
-
*/
|
|
4502
|
-
handleLocalSelectState(option) {
|
|
4503
|
-
option.setAttribute('selected', '');
|
|
4504
|
-
option.classList.add('active');
|
|
4505
|
-
option.ariaSelected = true;
|
|
4484
|
+
var error = {"role":"img","color":"currentColor","title":"","desc":"Error alert indicator.","width":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","height":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","xmlns":"http://www.w3.org/2000/svg","xmlns_xlink":"http://www.w3.org/1999/xlink","viewBox":"0 0 24 24","path":"/icons","style":"ico_squareLarge","type":"icon","name":"error","category":"alert","deprecated":true,"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"error__desc\" class=\"ico_squareLarge\" data-deprecated=\"true\" 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=\"error__desc\">Error alert indicator.</desc><path d=\"m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583\"/></svg>"};
|
|
4506
4485
|
|
|
4507
|
-
|
|
4508
|
-
this.optionSelected = option;
|
|
4509
|
-
this.index = this.items.indexOf(option);
|
|
4510
|
-
}
|
|
4486
|
+
/* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
|
|
4511
4487
|
|
|
4512
|
-
|
|
4513
|
-
* Notify selection change.
|
|
4514
|
-
* @private
|
|
4515
|
-
* @return {void}
|
|
4516
|
-
*/
|
|
4517
|
-
notifySelectionChange() {
|
|
4518
|
-
// this event needs to be removed after select and combobox are updated to use the new standard name
|
|
4519
|
-
this.dispatchEvent(new CustomEvent('selectedOption', {
|
|
4520
|
-
bubbles: true,
|
|
4521
|
-
cancelable: false,
|
|
4522
|
-
composed: true,
|
|
4523
|
-
}));
|
|
4488
|
+
const _fetchMap = new Map();
|
|
4524
4489
|
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4490
|
+
/**
|
|
4491
|
+
* A callback to parse Response body.
|
|
4492
|
+
*
|
|
4493
|
+
* @callback ResponseParser
|
|
4494
|
+
* @param {Fetch.Response} response
|
|
4495
|
+
* @returns {Promise}
|
|
4496
|
+
*/
|
|
4497
|
+
|
|
4498
|
+
/**
|
|
4499
|
+
* A minimal in-memory map to de-duplicate Fetch API media requests.
|
|
4500
|
+
*
|
|
4501
|
+
* @param {String} uri
|
|
4502
|
+
* @param {Object} [options={}]
|
|
4503
|
+
* @param {ResponseParser} [options.responseParser=(response) => response.text()]
|
|
4504
|
+
* @returns {Promise}
|
|
4505
|
+
*/
|
|
4506
|
+
const cacheFetch = (uri, options = {}) => {
|
|
4507
|
+
const responseParser = options.responseParser || ((response) => response.text());
|
|
4508
|
+
if (!_fetchMap.has(uri)) {
|
|
4509
|
+
_fetchMap.set(uri, fetch(uri).then(responseParser));
|
|
4530
4510
|
}
|
|
4511
|
+
return _fetchMap.get(uri);
|
|
4512
|
+
};
|
|
4531
4513
|
|
|
4532
|
-
|
|
4533
|
-
* Process actions for making making a menuoption selection.
|
|
4534
|
-
*/
|
|
4535
|
-
makeSelection() {
|
|
4536
|
-
if (!this.items) {
|
|
4537
|
-
this.initItems();
|
|
4538
|
-
}
|
|
4514
|
+
var styleCss = i$b`*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}*:focus-visible{outline:0}*:focus-visible{outline:0}: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}:host .logo{color:var(--ds-color-brand-midnight-400, #01426a)}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}.label{display:flex;align-items:flex-start}.label svg{margin:0 var(--ds-size-50, 0.25rem)}.labelContainer{line-height:1.8}`;
|
|
4539
4515
|
|
|
4540
|
-
|
|
4541
|
-
|
|
4516
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
4517
|
+
// See LICENSE in the project root for license information.
|
|
4542
4518
|
|
|
4543
|
-
if (this.index >= 0) {
|
|
4544
|
-
const option = this.items[this.index];
|
|
4545
4519
|
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
bubbles: true,
|
|
4552
|
-
cancelable: false,
|
|
4553
|
-
composed: true,
|
|
4554
|
-
}));
|
|
4520
|
+
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
4521
|
+
/**
|
|
4522
|
+
* @attr {Boolean} onDark - Set value for on-dark version of auro-icon
|
|
4523
|
+
* @slot - Hidden from visibility, used for a11y if icon description is needed
|
|
4524
|
+
*/
|
|
4555
4525
|
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4526
|
+
// build the component class
|
|
4527
|
+
class BaseIcon extends AuroElement {
|
|
4528
|
+
constructor() {
|
|
4529
|
+
super();
|
|
4530
|
+
this.onDark = false;
|
|
4531
|
+
}
|
|
4562
4532
|
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4533
|
+
// function to define props used within the scope of this component
|
|
4534
|
+
static get properties() {
|
|
4535
|
+
return {
|
|
4536
|
+
...super.properties,
|
|
4537
|
+
onDark: {
|
|
4538
|
+
type: Boolean,
|
|
4539
|
+
reflect: true
|
|
4540
|
+
},
|
|
4541
|
+
|
|
4542
|
+
/**
|
|
4543
|
+
* @private
|
|
4544
|
+
*/
|
|
4545
|
+
svg: {
|
|
4546
|
+
attribute: false,
|
|
4547
|
+
reflect: true
|
|
4572
4548
|
}
|
|
4573
|
-
}
|
|
4549
|
+
};
|
|
4550
|
+
}
|
|
4574
4551
|
|
|
4575
|
-
|
|
4552
|
+
static get styles() {
|
|
4553
|
+
return i$b`
|
|
4554
|
+
${styleCss}
|
|
4555
|
+
`;
|
|
4576
4556
|
}
|
|
4577
4557
|
|
|
4578
4558
|
/**
|
|
4579
|
-
*
|
|
4559
|
+
* Async function to fetch requested icon from npm CDN.
|
|
4580
4560
|
* @private
|
|
4581
|
-
* @param {
|
|
4561
|
+
* @param {string} category - Icon category.
|
|
4562
|
+
* @param {string} name - Icon name.
|
|
4563
|
+
* @returns {SVGElement} DOM - Ready HTML to be appended.
|
|
4582
4564
|
*/
|
|
4583
|
-
|
|
4584
|
-
|
|
4565
|
+
async fetchIcon(category, name) {
|
|
4566
|
+
let iconHTML = '';
|
|
4585
4567
|
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
break;
|
|
4568
|
+
if (category === 'logos') {
|
|
4569
|
+
iconHTML = await cacheFetch(`${this.uri}/${category}/${name}.svg`);
|
|
4570
|
+
} else {
|
|
4571
|
+
iconHTML = await cacheFetch(`${this.uri}/icons/${category}/${name}.svg`);
|
|
4572
|
+
}
|
|
4592
4573
|
|
|
4593
|
-
|
|
4594
|
-
this.selectNextItem('up');
|
|
4595
|
-
break;
|
|
4574
|
+
const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
|
|
4596
4575
|
|
|
4597
|
-
|
|
4598
|
-
|
|
4599
|
-
|
|
4576
|
+
return dom.body.querySelector('svg');
|
|
4577
|
+
}
|
|
4578
|
+
|
|
4579
|
+
// lifecycle function
|
|
4580
|
+
async firstUpdated() {
|
|
4581
|
+
if (!this.customSvg) {
|
|
4582
|
+
const svg = await this.fetchIcon(this.category, this.name);
|
|
4583
|
+
|
|
4584
|
+
if (svg) {
|
|
4585
|
+
this.svg = svg;
|
|
4586
|
+
} else if (!svg) {
|
|
4587
|
+
const penDOM = new DOMParser().parseFromString(error.svg, 'text/html');
|
|
4588
|
+
|
|
4589
|
+
this.svg = penDOM.body.firstChild;
|
|
4590
|
+
}
|
|
4600
4591
|
}
|
|
4601
4592
|
}
|
|
4593
|
+
}
|
|
4602
4594
|
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
4595
|
+
var tokensCss = i$b`:host{--ds-auro-icon-color: var(--ds-color-icon-primary-default, $ds-color-icon-primary-default);--ds-auro-icon-size: var(--ds-size-300, $ds-size-300)}`;
|
|
4596
|
+
|
|
4597
|
+
var colorCss = i$b`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[accent]){--ds-auro-icon-color: var(--ds-color-icon-accent-default, #a2c270)}:host(:not([onDark])[disabled]){--ds-auro-icon-color: var(--ds-color-icon-ui-primary-disabled-default, #adadad)}:host(:not([onDark])[emphasis]){--ds-auro-icon-color: var(--ds-color-icon-emphasis-default, #2a2a2a)}:host(:not([onDark])[error]){--ds-auro-icon-color: var(--ds-color-icon-error-default, #cc1816)}:host(:not([onDark])[info]){--ds-auro-icon-color: var(--ds-color-icon-info-default, #326aa5)}:host(:not([onDark])[secondary]){--ds-auro-icon-color: var(--ds-color-icon-secondary-default, #7e8894)}:host(:not([onDark])[subtle]){--ds-auro-icon-color: var(--ds-color-icon-subtle-default, #a0c9f1)}:host(:not([onDark])[success]){--ds-auro-icon-color: var(--ds-color-icon-success-default, #40a080)}:host(:not([onDark])[tertiary]){--ds-auro-icon-color: var(--ds-color-icon-tertiary-default, #afb9c6)}:host(:not([onDark])[warning]){--ds-auro-icon-color: var(--ds-color-icon-warning-default, #c49432)}:host([onDark]){--ds-auro-icon-color: var(--ds-color-icon-primary-inverse, #f7f7f7)}:host([onDark][accent]){--ds-auro-icon-color: var(--ds-color-icon-accent-inverse, #badd81)}:host([onDark][disabled]){--ds-auro-icon-color: var(--ds-color-icon-ui-primary-disabled-inverse, #7e7e7e)}:host([onDark][emphasis]){--ds-auro-icon-color: var(--ds-color-icon-emphasis-inverse, #ffffff)}:host([onDark][error]){--ds-auro-icon-color: var(--ds-color-icon-error-inverse, #f9aca6)}:host([onDark][info]){--ds-auro-icon-color: var(--ds-color-icon-info-inverse, #89b2d4)}:host([onDark][secondary]){--ds-auro-icon-color: var(--ds-color-icon-secondary-inverse, #ccd2db)}:host([onDark][subtle]){--ds-auro-icon-color: var(--ds-color-icon-subtle-inverse, #326aa5)}:host([onDark][success]){--ds-auro-icon-color: var(--ds-color-icon-success-inverse, #8eceb9)}:host([onDark][tertiary]){--ds-auro-icon-color: var(--ds-color-icon-tertiary-inverse, #939fad)}:host([onDark][warning]){--ds-auro-icon-color: var(--ds-color-icon-warning-inverse, #f2c153)}`;
|
|
4598
|
+
|
|
4599
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
4600
|
+
// See LICENSE in the project root for license information.
|
|
4601
|
+
|
|
4602
|
+
|
|
4603
|
+
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
4604
|
+
/**
|
|
4605
|
+
* auro-icon provides users a way to use the Auro Icons by simply passing in the category and name.
|
|
4606
|
+
*
|
|
4607
|
+
* @attr {String} category - The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
|
|
4608
|
+
* @attr {String} name - The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage
|
|
4609
|
+
* @attr {Boolean} customColor - Removes primary selector.
|
|
4610
|
+
* @attr {Boolean} customSvg - When true, auro-icon will render a custom SVG inside the default slot.
|
|
4611
|
+
* @attr {Boolean} label - Exposes content in slot as icon label.
|
|
4612
|
+
* @attr {Boolean} primary - DEPRECATED: Sets the icon to use the baseline primary icon style.
|
|
4613
|
+
* @attr {Boolean} accent - Sets the icon to use the accent style.
|
|
4614
|
+
* @attr {Boolean} emphasis - Sets the icon to use the emphasis style.
|
|
4615
|
+
* @attr {Boolean} disabled - Sets the icon to use the disabled style.
|
|
4616
|
+
* @attr {Boolean} error - Sets the icon to use the error style.
|
|
4617
|
+
* @attr {Boolean} info - Sets the icon to use the info style.
|
|
4618
|
+
* @attr {Boolean} secondary - Sets the icon to use the secondary style.
|
|
4619
|
+
* @attr {Boolean} tertiary - Sets the icon to use the tertiary style.
|
|
4620
|
+
* @attr {Boolean} subtle - Sets the icon to use the subtle style.
|
|
4621
|
+
* @attr {Boolean} success - Sets the icon to use the success style.
|
|
4622
|
+
* @attr {Boolean} warning - Sets the icon to use the warning style.
|
|
4623
|
+
* @attr {String} ariaHidden - Set aria-hidden value. Default is `true`. Option is `false`.
|
|
4624
|
+
* @attr {String} uri - Set the uri for CDN used when fetching icons
|
|
4625
|
+
* @slot - Hidden from visibility, used for a11y if icon description is needed.
|
|
4626
|
+
* @slot svg - Used for custom SVG content.
|
|
4627
|
+
*/
|
|
4628
|
+
|
|
4629
|
+
// build the component class
|
|
4630
|
+
class AuroIcon extends BaseIcon {
|
|
4631
|
+
constructor() {
|
|
4632
|
+
super();
|
|
4633
|
+
|
|
4634
|
+
this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
|
|
4635
|
+
|
|
4636
|
+
this.privateDefaults();
|
|
4610
4637
|
}
|
|
4611
4638
|
|
|
4612
4639
|
/**
|
|
4613
|
-
*
|
|
4640
|
+
* Internal Defaults.
|
|
4614
4641
|
* @private
|
|
4642
|
+
* @returns {void}
|
|
4615
4643
|
*/
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4644
|
+
privateDefaults() {
|
|
4645
|
+
this.accent = false;
|
|
4646
|
+
this.customColor = false;
|
|
4647
|
+
this.customSvg = false;
|
|
4648
|
+
this.disabled = false;
|
|
4649
|
+
this.emphasis = false;
|
|
4650
|
+
this.error = false;
|
|
4651
|
+
this.info = false;
|
|
4652
|
+
this.label = false;
|
|
4653
|
+
this.primary = false;
|
|
4654
|
+
this.secondary = false;
|
|
4655
|
+
this.subtle = false;
|
|
4656
|
+
this.success = false;
|
|
4657
|
+
this.tertiary = false;
|
|
4658
|
+
this.warning = false;
|
|
4659
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
|
|
4660
|
+
}
|
|
4619
4661
|
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4662
|
+
// function to define props used within the scope of this component
|
|
4663
|
+
static get properties() {
|
|
4664
|
+
return {
|
|
4665
|
+
...super.properties,
|
|
4666
|
+
accent: {
|
|
4667
|
+
type: Boolean,
|
|
4668
|
+
reflect: true
|
|
4669
|
+
},
|
|
4670
|
+
ariaHidden: {
|
|
4671
|
+
type: String,
|
|
4672
|
+
reflect: true
|
|
4673
|
+
},
|
|
4674
|
+
category: {
|
|
4675
|
+
type: String,
|
|
4676
|
+
reflect: true
|
|
4677
|
+
},
|
|
4678
|
+
customColor: {
|
|
4679
|
+
type: Boolean
|
|
4680
|
+
},
|
|
4681
|
+
customSvg: {
|
|
4682
|
+
type: Boolean
|
|
4683
|
+
},
|
|
4684
|
+
disabled: {
|
|
4685
|
+
type: Boolean,
|
|
4686
|
+
reflect: true
|
|
4687
|
+
},
|
|
4688
|
+
emphasis: {
|
|
4689
|
+
type: Boolean,
|
|
4690
|
+
reflect: true
|
|
4691
|
+
},
|
|
4692
|
+
error: {
|
|
4693
|
+
type: Boolean,
|
|
4694
|
+
reflect: true
|
|
4695
|
+
},
|
|
4696
|
+
info: {
|
|
4697
|
+
type: Boolean,
|
|
4698
|
+
reflect: true
|
|
4699
|
+
},
|
|
4700
|
+
label: {
|
|
4701
|
+
type: Boolean,
|
|
4702
|
+
reflect: true
|
|
4703
|
+
},
|
|
4704
|
+
name: {
|
|
4705
|
+
type: String,
|
|
4706
|
+
reflect: true
|
|
4707
|
+
},
|
|
4708
|
+
primary: {
|
|
4709
|
+
type: Boolean,
|
|
4710
|
+
reflect: true
|
|
4711
|
+
},
|
|
4712
|
+
secondary: {
|
|
4713
|
+
type: Boolean,
|
|
4714
|
+
reflect: true
|
|
4715
|
+
},
|
|
4716
|
+
subtle: {
|
|
4717
|
+
type: Boolean,
|
|
4718
|
+
reflect: true
|
|
4719
|
+
},
|
|
4720
|
+
success: {
|
|
4721
|
+
type: Boolean,
|
|
4722
|
+
reflect: true
|
|
4723
|
+
},
|
|
4724
|
+
tertiary: {
|
|
4725
|
+
type: Boolean,
|
|
4726
|
+
reflect: true
|
|
4727
|
+
},
|
|
4728
|
+
uri: {
|
|
4729
|
+
type: String
|
|
4730
|
+
},
|
|
4731
|
+
warning: {
|
|
4732
|
+
type: Boolean,
|
|
4733
|
+
reflect: true
|
|
4734
|
+
}
|
|
4735
|
+
};
|
|
4736
|
+
}
|
|
4737
|
+
|
|
4738
|
+
static get styles() {
|
|
4739
|
+
return [
|
|
4740
|
+
super.styles,
|
|
4741
|
+
i$b`${tokensCss}`,
|
|
4742
|
+
i$b`${styleCss}`,
|
|
4743
|
+
i$b`${colorCss}`
|
|
4744
|
+
];
|
|
4624
4745
|
}
|
|
4625
4746
|
|
|
4626
4747
|
/**
|
|
4627
|
-
*
|
|
4628
|
-
*
|
|
4629
|
-
*
|
|
4748
|
+
* This will register this element with the browser.
|
|
4749
|
+
* @param {string} [name="auro-icon"] - The name of element that you want to register to.
|
|
4750
|
+
*
|
|
4751
|
+
* @example
|
|
4752
|
+
* AuroIcon.register("custom-icon") // this will register this element to <custom-icon/>
|
|
4630
4753
|
*
|
|
4631
|
-
* The event.target is not used as the function needs to know where to go,
|
|
4632
|
-
* versus knowing where it is.
|
|
4633
|
-
* @param {String} moveDirection - Up or Down based on keyboard event.
|
|
4634
4754
|
*/
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
// calculate which is the selection we should focus next
|
|
4640
|
-
let increment = 0;
|
|
4641
|
-
|
|
4642
|
-
if (moveDirection === 'down') {
|
|
4643
|
-
increment = 1;
|
|
4644
|
-
} else if (moveDirection === 'up') {
|
|
4645
|
-
increment = -1;
|
|
4646
|
-
}
|
|
4647
|
-
|
|
4648
|
-
this.index += increment;
|
|
4649
|
-
|
|
4650
|
-
// keep looping inside the array of options
|
|
4651
|
-
if (this.index > this.items.length - 1) {
|
|
4652
|
-
this.index = 0;
|
|
4653
|
-
} else if (this.index < 0) {
|
|
4654
|
-
this.index = this.items.length - 1;
|
|
4655
|
-
}
|
|
4755
|
+
static register(name = "auro-icon") {
|
|
4756
|
+
AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
|
|
4757
|
+
}
|
|
4656
4758
|
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
this.selectNextItem(moveDirection);
|
|
4660
|
-
} else {
|
|
4661
|
-
// apply focus to new index
|
|
4662
|
-
this.updateActiveOption(this.index);
|
|
4663
|
-
}
|
|
4664
|
-
} else {
|
|
4665
|
-
this.index = 0;
|
|
4759
|
+
connectedCallback() {
|
|
4760
|
+
super.connectedCallback();
|
|
4666
4761
|
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
} else {
|
|
4670
|
-
this.updateActiveOption(this.index);
|
|
4671
|
-
}
|
|
4672
|
-
}
|
|
4762
|
+
// Add the tag name as an attribute if it is different than the component name
|
|
4763
|
+
this.runtimeUtils.handleComponentTagRename(this, 'auro-icon');
|
|
4673
4764
|
}
|
|
4674
4765
|
|
|
4675
4766
|
/**
|
|
4676
|
-
*
|
|
4677
|
-
* @private
|
|
4678
|
-
* @param {String} menu - Root level menu object.
|
|
4767
|
+
* @returns {void} Exposes CSS parts for styling from parent components.
|
|
4679
4768
|
*/
|
|
4680
|
-
|
|
4681
|
-
|
|
4769
|
+
exposeCssParts() {
|
|
4770
|
+
this.setAttribute('exportparts', 'svg:iconSvg');
|
|
4771
|
+
}
|
|
4682
4772
|
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4773
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
4774
|
+
render() {
|
|
4775
|
+
const a11y = {
|
|
4776
|
+
'labelContainer': true,
|
|
4777
|
+
'util_displayHiddenVisually': !this.label
|
|
4778
|
+
};
|
|
4686
4779
|
|
|
4687
|
-
|
|
4688
|
-
|
|
4780
|
+
const classes = {
|
|
4781
|
+
'label': this.label
|
|
4782
|
+
};
|
|
4689
4783
|
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4784
|
+
return x$1`
|
|
4785
|
+
<div
|
|
4786
|
+
class="${e(classes)}"
|
|
4787
|
+
title="${o(this.title || undefined)}">
|
|
4788
|
+
<span aria-hidden="${o(this.ariaHidden ? this.ariaHidden : true)}" part="svg">
|
|
4789
|
+
${this.customSvg ? x$1`
|
|
4790
|
+
<slot name="svg"></slot>
|
|
4791
|
+
` : x$1`
|
|
4792
|
+
${this.svg}
|
|
4793
|
+
`
|
|
4794
|
+
}
|
|
4795
|
+
</span>
|
|
4693
4796
|
|
|
4694
|
-
|
|
4695
|
-
|
|
4797
|
+
<div class="${e(a11y)}">
|
|
4798
|
+
<slot></slot>
|
|
4799
|
+
</div>
|
|
4800
|
+
</div>
|
|
4801
|
+
`;
|
|
4696
4802
|
}
|
|
4803
|
+
}
|
|
4697
4804
|
|
|
4698
|
-
|
|
4699
|
-
* Method to apply `selected` attribute to `menuoption` via `value`.
|
|
4700
|
-
* @private
|
|
4701
|
-
* @param {String} value - Must match a unique `menuoption` value.
|
|
4702
|
-
*/
|
|
4703
|
-
selectByValue(value) {
|
|
4704
|
-
let valueMatch = false;
|
|
4705
|
-
if (!this.items) {
|
|
4706
|
-
this.initItems();
|
|
4707
|
-
}
|
|
4805
|
+
var iconVersion = '6.1.1';
|
|
4708
4806
|
|
|
4709
|
-
|
|
4807
|
+
var checkmarkIcon = {"role":"img","color":"currentColor","title":"","desc":"a small check mark.","width":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","height":"var(--auro-size-lg, var(--ds-size-300, 1.5rem))","xmlns":"http://www.w3.org/2000/svg","xmlns_xlink":"http://www.w3.org/1999/xlink","viewBox":"0 0 24 24","path":"/icons","style":"ico_squareLarge","type":"icon","name":"checkmark-sm","category":"interface","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>"};
|
|
4710
4808
|
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
if (this.items[index].value === value) {
|
|
4714
|
-
valueMatch = true;
|
|
4715
|
-
this.index = index;
|
|
4716
|
-
}
|
|
4717
|
-
}
|
|
4809
|
+
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
4810
|
+
// See LICENSE in the project root for license information.
|
|
4718
4811
|
|
|
4719
|
-
if (!valueMatch) {
|
|
4720
|
-
// reset the menu to no selection
|
|
4721
|
-
this.index = undefined;
|
|
4722
4812
|
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4813
|
+
/**
|
|
4814
|
+
* The auro-menu element provides users a way to define a menu option.
|
|
4815
|
+
*
|
|
4816
|
+
* @attr {String} value - Specifies the value to be sent to a server.
|
|
4817
|
+
* @attr {String} noCheckmark - When true, selected option will not show the checkmark.
|
|
4818
|
+
* @attr {Boolean} disabled - When true specifies that the menuoption is disabled.
|
|
4819
|
+
* @attr {Boolean} selected - Specifies that an option is selected.
|
|
4820
|
+
* @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
|
|
4821
|
+
* @slot - Specifies text for an option, but is not the value.
|
|
4822
|
+
*/
|
|
4823
|
+
class AuroMenuOption extends r$4 {
|
|
4824
|
+
constructor() {
|
|
4825
|
+
super();
|
|
4729
4826
|
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4827
|
+
/**
|
|
4828
|
+
* Generate unique names for dependency components.
|
|
4829
|
+
*/
|
|
4830
|
+
const versioning = new AuroDependencyVersioning$1();
|
|
4831
|
+
this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon);
|
|
4832
|
+
|
|
4833
|
+
this.selected = false;
|
|
4834
|
+
this.nocheckmark = false;
|
|
4835
|
+
this.disabled = false;
|
|
4836
|
+
|
|
4837
|
+
/**
|
|
4838
|
+
* @private
|
|
4839
|
+
*/
|
|
4840
|
+
this.tabIndex = -1;
|
|
4841
|
+
|
|
4842
|
+
/**
|
|
4843
|
+
* @private
|
|
4844
|
+
*/
|
|
4845
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
|
|
4846
|
+
}
|
|
4847
|
+
|
|
4848
|
+
static get properties() {
|
|
4849
|
+
return {
|
|
4850
|
+
nocheckmark: {
|
|
4851
|
+
type: Boolean,
|
|
4852
|
+
reflect: true
|
|
4853
|
+
},
|
|
4854
|
+
selected: {
|
|
4855
|
+
type: Boolean,
|
|
4856
|
+
reflect: true
|
|
4857
|
+
},
|
|
4858
|
+
disabled: {
|
|
4859
|
+
type: Boolean,
|
|
4860
|
+
reflect: true
|
|
4861
|
+
},
|
|
4862
|
+
value: {
|
|
4863
|
+
type: String,
|
|
4864
|
+
reflect: true
|
|
4865
|
+
},
|
|
4866
|
+
tabIndex: {
|
|
4867
|
+
type: Number,
|
|
4868
|
+
reflect: true
|
|
4737
4869
|
}
|
|
4738
|
-
}
|
|
4739
|
-
|
|
4870
|
+
};
|
|
4871
|
+
}
|
|
4740
4872
|
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
|
|
4873
|
+
static get styles() {
|
|
4874
|
+
return [
|
|
4875
|
+
styleCss$1,
|
|
4876
|
+
colorCss$1,
|
|
4877
|
+
tokensCss$1
|
|
4878
|
+
];
|
|
4747
4879
|
}
|
|
4748
4880
|
|
|
4749
4881
|
/**
|
|
4750
|
-
*
|
|
4751
|
-
* @param {
|
|
4752
|
-
*
|
|
4882
|
+
* This will register this element with the browser.
|
|
4883
|
+
* @param {string} [name="auro-menuoption"] - The name of element that you want to register to.
|
|
4884
|
+
*
|
|
4885
|
+
* @example
|
|
4886
|
+
* AuroMenuOption.register("custom-menuoption") // this will register this element to <custom-menuoption/>
|
|
4887
|
+
*
|
|
4753
4888
|
*/
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4757
|
-
});
|
|
4758
|
-
this.items[index].classList.add('active');
|
|
4759
|
-
this.optionActive = this.items[index];
|
|
4889
|
+
static register(name = "auro-menuoption") {
|
|
4890
|
+
AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroMenuOption);
|
|
4891
|
+
}
|
|
4760
4892
|
|
|
4761
|
-
|
|
4762
|
-
|
|
4763
|
-
|
|
4764
|
-
composed: true,
|
|
4765
|
-
detail: this.items[index]
|
|
4766
|
-
}));
|
|
4893
|
+
firstUpdated() {
|
|
4894
|
+
// Add the tag name as an attribute if it is different than the component name
|
|
4895
|
+
this.runtimeUtils.handleComponentTagRename(this, 'auro-menuoption');
|
|
4767
4896
|
|
|
4768
|
-
this.
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4897
|
+
this.setAttribute('role', 'option');
|
|
4898
|
+
this.setAttribute('aria-selected', 'false');
|
|
4899
|
+
|
|
4900
|
+
this.addEventListener('mouseover', () => {
|
|
4901
|
+
this.dispatchEvent(new CustomEvent('auroMenuOption-mouseover', {
|
|
4902
|
+
bubbles: true,
|
|
4903
|
+
cancelable: false,
|
|
4904
|
+
composed: true,
|
|
4905
|
+
detail: this
|
|
4906
|
+
}));
|
|
4907
|
+
});
|
|
4774
4908
|
}
|
|
4775
4909
|
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
*/
|
|
4781
|
-
handleMenuMouseDown(evt) {
|
|
4782
|
-
if (evt.target !== this) {
|
|
4783
|
-
this.makeSelection();
|
|
4910
|
+
// observer for selected property changes
|
|
4911
|
+
updated(changedProperties) {
|
|
4912
|
+
if (changedProperties.has('selected')) {
|
|
4913
|
+
this.setAttribute('aria-selected', this.selected.toString());
|
|
4784
4914
|
}
|
|
4785
4915
|
}
|
|
4786
4916
|
|
|
4787
4917
|
/**
|
|
4788
|
-
*
|
|
4918
|
+
* Generates an HTML element containing an SVG icon based on the provided `svgContent`.
|
|
4919
|
+
*
|
|
4789
4920
|
* @private
|
|
4921
|
+
* @param {string} svgContent - The SVG content to be embedded.
|
|
4922
|
+
* @returns {Element} The HTML element containing the SVG icon.
|
|
4790
4923
|
*/
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
this.rootMenu = false;
|
|
4795
|
-
}
|
|
4924
|
+
generateIconHtml(svgContent) {
|
|
4925
|
+
const dom = new DOMParser().parseFromString(svgContent, 'text/html');
|
|
4926
|
+
const svg = dom.body.firstChild;
|
|
4796
4927
|
|
|
4797
|
-
|
|
4798
|
-
if (this.rootMenu) {
|
|
4799
|
-
this.initItems();
|
|
4800
|
-
this.setAttribute('role', 'listbox');
|
|
4801
|
-
this.setAttribute('root', '');
|
|
4802
|
-
this.handleNestedMenus(this);
|
|
4803
|
-
this.markOptions();
|
|
4804
|
-
this.index = -1;
|
|
4805
|
-
this.getSelectedIndex();
|
|
4928
|
+
svg.setAttribute('slot', 'svg');
|
|
4806
4929
|
|
|
4807
|
-
|
|
4808
|
-
this.addEventListener('mousedown', this.handleMenuMouseDown);
|
|
4809
|
-
this.addEventListener('auroMenuOption-mouseover', (evt) => {
|
|
4810
|
-
this.index = this.items.indexOf(evt.target);
|
|
4811
|
-
this.updateActiveOption(this.index);
|
|
4812
|
-
});
|
|
4813
|
-
} else {
|
|
4814
|
-
// make sure to update all menuoption noCheckmark attributes when the menu is dynamically changed
|
|
4815
|
-
this.handleNoCheckmarkAttr();
|
|
4816
|
-
}
|
|
4930
|
+
return u$3`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
|
|
4817
4931
|
}
|
|
4818
4932
|
|
|
4819
4933
|
render() {
|
|
4820
|
-
return
|
|
4821
|
-
|
|
4934
|
+
return u$3`
|
|
4935
|
+
${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
|
|
4936
|
+
<slot></slot>
|
|
4822
4937
|
`;
|
|
4823
4938
|
}
|
|
4824
4939
|
}
|
|
@@ -4838,6 +4953,7 @@ function initExamples(initCount) {
|
|
|
4838
4953
|
valueExample();
|
|
4839
4954
|
valueExtractionExample();
|
|
4840
4955
|
inDialogExample();
|
|
4956
|
+
auroMenuLoadingExample();
|
|
4841
4957
|
} catch (err) {
|
|
4842
4958
|
if (initCount <= 20) {
|
|
4843
4959
|
// setTimeout handles issue where content is sometimes loaded after the functions get called
|