@aurodesignsystem/auro-formkit 1.6.0-beta.5 → 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 (201) 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 -0
  5. package/.turbo/cache/11079d2746265545.tar.zst +0 -0
  6. package/.turbo/cache/115c4b73a12f5275-meta.json +1 -0
  7. package/.turbo/cache/144e8e78657bf800-meta.json +1 -1
  8. package/.turbo/cache/18939b2c7c83b163-meta.json +1 -1
  9. package/.turbo/cache/1de685df0eaa39c8-meta.json +1 -1
  10. package/.turbo/cache/1ec139dcf090d547-meta.json +1 -0
  11. package/.turbo/cache/1f53ce3a28c56cdf-meta.json +1 -1
  12. package/.turbo/cache/23bf100310bd9f5a-meta.json +1 -1
  13. package/.turbo/cache/2900e7ec28e1488f-meta.json +1 -1
  14. package/.turbo/cache/296074aadfa2f8c9-meta.json +1 -1
  15. package/.turbo/cache/296074aadfa2f8c9.tar.zst +0 -0
  16. package/.turbo/cache/29e29355bf6fb4fd-meta.json +1 -1
  17. package/.turbo/cache/2cbcbc4a17387253-meta.json +1 -0
  18. package/.turbo/cache/2cbcbc4a17387253.tar.zst +0 -0
  19. package/.turbo/cache/2f6c898fbb51e995-meta.json +1 -0
  20. package/.turbo/cache/2f6c898fbb51e995.tar.zst +0 -0
  21. package/.turbo/cache/3073b96f6e4d867c-meta.json +1 -1
  22. package/.turbo/cache/33466ea2930c3714-meta.json +1 -1
  23. package/.turbo/cache/3426941a74b0731e-meta.json +1 -0
  24. package/.turbo/cache/3426941a74b0731e.tar.zst +0 -0
  25. package/.turbo/cache/38b0799e2f7e62c5-meta.json +1 -0
  26. package/.turbo/cache/38b0799e2f7e62c5.tar.zst +0 -0
  27. package/.turbo/cache/3fbc89f461c495db-meta.json +1 -0
  28. package/.turbo/cache/3fbc89f461c495db.tar.zst +0 -0
  29. package/.turbo/cache/451e562c76f74ec6-meta.json +1 -1
  30. package/.turbo/cache/4520919609c97850-meta.json +1 -1
  31. package/.turbo/cache/452908d0b0b676bc-meta.json +1 -1
  32. package/.turbo/cache/48c197e39ed31fd2-meta.json +1 -1
  33. package/.turbo/cache/48c197e39ed31fd2.tar.zst +0 -0
  34. package/.turbo/cache/5058ecc7f1e34496-meta.json +1 -1
  35. package/.turbo/cache/5a66a99aa1344401-meta.json +1 -1
  36. package/.turbo/cache/5b66ce21630716cc-meta.json +1 -1
  37. package/.turbo/cache/6002b76d50b8d1ff-meta.json +1 -0
  38. package/.turbo/cache/6002b76d50b8d1ff.tar.zst +0 -0
  39. package/.turbo/cache/627e964e19b2bda5-meta.json +1 -0
  40. package/.turbo/cache/{3ac4a22a21bdc2be.tar.zst → 627e964e19b2bda5.tar.zst} +0 -0
  41. package/.turbo/cache/6907ebaae4f3a96b-meta.json +1 -0
  42. package/.turbo/cache/6907ebaae4f3a96b.tar.zst +0 -0
  43. package/.turbo/cache/6f7175be597945f7-meta.json +1 -0
  44. package/.turbo/cache/6f7175be597945f7.tar.zst +0 -0
  45. package/.turbo/cache/70d7b72f15ee97a4-meta.json +1 -1
  46. package/.turbo/cache/7cfdc01c415c836c-meta.json +1 -0
  47. package/.turbo/cache/7cfdc01c415c836c.tar.zst +0 -0
  48. package/.turbo/cache/897b0d8a0c301207-meta.json +1 -1
  49. package/.turbo/cache/8b7cdb9a0d4c3112-meta.json +1 -1
  50. package/.turbo/cache/8e1f402b247ebed6-meta.json +1 -1
  51. package/.turbo/cache/8e1f402b247ebed6.tar.zst +0 -0
  52. package/.turbo/cache/90b8d9ccef5e09aa-meta.json +1 -0
  53. package/.turbo/cache/90b8d9ccef5e09aa.tar.zst +0 -0
  54. package/.turbo/cache/936bccb44ade3650-meta.json +1 -0
  55. package/.turbo/cache/936bccb44ade3650.tar.zst +0 -0
  56. package/.turbo/cache/94bcc4c6536ada9d-meta.json +1 -0
  57. package/.turbo/cache/94bcc4c6536ada9d.tar.zst +0 -0
  58. package/.turbo/cache/990b9def0e83d33c-meta.json +1 -0
  59. package/.turbo/cache/990b9def0e83d33c.tar.zst +0 -0
  60. package/.turbo/cache/a532f4b8302ca13e-meta.json +1 -0
  61. package/.turbo/cache/a532f4b8302ca13e.tar.zst +0 -0
  62. package/.turbo/cache/a7bf477bbdabc7bc-meta.json +1 -1
  63. package/.turbo/cache/a90aa34f427a2f62-meta.json +1 -1
  64. package/.turbo/cache/aedda428051043c4-meta.json +1 -0
  65. package/.turbo/cache/aedda428051043c4.tar.zst +0 -0
  66. package/.turbo/cache/afc38ab505ef6dbb-meta.json +1 -0
  67. package/.turbo/cache/{2ca214d032893e74.tar.zst → afc38ab505ef6dbb.tar.zst} +0 -0
  68. package/.turbo/cache/b1ed317b29e85c9d-meta.json +1 -0
  69. package/.turbo/cache/b1ed317b29e85c9d.tar.zst +0 -0
  70. package/.turbo/cache/b61416daf63fbaad-meta.json +1 -1
  71. package/.turbo/cache/b76edfbd1c076b0a-meta.json +1 -0
  72. package/.turbo/cache/b76edfbd1c076b0a.tar.zst +0 -0
  73. package/.turbo/cache/b9463532618cdc61-meta.json +1 -1
  74. package/.turbo/cache/bb3afea40c91e8ba-meta.json +1 -1
  75. package/.turbo/cache/c4df38a7e2cc767a-meta.json +1 -0
  76. package/.turbo/cache/{77bf3068f493ef24.tar.zst → c4df38a7e2cc767a.tar.zst} +0 -0
  77. package/.turbo/cache/c63dc7b6157da70b-meta.json +1 -1
  78. package/.turbo/cache/c8b63b6e8a190eb9-meta.json +1 -1
  79. package/.turbo/cache/d35b1eee9f2881af-meta.json +1 -1
  80. package/.turbo/cache/d5188c0fbe45d578-meta.json +1 -1
  81. package/.turbo/cache/e4b3ec56d4ae56ba-meta.json +1 -1
  82. package/.turbo/cache/e6f030eddf6fbf4e-meta.json +1 -1
  83. package/.turbo/cache/ff7e6d09efd93145-meta.json +1 -1
  84. package/.turbo/cache/ff7e6d09efd93145.tar.zst +0 -0
  85. package/CHANGELOG.md +26 -0
  86. package/components/checkbox/.turbo/turbo-build.log +3 -3
  87. package/components/checkbox/.turbo/turbo-bundler.log +3 -3
  88. package/components/combobox/.turbo/turbo-build.log +6 -3
  89. package/components/combobox/demo/api.html +1 -0
  90. package/components/combobox/demo/api.js +2 -0
  91. package/components/combobox/demo/api.md +73 -0
  92. package/components/combobox/demo/api.min.js +966 -833
  93. package/components/combobox/demo/index.min.js +931 -837
  94. package/components/combobox/dist/auro-combobox.d.ts +20 -0
  95. package/components/combobox/dist/auro-combobox.d.ts.map +1 -1
  96. package/components/combobox/dist/index.js +69 -27
  97. package/components/combobox/src/auro-combobox.js +60 -23
  98. package/components/counter/.turbo/turbo-build.log +3 -3
  99. package/components/counter/.turbo/turbo-bundler.log +3 -3
  100. package/components/counter/demo/api.md +1053 -0
  101. package/components/datepicker/demo/api.min.js +10 -4
  102. package/components/datepicker/demo/index.min.js +10 -4
  103. package/components/datepicker/dist/auro-datepicker.d.ts.map +1 -1
  104. package/components/datepicker/dist/index.js +10 -4
  105. package/components/datepicker/src/auro-datepicker.js +1 -0
  106. package/components/dropdown/.turbo/turbo-build.log +7 -7
  107. package/components/dropdown/.turbo/turbo-bundler.log +3 -3
  108. package/components/dropdown/demo/api.html +2 -0
  109. package/components/dropdown/demo/api.md +47 -41
  110. package/components/dropdown/demo/api.min.js +9 -4
  111. package/components/dropdown/demo/index.md +97 -53
  112. package/components/dropdown/demo/index.min.js +9 -4
  113. package/components/dropdown/dist/auro-dropdown.d.ts +7 -2
  114. package/components/dropdown/dist/auro-dropdown.d.ts.map +1 -1
  115. package/components/dropdown/dist/index.js +9 -4
  116. package/components/dropdown/src/auro-dropdown.js +7 -2
  117. package/components/dropdown/src/styles/bibStyles-css.js +1 -1
  118. package/components/dropdown/src/styles/bibStyles.css +2 -2
  119. package/components/dropdown/src/styles/bibStyles.scss +2 -2
  120. package/components/dropdown/src/styles/style-css.js +1 -1
  121. package/components/dropdown/src/styles/style.css +6 -0
  122. package/components/dropdown/src/styles/style.scss +6 -0
  123. package/components/form/.turbo/turbo-build.log +3 -3
  124. package/components/form/.turbo/turbo-bundler.log +3 -3
  125. package/components/input/.turbo/turbo-build.log +3 -3
  126. package/components/input/.turbo/turbo-bundler.log +3 -3
  127. package/components/menu/.turbo/turbo-build.log +6 -3
  128. package/components/menu/.turbo/turbo-bundler.log +3 -3
  129. package/components/menu/demo/api.html +2 -0
  130. package/components/menu/demo/api.js +2 -0
  131. package/components/menu/demo/api.md +164 -22
  132. package/components/menu/demo/api.min.js +912 -853
  133. package/components/menu/demo/index.min.js +905 -853
  134. package/components/menu/dist/auro-menu.d.ts +28 -2
  135. package/components/menu/dist/auro-menu.d.ts.map +1 -1
  136. package/components/menu/dist/auro-menuoption.d.ts +1 -1
  137. package/components/menu/dist/index.js +905 -853
  138. package/components/menu/src/auro-menu.js +57 -7
  139. package/components/menu/src/auro-menuoption.js +1 -1
  140. package/components/menu/src/styles/style-menu-css.js +1 -1
  141. package/components/menu/src/styles/style-menu.css +21 -3
  142. package/components/menu/src/styles/style-menu.scss +25 -3
  143. package/components/radio/.turbo/turbo-build.log +3 -3
  144. package/components/radio/.turbo/turbo-bundler.log +3 -3
  145. package/components/select/.turbo/turbo-build.log +6 -3
  146. package/components/select/demo/api.html +1 -0
  147. package/components/select/demo/api.js +2 -0
  148. package/components/select/demo/api.md +66 -0
  149. package/components/select/demo/api.min.js +938 -816
  150. package/components/select/demo/index.min.js +905 -815
  151. package/components/select/dist/auro-select.d.ts +19 -0
  152. package/components/select/dist/auro-select.d.ts.map +1 -1
  153. package/components/select/dist/index.js +42 -4
  154. package/components/select/src/auro-select.js +33 -0
  155. package/package.json +1 -1
  156. package/packages/build-tools/src/docProcessor.mjs +4 -4
  157. package/packages/build-tools/src/kitDocProcessor.mjs +4 -4
  158. package/.turbo/cache/01aa76a50fa4c8ad-meta.json +0 -1
  159. package/.turbo/cache/01aa76a50fa4c8ad.tar.zst +0 -0
  160. package/.turbo/cache/05be1236a4cd5e72-meta.json +0 -1
  161. package/.turbo/cache/05be1236a4cd5e72.tar.zst +0 -0
  162. package/.turbo/cache/1f3b6e5b310ff590-meta.json +0 -1
  163. package/.turbo/cache/1f3b6e5b310ff590.tar.zst +0 -0
  164. package/.turbo/cache/2ca214d032893e74-meta.json +0 -1
  165. package/.turbo/cache/2dd00eb6e255bd02-meta.json +0 -1
  166. package/.turbo/cache/2dd00eb6e255bd02.tar.zst +0 -0
  167. package/.turbo/cache/3792d285b464b3e6-meta.json +0 -1
  168. package/.turbo/cache/3792d285b464b3e6.tar.zst +0 -0
  169. package/.turbo/cache/38030191e9c3ecd0-meta.json +0 -1
  170. package/.turbo/cache/38030191e9c3ecd0.tar.zst +0 -0
  171. package/.turbo/cache/3ac4a22a21bdc2be-meta.json +0 -1
  172. package/.turbo/cache/54475627b302de03-meta.json +0 -1
  173. package/.turbo/cache/54475627b302de03.tar.zst +0 -0
  174. package/.turbo/cache/5d064e768a262314-meta.json +0 -1
  175. package/.turbo/cache/5d064e768a262314.tar.zst +0 -0
  176. package/.turbo/cache/5f324af6052902f3-meta.json +0 -1
  177. package/.turbo/cache/6bc6e817c13e2b9d-meta.json +0 -1
  178. package/.turbo/cache/6bc6e817c13e2b9d.tar.zst +0 -0
  179. package/.turbo/cache/6f2c238248445944-meta.json +0 -1
  180. package/.turbo/cache/754a6b5c5ce1ed00-meta.json +0 -1
  181. package/.turbo/cache/77bf3068f493ef24-meta.json +0 -1
  182. package/.turbo/cache/7ddb7ace73fe6ec2-meta.json +0 -1
  183. package/.turbo/cache/7ddb7ace73fe6ec2.tar.zst +0 -0
  184. package/.turbo/cache/8a47fd250364f95a-meta.json +0 -1
  185. package/.turbo/cache/8a47fd250364f95a.tar.zst +0 -0
  186. package/.turbo/cache/9135f474c69d1b3c-meta.json +0 -1
  187. package/.turbo/cache/9135f474c69d1b3c.tar.zst +0 -0
  188. package/.turbo/cache/9a7ab914e08ce75f-meta.json +0 -1
  189. package/.turbo/cache/9a7ab914e08ce75f.tar.zst +0 -0
  190. package/.turbo/cache/ae152fd876a6f549-meta.json +0 -1
  191. package/.turbo/cache/ae152fd876a6f549.tar.zst +0 -0
  192. package/.turbo/cache/d8bd6f80733c28af-meta.json +0 -1
  193. package/.turbo/cache/d8bd6f80733c28af.tar.zst +0 -0
  194. package/.turbo/cache/dce6f67be2b63c18-meta.json +0 -1
  195. package/.turbo/cache/dce6f67be2b63c18.tar.zst +0 -0
  196. package/.turbo/cache/dfe3a7b21c7fcb08-meta.json +0 -1
  197. package/.turbo/cache/dfe3a7b21c7fcb08.tar.zst +0 -0
  198. package/.turbo/cache/f8664d3dce006bdf-meta.json +0 -1
  199. package/.turbo/cache/f8664d3dce006bdf.tar.zst +0 -0
  200. /package/.turbo/cache/{6f2c238248445944.tar.zst → 115c4b73a12f5275.tar.zst} +0 -0
  201. /package/.turbo/cache/{5f324af6052902f3.tar.zst → 1ec139dcf090d547.tar.zst} +0 -0
@@ -32,6 +32,12 @@ function auroMenuCustomEventExample() {
32
32
  }
33
33
  }
34
34
 
35
+ function auroMenuLoadingExample() {
36
+ document.querySelector("#loadingExampleToggleButton").addEventListener("click", () => {
37
+ document.querySelectorAll("#loadingExampleTable auro-menu").forEach(menu => menu.toggleAttribute("loading"));
38
+ });
39
+ }
40
+
35
41
  /**
36
42
  * @license
37
43
  * Copyright 2019 Google LLC
@@ -58,7 +64,7 @@ const t$1=globalThis,i$3=t$1.trustedTypes,s$1=i$3?i$3.createPolicy("lit-html",{c
58
64
  * SPDX-License-Identifier: BSD-3-Clause
59
65
  */class r extends b{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0;}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=B(s,this.renderRoot,this.renderOptions);}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0);}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1);}render(){return T}}r._$litElement$=!0,r["finalized"]=!0,globalThis.litElementHydrateSupport?.({LitElement:r});const i$2=globalThis.litElementPolyfillSupport;i$2?.({LitElement:r});(globalThis.litElementVersions??=[]).push("4.1.1");
60
66
 
61
- var styleCss$2 = i$5`: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}`;
67
+ var styleCss$2 = i$5`: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)}`;
62
68
 
63
69
  var colorCss$2 = i$5`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color) !important}`;
64
70
 
@@ -134,1074 +140,1126 @@ class AuroLibraryRuntimeUtils {
134
140
  }
135
141
  }
136
142
 
137
- /**
138
- * @license
139
- * Copyright 2020 Google LLC
140
- * SPDX-License-Identifier: BSD-3-Clause
141
- */
142
- const a=Symbol.for(""),o$1=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i$1=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=!1;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$1(i));)c+=s+r[++$],f=!0;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u;}return t(r,...e)},u=n(x);
143
-
144
- var styleCss$1 = i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
145
-
146
- var colorCss$1 = i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color) !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)}`;
147
-
148
- // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
143
+ // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
149
144
  // See LICENSE in the project root for license information.
150
145
 
151
146
 
152
- class AuroDependencyVersioning {
153
-
154
- /**
155
- * Generates a unique string to be used for child auro element naming.
156
- * @private
157
- * @param {string} baseName - Defines the first part of the unique element name.
158
- * @param {string} version - Version of the component that will be appended to the baseName.
159
- * @returns {string} - Unique string to be used for naming.
160
- */
161
- generateElementName(baseName, version) {
162
- let result = baseName;
163
-
164
- result += '-';
165
- result += version.replace(/[.]/g, '_');
166
-
167
- return result;
168
- }
169
-
170
- /**
171
- * Generates a unique string to be used for child auro element naming.
172
- * @param {string} baseName - Defines the first part of the unique element name.
173
- * @param {string} version - Version of the component that will be appended to the baseName.
174
- * @returns {string} - Unique string to be used for naming.
175
- */
176
- generateTag(baseName, version, tagClass) {
177
- const elementName = this.generateElementName(baseName, version);
178
- const tag = i$1`${s(elementName)}`;
179
-
180
- if (!customElements.get(elementName)) {
181
- customElements.define(elementName, class extends tagClass {});
182
- }
183
-
184
- return tag;
185
- }
186
- }
187
-
147
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
188
148
  /**
189
- * @license
190
- * Copyright 2017 Google LLC
191
- * SPDX-License-Identifier: BSD-3-Clause
149
+ * The auro-menu element provides users a way to select from a list of options.
150
+ * @attr {Object} optionSelected - Specifies the current selected menuOption.
151
+ * @attr {String} matchWord - Specifies a string used to highlight matched string parts in options.
152
+ * @attr {Boolean} disabled - When true, the entire menu and all options are disabled;
153
+ * @attr {Boolean} noCheckmark - When true, selected option will not show the checkmark.
154
+ * @attr {Boolean} loading - When true, displays a loading state using the loadingIcon and loadingText slots if provided.
155
+ * @attr {String} value - Value selected for the menu.
156
+ * @prop {Boolean} hasLoadingPlaceholder - Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state.
157
+ * @event auroMenu-selectedOption - Notifies that a new menuoption selection has been made.
158
+ * @event selectedOption - (DEPRECATED) Notifies that a new menuoption selection has been made.
159
+ * @event auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
160
+ * @event auroMenuActivatedOption - (DEPRECATED) Notifies that a menuoption has been made `active`.
161
+ * @event auroMenu-selectValueFailure - Notifies that a an attempt to select a menuoption by matching a value has failed.
162
+ * @event auroMenuSelectValueFailure - (DEPRECATED) Notifies that a an attempt to select a menuoption by matching a value has failed.
163
+ * @event auroMenu-customEventFired - Notifies that a custom event has been fired.
164
+ * @event auroMenuCustomEventFired - (DEPRECATED) Notifies that a custom event has been fired.
165
+ * @event auroMenu-selectValueReset - Notifies that the component value has been reset.
166
+ * @event auroMenu-loadingChange - Notifies when the loading attribute is changed.
167
+ * @slot loadingText - Text to show while loading attribute is set
168
+ * @slot loadingIcon - Icon to show while loading attribute is set
169
+ * @slot - Slot for insertion of menu options.
192
170
  */
193
- 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)}}
194
171
 
195
- /**
196
- * @license
197
- * Copyright 2018 Google LLC
198
- * SPDX-License-Identifier: BSD-3-Clause
199
- */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}});
172
+ /* eslint-disable no-magic-numbers, max-lines */
200
173
 
201
- /**
202
- * @license
203
- * Copyright 2018 Google LLC
204
- * SPDX-License-Identifier: BSD-3-Clause
205
- */const o=o=>o??E;
174
+ class AuroMenu extends r {
175
+ constructor() {
176
+ super();
177
+ this.value = undefined;
178
+ this.optionSelected = undefined;
179
+ this.matchWord = undefined;
180
+ this.noCheckmark = false;
181
+ this.optionActive = undefined;
182
+ this.loading = false;
206
183
 
207
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
208
- // See LICENSE in the project root for license information.
184
+ /**
185
+ * @private
186
+ */
187
+ this.rootMenu = true;
209
188
 
189
+ /**
190
+ * @private
191
+ */
192
+ this.runtimeUtils = new AuroLibraryRuntimeUtils();
210
193
 
211
- /**
212
- * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
213
- * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
214
- * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
215
- */
194
+ /**
195
+ * @private
196
+ */
197
+ this.nestingSpacer = '<span class="nestingSpacer"></span>';
216
198
 
217
- class AuroElement extends r {
199
+ /**
200
+ * @private
201
+ */
202
+ this.loadingSlots = null;
203
+ }
218
204
 
219
- // function to define props used within the scope of this component
220
205
  static get properties() {
221
206
  return {
222
- hidden: { type: Boolean,
223
- reflect: true },
224
- hiddenVisually: { type: Boolean,
225
- reflect: true },
226
- hiddenAudible: { type: Boolean,
227
- reflect: true },
207
+ noCheckmark: {
208
+ type: Boolean,
209
+ reflect: true
210
+ },
211
+ disabled: {
212
+ type: Boolean,
213
+ reflect: true
214
+ },
215
+ loading: {
216
+ type: Boolean,
217
+ reflect: true
218
+ },
219
+ optionSelected: { type: Object },
220
+ optionActive: { type: Object },
221
+ matchWord: { type: String },
222
+ value: { type: String }
228
223
  };
229
224
  }
230
225
 
226
+ static get styles() {
227
+ return [
228
+ styleCss$2,
229
+ colorCss$2,
230
+ tokensCss$1
231
+ ];
232
+ }
233
+
231
234
  /**
232
- * @private Function that determines state of aria-hidden
235
+ * This will register this element with the browser.
236
+ * @param {string} [name="auro-menu"] - The name of element that you want to register to.
237
+ *
238
+ * @example
239
+ * AuroMenu.register("custom-menu") // this will register this element to <custom-menu/>
240
+ *
233
241
  */
234
- hideAudible(value) {
235
- if (value) {
236
- return 'true'
237
- }
238
-
239
- return 'false'
242
+ static register(name = "auro-menu") {
243
+ AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroMenu);
240
244
  }
241
- }
242
-
243
- 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>"};
244
245
 
245
- /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
246
+ /**
247
+ * Passes the noCheckmark attribute to all nested auro-menuoptions.
248
+ * @private
249
+ * @returns {void}
250
+ */
251
+ handleNoCheckmarkAttr() {
252
+ if (this.noCheckmark) {
253
+ const menus = this.querySelectorAll('auro-menu, [auro-menu]');
246
254
 
247
- const _fetchMap = new Map();
255
+ menus.forEach((menu) => {
256
+ menu.setAttribute('noCheckmark', '');
257
+ });
248
258
 
249
- /**
250
- * A callback to parse Response body.
251
- *
252
- * @callback ResponseParser
253
- * @param {Fetch.Response} response
254
- * @returns {Promise}
255
- */
259
+ const options = this.querySelectorAll('auro-menuoption, [auro-menuoption]');
256
260
 
257
- /**
258
- * A minimal in-memory map to de-duplicate Fetch API media requests.
259
- *
260
- * @param {String} uri
261
- * @param {Object} [options={}]
262
- * @param {ResponseParser} [options.responseParser=(response) => response.text()]
263
- * @returns {Promise}
264
- */
265
- const cacheFetch = (uri, options = {}) => {
266
- const responseParser = options.responseParser || ((response) => response.text());
267
- if (!_fetchMap.has(uri)) {
268
- _fetchMap.set(uri, fetch(uri).then(responseParser));
261
+ options.forEach((option) => {
262
+ option.setAttribute('noCheckmark', '');
263
+ });
264
+ }
269
265
  }
270
- return _fetchMap.get(uri);
271
- };
272
266
 
273
- var styleCss = i$5`*,*: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}`;
267
+ firstUpdated() {
268
+ // Add the tag name as an attribute if it is different than the component name
269
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-menu');
274
270
 
275
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
276
- // See LICENSE in the project root for license information.
271
+ this.addEventListener('keydown', this.handleKeyDown);
277
272
 
273
+ this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
274
+ }
278
275
 
279
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
280
- /**
281
- * @attr {Boolean} onDark - Set value for on-dark version of auro-icon
282
- * @slot - Hidden from visibility, used for a11y if icon description is needed
283
- */
276
+ updated(changedProperties) {
277
+ if (changedProperties.has('matchWord')) {
278
+ this.markOptions();
279
+ }
284
280
 
285
- // build the component class
286
- class BaseIcon extends AuroElement {
287
- constructor() {
288
- super();
289
- this.onDark = false;
290
- }
281
+ if (changedProperties.has('value')) {
282
+ this.selectByValue(this.value);
283
+ }
291
284
 
292
- // function to define props used within the scope of this component
293
- static get properties() {
294
- return {
295
- ...super.properties,
296
- onDark: {
297
- type: Boolean,
298
- reflect: true
299
- },
285
+ if (changedProperties.has('disabled')) {
286
+ const options = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
300
287
 
301
- /**
302
- * @private
303
- */
304
- svg: {
305
- attribute: false,
306
- reflect: true
288
+ for (const element of options) {
289
+ element.disabled = this.disabled;
307
290
  }
308
- };
309
- }
291
+ }
310
292
 
311
- static get styles() {
312
- return i$5`
313
- ${styleCss}
314
- `;
293
+ if (changedProperties.has('loading')) {
294
+ const event = new CustomEvent("auroMenu-loadingChange", {
295
+ detail: {
296
+ loading: this.loading,
297
+ hasLoadingPlaceholder:
298
+ this.hasLoadingPlaceholder
299
+ }
300
+ });
301
+ this.setAttribute("aria-busy", this.hasAttribute("loading"));
302
+ this.dispatchEvent(event);
303
+ }
315
304
  }
316
305
 
317
306
  /**
318
- * Async function to fetch requested icon from npm CDN.
319
307
  * @private
320
- * @param {string} category - Icon category.
321
- * @param {string} name - Icon name.
322
- * @returns {SVGElement} DOM - Ready HTML to be appended.
308
+ * @param {Object} option - The menuoption to check for interactive state.
309
+ * @returns {Boolean} Returns true if the option is interactive.
323
310
  */
324
- async fetchIcon(category, name) {
325
- let iconHTML = '';
326
-
327
- if (category === 'logos') {
328
- iconHTML = await cacheFetch(`${this.uri}/${category}/${name}.svg`);
329
- } else {
330
- iconHTML = await cacheFetch(`${this.uri}/icons/${category}/${name}.svg`);
331
- }
311
+ optionInteractive(option) {
312
+ return !option.hasAttribute('hidden') && !option.hasAttribute('disabled') && !option.hasAttribute('static');
313
+ }
332
314
 
333
- const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
315
+ /**
316
+ * @private
317
+ * @returns {void} When called will update the DOM with visible suggest text matches.
318
+ */
319
+ markOptions() {
320
+ if (this.items && this.items.length > 0 && (this.matchWord && this.matchWord.length > 0)) {
334
321
 
335
- return dom.body.querySelector('svg');
336
- }
322
+ // Escape special regex characters
323
+ const escapedWord = this.matchWord.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
337
324
 
338
- // lifecycle function
339
- async firstUpdated() {
340
- if (!this.customSvg) {
341
- const svg = await this.fetchIcon(this.category, this.name);
325
+ // Global, case-insensitive, unicode matching regex pattern
326
+ const regexWord = new RegExp(escapedWord, 'giu');
342
327
 
343
- if (svg) {
344
- this.svg = svg;
345
- } else if (!svg) {
346
- const penDOM = new DOMParser().parseFromString(error.svg, 'text/html');
328
+ this.items.forEach((item) => {
329
+ if (this.optionInteractive(item) && !item.hasAttribute('persistent')) {
330
+ const nested = item.querySelectorAll('.nestingSpacer');
331
+ const nestingSpacerBundle = [...nested].map(() => this.nestingSpacer).join('');
347
332
 
348
- this.svg = penDOM.body.firstChild;
349
- }
333
+ item.innerHTML = nestingSpacerBundle + item.textContent.replace(regexWord, (match) => `<strong>${match}</strong>`);
334
+ }
335
+ });
350
336
  }
351
337
  }
352
- }
353
-
354
- var tokensCss = i$5`: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)}`;
355
-
356
- var colorCss = i$5`: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)}`;
357
-
358
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
359
- // See LICENSE in the project root for license information.
360
-
361
-
362
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
363
- /**
364
- * auro-icon provides users a way to use the Auro Icons by simply passing in the category and name.
365
- *
366
- * @attr {String} category - The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
367
- * @attr {String} name - The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage
368
- * @attr {Boolean} customColor - Removes primary selector.
369
- * @attr {Boolean} customSvg - When true, auro-icon will render a custom SVG inside the default slot.
370
- * @attr {Boolean} label - Exposes content in slot as icon label.
371
- * @attr {Boolean} primary - DEPRECATED: Sets the icon to use the baseline primary icon style.
372
- * @attr {Boolean} accent - Sets the icon to use the accent style.
373
- * @attr {Boolean} emphasis - Sets the icon to use the emphasis style.
374
- * @attr {Boolean} disabled - Sets the icon to use the disabled style.
375
- * @attr {Boolean} error - Sets the icon to use the error style.
376
- * @attr {Boolean} info - Sets the icon to use the info style.
377
- * @attr {Boolean} secondary - Sets the icon to use the secondary style.
378
- * @attr {Boolean} tertiary - Sets the icon to use the tertiary style.
379
- * @attr {Boolean} subtle - Sets the icon to use the subtle style.
380
- * @attr {Boolean} success - Sets the icon to use the success style.
381
- * @attr {Boolean} warning - Sets the icon to use the warning style.
382
- * @attr {String} ariaHidden - Set aria-hidden value. Default is `true`. Option is `false`.
383
- * @attr {String} uri - Set the uri for CDN used when fetching icons
384
- * @slot - Hidden from visibility, used for a11y if icon description is needed.
385
- * @slot svg - Used for custom SVG content.
386
- */
387
338
 
388
- // build the component class
389
- class AuroIcon extends BaseIcon {
390
- constructor() {
391
- super();
392
-
393
- this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
394
-
395
- this.privateDefaults();
339
+ /**
340
+ * Reset the menu and all options.
341
+ */
342
+ resetOptionsStates() {
343
+ this.optionSelected = undefined;
344
+ if (this.items) {
345
+ this.items.forEach((item) => {
346
+ item.classList.remove('active');
347
+ item.removeAttribute('selected');
348
+ });
349
+ }
396
350
  }
397
351
 
398
352
  /**
399
- * Internal Defaults.
353
+ * Set the attributes on the selected menuoption, the menu value and stored option.
354
+ * @param {Object} option - The menuoption to be selected.
400
355
  * @private
401
- * @returns {void}
402
356
  */
403
- privateDefaults() {
404
- this.accent = false;
405
- this.customColor = false;
406
- this.customSvg = false;
407
- this.disabled = false;
408
- this.emphasis = false;
409
- this.error = false;
410
- this.info = false;
411
- this.label = false;
412
- this.primary = false;
413
- this.secondary = false;
414
- this.subtle = false;
415
- this.success = false;
416
- this.tertiary = false;
417
- this.warning = false;
418
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
419
- }
420
-
421
- // function to define props used within the scope of this component
422
- static get properties() {
423
- return {
424
- ...super.properties,
425
- accent: {
426
- type: Boolean,
427
- reflect: true
428
- },
429
- ariaHidden: {
430
- type: String,
431
- reflect: true
432
- },
433
- category: {
434
- type: String,
435
- reflect: true
436
- },
437
- customColor: {
438
- type: Boolean
439
- },
440
- customSvg: {
441
- type: Boolean
442
- },
443
- disabled: {
444
- type: Boolean,
445
- reflect: true
446
- },
447
- emphasis: {
448
- type: Boolean,
449
- reflect: true
450
- },
451
- error: {
452
- type: Boolean,
453
- reflect: true
454
- },
455
- info: {
456
- type: Boolean,
457
- reflect: true
458
- },
459
- label: {
460
- type: Boolean,
461
- reflect: true
462
- },
463
- name: {
464
- type: String,
465
- reflect: true
466
- },
467
- primary: {
468
- type: Boolean,
469
- reflect: true
470
- },
471
- secondary: {
472
- type: Boolean,
473
- reflect: true
474
- },
475
- subtle: {
476
- type: Boolean,
477
- reflect: true
478
- },
479
- success: {
480
- type: Boolean,
481
- reflect: true
482
- },
483
- tertiary: {
484
- type: Boolean,
485
- reflect: true
486
- },
487
- uri: {
488
- type: String
489
- },
490
- warning: {
491
- type: Boolean,
492
- reflect: true
493
- }
494
- };
495
- }
357
+ handleLocalSelectState(option) {
358
+ option.setAttribute('selected', '');
359
+ option.classList.add('active');
360
+ option.ariaSelected = true;
496
361
 
497
- static get styles() {
498
- return [
499
- super.styles,
500
- i$5`${tokensCss}`,
501
- i$5`${styleCss}`,
502
- i$5`${colorCss}`
503
- ];
362
+ this.value = option.value;
363
+ this.optionSelected = option;
364
+ this.index = this.items.indexOf(option);
504
365
  }
505
366
 
506
367
  /**
507
- * This will register this element with the browser.
508
- * @param {string} [name="auro-icon"] - The name of element that you want to register to.
509
- *
510
- * @example
511
- * AuroIcon.register("custom-icon") // this will register this element to <custom-icon/>
512
- *
368
+ * Notify selection change.
369
+ * @private
370
+ * @return {void}
513
371
  */
514
- static register(name = "auro-icon") {
515
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
516
- }
517
-
518
- connectedCallback() {
519
- super.connectedCallback();
372
+ notifySelectionChange() {
373
+ // this event needs to be removed after select and combobox are updated to use the new standard name
374
+ this.dispatchEvent(new CustomEvent('selectedOption', {
375
+ bubbles: true,
376
+ cancelable: false,
377
+ composed: true,
378
+ }));
520
379
 
521
- // Add the tag name as an attribute if it is different than the component name
522
- this.runtimeUtils.handleComponentTagRename(this, 'auro-icon');
380
+ this.dispatchEvent(new CustomEvent('auroMenu-selectedOption', {
381
+ bubbles: true,
382
+ cancelable: false,
383
+ composed: true,
384
+ }));
523
385
  }
524
386
 
525
387
  /**
526
- * @returns {void} Exposes CSS parts for styling from parent components.
388
+ * Process actions for making making a menuoption selection.
527
389
  */
528
- exposeCssParts() {
529
- this.setAttribute('exportparts', 'svg:iconSvg');
530
- }
390
+ makeSelection() {
391
+ if (!this.items) {
392
+ this.initItems();
393
+ }
531
394
 
532
- // function that renders the HTML and CSS into the scope of the component
533
- render() {
534
- const a11y = {
535
- 'labelContainer': true,
536
- 'util_displayHiddenVisually': !this.label
537
- };
395
+ if (this.items[this.index] && !this.items[this.index].hasAttribute('disabled')) {
396
+ this.resetOptionsStates();
538
397
 
539
- const classes = {
540
- 'label': this.label
541
- };
542
-
543
- return x`
544
- <div
545
- class="${e(classes)}"
546
- title="${o(this.title || undefined)}">
547
- <span aria-hidden="${o(this.ariaHidden ? this.ariaHidden : true)}" part="svg">
548
- ${this.customSvg ? x`
549
- <slot name="svg"></slot>
550
- ` : x`
551
- ${this.svg}
552
- `
553
- }
554
- </span>
555
-
556
- <div class="${e(a11y)}">
557
- <slot></slot>
558
- </div>
559
- </div>
560
- `;
561
- }
562
- }
563
-
564
- var iconVersion = '6.1.1';
398
+ if (this.index >= 0) {
399
+ const option = this.items[this.index];
565
400
 
566
- 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>"};
401
+ // only handle options that are not disabled, hidden or static
402
+ if (option && this.optionInteractive(option)) {
403
+ // fire custom event if defined otherwise make selection
404
+ if (option.hasAttribute('event')) {
405
+ this.dispatchEvent(new CustomEvent(option.getAttribute('event'), {
406
+ bubbles: true,
407
+ cancelable: false,
408
+ composed: true,
409
+ }));
567
410
 
568
- // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
569
- // See LICENSE in the project root for license information.
411
+ // this event needs to be removed after select and combobox are updated to use the new standard name
412
+ this.dispatchEvent(new CustomEvent('auroMenuCustomEventFired', {
413
+ bubbles: true,
414
+ cancelable: false,
415
+ composed: true,
416
+ }));
570
417
 
418
+ this.dispatchEvent(new CustomEvent('auroMenu-customEventFired', {
419
+ bubbles: true,
420
+ cancelable: false,
421
+ composed: true,
422
+ }));
423
+ } else {
424
+ this.handleLocalSelectState(option);
425
+ }
426
+ }
427
+ }
428
+ }
571
429
 
572
- /**
573
- * The auro-menu element provides users a way to define a menu option.
574
- *
575
- * @attr {String} value - Specifies the value to be sent to a server.
576
- * @attr {String} noCheckmark - When true, selected option will not show the checkmark.
577
- * @attr {Boolean} disabled - When true specifies that the menuoption is disabled.
578
- * @attr {Boolean} selected - Specifies that an option is selected.
579
- * @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
580
- * @slot Specifies text for an option, but is not the value.
581
- */
582
- class AuroMenuOption extends r {
583
- constructor() {
584
- super();
430
+ this.notifySelectionChange();
431
+ }
585
432
 
586
- /**
587
- * Generate unique names for dependency components.
588
- */
589
- const versioning = new AuroDependencyVersioning();
590
- this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon);
433
+ /**
434
+ * Manage ArrowDown, ArrowUp and Enter keyboard events.
435
+ * @private
436
+ * @param {Object} event - Event object from the browser.
437
+ */
438
+ handleKeyDown(event) {
439
+ event.preventDefault();
591
440
 
592
- this.selected = false;
593
- this.nocheckmark = false;
594
- this.disabled = false;
441
+ // With ArrowDown/ArrowUp events, pass new value to selectNextItem()
442
+ // With Enter event, set value and apply attrs
443
+ switch (event.key) {
444
+ case "ArrowDown":
445
+ this.selectNextItem('down');
446
+ break;
595
447
 
596
- /**
597
- * @private
598
- */
599
- this.tabIndex = -1;
448
+ case "ArrowUp":
449
+ this.selectNextItem('up');
450
+ break;
600
451
 
601
- /**
602
- * @private
603
- */
604
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
452
+ case "Enter":
453
+ this.makeSelection();
454
+ break;
455
+ }
605
456
  }
606
457
 
607
- static get properties() {
608
- return {
609
- nocheckmark: {
610
- type: Boolean,
611
- reflect: true
612
- },
613
- selected: {
614
- type: Boolean,
615
- reflect: true
616
- },
617
- disabled: {
618
- type: Boolean,
619
- reflect: true
620
- },
621
- value: {
622
- type: String,
623
- reflect: true
624
- },
625
- tabIndex: {
626
- type: Number,
627
- reflect: true
628
- }
629
- };
458
+ /**
459
+ * Initializes all menu options in the DOM. This must be re-run every time the options are changed.
460
+ * @private
461
+ */
462
+ initItems() {
463
+ this.items = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
464
+ this.handleNoCheckmarkAttr();
630
465
  }
631
466
 
632
- static get styles() {
633
- return [
634
- styleCss$1,
635
- colorCss$1,
636
- tokensCss$1
637
- ];
467
+ /**
468
+ * Sets the index value of the selected item or first non-disabled menuoption.
469
+ * @private
470
+ */
471
+ getSelectedIndex() {
472
+ // find the first `selected` and not `disabled`, `hidden` or `static` option
473
+ const index = this.items.findIndex((option) => option.hasAttribute('selected') && this.optionInteractive(option));
474
+
475
+ if (index >= 0) {
476
+ this.index = index;
477
+ this.makeSelection();
478
+ }
638
479
  }
639
480
 
640
481
  /**
641
- * This will register this element with the browser.
642
- * @param {string} [name="auro-menuoption"] - The name of element that you want to register to.
643
- *
644
- * @example
645
- * AuroMenuOption.register("custom-menuoption") // this will register this element to <custom-menuoption/>
482
+ * Using value of current this.index evaluates index
483
+ * of next :focus to set based on array of this.items ignoring items
484
+ * with disabled attr.
646
485
  *
486
+ * The event.target is not used as the function needs to know where to go,
487
+ * versus knowing where it is.
488
+ * @param {String} moveDirection - Up or Down based on keyboard event.
647
489
  */
648
- static register(name = "auro-menuoption") {
649
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroMenuOption);
650
- }
490
+ selectNextItem(moveDirection) {
491
+ if (this.index >= 0) {
492
+ this.items[this.index].classList.remove('active');
651
493
 
652
- firstUpdated() {
653
- // Add the tag name as an attribute if it is different than the component name
654
- this.runtimeUtils.handleComponentTagRename(this, 'auro-menuoption');
494
+ // calculate which is the selection we should focus next
495
+ let increment = 0;
655
496
 
656
- this.setAttribute('role', 'option');
657
- this.setAttribute('aria-selected', 'false');
497
+ if (moveDirection === 'down') {
498
+ increment = 1;
499
+ } else if (moveDirection === 'up') {
500
+ increment = -1;
501
+ }
658
502
 
659
- this.addEventListener('mouseover', () => {
660
- this.dispatchEvent(new CustomEvent('auroMenuOption-mouseover', {
661
- bubbles: true,
662
- cancelable: false,
663
- composed: true,
664
- detail: this
665
- }));
666
- });
667
- }
503
+ this.index += increment;
668
504
 
669
- // observer for selected property changes
670
- updated(changedProperties) {
671
- if (changedProperties.has('selected')) {
672
- this.setAttribute('aria-selected', this.selected.toString());
505
+ // keep looping inside the array of options
506
+ if (this.index > this.items.length - 1) {
507
+ this.index = 0;
508
+ } else if (this.index < 0) {
509
+ this.index = this.items.length - 1;
510
+ }
511
+
512
+ // check if new index is disabled, static or hidden, if so, execute again
513
+ if (!this.optionInteractive(this.items[this.index])) {
514
+ this.selectNextItem(moveDirection);
515
+ } else {
516
+ // apply focus to new index
517
+ this.updateActiveOption(this.index);
518
+ }
519
+ } else {
520
+ this.index = 0;
521
+
522
+ if (this.items[this.index].hasAttribute('hidden') || this.items[this.index].hasAttribute('disabled')) {
523
+ this.selectNextItem(moveDirection);
524
+ } else {
525
+ this.updateActiveOption(this.index);
526
+ }
673
527
  }
674
528
  }
675
529
 
676
530
  /**
677
- * Generates an HTML element containing an SVG icon based on the provided `svgContent`.
678
- *
531
+ * Used for applying indentation to each level of nested menu.
679
532
  * @private
680
- * @param {string} svgContent - The SVG content to be embedded.
681
- * @returns {Element} The HTML element containing the SVG icon.
533
+ * @param {String} menu - Root level menu object.
682
534
  */
683
- generateIconHtml(svgContent) {
684
- const dom = new DOMParser().parseFromString(svgContent, 'text/html');
685
- const svg = dom.body.firstChild;
686
-
687
- svg.setAttribute('slot', 'svg');
535
+ handleNestedMenus(menu) {
536
+ const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu');
688
537
 
689
- return u`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
690
- }
538
+ if (nestedMenus.length === 0) {
539
+ return;
540
+ }
691
541
 
692
- render() {
693
- return u`
694
- ${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
695
- <slot></slot>
696
- `;
697
- }
698
- }
542
+ nestedMenus.forEach((nestedMenu) => {
543
+ const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption');
699
544
 
700
- // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
701
- // See LICENSE in the project root for license information.
545
+ options.forEach((option) => {
546
+ option.innerHTML = this.nestingSpacer + option.innerHTML;
547
+ });
702
548
 
549
+ this.handleNestedMenus(nestedMenu);
550
+ });
551
+ }
703
552
 
704
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
705
- /**
706
- * The auro-menu element provides users a way to select from a list of options.
707
- * @attr {Object} optionSelected - Specifies the current selected menuOption.
708
- * @attr {String} matchWord - Specifies the a string used to highlight matched string parts in options.
709
- * @attr {Boolean} disabled - When true, the entire menu and all options are disabled;
710
- * @attr {Boolean} noCheckmark - When true, selected option will not show the checkmark.
711
- * @attr {String} value - Value selected for the menu.
712
- * @event auroMenu-selectedOption - Notifies that a new menuoption selection has been made.
713
- * @event selectedOption - (DEPRECATED) Notifies that a new menuoption selection has been made.
714
- * @event auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
715
- * @event auroMenuActivatedOption - (DEPRECATED) Notifies that a menuoption has been made `active`.
716
- * @event auroMenu-selectValueFailure - Notifies that a an attempt to select a menuoption by matching a value has failed.
717
- * @event auroMenuSelectValueFailure - (DEPRECATED) Notifies that a an attempt to select a menuoption by matching a value has failed.
718
- * @event auroMenu-customEventFired - Notifies that a custom event has been fired.
719
- * @event auroMenuCustomEventFired - (DEPRECATED) Notifies that a custom event has been fired.
720
- * @event auroMenu-selectValueReset - Notifies that the component value has been reset.
721
- * @slot Slot for insertion of menu options.
722
- */
553
+ /**
554
+ * Method to apply `selected` attribute to `menuoption` via `value`.
555
+ * @private
556
+ * @param {String} value - Must match a unique `menuoption` value.
557
+ */
558
+ selectByValue(value) {
559
+ let valueMatch = false;
560
+ if (!this.items) {
561
+ this.initItems();
562
+ }
723
563
 
724
- /* eslint-disable no-magic-numbers, max-lines */
564
+ this.index = undefined;
725
565
 
726
- class AuroMenu extends r {
727
- constructor() {
728
- super();
729
- this.value = undefined;
730
- this.optionSelected = undefined;
731
- this.matchWord = undefined;
732
- this.noCheckmark = false;
733
- this.optionActive = undefined;
566
+ if (this.value && this.value.length > 0) {
567
+ for (let index = 0; index < this.items.length; index += 1) {
568
+ if (this.items[index].value === value) {
569
+ valueMatch = true;
570
+ this.index = index;
571
+ }
572
+ }
734
573
 
735
- /**
736
- * @private
737
- */
738
- this.rootMenu = true;
574
+ if (!valueMatch) {
575
+ // reset the menu to no selection
576
+ this.index = undefined;
739
577
 
740
- /**
741
- * @private
742
- */
743
- this.runtimeUtils = new AuroLibraryRuntimeUtils();
578
+ // this event needs to be removed after select and combobox are updated to use the new standard name
579
+ this.dispatchEvent(new CustomEvent('auroMenuSelectValueFailure', {
580
+ bubbles: true,
581
+ cancelable: false,
582
+ composed: true,
583
+ }));
744
584
 
745
- /**
746
- * @private
747
- */
748
- this.nestingSpacer = '<span class="nestingSpacer"></span>';
585
+ this.dispatchEvent(new CustomEvent('auroMenu-selectValueFailure', {
586
+ bubbles: true,
587
+ cancelable: false,
588
+ composed: true,
589
+ }));
590
+ } else {
591
+ this.makeSelection();
592
+ }
593
+ } else {
594
+ this.resetOptionsStates();
595
+
596
+ this.dispatchEvent(new CustomEvent('auroMenu-selectValueReset', {
597
+ bubbles: true,
598
+ cancelable: false,
599
+ composed: true,
600
+ }));
601
+ }
749
602
  }
750
603
 
751
- static get properties() {
752
- return {
753
- noCheckmark: {
754
- type: Boolean,
755
- reflect: true
756
- },
757
- disabled: {
758
- type: Boolean,
759
- reflect: true
760
- },
761
- optionSelected: { type: Object },
762
- optionActive: { type: Object },
763
- matchWord: { type: String },
764
- value: { type: String }
765
- };
604
+ /**
605
+ * Used to make the active state for options follow mouseover.
606
+ * @param {Number} index - Index of the menuoption that will be made active.
607
+ * @private
608
+ */
609
+ updateActiveOption(index) {
610
+ this.items.forEach((item) => {
611
+ item.classList.remove('active');
612
+ });
613
+ this.items[index].classList.add('active');
614
+ this.optionActive = this.items[index];
615
+
616
+ this.dispatchEvent(new CustomEvent('auroMenuActivatedOption', {
617
+ bubbles: true,
618
+ cancelable: false,
619
+ composed: true,
620
+ detail: this.items[index]
621
+ }));
622
+
623
+ this.dispatchEvent(new CustomEvent('auroMenu-activatedOption', {
624
+ bubbles: true,
625
+ cancelable: false,
626
+ composed: true,
627
+ detail: this.items[index]
628
+ }));
766
629
  }
767
630
 
768
- static get styles() {
769
- return [
770
- styleCss$2,
771
- colorCss$2,
772
- tokensCss$1
773
- ];
631
+ /**
632
+ * Used to only make a selection when a menuoption is receiving a mousedown event.
633
+ * @param {Event} evt - Mousedown event.
634
+ * @private
635
+ */
636
+ handleMenuMouseDown(evt) {
637
+ if (evt.target !== this) {
638
+ this.makeSelection();
639
+ }
774
640
  }
775
641
 
776
642
  /**
777
- * This will register this element with the browser.
778
- * @param {string} [name="auro-menu"] - The name of element that you want to register to.
643
+ * Checks if there are any loading placeholders in the component.
779
644
  *
780
- * @example
781
- * AuroMenu.register("custom-menu") // this will register this element to <custom-menu/>
645
+ * This getter evaluates the `loadingSlots` collection to determine if it contains any items.
646
+ * If the size of the collection is greater than zero, it indicates the presence of loading
647
+ * placeholders, returning true; otherwise, it returns false.
782
648
  *
649
+ * @getter hasLoadingPlaceholder
650
+ * @type {boolean}
651
+ * @returns {boolean} Returns true if loading placeholders exist; false otherwise.
783
652
  */
784
- static register(name = "auro-menu") {
785
- AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroMenu);
653
+ get hasLoadingPlaceholder() {
654
+ return this.loadingSlots.length > 0;
786
655
  }
787
656
 
788
657
  /**
789
- * Passes the noCheckmark attribute to all nested auro-menuoptions.
658
+ * Used for @slotchange event on slotted element.
790
659
  * @private
791
- * @returns {void}
792
660
  */
793
- handleNoCheckmarkAttr() {
794
- if (this.noCheckmark) {
795
- const menus = this.querySelectorAll('auro-menu, [auro-menu]');
796
-
797
- menus.forEach((menu) => {
798
- menu.setAttribute('noCheckmark', '');
799
- });
661
+ handleSlotItems() {
662
+ // Determine if this is the root of the menu/submenu layout.
663
+ if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
664
+ this.rootMenu = false;
665
+ }
800
666
 
801
- const options = this.querySelectorAll('auro-menuoption, [auro-menuoption]');
667
+ // If this is the root menu (not a nested menu) handle events, states and styling.
668
+ if (this.rootMenu) {
669
+ this.initItems();
670
+ this.setAttribute('role', 'listbox');
671
+ this.setAttribute('root', '');
672
+ this.handleNestedMenus(this);
673
+ this.markOptions();
674
+ this.index = -1;
675
+ this.getSelectedIndex();
802
676
 
803
- options.forEach((option) => {
804
- option.setAttribute('noCheckmark', '');
677
+ this.addEventListener('keydown', this.handleKeyDown);
678
+ this.addEventListener('mousedown', this.handleMenuMouseDown);
679
+ this.addEventListener('auroMenuOption-mouseover', (evt) => {
680
+ this.index = this.items.indexOf(evt.target);
681
+ this.updateActiveOption(this.index);
805
682
  });
683
+ } else {
684
+ // make sure to update all menuoption noCheckmark attributes when the menu is dynamically changed
685
+ this.handleNoCheckmarkAttr();
806
686
  }
807
687
  }
808
688
 
809
- firstUpdated() {
810
- // Add the tag name as an attribute if it is different than the component name
811
- this.runtimeUtils.handleComponentTagRename(this, 'auro-menu');
812
-
813
- this.addEventListener('keydown', this.handleKeyDown);
689
+ render() {
690
+ if (this.loading) {
691
+ return x`
692
+ <auro-menuoption disabled loadingplaceholder class="${this.hasLoadingPlaceholder ? '' : 'empty'}">
693
+ <div>
694
+ <slot name="loadingIcon"></slot>
695
+ <slot name="loadingText"></slot>
696
+ </div>
697
+ </auro-menuoption>
698
+ `;
699
+ }
700
+ return x`<slot @slotchange=${this.handleSlotItems}></slot>`;
814
701
  }
702
+ }
815
703
 
816
- updated(changedProperties) {
817
- if (changedProperties.has('matchWord')) {
818
- this.markOptions();
819
- }
704
+ /**
705
+ * @license
706
+ * Copyright 2020 Google LLC
707
+ * SPDX-License-Identifier: BSD-3-Clause
708
+ */
709
+ const a=Symbol.for(""),o$1=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i$1=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=!1;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$1(i));)c+=s+r[++$],f=!0;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u;}return t(r,...e)},u=n(x);
820
710
 
821
- if (changedProperties.has('value')) {
822
- this.selectByValue(this.value);
823
- }
711
+ var styleCss$1 = i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
824
712
 
825
- if (changedProperties.has('disabled')) {
826
- const options = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
713
+ var colorCss$1 = i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color) !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)}`;
827
714
 
828
- for (const element of options) {
829
- element.disabled = this.disabled;
830
- }
831
- }
832
- }
715
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
716
+ // See LICENSE in the project root for license information.
833
717
 
834
- /**
835
- * @private
836
- * @param {Object} option - The menuoption to check for interactive state.
837
- * @returns {Boolean} Returns true if the option is interactive.
838
- */
839
- optionInteractive(option) {
840
- return !option.hasAttribute('hidden') && !option.hasAttribute('disabled') && !option.hasAttribute('static');
841
- }
718
+
719
+ class AuroDependencyVersioning {
842
720
 
843
721
  /**
722
+ * Generates a unique string to be used for child auro element naming.
844
723
  * @private
845
- * @returns {void} When called will update the DOM with visible suggest text matches.
724
+ * @param {string} baseName - Defines the first part of the unique element name.
725
+ * @param {string} version - Version of the component that will be appended to the baseName.
726
+ * @returns {string} - Unique string to be used for naming.
846
727
  */
847
- markOptions() {
848
- if (this.items && this.items.length > 0 && (this.matchWord && this.matchWord.length > 0)) {
849
-
850
- // Escape special regex characters
851
- const escapedWord = this.matchWord.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
852
-
853
- // Global, case-insensitive, unicode matching regex pattern
854
- const regexWord = new RegExp(escapedWord, 'giu');
728
+ generateElementName(baseName, version) {
729
+ let result = baseName;
855
730
 
856
- this.items.forEach((item) => {
857
- if (this.optionInteractive(item) && !item.hasAttribute('persistent')) {
858
- const nested = item.querySelectorAll('.nestingSpacer');
859
- const nestingSpacerBundle = [...nested].map(() => this.nestingSpacer).join('');
731
+ result += '-';
732
+ result += version.replace(/[.]/g, '_');
860
733
 
861
- item.innerHTML = nestingSpacerBundle + item.textContent.replace(regexWord, (match) => `<strong>${match}</strong>`);
862
- }
863
- });
864
- }
734
+ return result;
865
735
  }
866
736
 
867
737
  /**
868
- * Reset the menu and all options.
738
+ * Generates a unique string to be used for child auro element naming.
739
+ * @param {string} baseName - Defines the first part of the unique element name.
740
+ * @param {string} version - Version of the component that will be appended to the baseName.
741
+ * @returns {string} - Unique string to be used for naming.
869
742
  */
870
- resetOptionsStates() {
871
- this.optionSelected = undefined;
872
- if (this.items) {
873
- this.items.forEach((item) => {
874
- item.classList.remove('active');
875
- item.removeAttribute('selected');
876
- });
743
+ generateTag(baseName, version, tagClass) {
744
+ const elementName = this.generateElementName(baseName, version);
745
+ const tag = i$1`${s(elementName)}`;
746
+
747
+ if (!customElements.get(elementName)) {
748
+ customElements.define(elementName, class extends tagClass {});
877
749
  }
750
+
751
+ return tag;
878
752
  }
753
+ }
879
754
 
880
- /**
881
- * Set the attributes on the selected menuoption, the menu value and stored option.
882
- * @param {Object} option - The menuoption to be selected.
883
- * @private
884
- */
885
- handleLocalSelectState(option) {
886
- option.setAttribute('selected', '');
887
- option.classList.add('active');
888
- option.ariaSelected = true;
755
+ /**
756
+ * @license
757
+ * Copyright 2017 Google LLC
758
+ * SPDX-License-Identifier: BSD-3-Clause
759
+ */
760
+ 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)}}
889
761
 
890
- this.value = option.value;
891
- this.optionSelected = option;
892
- this.index = this.items.indexOf(option);
893
- }
762
+ /**
763
+ * @license
764
+ * Copyright 2018 Google LLC
765
+ * SPDX-License-Identifier: BSD-3-Clause
766
+ */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}});
894
767
 
895
- /**
896
- * Notify selection change.
897
- * @private
898
- * @return {void}
899
- */
900
- notifySelectionChange() {
901
- // this event needs to be removed after select and combobox are updated to use the new standard name
902
- this.dispatchEvent(new CustomEvent('selectedOption', {
903
- bubbles: true,
904
- cancelable: false,
905
- composed: true,
906
- }));
768
+ /**
769
+ * @license
770
+ * Copyright 2018 Google LLC
771
+ * SPDX-License-Identifier: BSD-3-Clause
772
+ */const o=o=>o??E;
907
773
 
908
- this.dispatchEvent(new CustomEvent('auroMenu-selectedOption', {
909
- bubbles: true,
910
- cancelable: false,
911
- composed: true,
912
- }));
774
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
775
+ // See LICENSE in the project root for license information.
776
+
777
+
778
+ /**
779
+ * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
780
+ * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
781
+ * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
782
+ */
783
+
784
+ class AuroElement extends r {
785
+
786
+ // function to define props used within the scope of this component
787
+ static get properties() {
788
+ return {
789
+ hidden: { type: Boolean,
790
+ reflect: true },
791
+ hiddenVisually: { type: Boolean,
792
+ reflect: true },
793
+ hiddenAudible: { type: Boolean,
794
+ reflect: true },
795
+ };
913
796
  }
914
797
 
915
798
  /**
916
- * Process actions for making making a menuoption selection.
799
+ * @private Function that determines state of aria-hidden
917
800
  */
918
- makeSelection() {
919
- if (!this.items) {
920
- this.initItems();
801
+ hideAudible(value) {
802
+ if (value) {
803
+ return 'true'
921
804
  }
922
805
 
923
- if (this.items[this.index] && !this.items[this.index].hasAttribute('disabled')) {
924
- this.resetOptionsStates();
806
+ return 'false'
807
+ }
808
+ }
925
809
 
926
- if (this.index >= 0) {
927
- const option = this.items[this.index];
810
+ 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>"};
928
811
 
929
- // only handle options that are not disabled, hidden or static
930
- if (option && this.optionInteractive(option)) {
931
- // fire custom event if defined otherwise make selection
932
- if (option.hasAttribute('event')) {
933
- this.dispatchEvent(new CustomEvent(option.getAttribute('event'), {
934
- bubbles: true,
935
- cancelable: false,
936
- composed: true,
937
- }));
812
+ /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
938
813
 
939
- // this event needs to be removed after select and combobox are updated to use the new standard name
940
- this.dispatchEvent(new CustomEvent('auroMenuCustomEventFired', {
941
- bubbles: true,
942
- cancelable: false,
943
- composed: true,
944
- }));
814
+ const _fetchMap = new Map();
945
815
 
946
- this.dispatchEvent(new CustomEvent('auroMenu-customEventFired', {
947
- bubbles: true,
948
- cancelable: false,
949
- composed: true,
950
- }));
951
- } else {
952
- this.handleLocalSelectState(option);
953
- }
954
- }
816
+ /**
817
+ * A callback to parse Response body.
818
+ *
819
+ * @callback ResponseParser
820
+ * @param {Fetch.Response} response
821
+ * @returns {Promise}
822
+ */
823
+
824
+ /**
825
+ * A minimal in-memory map to de-duplicate Fetch API media requests.
826
+ *
827
+ * @param {String} uri
828
+ * @param {Object} [options={}]
829
+ * @param {ResponseParser} [options.responseParser=(response) => response.text()]
830
+ * @returns {Promise}
831
+ */
832
+ const cacheFetch = (uri, options = {}) => {
833
+ const responseParser = options.responseParser || ((response) => response.text());
834
+ if (!_fetchMap.has(uri)) {
835
+ _fetchMap.set(uri, fetch(uri).then(responseParser));
836
+ }
837
+ return _fetchMap.get(uri);
838
+ };
839
+
840
+ var styleCss = i$5`*,*: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}`;
841
+
842
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
843
+ // See LICENSE in the project root for license information.
844
+
845
+
846
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
847
+ /**
848
+ * @attr {Boolean} onDark - Set value for on-dark version of auro-icon
849
+ * @slot - Hidden from visibility, used for a11y if icon description is needed
850
+ */
851
+
852
+ // build the component class
853
+ class BaseIcon extends AuroElement {
854
+ constructor() {
855
+ super();
856
+ this.onDark = false;
857
+ }
858
+
859
+ // function to define props used within the scope of this component
860
+ static get properties() {
861
+ return {
862
+ ...super.properties,
863
+ onDark: {
864
+ type: Boolean,
865
+ reflect: true
866
+ },
867
+
868
+ /**
869
+ * @private
870
+ */
871
+ svg: {
872
+ attribute: false,
873
+ reflect: true
955
874
  }
956
- }
875
+ };
876
+ }
957
877
 
958
- this.notifySelectionChange();
878
+ static get styles() {
879
+ return i$5`
880
+ ${styleCss}
881
+ `;
959
882
  }
960
883
 
961
884
  /**
962
- * Manage ArrowDown, ArrowUp and Enter keyboard events.
885
+ * Async function to fetch requested icon from npm CDN.
963
886
  * @private
964
- * @param {Object} event - Event object from the browser.
887
+ * @param {string} category - Icon category.
888
+ * @param {string} name - Icon name.
889
+ * @returns {SVGElement} DOM - Ready HTML to be appended.
965
890
  */
966
- handleKeyDown(event) {
967
- event.preventDefault();
891
+ async fetchIcon(category, name) {
892
+ let iconHTML = '';
968
893
 
969
- // With ArrowDown/ArrowUp events, pass new value to selectNextItem()
970
- // With Enter event, set value and apply attrs
971
- switch (event.key) {
972
- case "ArrowDown":
973
- this.selectNextItem('down');
974
- break;
894
+ if (category === 'logos') {
895
+ iconHTML = await cacheFetch(`${this.uri}/${category}/${name}.svg`);
896
+ } else {
897
+ iconHTML = await cacheFetch(`${this.uri}/icons/${category}/${name}.svg`);
898
+ }
975
899
 
976
- case "ArrowUp":
977
- this.selectNextItem('up');
978
- break;
900
+ const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
979
901
 
980
- case "Enter":
981
- this.makeSelection();
982
- break;
902
+ return dom.body.querySelector('svg');
903
+ }
904
+
905
+ // lifecycle function
906
+ async firstUpdated() {
907
+ if (!this.customSvg) {
908
+ const svg = await this.fetchIcon(this.category, this.name);
909
+
910
+ if (svg) {
911
+ this.svg = svg;
912
+ } else if (!svg) {
913
+ const penDOM = new DOMParser().parseFromString(error.svg, 'text/html');
914
+
915
+ this.svg = penDOM.body.firstChild;
916
+ }
983
917
  }
984
918
  }
919
+ }
985
920
 
986
- /**
987
- * Initializes all menu options in the DOM. This must be re-run every time the options are changed.
988
- * @private
989
- */
990
- initItems() {
991
- this.items = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
992
- this.handleNoCheckmarkAttr();
921
+ var tokensCss = i$5`: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)}`;
922
+
923
+ var colorCss = i$5`: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)}`;
924
+
925
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
926
+ // See LICENSE in the project root for license information.
927
+
928
+
929
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
930
+ /**
931
+ * auro-icon provides users a way to use the Auro Icons by simply passing in the category and name.
932
+ *
933
+ * @attr {String} category - The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
934
+ * @attr {String} name - The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage
935
+ * @attr {Boolean} customColor - Removes primary selector.
936
+ * @attr {Boolean} customSvg - When true, auro-icon will render a custom SVG inside the default slot.
937
+ * @attr {Boolean} label - Exposes content in slot as icon label.
938
+ * @attr {Boolean} primary - DEPRECATED: Sets the icon to use the baseline primary icon style.
939
+ * @attr {Boolean} accent - Sets the icon to use the accent style.
940
+ * @attr {Boolean} emphasis - Sets the icon to use the emphasis style.
941
+ * @attr {Boolean} disabled - Sets the icon to use the disabled style.
942
+ * @attr {Boolean} error - Sets the icon to use the error style.
943
+ * @attr {Boolean} info - Sets the icon to use the info style.
944
+ * @attr {Boolean} secondary - Sets the icon to use the secondary style.
945
+ * @attr {Boolean} tertiary - Sets the icon to use the tertiary style.
946
+ * @attr {Boolean} subtle - Sets the icon to use the subtle style.
947
+ * @attr {Boolean} success - Sets the icon to use the success style.
948
+ * @attr {Boolean} warning - Sets the icon to use the warning style.
949
+ * @attr {String} ariaHidden - Set aria-hidden value. Default is `true`. Option is `false`.
950
+ * @attr {String} uri - Set the uri for CDN used when fetching icons
951
+ * @slot - Hidden from visibility, used for a11y if icon description is needed.
952
+ * @slot svg - Used for custom SVG content.
953
+ */
954
+
955
+ // build the component class
956
+ class AuroIcon extends BaseIcon {
957
+ constructor() {
958
+ super();
959
+
960
+ this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
961
+
962
+ this.privateDefaults();
993
963
  }
994
964
 
995
965
  /**
996
- * Sets the index value of the selected item or first non-disabled menuoption.
966
+ * Internal Defaults.
997
967
  * @private
968
+ * @returns {void}
998
969
  */
999
- getSelectedIndex() {
1000
- // find the first `selected` and not `disabled`, `hidden` or `static` option
1001
- const index = this.items.findIndex((option) => option.hasAttribute('selected') && this.optionInteractive(option));
970
+ privateDefaults() {
971
+ this.accent = false;
972
+ this.customColor = false;
973
+ this.customSvg = false;
974
+ this.disabled = false;
975
+ this.emphasis = false;
976
+ this.error = false;
977
+ this.info = false;
978
+ this.label = false;
979
+ this.primary = false;
980
+ this.secondary = false;
981
+ this.subtle = false;
982
+ this.success = false;
983
+ this.tertiary = false;
984
+ this.warning = false;
985
+ this.runtimeUtils = new AuroLibraryRuntimeUtils();
986
+ }
1002
987
 
1003
- if (index >= 0) {
1004
- this.index = index;
1005
- this.makeSelection();
1006
- }
988
+ // function to define props used within the scope of this component
989
+ static get properties() {
990
+ return {
991
+ ...super.properties,
992
+ accent: {
993
+ type: Boolean,
994
+ reflect: true
995
+ },
996
+ ariaHidden: {
997
+ type: String,
998
+ reflect: true
999
+ },
1000
+ category: {
1001
+ type: String,
1002
+ reflect: true
1003
+ },
1004
+ customColor: {
1005
+ type: Boolean
1006
+ },
1007
+ customSvg: {
1008
+ type: Boolean
1009
+ },
1010
+ disabled: {
1011
+ type: Boolean,
1012
+ reflect: true
1013
+ },
1014
+ emphasis: {
1015
+ type: Boolean,
1016
+ reflect: true
1017
+ },
1018
+ error: {
1019
+ type: Boolean,
1020
+ reflect: true
1021
+ },
1022
+ info: {
1023
+ type: Boolean,
1024
+ reflect: true
1025
+ },
1026
+ label: {
1027
+ type: Boolean,
1028
+ reflect: true
1029
+ },
1030
+ name: {
1031
+ type: String,
1032
+ reflect: true
1033
+ },
1034
+ primary: {
1035
+ type: Boolean,
1036
+ reflect: true
1037
+ },
1038
+ secondary: {
1039
+ type: Boolean,
1040
+ reflect: true
1041
+ },
1042
+ subtle: {
1043
+ type: Boolean,
1044
+ reflect: true
1045
+ },
1046
+ success: {
1047
+ type: Boolean,
1048
+ reflect: true
1049
+ },
1050
+ tertiary: {
1051
+ type: Boolean,
1052
+ reflect: true
1053
+ },
1054
+ uri: {
1055
+ type: String
1056
+ },
1057
+ warning: {
1058
+ type: Boolean,
1059
+ reflect: true
1060
+ }
1061
+ };
1062
+ }
1063
+
1064
+ static get styles() {
1065
+ return [
1066
+ super.styles,
1067
+ i$5`${tokensCss}`,
1068
+ i$5`${styleCss}`,
1069
+ i$5`${colorCss}`
1070
+ ];
1007
1071
  }
1008
1072
 
1009
1073
  /**
1010
- * Using value of current this.index evaluates index
1011
- * of next :focus to set based on array of this.items ignoring items
1012
- * with disabled attr.
1074
+ * This will register this element with the browser.
1075
+ * @param {string} [name="auro-icon"] - The name of element that you want to register to.
1076
+ *
1077
+ * @example
1078
+ * AuroIcon.register("custom-icon") // this will register this element to <custom-icon/>
1013
1079
  *
1014
- * The event.target is not used as the function needs to know where to go,
1015
- * versus knowing where it is.
1016
- * @param {String} moveDirection - Up or Down based on keyboard event.
1017
1080
  */
1018
- selectNextItem(moveDirection) {
1019
- if (this.index >= 0) {
1020
- this.items[this.index].classList.remove('active');
1021
-
1022
- // calculate which is the selection we should focus next
1023
- let increment = 0;
1024
-
1025
- if (moveDirection === 'down') {
1026
- increment = 1;
1027
- } else if (moveDirection === 'up') {
1028
- increment = -1;
1029
- }
1030
-
1031
- this.index += increment;
1032
-
1033
- // keep looping inside the array of options
1034
- if (this.index > this.items.length - 1) {
1035
- this.index = 0;
1036
- } else if (this.index < 0) {
1037
- this.index = this.items.length - 1;
1038
- }
1081
+ static register(name = "auro-icon") {
1082
+ AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
1083
+ }
1039
1084
 
1040
- // check if new index is disabled, static or hidden, if so, execute again
1041
- if (!this.optionInteractive(this.items[this.index])) {
1042
- this.selectNextItem(moveDirection);
1043
- } else {
1044
- // apply focus to new index
1045
- this.updateActiveOption(this.index);
1046
- }
1047
- } else {
1048
- this.index = 0;
1085
+ connectedCallback() {
1086
+ super.connectedCallback();
1049
1087
 
1050
- if (this.items[this.index].hasAttribute('hidden') || this.items[this.index].hasAttribute('disabled')) {
1051
- this.selectNextItem(moveDirection);
1052
- } else {
1053
- this.updateActiveOption(this.index);
1054
- }
1055
- }
1088
+ // Add the tag name as an attribute if it is different than the component name
1089
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-icon');
1056
1090
  }
1057
1091
 
1058
1092
  /**
1059
- * Used for applying indentation to each level of nested menu.
1060
- * @private
1061
- * @param {String} menu - Root level menu object.
1093
+ * @returns {void} Exposes CSS parts for styling from parent components.
1062
1094
  */
1063
- handleNestedMenus(menu) {
1064
- const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu');
1095
+ exposeCssParts() {
1096
+ this.setAttribute('exportparts', 'svg:iconSvg');
1097
+ }
1065
1098
 
1066
- if (nestedMenus.length === 0) {
1067
- return;
1068
- }
1099
+ // function that renders the HTML and CSS into the scope of the component
1100
+ render() {
1101
+ const a11y = {
1102
+ 'labelContainer': true,
1103
+ 'util_displayHiddenVisually': !this.label
1104
+ };
1069
1105
 
1070
- nestedMenus.forEach((nestedMenu) => {
1071
- const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption');
1106
+ const classes = {
1107
+ 'label': this.label
1108
+ };
1072
1109
 
1073
- options.forEach((option) => {
1074
- option.innerHTML = this.nestingSpacer + option.innerHTML;
1075
- });
1110
+ return x`
1111
+ <div
1112
+ class="${e(classes)}"
1113
+ title="${o(this.title || undefined)}">
1114
+ <span aria-hidden="${o(this.ariaHidden ? this.ariaHidden : true)}" part="svg">
1115
+ ${this.customSvg ? x`
1116
+ <slot name="svg"></slot>
1117
+ ` : x`
1118
+ ${this.svg}
1119
+ `
1120
+ }
1121
+ </span>
1076
1122
 
1077
- this.handleNestedMenus(nestedMenu);
1078
- });
1123
+ <div class="${e(a11y)}">
1124
+ <slot></slot>
1125
+ </div>
1126
+ </div>
1127
+ `;
1079
1128
  }
1129
+ }
1080
1130
 
1081
- /**
1082
- * Method to apply `selected` attribute to `menuoption` via `value`.
1083
- * @private
1084
- * @param {String} value - Must match a unique `menuoption` value.
1085
- */
1086
- selectByValue(value) {
1087
- let valueMatch = false;
1088
- if (!this.items) {
1089
- this.initItems();
1090
- }
1131
+ var iconVersion = '6.1.1';
1091
1132
 
1092
- this.index = undefined;
1133
+ 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>"};
1093
1134
 
1094
- if (this.value && this.value.length > 0) {
1095
- for (let index = 0; index < this.items.length; index += 1) {
1096
- if (this.items[index].value === value) {
1097
- valueMatch = true;
1098
- this.index = index;
1099
- }
1100
- }
1135
+ // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1136
+ // See LICENSE in the project root for license information.
1101
1137
 
1102
- if (!valueMatch) {
1103
- // reset the menu to no selection
1104
- this.index = undefined;
1105
1138
 
1106
- // this event needs to be removed after select and combobox are updated to use the new standard name
1107
- this.dispatchEvent(new CustomEvent('auroMenuSelectValueFailure', {
1108
- bubbles: true,
1109
- cancelable: false,
1110
- composed: true,
1111
- }));
1139
+ /**
1140
+ * The auro-menu element provides users a way to define a menu option.
1141
+ *
1142
+ * @attr {String} value - Specifies the value to be sent to a server.
1143
+ * @attr {String} noCheckmark - When true, selected option will not show the checkmark.
1144
+ * @attr {Boolean} disabled - When true specifies that the menuoption is disabled.
1145
+ * @attr {Boolean} selected - Specifies that an option is selected.
1146
+ * @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
1147
+ * @slot - Specifies text for an option, but is not the value.
1148
+ */
1149
+ class AuroMenuOption extends r {
1150
+ constructor() {
1151
+ super();
1112
1152
 
1113
- this.dispatchEvent(new CustomEvent('auroMenu-selectValueFailure', {
1114
- bubbles: true,
1115
- cancelable: false,
1116
- composed: true,
1117
- }));
1118
- } else {
1119
- this.makeSelection();
1153
+ /**
1154
+ * Generate unique names for dependency components.
1155
+ */
1156
+ const versioning = new AuroDependencyVersioning();
1157
+ this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon);
1158
+
1159
+ this.selected = false;
1160
+ this.nocheckmark = false;
1161
+ this.disabled = false;
1162
+
1163
+ /**
1164
+ * @private
1165
+ */
1166
+ this.tabIndex = -1;
1167
+
1168
+ /**
1169
+ * @private
1170
+ */
1171
+ this.runtimeUtils = new AuroLibraryRuntimeUtils();
1172
+ }
1173
+
1174
+ static get properties() {
1175
+ return {
1176
+ nocheckmark: {
1177
+ type: Boolean,
1178
+ reflect: true
1179
+ },
1180
+ selected: {
1181
+ type: Boolean,
1182
+ reflect: true
1183
+ },
1184
+ disabled: {
1185
+ type: Boolean,
1186
+ reflect: true
1187
+ },
1188
+ value: {
1189
+ type: String,
1190
+ reflect: true
1191
+ },
1192
+ tabIndex: {
1193
+ type: Number,
1194
+ reflect: true
1120
1195
  }
1121
- } else {
1122
- this.resetOptionsStates();
1196
+ };
1197
+ }
1123
1198
 
1124
- this.dispatchEvent(new CustomEvent('auroMenu-selectValueReset', {
1125
- bubbles: true,
1126
- cancelable: false,
1127
- composed: true,
1128
- }));
1129
- }
1199
+ static get styles() {
1200
+ return [
1201
+ styleCss$1,
1202
+ colorCss$1,
1203
+ tokensCss$1
1204
+ ];
1130
1205
  }
1131
1206
 
1132
1207
  /**
1133
- * Used to make the active state for options follow mouseover.
1134
- * @param {Number} index - Index of the menuoption that will be made active.
1135
- * @private
1208
+ * This will register this element with the browser.
1209
+ * @param {string} [name="auro-menuoption"] - The name of element that you want to register to.
1210
+ *
1211
+ * @example
1212
+ * AuroMenuOption.register("custom-menuoption") // this will register this element to <custom-menuoption/>
1213
+ *
1136
1214
  */
1137
- updateActiveOption(index) {
1138
- this.items.forEach((item) => {
1139
- item.classList.remove('active');
1140
- });
1141
- this.items[index].classList.add('active');
1142
- this.optionActive = this.items[index];
1215
+ static register(name = "auro-menuoption") {
1216
+ AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroMenuOption);
1217
+ }
1143
1218
 
1144
- this.dispatchEvent(new CustomEvent('auroMenuActivatedOption', {
1145
- bubbles: true,
1146
- cancelable: false,
1147
- composed: true,
1148
- detail: this.items[index]
1149
- }));
1219
+ firstUpdated() {
1220
+ // Add the tag name as an attribute if it is different than the component name
1221
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-menuoption');
1150
1222
 
1151
- this.dispatchEvent(new CustomEvent('auroMenu-activatedOption', {
1152
- bubbles: true,
1153
- cancelable: false,
1154
- composed: true,
1155
- detail: this.items[index]
1156
- }));
1223
+ this.setAttribute('role', 'option');
1224
+ this.setAttribute('aria-selected', 'false');
1225
+
1226
+ this.addEventListener('mouseover', () => {
1227
+ this.dispatchEvent(new CustomEvent('auroMenuOption-mouseover', {
1228
+ bubbles: true,
1229
+ cancelable: false,
1230
+ composed: true,
1231
+ detail: this
1232
+ }));
1233
+ });
1157
1234
  }
1158
1235
 
1159
- /**
1160
- * Used to only make a selection when a menuoption is receiving a mousedown event.
1161
- * @param {Event} evt - Mousedown event.
1162
- * @private
1163
- */
1164
- handleMenuMouseDown(evt) {
1165
- if (evt.target !== this) {
1166
- this.makeSelection();
1236
+ // observer for selected property changes
1237
+ updated(changedProperties) {
1238
+ if (changedProperties.has('selected')) {
1239
+ this.setAttribute('aria-selected', this.selected.toString());
1167
1240
  }
1168
1241
  }
1169
1242
 
1170
1243
  /**
1171
- * Used for @slotchange event on slotted element.
1244
+ * Generates an HTML element containing an SVG icon based on the provided `svgContent`.
1245
+ *
1172
1246
  * @private
1247
+ * @param {string} svgContent - The SVG content to be embedded.
1248
+ * @returns {Element} The HTML element containing the SVG icon.
1173
1249
  */
1174
- handleSlotItems() {
1175
- // Determine if this is the root of the menu/submenu layout.
1176
- if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
1177
- this.rootMenu = false;
1178
- }
1250
+ generateIconHtml(svgContent) {
1251
+ const dom = new DOMParser().parseFromString(svgContent, 'text/html');
1252
+ const svg = dom.body.firstChild;
1179
1253
 
1180
- // If this is the root menu (not a nested menu) handle events, states and styling.
1181
- if (this.rootMenu) {
1182
- this.initItems();
1183
- this.setAttribute('role', 'listbox');
1184
- this.setAttribute('root', '');
1185
- this.handleNestedMenus(this);
1186
- this.markOptions();
1187
- this.index = -1;
1188
- this.getSelectedIndex();
1254
+ svg.setAttribute('slot', 'svg');
1189
1255
 
1190
- this.addEventListener('keydown', this.handleKeyDown);
1191
- this.addEventListener('mousedown', this.handleMenuMouseDown);
1192
- this.addEventListener('auroMenuOption-mouseover', (evt) => {
1193
- this.index = this.items.indexOf(evt.target);
1194
- this.updateActiveOption(this.index);
1195
- });
1196
- } else {
1197
- // make sure to update all menuoption noCheckmark attributes when the menu is dynamically changed
1198
- this.handleNoCheckmarkAttr();
1199
- }
1256
+ return u`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
1200
1257
  }
1201
1258
 
1202
1259
  render() {
1203
- return x`
1204
- <slot @slotchange=${this.handleSlotItems}></slot>
1260
+ return u`
1261
+ ${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
1262
+ <slot></slot>
1205
1263
  `;
1206
1264
  }
1207
1265
  }
@@ -1220,6 +1278,7 @@ function initExamples(initCount) {
1220
1278
  auroMenuResetExample();
1221
1279
  auroMenuMatchWordExample();
1222
1280
  auroMenuCustomEventExample();
1281
+ auroMenuLoadingExample();
1223
1282
  } catch (err) {
1224
1283
  if (initCount <= 20) {
1225
1284
  // setTimeout handles issue where content is sometimes loaded after the functions get called