@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.
Files changed (161) hide show
  1. package/.turbo/cache/01de6ab3df8b7e1e-meta.json +1 -0
  2. package/.turbo/cache/{754a6b5c5ce1ed00.tar.zst → 01de6ab3df8b7e1e.tar.zst} +0 -0
  3. package/.turbo/cache/10feda0f037804bb-meta.json +1 -1
  4. package/.turbo/cache/11079d2746265545-meta.json +1 -1
  5. package/.turbo/cache/11079d2746265545.tar.zst +0 -0
  6. package/.turbo/cache/115c4b73a12f5275-meta.json +1 -0
  7. package/.turbo/cache/115c4b73a12f5275.tar.zst +0 -0
  8. package/.turbo/cache/144e8e78657bf800-meta.json +1 -1
  9. package/.turbo/cache/18939b2c7c83b163-meta.json +1 -1
  10. package/.turbo/cache/1de685df0eaa39c8-meta.json +1 -1
  11. package/.turbo/cache/1ec139dcf090d547-meta.json +1 -1
  12. package/.turbo/cache/1f53ce3a28c56cdf-meta.json +1 -1
  13. package/.turbo/cache/23bf100310bd9f5a-meta.json +1 -1
  14. package/.turbo/cache/2900e7ec28e1488f-meta.json +1 -1
  15. package/.turbo/cache/296074aadfa2f8c9-meta.json +1 -1
  16. package/.turbo/cache/296074aadfa2f8c9.tar.zst +0 -0
  17. package/.turbo/cache/29e29355bf6fb4fd-meta.json +1 -1
  18. package/.turbo/cache/2cbcbc4a17387253-meta.json +1 -0
  19. package/.turbo/cache/2cbcbc4a17387253.tar.zst +0 -0
  20. package/.turbo/cache/2f6c898fbb51e995-meta.json +1 -1
  21. package/.turbo/cache/2f6c898fbb51e995.tar.zst +0 -0
  22. package/.turbo/cache/3073b96f6e4d867c-meta.json +1 -1
  23. package/.turbo/cache/33466ea2930c3714-meta.json +1 -1
  24. package/.turbo/cache/3426941a74b0731e-meta.json +1 -0
  25. package/.turbo/cache/{3f41d958c755a6f0.tar.zst → 3426941a74b0731e.tar.zst} +0 -0
  26. package/.turbo/cache/38b0799e2f7e62c5-meta.json +1 -0
  27. package/.turbo/cache/38b0799e2f7e62c5.tar.zst +0 -0
  28. package/.turbo/cache/3fbc89f461c495db-meta.json +1 -0
  29. package/.turbo/cache/3fbc89f461c495db.tar.zst +0 -0
  30. package/.turbo/cache/451e562c76f74ec6-meta.json +1 -1
  31. package/.turbo/cache/4520919609c97850-meta.json +1 -1
  32. package/.turbo/cache/452908d0b0b676bc-meta.json +1 -1
  33. package/.turbo/cache/48c197e39ed31fd2-meta.json +1 -1
  34. package/.turbo/cache/48c197e39ed31fd2.tar.zst +0 -0
  35. package/.turbo/cache/5058ecc7f1e34496-meta.json +1 -1
  36. package/.turbo/cache/5a66a99aa1344401-meta.json +1 -1
  37. package/.turbo/cache/5b66ce21630716cc-meta.json +1 -1
  38. package/.turbo/cache/6002b76d50b8d1ff-meta.json +1 -0
  39. package/.turbo/cache/6002b76d50b8d1ff.tar.zst +0 -0
  40. package/.turbo/cache/627e964e19b2bda5-meta.json +1 -0
  41. package/.turbo/cache/627e964e19b2bda5.tar.zst +0 -0
  42. package/.turbo/cache/6907ebaae4f3a96b-meta.json +1 -0
  43. package/.turbo/cache/6907ebaae4f3a96b.tar.zst +0 -0
  44. package/.turbo/cache/6f7175be597945f7-meta.json +1 -0
  45. package/.turbo/cache/6f7175be597945f7.tar.zst +0 -0
  46. package/.turbo/cache/70d7b72f15ee97a4-meta.json +1 -1
  47. package/.turbo/cache/7cfdc01c415c836c-meta.json +1 -0
  48. package/.turbo/cache/7cfdc01c415c836c.tar.zst +0 -0
  49. package/.turbo/cache/897b0d8a0c301207-meta.json +1 -1
  50. package/.turbo/cache/8b7cdb9a0d4c3112-meta.json +1 -1
  51. package/.turbo/cache/8e1f402b247ebed6-meta.json +1 -1
  52. package/.turbo/cache/8e1f402b247ebed6.tar.zst +0 -0
  53. package/.turbo/cache/90b8d9ccef5e09aa-meta.json +1 -1
  54. package/.turbo/cache/936bccb44ade3650-meta.json +1 -1
  55. package/.turbo/cache/94bcc4c6536ada9d-meta.json +1 -1
  56. package/.turbo/cache/990b9def0e83d33c-meta.json +1 -0
  57. package/.turbo/cache/990b9def0e83d33c.tar.zst +0 -0
  58. package/.turbo/cache/a532f4b8302ca13e-meta.json +1 -1
  59. package/.turbo/cache/a7bf477bbdabc7bc-meta.json +1 -1
  60. package/.turbo/cache/a90aa34f427a2f62-meta.json +1 -1
  61. package/.turbo/cache/aedda428051043c4-meta.json +1 -1
  62. package/.turbo/cache/afc38ab505ef6dbb-meta.json +1 -0
  63. package/.turbo/cache/{2ca214d032893e74.tar.zst → afc38ab505ef6dbb.tar.zst} +0 -0
  64. package/.turbo/cache/b1ed317b29e85c9d-meta.json +1 -0
  65. package/.turbo/cache/b1ed317b29e85c9d.tar.zst +0 -0
  66. package/.turbo/cache/b61416daf63fbaad-meta.json +1 -1
  67. package/.turbo/cache/b76edfbd1c076b0a-meta.json +1 -0
  68. package/.turbo/cache/b76edfbd1c076b0a.tar.zst +0 -0
  69. package/.turbo/cache/b9463532618cdc61-meta.json +1 -1
  70. package/.turbo/cache/bb3afea40c91e8ba-meta.json +1 -1
  71. package/.turbo/cache/c4df38a7e2cc767a-meta.json +1 -0
  72. package/.turbo/cache/{77bf3068f493ef24.tar.zst → c4df38a7e2cc767a.tar.zst} +0 -0
  73. package/.turbo/cache/c63dc7b6157da70b-meta.json +1 -1
  74. package/.turbo/cache/c8b63b6e8a190eb9-meta.json +1 -1
  75. package/.turbo/cache/d35b1eee9f2881af-meta.json +1 -1
  76. package/.turbo/cache/d5188c0fbe45d578-meta.json +1 -1
  77. package/.turbo/cache/e4b3ec56d4ae56ba-meta.json +1 -1
  78. package/.turbo/cache/e6f030eddf6fbf4e-meta.json +1 -1
  79. package/.turbo/cache/ff7e6d09efd93145-meta.json +1 -1
  80. package/.turbo/cache/ff7e6d09efd93145.tar.zst +0 -0
  81. package/CHANGELOG.md +19 -0
  82. package/components/checkbox/.turbo/turbo-build.log +3 -3
  83. package/components/checkbox/.turbo/turbo-bundler.log +3 -3
  84. package/components/combobox/.turbo/turbo-build.log +6 -3
  85. package/components/combobox/demo/api.html +1 -0
  86. package/components/combobox/demo/api.js +2 -0
  87. package/components/combobox/demo/api.md +73 -0
  88. package/components/combobox/demo/api.min.js +962 -835
  89. package/components/combobox/demo/index.min.js +920 -832
  90. package/components/combobox/dist/auro-combobox.d.ts +20 -0
  91. package/components/combobox/dist/auro-combobox.d.ts.map +1 -1
  92. package/components/combobox/dist/index.js +58 -22
  93. package/components/combobox/src/auro-combobox.js +58 -22
  94. package/components/counter/.turbo/turbo-build.log +2 -2
  95. package/components/counter/.turbo/turbo-bundler.log +3 -3
  96. package/components/datepicker/.turbo/turbo-build.log +2 -2
  97. package/components/dropdown/.turbo/turbo-build.log +3 -3
  98. package/components/dropdown/.turbo/turbo-bundler.log +3 -3
  99. package/components/form/.turbo/turbo-build.log +3 -3
  100. package/components/form/.turbo/turbo-bundler.log +3 -3
  101. package/components/input/.turbo/turbo-build.log +3 -3
  102. package/components/input/.turbo/turbo-bundler.log +3 -3
  103. package/components/menu/.turbo/turbo-build.log +6 -3
  104. package/components/menu/.turbo/turbo-bundler.log +3 -3
  105. package/components/menu/demo/api.html +2 -0
  106. package/components/menu/demo/api.js +2 -0
  107. package/components/menu/demo/api.md +164 -22
  108. package/components/menu/demo/api.min.js +912 -853
  109. package/components/menu/demo/index.min.js +905 -853
  110. package/components/menu/dist/auro-menu.d.ts +28 -2
  111. package/components/menu/dist/auro-menu.d.ts.map +1 -1
  112. package/components/menu/dist/auro-menuoption.d.ts +1 -1
  113. package/components/menu/dist/index.js +905 -853
  114. package/components/menu/src/auro-menu.js +57 -7
  115. package/components/menu/src/auro-menuoption.js +1 -1
  116. package/components/menu/src/styles/style-menu-css.js +1 -1
  117. package/components/menu/src/styles/style-menu.css +21 -3
  118. package/components/menu/src/styles/style-menu.scss +25 -3
  119. package/components/radio/.turbo/turbo-build.log +3 -3
  120. package/components/radio/.turbo/turbo-bundler.log +3 -3
  121. package/components/select/.turbo/turbo-build.log +6 -3
  122. package/components/select/demo/api.html +1 -0
  123. package/components/select/demo/api.js +2 -0
  124. package/components/select/demo/api.md +66 -0
  125. package/components/select/demo/api.min.js +927 -811
  126. package/components/select/demo/index.min.js +895 -811
  127. package/components/select/dist/auro-select.d.ts +19 -0
  128. package/components/select/dist/auro-select.d.ts.map +1 -1
  129. package/components/select/dist/index.js +32 -0
  130. package/components/select/src/auro-select.js +32 -0
  131. package/package.json +1 -1
  132. package/packages/build-tools/src/docProcessor.mjs +4 -4
  133. package/packages/build-tools/src/kitDocProcessor.mjs +4 -4
  134. package/.turbo/cache/05be1236a4cd5e72-meta.json +0 -1
  135. package/.turbo/cache/05be1236a4cd5e72.tar.zst +0 -0
  136. package/.turbo/cache/2ca214d032893e74-meta.json +0 -1
  137. package/.turbo/cache/3792d285b464b3e6-meta.json +0 -1
  138. package/.turbo/cache/3792d285b464b3e6.tar.zst +0 -0
  139. package/.turbo/cache/3ac4a22a21bdc2be-meta.json +0 -1
  140. package/.turbo/cache/3ac4a22a21bdc2be.tar.zst +0 -0
  141. package/.turbo/cache/3f41d958c755a6f0-meta.json +0 -1
  142. package/.turbo/cache/5d064e768a262314-meta.json +0 -1
  143. package/.turbo/cache/5d064e768a262314.tar.zst +0 -0
  144. package/.turbo/cache/6646f884a18a970a-meta.json +0 -1
  145. package/.turbo/cache/6646f884a18a970a.tar.zst +0 -0
  146. package/.turbo/cache/71212615220331ea-meta.json +0 -1
  147. package/.turbo/cache/71212615220331ea.tar.zst +0 -0
  148. package/.turbo/cache/754a6b5c5ce1ed00-meta.json +0 -1
  149. package/.turbo/cache/77bf3068f493ef24-meta.json +0 -1
  150. package/.turbo/cache/7ddb7ace73fe6ec2-meta.json +0 -1
  151. package/.turbo/cache/7ddb7ace73fe6ec2.tar.zst +0 -0
  152. package/.turbo/cache/9135f474c69d1b3c-meta.json +0 -1
  153. package/.turbo/cache/9135f474c69d1b3c.tar.zst +0 -0
  154. package/.turbo/cache/9a7ab914e08ce75f-meta.json +0 -1
  155. package/.turbo/cache/9a7ab914e08ce75f.tar.zst +0 -0
  156. package/.turbo/cache/aa68cd3545395c90-meta.json +0 -1
  157. package/.turbo/cache/aa68cd3545395c90.tar.zst +0 -0
  158. package/.turbo/cache/dce6f67be2b63c18-meta.json +0 -1
  159. package/.turbo/cache/dce6f67be2b63c18.tar.zst +0 -0
  160. package/.turbo/cache/e28ee527154c4cb2-meta.json +0 -1
  161. 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
- 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}`;
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
- * @license
3807
- * Copyright 2017 Google LLC
3808
- * SPDX-License-Identifier: BSD-3-Clause
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
- * @license
3820
- * Copyright 2018 Google LLC
3821
- * SPDX-License-Identifier: BSD-3-Clause
3822
- */const o=o=>o??E$1;
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
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
3825
- // See LICENSE in the project root for license information.
3905
+ /**
3906
+ * @private
3907
+ */
3908
+ this.rootMenu = true;
3826
3909
 
3910
+ /**
3911
+ * @private
3912
+ */
3913
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
3827
3914
 
3828
- /**
3829
- * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
3830
- * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
3831
- * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
3832
- */
3915
+ /**
3916
+ * @private
3917
+ */
3918
+ this.nestingSpacer = '<span class="nestingSpacer"></span>';
3833
3919
 
3834
- class AuroElement extends r$4 {
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
- hidden: { type: Boolean,
3840
- reflect: true },
3841
- hiddenVisually: { type: Boolean,
3842
- reflect: true },
3843
- hiddenAudible: { type: Boolean,
3844
- reflect: true },
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
- * @private Function that determines state of aria-hidden
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
- hideAudible(value) {
3852
- if (value) {
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
- /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
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
- const _fetchMap = new Map();
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
- * A minimal in-memory map to de-duplicate Fetch API media requests.
3876
- *
3877
- * @param {String} uri
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
- 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}`;
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
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
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
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
3897
- /**
3898
- * @attr {Boolean} onDark - Set value for on-dark version of auro-icon
3899
- * @slot - Hidden from visibility, used for a11y if icon description is needed
3900
- */
3997
+ updated(changedProperties) {
3998
+ if (changedProperties.has('matchWord')) {
3999
+ this.markOptions();
4000
+ }
3901
4001
 
3902
- // build the component class
3903
- class BaseIcon extends AuroElement {
3904
- constructor() {
3905
- super();
3906
- this.onDark = false;
3907
- }
4002
+ if (changedProperties.has('value')) {
4003
+ this.selectByValue(this.value);
4004
+ }
3908
4005
 
3909
- // function to define props used within the scope of this component
3910
- static get properties() {
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
- * @private
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
- static get styles() {
3929
- return i$b`
3930
- ${styleCss}
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
- * @param {string} category - Icon category.
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
- async fetchIcon(category, name) {
3942
- let iconHTML = '';
4040
+ markOptions() {
4041
+ if (this.items && this.items.length > 0 && (this.matchWord && this.matchWord.length > 0)) {
3943
4042
 
3944
- if (category === 'logos') {
3945
- iconHTML = await cacheFetch(`${this.uri}/${category}/${name}.svg`);
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
- const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
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
- if (svg) {
3961
- this.svg = svg;
3962
- } else if (!svg) {
3963
- const penDOM = new DOMParser().parseFromString(error.svg, 'text/html');
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
- this.svg = penDOM.body.firstChild;
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
- // build the component class
4006
- class AuroIcon extends BaseIcon {
4007
- constructor() {
4008
- super();
4009
-
4010
- this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
4011
-
4012
- this.privateDefaults();
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
- * Internal Defaults.
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
- privateDefaults() {
4021
- this.accent = false;
4022
- this.customColor = false;
4023
- this.customSvg = false;
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
- static get styles() {
4115
- return [
4116
- super.styles,
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
- * This will register this element with the browser.
4125
- * @param {string} [name="auro-icon"] - The name of element that you want to register to.
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
- static register(name = "auro-icon") {
4132
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
4133
- }
4134
-
4135
- connectedCallback() {
4136
- super.connectedCallback();
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
- // Add the tag name as an attribute if it is different than the component name
4139
- this.runtimeUtils.handleComponentTagRename(this, 'auro-icon');
4101
+ this.dispatchEvent(new CustomEvent('auroMenu-selectedOption', {
4102
+ bubbles: true,
4103
+ cancelable: false,
4104
+ composed: true,
4105
+ }));
4140
4106
  }
4141
4107
 
4142
4108
  /**
4143
- * @returns {void} Exposes CSS parts for styling from parent components.
4109
+ * Process actions for making making a menuoption selection.
4144
4110
  */
4145
- exposeCssParts() {
4146
- this.setAttribute('exportparts', 'svg:iconSvg');
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
- <div class="${e(a11y)}">
4174
- <slot></slot>
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
- var iconVersion = '6.1.1';
4119
+ if (this.index >= 0) {
4120
+ const option = this.items[this.index];
4182
4121
 
4183
- 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>"};
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
- // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
4186
- // See LICENSE in the project root for license information.
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
- * The auro-menu element provides users a way to define a menu option.
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
- * Generate unique names for dependency components.
4205
- */
4206
- const versioning = new AuroDependencyVersioning$1();
4207
- this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon);
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
- this.selected = false;
4210
- this.nocheckmark = false;
4211
- this.disabled = false;
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
- * @private
4215
- */
4216
- this.tabIndex = -1;
4169
+ case "ArrowUp":
4170
+ this.selectNextItem('up');
4171
+ break;
4217
4172
 
4218
- /**
4219
- * @private
4220
- */
4221
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
4173
+ case "Enter":
4174
+ this.makeSelection();
4175
+ break;
4176
+ }
4222
4177
  }
4223
4178
 
4224
- static get properties() {
4225
- return {
4226
- nocheckmark: {
4227
- type: Boolean,
4228
- reflect: true
4229
- },
4230
- selected: {
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
- static get styles() {
4250
- return [
4251
- styleCss$1,
4252
- colorCss$1,
4253
- tokensCss$1
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
- * This will register this element with the browser.
4259
- * @param {string} [name="auro-menuoption"] - The name of element that you want to register to.
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
- static register(name = "auro-menuoption") {
4266
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroMenuOption);
4267
- }
4211
+ selectNextItem(moveDirection) {
4212
+ if (this.index >= 0) {
4213
+ this.items[this.index].classList.remove('active');
4268
4214
 
4269
- firstUpdated() {
4270
- // Add the tag name as an attribute if it is different than the component name
4271
- this.runtimeUtils.handleComponentTagRename(this, 'auro-menuoption');
4215
+ // calculate which is the selection we should focus next
4216
+ let increment = 0;
4272
4217
 
4273
- this.setAttribute('role', 'option');
4274
- this.setAttribute('aria-selected', 'false');
4218
+ if (moveDirection === 'down') {
4219
+ increment = 1;
4220
+ } else if (moveDirection === 'up') {
4221
+ increment = -1;
4222
+ }
4275
4223
 
4276
- this.addEventListener('mouseover', () => {
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
- // observer for selected property changes
4287
- updated(changedProperties) {
4288
- if (changedProperties.has('selected')) {
4289
- this.setAttribute('aria-selected', this.selected.toString());
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
- * Generates an HTML element containing an SVG icon based on the provided `svgContent`.
4295
- *
4252
+ * Used for applying indentation to each level of nested menu.
4296
4253
  * @private
4297
- * @param {string} svgContent - The SVG content to be embedded.
4298
- * @returns {Element} The HTML element containing the SVG icon.
4254
+ * @param {String} menu - Root level menu object.
4299
4255
  */
4300
- generateIconHtml(svgContent) {
4301
- const dom = new DOMParser().parseFromString(svgContent, 'text/html');
4302
- const svg = dom.body.firstChild;
4256
+ handleNestedMenus(menu) {
4257
+ const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu');
4303
4258
 
4304
- svg.setAttribute('slot', 'svg');
4259
+ if (nestedMenus.length === 0) {
4260
+ return;
4261
+ }
4305
4262
 
4306
- return u$3`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
4307
- }
4263
+ nestedMenus.forEach((nestedMenu) => {
4264
+ const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption');
4308
4265
 
4309
- render() {
4310
- return u$3`
4311
- ${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
4312
- <slot></slot>
4313
- `;
4314
- }
4315
- }
4266
+ options.forEach((option) => {
4267
+ option.innerHTML = this.nestingSpacer + option.innerHTML;
4268
+ });
4316
4269
 
4317
- // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
4318
- // See LICENSE in the project root for license information.
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
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
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
- /* eslint-disable no-magic-numbers, max-lines */
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
- class AuroMenu extends r$4 {
4344
- constructor() {
4345
- super();
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
- * @private
4354
- */
4355
- this.rootMenu = true;
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
- * @private
4359
- */
4360
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
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
- * @private
4364
- */
4365
- this.nestingSpacer = '<span class="nestingSpacer"></span>';
4317
+ this.dispatchEvent(new CustomEvent('auroMenu-selectValueReset', {
4318
+ bubbles: true,
4319
+ cancelable: false,
4320
+ composed: true,
4321
+ }));
4322
+ }
4366
4323
  }
4367
4324
 
4368
- static get properties() {
4369
- return {
4370
- noCheckmark: {
4371
- type: Boolean,
4372
- reflect: true
4373
- },
4374
- disabled: {
4375
- type: Boolean,
4376
- reflect: true
4377
- },
4378
- optionSelected: { type: Object },
4379
- optionActive: { type: Object },
4380
- matchWord: { type: String },
4381
- value: { type: String }
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
- static get styles() {
4386
- return [
4387
- styleCss$2,
4388
- colorCss$2,
4389
- tokensCss$1
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
- * This will register this element with the browser.
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
- * @example
4398
- * AuroMenu.register("custom-menu") // this will register this element to <custom-menu/>
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
- static register(name = "auro-menu") {
4402
- AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroMenu);
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
- * Passes the noCheckmark attribute to all nested auro-menuoptions.
4379
+ * Used for @slotchange event on slotted element.
4407
4380
  * @private
4408
- * @returns {void}
4409
4381
  */
4410
- handleNoCheckmarkAttr() {
4411
- if (this.noCheckmark) {
4412
- const menus = this.querySelectorAll('auro-menu, [auro-menu]');
4413
-
4414
- menus.forEach((menu) => {
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
- const options = this.querySelectorAll('auro-menuoption, [auro-menuoption]');
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
- options.forEach((option) => {
4421
- option.setAttribute('noCheckmark', '');
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
- firstUpdated() {
4427
- // Add the tag name as an attribute if it is different than the component name
4428
- this.runtimeUtils.handleComponentTagRename(this, 'auro-menu');
4429
-
4430
- this.addEventListener('keydown', this.handleKeyDown);
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
- updated(changedProperties) {
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
- if (changedProperties.has('value')) {
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
- if (changedProperties.has('disabled')) {
4443
- const options = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
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
- for (const element of options) {
4446
- element.disabled = this.disabled;
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
- * @private
4453
- * @param {Object} option - The menuoption to check for interactive state.
4454
- * @returns {Boolean} Returns true if the option is interactive.
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
- * @private
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
- // Global, case-insensitive, unicode matching regex pattern
4471
- const regexWord = new RegExp(escapedWord, 'giu');
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
- this.items.forEach((item) => {
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
- item.innerHTML = nestingSpacerBundle + item.textContent.replace(regexWord, (match) => `<strong>${match}</strong>`);
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
- * Reset the menu and all options.
4473
+ * @private Function that determines state of aria-hidden
4486
4474
  */
4487
- resetOptionsStates() {
4488
- this.optionSelected = undefined;
4489
- if (this.items) {
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
- this.value = option.value;
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
- this.dispatchEvent(new CustomEvent('auroMenu-selectedOption', {
4526
- bubbles: true,
4527
- cancelable: false,
4528
- composed: true,
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
- if (this.items[this.index] && !this.items[this.index].hasAttribute('disabled')) {
4541
- this.resetOptionsStates();
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
- // only handle options that are not disabled, hidden or static
4547
- if (option && this.optionInteractive(option)) {
4548
- // fire custom event if defined otherwise make selection
4549
- if (option.hasAttribute('event')) {
4550
- this.dispatchEvent(new CustomEvent(option.getAttribute('event'), {
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
- // this event needs to be removed after select and combobox are updated to use the new standard name
4557
- this.dispatchEvent(new CustomEvent('auroMenuCustomEventFired', {
4558
- bubbles: true,
4559
- cancelable: false,
4560
- composed: true,
4561
- }));
4526
+ // build the component class
4527
+ class BaseIcon extends AuroElement {
4528
+ constructor() {
4529
+ super();
4530
+ this.onDark = false;
4531
+ }
4562
4532
 
4563
- this.dispatchEvent(new CustomEvent('auroMenu-customEventFired', {
4564
- bubbles: true,
4565
- cancelable: false,
4566
- composed: true,
4567
- }));
4568
- } else {
4569
- this.handleLocalSelectState(option);
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
- this.notifySelectionChange();
4552
+ static get styles() {
4553
+ return i$b`
4554
+ ${styleCss}
4555
+ `;
4576
4556
  }
4577
4557
 
4578
4558
  /**
4579
- * Manage ArrowDown, ArrowUp and Enter keyboard events.
4559
+ * Async function to fetch requested icon from npm CDN.
4580
4560
  * @private
4581
- * @param {Object} event - Event object from the browser.
4561
+ * @param {string} category - Icon category.
4562
+ * @param {string} name - Icon name.
4563
+ * @returns {SVGElement} DOM - Ready HTML to be appended.
4582
4564
  */
4583
- handleKeyDown(event) {
4584
- event.preventDefault();
4565
+ async fetchIcon(category, name) {
4566
+ let iconHTML = '';
4585
4567
 
4586
- // With ArrowDown/ArrowUp events, pass new value to selectNextItem()
4587
- // With Enter event, set value and apply attrs
4588
- switch (event.key) {
4589
- case "ArrowDown":
4590
- this.selectNextItem('down');
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
- case "ArrowUp":
4594
- this.selectNextItem('up');
4595
- break;
4574
+ const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
4596
4575
 
4597
- case "Enter":
4598
- this.makeSelection();
4599
- break;
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
- * Initializes all menu options in the DOM. This must be re-run every time the options are changed.
4605
- * @private
4606
- */
4607
- initItems() {
4608
- this.items = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
4609
- this.handleNoCheckmarkAttr();
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
- * Sets the index value of the selected item or first non-disabled menuoption.
4640
+ * Internal Defaults.
4614
4641
  * @private
4642
+ * @returns {void}
4615
4643
  */
4616
- getSelectedIndex() {
4617
- // find the first `selected` and not `disabled`, `hidden` or `static` option
4618
- const index = this.items.findIndex((option) => option.hasAttribute('selected') && this.optionInteractive(option));
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
- if (index >= 0) {
4621
- this.index = index;
4622
- this.makeSelection();
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
- * Using value of current this.index evaluates index
4628
- * of next :focus to set based on array of this.items ignoring items
4629
- * with disabled attr.
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
- selectNextItem(moveDirection) {
4636
- if (this.index >= 0) {
4637
- this.items[this.index].classList.remove('active');
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
- // check if new index is disabled, static or hidden, if so, execute again
4658
- if (!this.optionInteractive(this.items[this.index])) {
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
- if (this.items[this.index].hasAttribute('hidden') || this.items[this.index].hasAttribute('disabled')) {
4668
- this.selectNextItem(moveDirection);
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
- * Used for applying indentation to each level of nested menu.
4677
- * @private
4678
- * @param {String} menu - Root level menu object.
4767
+ * @returns {void} Exposes CSS parts for styling from parent components.
4679
4768
  */
4680
- handleNestedMenus(menu) {
4681
- const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu');
4769
+ exposeCssParts() {
4770
+ this.setAttribute('exportparts', 'svg:iconSvg');
4771
+ }
4682
4772
 
4683
- if (nestedMenus.length === 0) {
4684
- return;
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
- nestedMenus.forEach((nestedMenu) => {
4688
- const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption');
4780
+ const classes = {
4781
+ 'label': this.label
4782
+ };
4689
4783
 
4690
- options.forEach((option) => {
4691
- option.innerHTML = this.nestingSpacer + option.innerHTML;
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
- this.handleNestedMenus(nestedMenu);
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
- this.index = undefined;
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
- if (this.value && this.value.length > 0) {
4712
- for (let index = 0; index < this.items.length; index += 1) {
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
- // this event needs to be removed after select and combobox are updated to use the new standard name
4724
- this.dispatchEvent(new CustomEvent('auroMenuSelectValueFailure', {
4725
- bubbles: true,
4726
- cancelable: false,
4727
- composed: true,
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
- this.dispatchEvent(new CustomEvent('auroMenu-selectValueFailure', {
4731
- bubbles: true,
4732
- cancelable: false,
4733
- composed: true,
4734
- }));
4735
- } else {
4736
- this.makeSelection();
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
- } else {
4739
- this.resetOptionsStates();
4870
+ };
4871
+ }
4740
4872
 
4741
- this.dispatchEvent(new CustomEvent('auroMenu-selectValueReset', {
4742
- bubbles: true,
4743
- cancelable: false,
4744
- composed: true,
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
- * Used to make the active state for options follow mouseover.
4751
- * @param {Number} index - Index of the menuoption that will be made active.
4752
- * @private
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
- updateActiveOption(index) {
4755
- this.items.forEach((item) => {
4756
- item.classList.remove('active');
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
- this.dispatchEvent(new CustomEvent('auroMenuActivatedOption', {
4762
- bubbles: true,
4763
- cancelable: false,
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.dispatchEvent(new CustomEvent('auroMenu-activatedOption', {
4769
- bubbles: true,
4770
- cancelable: false,
4771
- composed: true,
4772
- detail: this.items[index]
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
- * Used to only make a selection when a menuoption is receiving a mousedown event.
4778
- * @param {Event} evt - Mousedown event.
4779
- * @private
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
- * Used for @slotchange event on slotted element.
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
- handleSlotItems() {
4792
- // Determine if this is the root of the menu/submenu layout.
4793
- if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
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
- // If this is the root menu (not a nested menu) handle events, states and styling.
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
- this.addEventListener('keydown', this.handleKeyDown);
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 x$1`
4821
- <slot @slotchange=${this.handleSlotItems}></slot>
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