@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
@@ -117,6 +117,44 @@ function inDialogExample() {
117
117
  });
118
118
  }
119
119
 
120
+ function auroMenuLoadingExample() {
121
+ const combobox = document.querySelector("#loadingExample");
122
+ const menu = document.querySelector("#loadingExampleComboboxMenu");
123
+
124
+ const emptyMenu = () => {
125
+ const menuoptions = menu.querySelectorAll('auro-menuoption');
126
+ menuoptions.forEach(mo => menu.removeChild(mo));
127
+ };
128
+
129
+ const fillMenu = () => {
130
+ menu.innerHTML += `
131
+ <auro-menuoption value="Apples" id="option-0">Apples</auro-menuoption>
132
+ <auro-menuoption value="Oranges" id="option-1">Oranges</auro-menuoption>
133
+ <auro-menuoption value="Peaches" id="option-2">Peaches</auro-menuoption>
134
+ <auro-menuoption value="Grapes" id="option-3">Grapes</auro-menuoption>
135
+ <auro-menuoption value="Cherries" id="option-4">Cherries</auro-menuoption>
136
+ <auro-menuoption static nomatch>No matching option</auro-menuoption>
137
+ `;
138
+ };
139
+
140
+ const load = () => {
141
+ clearTimeout(load.id);
142
+ emptyMenu();
143
+ menu.setAttribute('loading', 'loading');
144
+ load.id = setTimeout(() => {
145
+ menu.removeAttribute('loading');
146
+ fillMenu();
147
+ }, 1000);
148
+
149
+ };
150
+
151
+ combobox.addEventListener("input", (e) => {
152
+ if (e.target.value && e.target.value !== e.target.optionSelected?.textContent) {
153
+ load();
154
+ }
155
+ });
156
+ }
157
+
120
158
  /**
121
159
  * @license
122
160
  * Copyright 2019 Google LLC
@@ -2887,13 +2925,13 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
2887
2925
 
2888
2926
  var iconVersion$2 = '6.1.1';
2889
2927
 
2890
- var styleCss$1$2 = i$3$1`:host{position:relative}#bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}.label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);white-space:normal}.trigger{position:relative;display:flex;align-items:center;border-width:1px;border-style:solid}@media(hover: hover){.trigger:hover{cursor:pointer}}.triggerContentWrapper{overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap}#showStateIcon{display:flex;height:100%;align-items:center;margin-left:var(--ds-size-100, 0.5rem)}#showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}#showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}.helpText{margin-top:var(--ds-size-50, 0.25rem);font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem)}:host([matchwidth]) #bibSizer{width:100%}:host([disabled]){pointer-events:none}:host([inset]) .trigger{padding:var(--ds-size-150, 0.75rem) var(--ds-size-200, 1rem)}:host([common]) .trigger,:host([inset][bordered]) .trigger{padding:var(--ds-size-200, 1rem) var(--ds-size-150, 0.75rem)}:host([common]) .trigger,:host([rounded]) .trigger{border-radius:var(--ds-border-radius, 0.375rem)}`;
2928
+ var styleCss$1$2 = i$3$1`:host{position:relative;display:inline-block;max-width:100%}:host([fluid]){display:block}#bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}.label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);white-space:normal}.trigger{position:relative;display:flex;align-items:center;border-width:1px;border-style:solid}@media(hover: hover){.trigger:hover{cursor:pointer}}.triggerContentWrapper{overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap}#showStateIcon{display:flex;height:100%;align-items:center;margin-left:var(--ds-size-100, 0.5rem)}#showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}#showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}.helpText{margin-top:var(--ds-size-50, 0.25rem);font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem)}:host([matchwidth]) #bibSizer{width:100%}:host([disabled]){pointer-events:none}:host([inset]) .trigger{padding:var(--ds-size-150, 0.75rem) var(--ds-size-200, 1rem)}:host([common]) .trigger,:host([inset][bordered]) .trigger{padding:var(--ds-size-200, 1rem) var(--ds-size-150, 0.75rem)}:host([common]) .trigger,:host([rounded]) .trigger{border-radius:var(--ds-border-radius, 0.375rem)}`;
2891
2929
 
2892
2930
  var colorCss$1$2 = i$3$1`.label{color:var(--ds-auro-dropdown-label-text-color)}.trigger{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-container-color);color:var(--ds-auro-dropdown-trigger-text-color)}.trigger:focus-within,.trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-active-default, #0074c8)}.trigger:focus-within:not(:active){--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-ui-focus-default, #2c67b5);box-shadow:inset 0 0 0 1px var(--ds-color-border-ui-focus-default, #2c67b5)}.trigger:hover{--ds-auro-dropdown-trigger-container-color: var(--ds-color-container-ui-secondary-hover-default, rgba(0, 0, 0, 0.03))}.helpText{color:var(--ds-auro-dropdown-help-text-color)}:host([disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-color-text-ui-disabled-default, #adadad);--ds-auro-dropdown-label-text-color: var(--ds-color-text-ui-disabled-default, #adadad)}:host([common]),:host([bordered]){--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-primary-default, #585e67)}:host([common]) .trigger:active,:host([common]) .trigger:focus-within,:host([bordered]) .trigger:active,:host([bordered]) .trigger:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-ui-focus-default, #2c67b5)}:host([error]){--ds-auro-dropdown-help-text-color: var(--ds-color-text-error-default, #cc1816);--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-error-default, #cc1816)}:host([error]) .trigger{box-shadow:inset 0 0 0 1px var(--ds-auro-dropdown-trigger-border-color)}:host([error]) .trigger:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-ui-focus-default, #2c67b5);box-shadow:none}:host([error]) .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-ui-focus-default, #2c67b5);box-shadow:inset 0 0 0 1px var(--ds-auro-dropdown-trigger-border-color)}:host([disabled][common]),:host([disabled][bordered]){--ds-auro-dropdown-trigger-border-color: var(--ds-color-border-ui-disabled-default, #adadad)}`;
2893
2931
 
2894
2932
  var tokensCss$5 = i$3$1`:host{--ds-auro-dropdown-help-text-color: var(--ds-color-text-secondary-default, #525252);--ds-auro-dropdown-label-text-color: var(--ds-color-text-secondary-default, #525252);--ds-auro-dropdown-popover-container-color: var(--ds-color-container-primary-default, #ffffff);--ds-auro-dropdown-popover-border-color: transparent;--ds-auro-dropdown-popover-text-color: var(--ds-color-text-primary-default, #2a2a2a);--ds-auro-dropdown-trigger-container-color: var(--ds-color-container-primary-default, #ffffff);--ds-auro-dropdown-trigger-border-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-color-text-primary-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-color-container-primary-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-color-text-primary-default, #2a2a2a)}`;
2895
2933
 
2896
- var styleCss$5 = i$3$1`:host{position:absolute;z-index:var(--depth-tooltip, 400);display:none}.container{display:inline-block;overflow:auto;box-sizing:border-box;margin-top:var(--ds-size-50, 0.25rem)}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset}:host([data-show]){display:block}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common]) .container,:host([inset]) .container{padding:var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}`;
2934
+ var styleCss$5 = i$3$1`:host{position:absolute;z-index:var(--depth-tooltip, 400);display:none}.container{display:inline-block;overflow:auto;box-sizing:border-box;margin:var(--ds-size-50, 0.25rem) 0}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common]) .container,:host([inset]) .container{padding:var(--ds-size-50, 0.25rem) var(--ds-size-100, 0.5rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}`;
2897
2935
 
2898
2936
  var colorCss$5 = i$3$1`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
2899
2937
 
@@ -2996,12 +3034,13 @@ if (!customElements.get("auro-dropdownbib")) {
2996
3034
  * @attr { Boolean } disabled - If declared, the dropdown is not interactive.
2997
3035
  * @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
2998
3036
  * @attr { Boolean } error - If declared in combination with `bordered` property or `helpText` slot content, will apply red color to both.
3037
+ * @attr {Boolean} fluid - Makes the trigger to be full width of its parent container
2999
3038
  * @attr { Boolean } matchWidth - If declared, the popover and trigger will be set to the same width.
3000
3039
  * @attr { Boolean } inset - If declared, will apply padding around trigger slot content.
3001
3040
  * @attr { Boolean } rounded - If declared, will apply border-radius to trigger and default slots.
3002
3041
  * @attr { Boolean } hoverToggle - if declared, the trigger will toggle the big on mouseover/mouseout.
3003
- * @attr { Boolean } noToggle - If declared, the trigger will only show the the dropdown bib.
3004
- * @attr { Boolean } focusShow - if declared, the the bib will display when focus is applied to the trigger.
3042
+ * @attr { Boolean } noToggle - If declared, the trigger will only show the dropdown bib.
3043
+ * @attr { Boolean } focusShow - if declared, the bib will display when focus is applied to the trigger.
3005
3044
  * @attr { Boolean } noHideOnThisFocusLoss - If declared, the dropdown will not hide when moving focus outside the element.
3006
3045
  * @attr { String } mobileFullscreenBreakpoint - Defines the screen size breakpoint (`lg`, `md`, `sm`, or `xs`) at which the dropdown switches to fullscreen mode on mobile. When expanded, the dropdown will automatically display in fullscreen mode if the screen size is equal to or smaller than the selected breakpoint.
3007
3046
  * @prop { Boolean } isPopoverVisible - If true, the dropdown bib is displayed.
@@ -3104,6 +3143,10 @@ class AuroDropdown extends r$5 {
3104
3143
  type: Boolean,
3105
3144
  reflect: true
3106
3145
  },
3146
+ fluid: {
3147
+ type: Boolean,
3148
+ reflect: true,
3149
+ },
3107
3150
  focusShow: {
3108
3151
  type: Boolean,
3109
3152
  reflect: true
@@ -7348,6 +7391,11 @@ class AuroCombobox extends r$6 {
7348
7391
  */
7349
7392
  this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
7350
7393
 
7394
+ /**
7395
+ * @private
7396
+ */
7397
+ this.isHiddenWhileLoading = false;
7398
+
7351
7399
  /**
7352
7400
  * Generate unique names for dependency components.
7353
7401
  */
@@ -7483,7 +7531,7 @@ class AuroCombobox extends r$6 {
7483
7531
  this.noMatchOption = undefined;
7484
7532
 
7485
7533
  this.options.forEach((option) => {
7486
- let matchString = option.innerText.toLowerCase();
7534
+ let matchString = option.textContent.toLowerCase();
7487
7535
 
7488
7536
  if (option.hasAttribute('nomatch')) {
7489
7537
  this.noMatchOption = option;
@@ -7559,8 +7607,12 @@ class AuroCombobox extends r$6 {
7559
7607
  return;
7560
7608
  }
7561
7609
  if (!this.dropdown.isPopoverVisible && this.input.value && this.input.value.length > 0) {
7562
- if ((this.availableOptions && this.availableOptions.length > 0) || this.noMatchOption !== undefined) { // eslint-disable-line no-extra-parens
7563
- this.dropdown.show();
7610
+ if (this.menu.getAttribute('loading') || (this.availableOptions && this.availableOptions.length > 0) || this.noMatchOption !== undefined) { // eslint-disable-line no-extra-parens
7611
+ if (this.menu.hasAttribute('loading') && !this.menu.hasLoadingPlaceholder) {
7612
+ this.isHiddenWhileLoading = true;
7613
+ } else {
7614
+ this.dropdown.show();
7615
+ }
7564
7616
  }
7565
7617
  }
7566
7618
  }
@@ -7592,7 +7644,7 @@ class AuroCombobox extends r$6 {
7592
7644
  */
7593
7645
  configureMenu() {
7594
7646
  this.menu = this.querySelector('auro-menu, [auro-menu]');
7595
-
7647
+ this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
7596
7648
 
7597
7649
  // a racing condition on custom-combobox with custom-menu
7598
7650
  if (!this.menu) {
@@ -7603,7 +7655,7 @@ class AuroCombobox extends r$6 {
7603
7655
  return;
7604
7656
  }
7605
7657
 
7606
- this.menu.shadowRoot.addEventListener('slotchange', () => this.handleSlotChange());
7658
+ this.menu.shadowRoot.addEventListener('slotchange', (event) => this.handleSlotChange(event));
7607
7659
 
7608
7660
  if (this.checkmark) {
7609
7661
  this.menu.removeAttribute('nocheckmark');
@@ -7625,8 +7677,8 @@ class AuroCombobox extends r$6 {
7625
7677
  this.value = this.optionSelected.value;
7626
7678
  }
7627
7679
 
7628
- if (this.input.value !== this.optionSelected.innerText) {
7629
- this.input.value = this.optionSelected.innerText;
7680
+ if (this.input.value !== this.optionSelected.textContent) {
7681
+ this.input.value = this.optionSelected.textContent;
7630
7682
  }
7631
7683
 
7632
7684
  if (this.menu.matchWord !== this.input.value) {
@@ -7702,7 +7754,7 @@ class AuroCombobox extends r$6 {
7702
7754
  this.menu.value = this.value;
7703
7755
  }
7704
7756
 
7705
- if (this.optionSelected && this.input.value !== this.optionSelected.innerText) {
7757
+ if (this.optionSelected && this.input.value !== this.optionSelected.textContent) {
7706
7758
  this.optionSelected = undefined;
7707
7759
  }
7708
7760
 
@@ -7711,7 +7763,7 @@ class AuroCombobox extends r$6 {
7711
7763
  this.handleMenuOptions();
7712
7764
 
7713
7765
  this.handleInputValueChange();
7714
- // validate only if the the value was set programmatically
7766
+ // validate only if the value was set programmatically
7715
7767
  if (document.activeElement !== this) {
7716
7768
  this.validation.validate(this);
7717
7769
  }
@@ -7743,6 +7795,29 @@ class AuroCombobox extends r$6 {
7743
7795
  });
7744
7796
  }
7745
7797
 
7798
+ /**
7799
+ * Manages the visibility of the dropdown based on loading state changes.
7800
+ *
7801
+ * This method listens for loading state changes and adjusts the visibility of the dropdown accordingly.
7802
+ * If the dropdown is visible and loading is true without any loading placeholders, it hides the dropdown
7803
+ * and sets a flag to indicate it is hidden while loading. If loading is false and the dropdown was previously
7804
+ * hidden, it checks if the active element is within the dropdown and shows it again if true.
7805
+ *
7806
+ * @private
7807
+ * @param {CustomEvent} event - The event object containing details about the loading state change.
7808
+ * @param {boolean} event.detail.loading - Indicates whether the menu is currently loading.
7809
+ * @param {boolean} event.detail.hasLoadingPlaceholder - Indicates if there are loading placeholders present.
7810
+ * @returns {void}
7811
+ */
7812
+ handleMenuLoadingChange(event) {
7813
+ if (!event.detail.loading && this.isHiddenWhileLoading) {
7814
+ if (this.contains(document.activeElement)) {
7815
+ this.dropdown.show();
7816
+ }
7817
+ this.isHiddenWhileLoading = false;
7818
+ }
7819
+ }
7820
+
7746
7821
  /**
7747
7822
  * Handle changes to the input value and trigger changes that should result.
7748
7823
  * @private
@@ -7789,7 +7864,7 @@ class AuroCombobox extends r$6 {
7789
7864
  */
7790
7865
  if (evt.key === 'ArrowUp' || evt.key === 'ArrowDown') {
7791
7866
  if (this.availableOptions.length > 0) {
7792
- this.dropdown.show();
7867
+ this.showBib();
7793
7868
  }
7794
7869
 
7795
7870
  if (this.dropdown.isPopoverVisible) {
@@ -7861,8 +7936,8 @@ class AuroCombobox extends r$6 {
7861
7936
  if (this.value) {
7862
7937
  if (this.optionSelected && this.optionSelected.value === this.value) {
7863
7938
  // If value updates and the previously selected option already matches the new value
7864
- // just update the input value to use the innerText of the optionSelected
7865
- this.input.value = this.optionSelected.innerText;
7939
+ // just update the input value to use the textContent of the optionSelected
7940
+ this.input.value = this.optionSelected.textContent;
7866
7941
  } else {
7867
7942
  // Otherwise just enter the value into the input
7868
7943
  this.optionSelected = undefined;
@@ -7892,19 +7967,23 @@ class AuroCombobox extends r$6 {
7892
7967
  /**
7893
7968
  * Watch for slot changes and recalculate the menuoptions.
7894
7969
  * @private
7970
+ * @param {Event} event - slotchange event
7895
7971
  * @returns {void}
7896
7972
  */
7897
- handleSlotChange() {
7898
- this.options = this.menu.querySelectorAll('auro-menuoption, [auro-menuoption]');
7899
- this.options.forEach((opt) => {
7900
- if (this.checkmark) {
7901
- opt.removeAttribute('nocheckmark');
7902
- } else {
7903
- opt.setAttribute('nocheckmark', '');
7904
- }
7905
- });
7973
+ handleSlotChange(event) {
7974
+ // treat only generic menuoptions
7975
+ if (!event.target.name) {
7976
+ this.options = this.menu.querySelectorAll('auro-menuoption, [auro-menuoption]');
7977
+ this.options.forEach((opt) => {
7978
+ if (this.checkmark) {
7979
+ opt.removeAttribute('nocheckmark');
7980
+ } else {
7981
+ opt.setAttribute('nocheckmark', '');
7982
+ }
7983
+ });
7906
7984
 
7907
- this.handleMenuOptions();
7985
+ this.handleMenuOptions();
7986
+ }
7908
7987
  }
7909
7988
 
7910
7989
  // function that renders the HTML and CSS into the scope of the component
@@ -7914,13 +7993,14 @@ class AuroCombobox extends r$6 {
7914
7993
  <div aria-live="polite" class="util_displayHiddenVisually">
7915
7994
  ${this.optionActive && this.availableOptions.length > 0
7916
7995
  ? u$6`
7917
- ${`${this.optionActive.innerText}, selected, ${this.availableOptions.indexOf(this.optionActive) + 1} of ${this.availableOptions.length}`}
7996
+ ${`${this.optionActive.textContent}, selected, ${this.availableOptions.indexOf(this.optionActive) + 1} of ${this.availableOptions.length}`}
7918
7997
  `
7919
7998
  : undefined
7920
7999
  }
7921
8000
  </div>
7922
8001
  <${this.dropdownTag}
7923
8002
  for="dropdownMenu"
8003
+ fluid
7924
8004
  bordered
7925
8005
  rounded
7926
8006
  matchWidth
@@ -7956,1033 +8036,1085 @@ class AuroCombobox extends r$6 {
7956
8036
  }
7957
8037
  }
7958
8038
 
7959
- var styleCss$2 = i$c`: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}`;
8039
+ var styleCss$2 = i$c`: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)}`;
7960
8040
 
7961
8041
  var colorCss$2 = i$c`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color) !important}`;
7962
8042
 
7963
8043
  var tokensCss$1 = i$c`:host{--ds-auro-menu-divider-color: var(--ds-color-border-divider-default, $ds-color-border-divider-default);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-color-text-primary-default, $ds-color-text-primary-default)}`;
7964
8044
 
7965
- var styleCss$1 = i$c`: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}`;
8045
+ // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8046
+ // See LICENSE in the project root for license information.
7966
8047
 
7967
- var colorCss$1 = i$c`: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)}`;
7968
8048
 
8049
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
7969
8050
  /**
7970
- * @license
7971
- * Copyright 2017 Google LLC
7972
- * SPDX-License-Identifier: BSD-3-Clause
8051
+ * The auro-menu element provides users a way to select from a list of options.
8052
+ * @attr {Object} optionSelected - Specifies the current selected menuOption.
8053
+ * @attr {String} matchWord - Specifies a string used to highlight matched string parts in options.
8054
+ * @attr {Boolean} disabled - When true, the entire menu and all options are disabled;
8055
+ * @attr {Boolean} noCheckmark - When true, selected option will not show the checkmark.
8056
+ * @attr {Boolean} loading - When true, displays a loading state using the loadingIcon and loadingText slots if provided.
8057
+ * @attr {String} value - Value selected for the menu.
8058
+ * @prop {Boolean} hasLoadingPlaceholder - Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state.
8059
+ * @event auroMenu-selectedOption - Notifies that a new menuoption selection has been made.
8060
+ * @event selectedOption - (DEPRECATED) Notifies that a new menuoption selection has been made.
8061
+ * @event auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
8062
+ * @event auroMenuActivatedOption - (DEPRECATED) Notifies that a menuoption has been made `active`.
8063
+ * @event auroMenu-selectValueFailure - Notifies that a an attempt to select a menuoption by matching a value has failed.
8064
+ * @event auroMenuSelectValueFailure - (DEPRECATED) Notifies that a an attempt to select a menuoption by matching a value has failed.
8065
+ * @event auroMenu-customEventFired - Notifies that a custom event has been fired.
8066
+ * @event auroMenuCustomEventFired - (DEPRECATED) Notifies that a custom event has been fired.
8067
+ * @event auroMenu-selectValueReset - Notifies that the component value has been reset.
8068
+ * @event auroMenu-loadingChange - Notifies when the loading attribute is changed.
8069
+ * @slot loadingText - Text to show while loading attribute is set
8070
+ * @slot loadingIcon - Icon to show while loading attribute is set
8071
+ * @slot - Slot for insertion of menu options.
7973
8072
  */
7974
- 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)}}
7975
8073
 
7976
- /**
7977
- * @license
7978
- * Copyright 2018 Google LLC
7979
- * SPDX-License-Identifier: BSD-3-Clause
7980
- */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$2}});
8074
+ /* eslint-disable no-magic-numbers, max-lines */
7981
8075
 
7982
- /**
7983
- * @license
7984
- * Copyright 2018 Google LLC
7985
- * SPDX-License-Identifier: BSD-3-Clause
7986
- */const o=o=>o??E$2;
8076
+ class AuroMenu extends r$6 {
8077
+ constructor() {
8078
+ super();
8079
+ this.value = undefined;
8080
+ this.optionSelected = undefined;
8081
+ this.matchWord = undefined;
8082
+ this.noCheckmark = false;
8083
+ this.optionActive = undefined;
8084
+ this.loading = false;
7987
8085
 
7988
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
7989
- // See LICENSE in the project root for license information.
8086
+ /**
8087
+ * @private
8088
+ */
8089
+ this.rootMenu = true;
7990
8090
 
8091
+ /**
8092
+ * @private
8093
+ */
8094
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
7991
8095
 
7992
- /**
7993
- * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
7994
- * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
7995
- * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
7996
- */
8096
+ /**
8097
+ * @private
8098
+ */
8099
+ this.nestingSpacer = '<span class="nestingSpacer"></span>';
7997
8100
 
7998
- class AuroElement extends r$6 {
8101
+ /**
8102
+ * @private
8103
+ */
8104
+ this.loadingSlots = null;
8105
+ }
7999
8106
 
8000
- // function to define props used within the scope of this component
8001
8107
  static get properties() {
8002
8108
  return {
8003
- hidden: { type: Boolean,
8004
- reflect: true },
8005
- hiddenVisually: { type: Boolean,
8006
- reflect: true },
8007
- hiddenAudible: { type: Boolean,
8008
- reflect: true },
8109
+ noCheckmark: {
8110
+ type: Boolean,
8111
+ reflect: true
8112
+ },
8113
+ disabled: {
8114
+ type: Boolean,
8115
+ reflect: true
8116
+ },
8117
+ loading: {
8118
+ type: Boolean,
8119
+ reflect: true
8120
+ },
8121
+ optionSelected: { type: Object },
8122
+ optionActive: { type: Object },
8123
+ matchWord: { type: String },
8124
+ value: { type: String }
8009
8125
  };
8010
8126
  }
8011
8127
 
8128
+ static get styles() {
8129
+ return [
8130
+ styleCss$2,
8131
+ colorCss$2,
8132
+ tokensCss$1
8133
+ ];
8134
+ }
8135
+
8012
8136
  /**
8013
- * @private Function that determines state of aria-hidden
8137
+ * This will register this element with the browser.
8138
+ * @param {string} [name="auro-menu"] - The name of element that you want to register to.
8139
+ *
8140
+ * @example
8141
+ * AuroMenu.register("custom-menu") // this will register this element to <custom-menu/>
8142
+ *
8014
8143
  */
8015
- hideAudible(value) {
8016
- if (value) {
8017
- return 'true'
8018
- }
8019
-
8020
- return 'false'
8144
+ static register(name = "auro-menu") {
8145
+ AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroMenu);
8021
8146
  }
8022
- }
8023
-
8024
- 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>"};
8025
8147
 
8026
- /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
8148
+ /**
8149
+ * Passes the noCheckmark attribute to all nested auro-menuoptions.
8150
+ * @private
8151
+ * @returns {void}
8152
+ */
8153
+ handleNoCheckmarkAttr() {
8154
+ if (this.noCheckmark) {
8155
+ const menus = this.querySelectorAll('auro-menu, [auro-menu]');
8027
8156
 
8028
- const _fetchMap = new Map();
8157
+ menus.forEach((menu) => {
8158
+ menu.setAttribute('noCheckmark', '');
8159
+ });
8029
8160
 
8030
- /**
8031
- * A callback to parse Response body.
8032
- *
8033
- * @callback ResponseParser
8034
- * @param {Fetch.Response} response
8035
- * @returns {Promise}
8036
- */
8161
+ const options = this.querySelectorAll('auro-menuoption, [auro-menuoption]');
8037
8162
 
8038
- /**
8039
- * A minimal in-memory map to de-duplicate Fetch API media requests.
8040
- *
8041
- * @param {String} uri
8042
- * @param {Object} [options={}]
8043
- * @param {ResponseParser} [options.responseParser=(response) => response.text()]
8044
- * @returns {Promise}
8045
- */
8046
- const cacheFetch = (uri, options = {}) => {
8047
- const responseParser = options.responseParser || ((response) => response.text());
8048
- if (!_fetchMap.has(uri)) {
8049
- _fetchMap.set(uri, fetch(uri).then(responseParser));
8163
+ options.forEach((option) => {
8164
+ option.setAttribute('noCheckmark', '');
8165
+ });
8166
+ }
8050
8167
  }
8051
- return _fetchMap.get(uri);
8052
- };
8053
8168
 
8054
- var styleCss = i$c`*,*: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}`;
8169
+ firstUpdated() {
8170
+ // Add the tag name as an attribute if it is different than the component name
8171
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-menu');
8055
8172
 
8056
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8057
- // See LICENSE in the project root for license information.
8173
+ this.addEventListener('keydown', this.handleKeyDown);
8058
8174
 
8175
+ this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
8176
+ }
8059
8177
 
8060
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
8061
- /**
8062
- * @attr {Boolean} onDark - Set value for on-dark version of auro-icon
8063
- * @slot - Hidden from visibility, used for a11y if icon description is needed
8064
- */
8178
+ updated(changedProperties) {
8179
+ if (changedProperties.has('matchWord')) {
8180
+ this.markOptions();
8181
+ }
8065
8182
 
8066
- // build the component class
8067
- class BaseIcon extends AuroElement {
8068
- constructor() {
8069
- super();
8070
- this.onDark = false;
8071
- }
8183
+ if (changedProperties.has('value')) {
8184
+ this.selectByValue(this.value);
8185
+ }
8072
8186
 
8073
- // function to define props used within the scope of this component
8074
- static get properties() {
8075
- return {
8076
- ...super.properties,
8077
- onDark: {
8078
- type: Boolean,
8079
- reflect: true
8080
- },
8187
+ if (changedProperties.has('disabled')) {
8188
+ const options = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
8081
8189
 
8082
- /**
8083
- * @private
8084
- */
8085
- svg: {
8086
- attribute: false,
8087
- reflect: true
8190
+ for (const element of options) {
8191
+ element.disabled = this.disabled;
8088
8192
  }
8089
- };
8193
+ }
8194
+
8195
+ if (changedProperties.has('loading')) {
8196
+ const event = new CustomEvent("auroMenu-loadingChange", {
8197
+ detail: {
8198
+ loading: this.loading,
8199
+ hasLoadingPlaceholder:
8200
+ this.hasLoadingPlaceholder
8201
+ }
8202
+ });
8203
+ this.setAttribute("aria-busy", this.hasAttribute("loading"));
8204
+ this.dispatchEvent(event);
8205
+ }
8090
8206
  }
8091
8207
 
8092
- static get styles() {
8093
- return i$c`
8094
- ${styleCss}
8095
- `;
8208
+ /**
8209
+ * @private
8210
+ * @param {Object} option - The menuoption to check for interactive state.
8211
+ * @returns {Boolean} Returns true if the option is interactive.
8212
+ */
8213
+ optionInteractive(option) {
8214
+ return !option.hasAttribute('hidden') && !option.hasAttribute('disabled') && !option.hasAttribute('static');
8096
8215
  }
8097
8216
 
8098
8217
  /**
8099
- * Async function to fetch requested icon from npm CDN.
8100
8218
  * @private
8101
- * @param {string} category - Icon category.
8102
- * @param {string} name - Icon name.
8103
- * @returns {SVGElement} DOM - Ready HTML to be appended.
8219
+ * @returns {void} When called will update the DOM with visible suggest text matches.
8104
8220
  */
8105
- async fetchIcon(category, name) {
8106
- let iconHTML = '';
8221
+ markOptions() {
8222
+ if (this.items && this.items.length > 0 && (this.matchWord && this.matchWord.length > 0)) {
8107
8223
 
8108
- if (category === 'logos') {
8109
- iconHTML = await cacheFetch(`${this.uri}/${category}/${name}.svg`);
8110
- } else {
8111
- iconHTML = await cacheFetch(`${this.uri}/icons/${category}/${name}.svg`);
8224
+ // Escape special regex characters
8225
+ const escapedWord = this.matchWord.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
8226
+
8227
+ // Global, case-insensitive, unicode matching regex pattern
8228
+ const regexWord = new RegExp(escapedWord, 'giu');
8229
+
8230
+ this.items.forEach((item) => {
8231
+ if (this.optionInteractive(item) && !item.hasAttribute('persistent')) {
8232
+ const nested = item.querySelectorAll('.nestingSpacer');
8233
+ const nestingSpacerBundle = [...nested].map(() => this.nestingSpacer).join('');
8234
+
8235
+ item.innerHTML = nestingSpacerBundle + item.textContent.replace(regexWord, (match) => `<strong>${match}</strong>`);
8236
+ }
8237
+ });
8112
8238
  }
8239
+ }
8113
8240
 
8114
- const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
8241
+ /**
8242
+ * Reset the menu and all options.
8243
+ */
8244
+ resetOptionsStates() {
8245
+ this.optionSelected = undefined;
8246
+ if (this.items) {
8247
+ this.items.forEach((item) => {
8248
+ item.classList.remove('active');
8249
+ item.removeAttribute('selected');
8250
+ });
8251
+ }
8252
+ }
8115
8253
 
8116
- return dom.body.querySelector('svg');
8254
+ /**
8255
+ * Set the attributes on the selected menuoption, the menu value and stored option.
8256
+ * @param {Object} option - The menuoption to be selected.
8257
+ * @private
8258
+ */
8259
+ handleLocalSelectState(option) {
8260
+ option.setAttribute('selected', '');
8261
+ option.classList.add('active');
8262
+ option.ariaSelected = true;
8263
+
8264
+ this.value = option.value;
8265
+ this.optionSelected = option;
8266
+ this.index = this.items.indexOf(option);
8117
8267
  }
8118
8268
 
8119
- // lifecycle function
8120
- async firstUpdated() {
8121
- if (!this.customSvg) {
8122
- const svg = await this.fetchIcon(this.category, this.name);
8269
+ /**
8270
+ * Notify selection change.
8271
+ * @private
8272
+ * @return {void}
8273
+ */
8274
+ notifySelectionChange() {
8275
+ // this event needs to be removed after select and combobox are updated to use the new standard name
8276
+ this.dispatchEvent(new CustomEvent('selectedOption', {
8277
+ bubbles: true,
8278
+ cancelable: false,
8279
+ composed: true,
8280
+ }));
8123
8281
 
8124
- if (svg) {
8125
- this.svg = svg;
8126
- } else if (!svg) {
8127
- const penDOM = new DOMParser().parseFromString(error.svg, 'text/html');
8282
+ this.dispatchEvent(new CustomEvent('auroMenu-selectedOption', {
8283
+ bubbles: true,
8284
+ cancelable: false,
8285
+ composed: true,
8286
+ }));
8287
+ }
8128
8288
 
8129
- this.svg = penDOM.body.firstChild;
8130
- }
8289
+ /**
8290
+ * Process actions for making making a menuoption selection.
8291
+ */
8292
+ makeSelection() {
8293
+ if (!this.items) {
8294
+ this.initItems();
8131
8295
  }
8132
- }
8133
- }
8134
8296
 
8135
- var tokensCss = i$c`: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)}`;
8297
+ if (this.items[this.index] && !this.items[this.index].hasAttribute('disabled')) {
8298
+ this.resetOptionsStates();
8136
8299
 
8137
- var colorCss = i$c`: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)}`;
8300
+ if (this.index >= 0) {
8301
+ const option = this.items[this.index];
8138
8302
 
8139
- // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8140
- // See LICENSE in the project root for license information.
8303
+ // only handle options that are not disabled, hidden or static
8304
+ if (option && this.optionInteractive(option)) {
8305
+ // fire custom event if defined otherwise make selection
8306
+ if (option.hasAttribute('event')) {
8307
+ this.dispatchEvent(new CustomEvent(option.getAttribute('event'), {
8308
+ bubbles: true,
8309
+ cancelable: false,
8310
+ composed: true,
8311
+ }));
8141
8312
 
8313
+ // this event needs to be removed after select and combobox are updated to use the new standard name
8314
+ this.dispatchEvent(new CustomEvent('auroMenuCustomEventFired', {
8315
+ bubbles: true,
8316
+ cancelable: false,
8317
+ composed: true,
8318
+ }));
8142
8319
 
8143
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
8144
- /**
8145
- * auro-icon provides users a way to use the Auro Icons by simply passing in the category and name.
8146
- *
8147
- * @attr {String} category - The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
8148
- * @attr {String} name - The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage
8149
- * @attr {Boolean} customColor - Removes primary selector.
8150
- * @attr {Boolean} customSvg - When true, auro-icon will render a custom SVG inside the default slot.
8151
- * @attr {Boolean} label - Exposes content in slot as icon label.
8152
- * @attr {Boolean} primary - DEPRECATED: Sets the icon to use the baseline primary icon style.
8153
- * @attr {Boolean} accent - Sets the icon to use the accent style.
8154
- * @attr {Boolean} emphasis - Sets the icon to use the emphasis style.
8155
- * @attr {Boolean} disabled - Sets the icon to use the disabled style.
8156
- * @attr {Boolean} error - Sets the icon to use the error style.
8157
- * @attr {Boolean} info - Sets the icon to use the info style.
8158
- * @attr {Boolean} secondary - Sets the icon to use the secondary style.
8159
- * @attr {Boolean} tertiary - Sets the icon to use the tertiary style.
8160
- * @attr {Boolean} subtle - Sets the icon to use the subtle style.
8161
- * @attr {Boolean} success - Sets the icon to use the success style.
8162
- * @attr {Boolean} warning - Sets the icon to use the warning style.
8163
- * @attr {String} ariaHidden - Set aria-hidden value. Default is `true`. Option is `false`.
8164
- * @attr {String} uri - Set the uri for CDN used when fetching icons
8165
- * @slot - Hidden from visibility, used for a11y if icon description is needed.
8166
- * @slot svg - Used for custom SVG content.
8167
- */
8320
+ this.dispatchEvent(new CustomEvent('auroMenu-customEventFired', {
8321
+ bubbles: true,
8322
+ cancelable: false,
8323
+ composed: true,
8324
+ }));
8325
+ } else {
8326
+ this.handleLocalSelectState(option);
8327
+ }
8328
+ }
8329
+ }
8330
+ }
8168
8331
 
8169
- // build the component class
8170
- class AuroIcon extends BaseIcon {
8171
- constructor() {
8172
- super();
8332
+ this.notifySelectionChange();
8333
+ }
8173
8334
 
8174
- this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
8335
+ /**
8336
+ * Manage ArrowDown, ArrowUp and Enter keyboard events.
8337
+ * @private
8338
+ * @param {Object} event - Event object from the browser.
8339
+ */
8340
+ handleKeyDown(event) {
8341
+ event.preventDefault();
8175
8342
 
8176
- this.privateDefaults();
8343
+ // With ArrowDown/ArrowUp events, pass new value to selectNextItem()
8344
+ // With Enter event, set value and apply attrs
8345
+ switch (event.key) {
8346
+ case "ArrowDown":
8347
+ this.selectNextItem('down');
8348
+ break;
8349
+
8350
+ case "ArrowUp":
8351
+ this.selectNextItem('up');
8352
+ break;
8353
+
8354
+ case "Enter":
8355
+ this.makeSelection();
8356
+ break;
8357
+ }
8177
8358
  }
8178
8359
 
8179
8360
  /**
8180
- * Internal Defaults.
8361
+ * Initializes all menu options in the DOM. This must be re-run every time the options are changed.
8181
8362
  * @private
8182
- * @returns {void}
8183
8363
  */
8184
- privateDefaults() {
8185
- this.accent = false;
8186
- this.customColor = false;
8187
- this.customSvg = false;
8188
- this.disabled = false;
8189
- this.emphasis = false;
8190
- this.error = false;
8191
- this.info = false;
8192
- this.label = false;
8193
- this.primary = false;
8194
- this.secondary = false;
8195
- this.subtle = false;
8196
- this.success = false;
8197
- this.tertiary = false;
8198
- this.warning = false;
8199
- this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
8364
+ initItems() {
8365
+ this.items = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
8366
+ this.handleNoCheckmarkAttr();
8200
8367
  }
8201
8368
 
8202
- // function to define props used within the scope of this component
8203
- static get properties() {
8204
- return {
8205
- ...super.properties,
8206
- accent: {
8207
- type: Boolean,
8208
- reflect: true
8209
- },
8210
- ariaHidden: {
8211
- type: String,
8212
- reflect: true
8213
- },
8214
- category: {
8215
- type: String,
8216
- reflect: true
8217
- },
8218
- customColor: {
8219
- type: Boolean
8220
- },
8221
- customSvg: {
8222
- type: Boolean
8223
- },
8224
- disabled: {
8225
- type: Boolean,
8226
- reflect: true
8227
- },
8228
- emphasis: {
8229
- type: Boolean,
8230
- reflect: true
8231
- },
8232
- error: {
8233
- type: Boolean,
8234
- reflect: true
8235
- },
8236
- info: {
8237
- type: Boolean,
8238
- reflect: true
8239
- },
8240
- label: {
8241
- type: Boolean,
8242
- reflect: true
8243
- },
8244
- name: {
8245
- type: String,
8246
- reflect: true
8247
- },
8248
- primary: {
8249
- type: Boolean,
8250
- reflect: true
8251
- },
8252
- secondary: {
8253
- type: Boolean,
8254
- reflect: true
8255
- },
8256
- subtle: {
8257
- type: Boolean,
8258
- reflect: true
8259
- },
8260
- success: {
8261
- type: Boolean,
8262
- reflect: true
8263
- },
8264
- tertiary: {
8265
- type: Boolean,
8266
- reflect: true
8267
- },
8268
- uri: {
8269
- type: String
8270
- },
8271
- warning: {
8272
- type: Boolean,
8273
- reflect: true
8274
- }
8275
- };
8276
- }
8369
+ /**
8370
+ * Sets the index value of the selected item or first non-disabled menuoption.
8371
+ * @private
8372
+ */
8373
+ getSelectedIndex() {
8374
+ // find the first `selected` and not `disabled`, `hidden` or `static` option
8375
+ const index = this.items.findIndex((option) => option.hasAttribute('selected') && this.optionInteractive(option));
8277
8376
 
8278
- static get styles() {
8279
- return [
8280
- super.styles,
8281
- i$c`${tokensCss}`,
8282
- i$c`${styleCss}`,
8283
- i$c`${colorCss}`
8284
- ];
8377
+ if (index >= 0) {
8378
+ this.index = index;
8379
+ this.makeSelection();
8380
+ }
8285
8381
  }
8286
8382
 
8287
8383
  /**
8288
- * This will register this element with the browser.
8289
- * @param {string} [name="auro-icon"] - The name of element that you want to register to.
8290
- *
8291
- * @example
8292
- * AuroIcon.register("custom-icon") // this will register this element to <custom-icon/>
8384
+ * Using value of current this.index evaluates index
8385
+ * of next :focus to set based on array of this.items ignoring items
8386
+ * with disabled attr.
8293
8387
  *
8388
+ * The event.target is not used as the function needs to know where to go,
8389
+ * versus knowing where it is.
8390
+ * @param {String} moveDirection - Up or Down based on keyboard event.
8294
8391
  */
8295
- static register(name = "auro-icon") {
8296
- AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroIcon);
8297
- }
8298
-
8299
- connectedCallback() {
8300
- super.connectedCallback();
8392
+ selectNextItem(moveDirection) {
8393
+ if (this.index >= 0) {
8394
+ this.items[this.index].classList.remove('active');
8301
8395
 
8302
- // Add the tag name as an attribute if it is different than the component name
8303
- this.runtimeUtils.handleComponentTagRename(this, 'auro-icon');
8304
- }
8396
+ // calculate which is the selection we should focus next
8397
+ let increment = 0;
8305
8398
 
8306
- /**
8307
- * @returns {void} Exposes CSS parts for styling from parent components.
8308
- */
8309
- exposeCssParts() {
8310
- this.setAttribute('exportparts', 'svg:iconSvg');
8311
- }
8399
+ if (moveDirection === 'down') {
8400
+ increment = 1;
8401
+ } else if (moveDirection === 'up') {
8402
+ increment = -1;
8403
+ }
8312
8404
 
8313
- // function that renders the HTML and CSS into the scope of the component
8314
- render() {
8315
- const a11y = {
8316
- 'labelContainer': true,
8317
- 'util_displayHiddenVisually': !this.label
8318
- };
8405
+ this.index += increment;
8319
8406
 
8320
- const classes = {
8321
- 'label': this.label
8322
- };
8407
+ // keep looping inside the array of options
8408
+ if (this.index > this.items.length - 1) {
8409
+ this.index = 0;
8410
+ } else if (this.index < 0) {
8411
+ this.index = this.items.length - 1;
8412
+ }
8323
8413
 
8324
- return x$2`
8325
- <div
8326
- class="${e(classes)}"
8327
- title="${o(this.title || undefined)}">
8328
- <span aria-hidden="${o(this.ariaHidden ? this.ariaHidden : true)}" part="svg">
8329
- ${this.customSvg ? x$2`
8330
- <slot name="svg"></slot>
8331
- ` : x$2`
8332
- ${this.svg}
8333
- `
8334
- }
8335
- </span>
8414
+ // check if new index is disabled, static or hidden, if so, execute again
8415
+ if (!this.optionInteractive(this.items[this.index])) {
8416
+ this.selectNextItem(moveDirection);
8417
+ } else {
8418
+ // apply focus to new index
8419
+ this.updateActiveOption(this.index);
8420
+ }
8421
+ } else {
8422
+ this.index = 0;
8336
8423
 
8337
- <div class="${e(a11y)}">
8338
- <slot></slot>
8339
- </div>
8340
- </div>
8341
- `;
8424
+ if (this.items[this.index].hasAttribute('hidden') || this.items[this.index].hasAttribute('disabled')) {
8425
+ this.selectNextItem(moveDirection);
8426
+ } else {
8427
+ this.updateActiveOption(this.index);
8428
+ }
8429
+ }
8342
8430
  }
8343
- }
8344
8431
 
8345
- var iconVersion = '6.1.1';
8432
+ /**
8433
+ * Used for applying indentation to each level of nested menu.
8434
+ * @private
8435
+ * @param {String} menu - Root level menu object.
8436
+ */
8437
+ handleNestedMenus(menu) {
8438
+ const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu');
8346
8439
 
8347
- 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>"};
8440
+ if (nestedMenus.length === 0) {
8441
+ return;
8442
+ }
8348
8443
 
8349
- // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8350
- // See LICENSE in the project root for license information.
8444
+ nestedMenus.forEach((nestedMenu) => {
8445
+ const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption');
8351
8446
 
8447
+ options.forEach((option) => {
8448
+ option.innerHTML = this.nestingSpacer + option.innerHTML;
8449
+ });
8352
8450
 
8353
- /**
8354
- * The auro-menu element provides users a way to define a menu option.
8355
- *
8356
- * @attr {String} value - Specifies the value to be sent to a server.
8357
- * @attr {String} noCheckmark - When true, selected option will not show the checkmark.
8358
- * @attr {Boolean} disabled - When true specifies that the menuoption is disabled.
8359
- * @attr {Boolean} selected - Specifies that an option is selected.
8360
- * @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
8361
- * @slot Specifies text for an option, but is not the value.
8362
- */
8363
- class AuroMenuOption extends r$6 {
8364
- constructor() {
8365
- super();
8451
+ this.handleNestedMenus(nestedMenu);
8452
+ });
8453
+ }
8366
8454
 
8367
- /**
8368
- * Generate unique names for dependency components.
8369
- */
8370
- const versioning = new AuroDependencyVersioning$2();
8371
- this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon);
8455
+ /**
8456
+ * Method to apply `selected` attribute to `menuoption` via `value`.
8457
+ * @private
8458
+ * @param {String} value - Must match a unique `menuoption` value.
8459
+ */
8460
+ selectByValue(value) {
8461
+ let valueMatch = false;
8462
+ if (!this.items) {
8463
+ this.initItems();
8464
+ }
8372
8465
 
8373
- this.selected = false;
8374
- this.nocheckmark = false;
8375
- this.disabled = false;
8466
+ this.index = undefined;
8376
8467
 
8377
- /**
8378
- * @private
8379
- */
8380
- this.tabIndex = -1;
8468
+ if (this.value && this.value.length > 0) {
8469
+ for (let index = 0; index < this.items.length; index += 1) {
8470
+ if (this.items[index].value === value) {
8471
+ valueMatch = true;
8472
+ this.index = index;
8473
+ }
8474
+ }
8381
8475
 
8382
- /**
8383
- * @private
8384
- */
8385
- this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
8386
- }
8476
+ if (!valueMatch) {
8477
+ // reset the menu to no selection
8478
+ this.index = undefined;
8387
8479
 
8388
- static get properties() {
8389
- return {
8390
- nocheckmark: {
8391
- type: Boolean,
8392
- reflect: true
8393
- },
8394
- selected: {
8395
- type: Boolean,
8396
- reflect: true
8397
- },
8398
- disabled: {
8399
- type: Boolean,
8400
- reflect: true
8401
- },
8402
- value: {
8403
- type: String,
8404
- reflect: true
8405
- },
8406
- tabIndex: {
8407
- type: Number,
8408
- reflect: true
8480
+ // this event needs to be removed after select and combobox are updated to use the new standard name
8481
+ this.dispatchEvent(new CustomEvent('auroMenuSelectValueFailure', {
8482
+ bubbles: true,
8483
+ cancelable: false,
8484
+ composed: true,
8485
+ }));
8486
+
8487
+ this.dispatchEvent(new CustomEvent('auroMenu-selectValueFailure', {
8488
+ bubbles: true,
8489
+ cancelable: false,
8490
+ composed: true,
8491
+ }));
8492
+ } else {
8493
+ this.makeSelection();
8409
8494
  }
8410
- };
8411
- }
8495
+ } else {
8496
+ this.resetOptionsStates();
8412
8497
 
8413
- static get styles() {
8414
- return [
8415
- styleCss$1,
8416
- colorCss$1,
8417
- tokensCss$1
8418
- ];
8498
+ this.dispatchEvent(new CustomEvent('auroMenu-selectValueReset', {
8499
+ bubbles: true,
8500
+ cancelable: false,
8501
+ composed: true,
8502
+ }));
8503
+ }
8419
8504
  }
8420
8505
 
8421
8506
  /**
8422
- * This will register this element with the browser.
8423
- * @param {string} [name="auro-menuoption"] - The name of element that you want to register to.
8424
- *
8425
- * @example
8426
- * AuroMenuOption.register("custom-menuoption") // this will register this element to <custom-menuoption/>
8427
- *
8507
+ * Used to make the active state for options follow mouseover.
8508
+ * @param {Number} index - Index of the menuoption that will be made active.
8509
+ * @private
8428
8510
  */
8429
- static register(name = "auro-menuoption") {
8430
- AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroMenuOption);
8431
- }
8432
-
8433
- firstUpdated() {
8434
- // Add the tag name as an attribute if it is different than the component name
8435
- this.runtimeUtils.handleComponentTagRename(this, 'auro-menuoption');
8511
+ updateActiveOption(index) {
8512
+ this.items.forEach((item) => {
8513
+ item.classList.remove('active');
8514
+ });
8515
+ this.items[index].classList.add('active');
8516
+ this.optionActive = this.items[index];
8436
8517
 
8437
- this.setAttribute('role', 'option');
8438
- this.setAttribute('aria-selected', 'false');
8518
+ this.dispatchEvent(new CustomEvent('auroMenuActivatedOption', {
8519
+ bubbles: true,
8520
+ cancelable: false,
8521
+ composed: true,
8522
+ detail: this.items[index]
8523
+ }));
8439
8524
 
8440
- this.addEventListener('mouseover', () => {
8441
- this.dispatchEvent(new CustomEvent('auroMenuOption-mouseover', {
8442
- bubbles: true,
8443
- cancelable: false,
8444
- composed: true,
8445
- detail: this
8446
- }));
8447
- });
8525
+ this.dispatchEvent(new CustomEvent('auroMenu-activatedOption', {
8526
+ bubbles: true,
8527
+ cancelable: false,
8528
+ composed: true,
8529
+ detail: this.items[index]
8530
+ }));
8448
8531
  }
8449
8532
 
8450
- // observer for selected property changes
8451
- updated(changedProperties) {
8452
- if (changedProperties.has('selected')) {
8453
- this.setAttribute('aria-selected', this.selected.toString());
8533
+ /**
8534
+ * Used to only make a selection when a menuoption is receiving a mousedown event.
8535
+ * @param {Event} evt - Mousedown event.
8536
+ * @private
8537
+ */
8538
+ handleMenuMouseDown(evt) {
8539
+ if (evt.target !== this) {
8540
+ this.makeSelection();
8454
8541
  }
8455
8542
  }
8456
8543
 
8457
8544
  /**
8458
- * Generates an HTML element containing an SVG icon based on the provided `svgContent`.
8545
+ * Checks if there are any loading placeholders in the component.
8459
8546
  *
8547
+ * This getter evaluates the `loadingSlots` collection to determine if it contains any items.
8548
+ * If the size of the collection is greater than zero, it indicates the presence of loading
8549
+ * placeholders, returning true; otherwise, it returns false.
8550
+ *
8551
+ * @getter hasLoadingPlaceholder
8552
+ * @type {boolean}
8553
+ * @returns {boolean} Returns true if loading placeholders exist; false otherwise.
8554
+ */
8555
+ get hasLoadingPlaceholder() {
8556
+ return this.loadingSlots.length > 0;
8557
+ }
8558
+
8559
+ /**
8560
+ * Used for @slotchange event on slotted element.
8460
8561
  * @private
8461
- * @param {string} svgContent - The SVG content to be embedded.
8462
- * @returns {Element} The HTML element containing the SVG icon.
8463
8562
  */
8464
- generateIconHtml(svgContent) {
8465
- const dom = new DOMParser().parseFromString(svgContent, 'text/html');
8466
- const svg = dom.body.firstChild;
8563
+ handleSlotItems() {
8564
+ // Determine if this is the root of the menu/submenu layout.
8565
+ if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
8566
+ this.rootMenu = false;
8567
+ }
8467
8568
 
8468
- svg.setAttribute('slot', 'svg');
8569
+ // If this is the root menu (not a nested menu) handle events, states and styling.
8570
+ if (this.rootMenu) {
8571
+ this.initItems();
8572
+ this.setAttribute('role', 'listbox');
8573
+ this.setAttribute('root', '');
8574
+ this.handleNestedMenus(this);
8575
+ this.markOptions();
8576
+ this.index = -1;
8577
+ this.getSelectedIndex();
8469
8578
 
8470
- return u$6`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
8579
+ this.addEventListener('keydown', this.handleKeyDown);
8580
+ this.addEventListener('mousedown', this.handleMenuMouseDown);
8581
+ this.addEventListener('auroMenuOption-mouseover', (evt) => {
8582
+ this.index = this.items.indexOf(evt.target);
8583
+ this.updateActiveOption(this.index);
8584
+ });
8585
+ } else {
8586
+ // make sure to update all menuoption noCheckmark attributes when the menu is dynamically changed
8587
+ this.handleNoCheckmarkAttr();
8588
+ }
8471
8589
  }
8472
8590
 
8473
8591
  render() {
8474
- return u$6`
8475
- ${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
8476
- <slot></slot>
8477
- `;
8592
+ if (this.loading) {
8593
+ return x$2`
8594
+ <auro-menuoption disabled loadingplaceholder class="${this.hasLoadingPlaceholder ? '' : 'empty'}">
8595
+ <div>
8596
+ <slot name="loadingIcon"></slot>
8597
+ <slot name="loadingText"></slot>
8598
+ </div>
8599
+ </auro-menuoption>
8600
+ `;
8601
+ }
8602
+ return x$2`<slot @slotchange=${this.handleSlotItems}></slot>`;
8478
8603
  }
8479
8604
  }
8480
8605
 
8481
- // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8482
- // See LICENSE in the project root for license information.
8606
+ var styleCss$1 = i$c`: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}`;
8483
8607
 
8608
+ var colorCss$1 = i$c`: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)}`;
8484
8609
 
8485
- // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
8486
8610
  /**
8487
- * The auro-menu element provides users a way to select from a list of options.
8488
- * @attr {Object} optionSelected - Specifies the current selected menuOption.
8489
- * @attr {String} matchWord - Specifies the a string used to highlight matched string parts in options.
8490
- * @attr {Boolean} disabled - When true, the entire menu and all options are disabled;
8491
- * @attr {Boolean} noCheckmark - When true, selected option will not show the checkmark.
8492
- * @attr {String} value - Value selected for the menu.
8493
- * @event auroMenu-selectedOption - Notifies that a new menuoption selection has been made.
8494
- * @event selectedOption - (DEPRECATED) Notifies that a new menuoption selection has been made.
8495
- * @event auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
8496
- * @event auroMenuActivatedOption - (DEPRECATED) Notifies that a menuoption has been made `active`.
8497
- * @event auroMenu-selectValueFailure - Notifies that a an attempt to select a menuoption by matching a value has failed.
8498
- * @event auroMenuSelectValueFailure - (DEPRECATED) Notifies that a an attempt to select a menuoption by matching a value has failed.
8499
- * @event auroMenu-customEventFired - Notifies that a custom event has been fired.
8500
- * @event auroMenuCustomEventFired - (DEPRECATED) Notifies that a custom event has been fired.
8501
- * @event auroMenu-selectValueReset - Notifies that the component value has been reset.
8502
- * @slot Slot for insertion of menu options.
8611
+ * @license
8612
+ * Copyright 2017 Google LLC
8613
+ * SPDX-License-Identifier: BSD-3-Clause
8503
8614
  */
8615
+ 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)}}
8504
8616
 
8505
- /* eslint-disable no-magic-numbers, max-lines */
8617
+ /**
8618
+ * @license
8619
+ * Copyright 2018 Google LLC
8620
+ * SPDX-License-Identifier: BSD-3-Clause
8621
+ */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$2}});
8506
8622
 
8507
- class AuroMenu extends r$6 {
8508
- constructor() {
8509
- super();
8510
- this.value = undefined;
8511
- this.optionSelected = undefined;
8512
- this.matchWord = undefined;
8513
- this.noCheckmark = false;
8514
- this.optionActive = undefined;
8623
+ /**
8624
+ * @license
8625
+ * Copyright 2018 Google LLC
8626
+ * SPDX-License-Identifier: BSD-3-Clause
8627
+ */const o=o=>o??E$2;
8515
8628
 
8516
- /**
8517
- * @private
8518
- */
8519
- this.rootMenu = true;
8629
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8630
+ // See LICENSE in the project root for license information.
8520
8631
 
8521
- /**
8522
- * @private
8523
- */
8524
- this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
8525
8632
 
8526
- /**
8527
- * @private
8528
- */
8529
- this.nestingSpacer = '<span class="nestingSpacer"></span>';
8530
- }
8633
+ /**
8634
+ * @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
8635
+ * @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
8636
+ * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
8637
+ */
8638
+
8639
+ class AuroElement extends r$6 {
8531
8640
 
8641
+ // function to define props used within the scope of this component
8532
8642
  static get properties() {
8533
8643
  return {
8534
- noCheckmark: {
8535
- type: Boolean,
8536
- reflect: true
8537
- },
8538
- disabled: {
8539
- type: Boolean,
8540
- reflect: true
8541
- },
8542
- optionSelected: { type: Object },
8543
- optionActive: { type: Object },
8544
- matchWord: { type: String },
8545
- value: { type: String }
8644
+ hidden: { type: Boolean,
8645
+ reflect: true },
8646
+ hiddenVisually: { type: Boolean,
8647
+ reflect: true },
8648
+ hiddenAudible: { type: Boolean,
8649
+ reflect: true },
8546
8650
  };
8547
8651
  }
8548
8652
 
8549
- static get styles() {
8550
- return [
8551
- styleCss$2,
8552
- colorCss$2,
8553
- tokensCss$1
8554
- ];
8555
- }
8556
-
8557
8653
  /**
8558
- * This will register this element with the browser.
8559
- * @param {string} [name="auro-menu"] - The name of element that you want to register to.
8560
- *
8561
- * @example
8562
- * AuroMenu.register("custom-menu") // this will register this element to <custom-menu/>
8563
- *
8654
+ * @private Function that determines state of aria-hidden
8564
8655
  */
8565
- static register(name = "auro-menu") {
8566
- AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroMenu);
8656
+ hideAudible(value) {
8657
+ if (value) {
8658
+ return 'true'
8659
+ }
8660
+
8661
+ return 'false'
8567
8662
  }
8663
+ }
8568
8664
 
8569
- /**
8570
- * Passes the noCheckmark attribute to all nested auro-menuoptions.
8571
- * @private
8572
- * @returns {void}
8573
- */
8574
- handleNoCheckmarkAttr() {
8575
- if (this.noCheckmark) {
8576
- const menus = this.querySelectorAll('auro-menu, [auro-menu]');
8665
+ 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>"};
8577
8666
 
8578
- menus.forEach((menu) => {
8579
- menu.setAttribute('noCheckmark', '');
8580
- });
8667
+ /* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
8581
8668
 
8582
- const options = this.querySelectorAll('auro-menuoption, [auro-menuoption]');
8669
+ const _fetchMap = new Map();
8583
8670
 
8584
- options.forEach((option) => {
8585
- option.setAttribute('noCheckmark', '');
8586
- });
8587
- }
8671
+ /**
8672
+ * A callback to parse Response body.
8673
+ *
8674
+ * @callback ResponseParser
8675
+ * @param {Fetch.Response} response
8676
+ * @returns {Promise}
8677
+ */
8678
+
8679
+ /**
8680
+ * A minimal in-memory map to de-duplicate Fetch API media requests.
8681
+ *
8682
+ * @param {String} uri
8683
+ * @param {Object} [options={}]
8684
+ * @param {ResponseParser} [options.responseParser=(response) => response.text()]
8685
+ * @returns {Promise}
8686
+ */
8687
+ const cacheFetch = (uri, options = {}) => {
8688
+ const responseParser = options.responseParser || ((response) => response.text());
8689
+ if (!_fetchMap.has(uri)) {
8690
+ _fetchMap.set(uri, fetch(uri).then(responseParser));
8588
8691
  }
8692
+ return _fetchMap.get(uri);
8693
+ };
8589
8694
 
8590
- firstUpdated() {
8591
- // Add the tag name as an attribute if it is different than the component name
8592
- this.runtimeUtils.handleComponentTagRename(this, 'auro-menu');
8695
+ var styleCss = i$c`*,*: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}`;
8593
8696
 
8594
- this.addEventListener('keydown', this.handleKeyDown);
8595
- }
8697
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8698
+ // See LICENSE in the project root for license information.
8596
8699
 
8597
- updated(changedProperties) {
8598
- if (changedProperties.has('matchWord')) {
8599
- this.markOptions();
8600
- }
8601
8700
 
8602
- if (changedProperties.has('value')) {
8603
- this.selectByValue(this.value);
8604
- }
8701
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
8702
+ /**
8703
+ * @attr {Boolean} onDark - Set value for on-dark version of auro-icon
8704
+ * @slot - Hidden from visibility, used for a11y if icon description is needed
8705
+ */
8605
8706
 
8606
- if (changedProperties.has('disabled')) {
8607
- const options = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
8707
+ // build the component class
8708
+ class BaseIcon extends AuroElement {
8709
+ constructor() {
8710
+ super();
8711
+ this.onDark = false;
8712
+ }
8608
8713
 
8609
- for (const element of options) {
8610
- element.disabled = this.disabled;
8714
+ // function to define props used within the scope of this component
8715
+ static get properties() {
8716
+ return {
8717
+ ...super.properties,
8718
+ onDark: {
8719
+ type: Boolean,
8720
+ reflect: true
8721
+ },
8722
+
8723
+ /**
8724
+ * @private
8725
+ */
8726
+ svg: {
8727
+ attribute: false,
8728
+ reflect: true
8611
8729
  }
8612
- }
8730
+ };
8613
8731
  }
8614
8732
 
8615
- /**
8616
- * @private
8617
- * @param {Object} option - The menuoption to check for interactive state.
8618
- * @returns {Boolean} Returns true if the option is interactive.
8619
- */
8620
- optionInteractive(option) {
8621
- return !option.hasAttribute('hidden') && !option.hasAttribute('disabled') && !option.hasAttribute('static');
8733
+ static get styles() {
8734
+ return i$c`
8735
+ ${styleCss}
8736
+ `;
8622
8737
  }
8623
8738
 
8624
8739
  /**
8740
+ * Async function to fetch requested icon from npm CDN.
8625
8741
  * @private
8626
- * @returns {void} When called will update the DOM with visible suggest text matches.
8742
+ * @param {string} category - Icon category.
8743
+ * @param {string} name - Icon name.
8744
+ * @returns {SVGElement} DOM - Ready HTML to be appended.
8627
8745
  */
8628
- markOptions() {
8629
- if (this.items && this.items.length > 0 && (this.matchWord && this.matchWord.length > 0)) {
8630
-
8631
- // Escape special regex characters
8632
- const escapedWord = this.matchWord.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
8633
-
8634
- // Global, case-insensitive, unicode matching regex pattern
8635
- const regexWord = new RegExp(escapedWord, 'giu');
8636
-
8637
- this.items.forEach((item) => {
8638
- if (this.optionInteractive(item) && !item.hasAttribute('persistent')) {
8639
- const nested = item.querySelectorAll('.nestingSpacer');
8640
- const nestingSpacerBundle = [...nested].map(() => this.nestingSpacer).join('');
8641
-
8642
- item.innerHTML = nestingSpacerBundle + item.textContent.replace(regexWord, (match) => `<strong>${match}</strong>`);
8643
- }
8644
- });
8645
- }
8646
- }
8746
+ async fetchIcon(category, name) {
8747
+ let iconHTML = '';
8647
8748
 
8648
- /**
8649
- * Reset the menu and all options.
8650
- */
8651
- resetOptionsStates() {
8652
- this.optionSelected = undefined;
8653
- if (this.items) {
8654
- this.items.forEach((item) => {
8655
- item.classList.remove('active');
8656
- item.removeAttribute('selected');
8657
- });
8749
+ if (category === 'logos') {
8750
+ iconHTML = await cacheFetch(`${this.uri}/${category}/${name}.svg`);
8751
+ } else {
8752
+ iconHTML = await cacheFetch(`${this.uri}/icons/${category}/${name}.svg`);
8658
8753
  }
8659
- }
8660
8754
 
8661
- /**
8662
- * Set the attributes on the selected menuoption, the menu value and stored option.
8663
- * @param {Object} option - The menuoption to be selected.
8664
- * @private
8665
- */
8666
- handleLocalSelectState(option) {
8667
- option.setAttribute('selected', '');
8668
- option.classList.add('active');
8669
- option.ariaSelected = true;
8755
+ const dom = new DOMParser().parseFromString(iconHTML, 'text/html');
8670
8756
 
8671
- this.value = option.value;
8672
- this.optionSelected = option;
8673
- this.index = this.items.indexOf(option);
8757
+ return dom.body.querySelector('svg');
8674
8758
  }
8675
8759
 
8676
- /**
8677
- * Notify selection change.
8678
- * @private
8679
- * @return {void}
8680
- */
8681
- notifySelectionChange() {
8682
- // this event needs to be removed after select and combobox are updated to use the new standard name
8683
- this.dispatchEvent(new CustomEvent('selectedOption', {
8684
- bubbles: true,
8685
- cancelable: false,
8686
- composed: true,
8687
- }));
8760
+ // lifecycle function
8761
+ async firstUpdated() {
8762
+ if (!this.customSvg) {
8763
+ const svg = await this.fetchIcon(this.category, this.name);
8688
8764
 
8689
- this.dispatchEvent(new CustomEvent('auroMenu-selectedOption', {
8690
- bubbles: true,
8691
- cancelable: false,
8692
- composed: true,
8693
- }));
8694
- }
8765
+ if (svg) {
8766
+ this.svg = svg;
8767
+ } else if (!svg) {
8768
+ const penDOM = new DOMParser().parseFromString(error.svg, 'text/html');
8695
8769
 
8696
- /**
8697
- * Process actions for making making a menuoption selection.
8698
- */
8699
- makeSelection() {
8700
- if (!this.items) {
8701
- this.initItems();
8770
+ this.svg = penDOM.body.firstChild;
8771
+ }
8702
8772
  }
8773
+ }
8774
+ }
8703
8775
 
8704
- if (this.items[this.index] && !this.items[this.index].hasAttribute('disabled')) {
8705
- this.resetOptionsStates();
8706
-
8707
- if (this.index >= 0) {
8708
- const option = this.items[this.index];
8709
-
8710
- // only handle options that are not disabled, hidden or static
8711
- if (option && this.optionInteractive(option)) {
8712
- // fire custom event if defined otherwise make selection
8713
- if (option.hasAttribute('event')) {
8714
- this.dispatchEvent(new CustomEvent(option.getAttribute('event'), {
8715
- bubbles: true,
8716
- cancelable: false,
8717
- composed: true,
8718
- }));
8776
+ var tokensCss = i$c`: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)}`;
8719
8777
 
8720
- // this event needs to be removed after select and combobox are updated to use the new standard name
8721
- this.dispatchEvent(new CustomEvent('auroMenuCustomEventFired', {
8722
- bubbles: true,
8723
- cancelable: false,
8724
- composed: true,
8725
- }));
8778
+ var colorCss = i$c`: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)}`;
8726
8779
 
8727
- this.dispatchEvent(new CustomEvent('auroMenu-customEventFired', {
8728
- bubbles: true,
8729
- cancelable: false,
8730
- composed: true,
8731
- }));
8732
- } else {
8733
- this.handleLocalSelectState(option);
8734
- }
8735
- }
8736
- }
8737
- }
8780
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8781
+ // See LICENSE in the project root for license information.
8738
8782
 
8739
- this.notifySelectionChange();
8740
- }
8741
8783
 
8742
- /**
8743
- * Manage ArrowDown, ArrowUp and Enter keyboard events.
8744
- * @private
8745
- * @param {Object} event - Event object from the browser.
8746
- */
8747
- handleKeyDown(event) {
8748
- event.preventDefault();
8784
+ // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
8785
+ /**
8786
+ * auro-icon provides users a way to use the Auro Icons by simply passing in the category and name.
8787
+ *
8788
+ * @attr {String} category - The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
8789
+ * @attr {String} name - The name of the icon you are looking for without the file extension. See https://auro.alaskaair.com/icons/usage
8790
+ * @attr {Boolean} customColor - Removes primary selector.
8791
+ * @attr {Boolean} customSvg - When true, auro-icon will render a custom SVG inside the default slot.
8792
+ * @attr {Boolean} label - Exposes content in slot as icon label.
8793
+ * @attr {Boolean} primary - DEPRECATED: Sets the icon to use the baseline primary icon style.
8794
+ * @attr {Boolean} accent - Sets the icon to use the accent style.
8795
+ * @attr {Boolean} emphasis - Sets the icon to use the emphasis style.
8796
+ * @attr {Boolean} disabled - Sets the icon to use the disabled style.
8797
+ * @attr {Boolean} error - Sets the icon to use the error style.
8798
+ * @attr {Boolean} info - Sets the icon to use the info style.
8799
+ * @attr {Boolean} secondary - Sets the icon to use the secondary style.
8800
+ * @attr {Boolean} tertiary - Sets the icon to use the tertiary style.
8801
+ * @attr {Boolean} subtle - Sets the icon to use the subtle style.
8802
+ * @attr {Boolean} success - Sets the icon to use the success style.
8803
+ * @attr {Boolean} warning - Sets the icon to use the warning style.
8804
+ * @attr {String} ariaHidden - Set aria-hidden value. Default is `true`. Option is `false`.
8805
+ * @attr {String} uri - Set the uri for CDN used when fetching icons
8806
+ * @slot - Hidden from visibility, used for a11y if icon description is needed.
8807
+ * @slot svg - Used for custom SVG content.
8808
+ */
8749
8809
 
8750
- // With ArrowDown/ArrowUp events, pass new value to selectNextItem()
8751
- // With Enter event, set value and apply attrs
8752
- switch (event.key) {
8753
- case "ArrowDown":
8754
- this.selectNextItem('down');
8755
- break;
8810
+ // build the component class
8811
+ class AuroIcon extends BaseIcon {
8812
+ constructor() {
8813
+ super();
8756
8814
 
8757
- case "ArrowUp":
8758
- this.selectNextItem('up');
8759
- break;
8815
+ this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
8760
8816
 
8761
- case "Enter":
8762
- this.makeSelection();
8763
- break;
8764
- }
8817
+ this.privateDefaults();
8765
8818
  }
8766
8819
 
8767
8820
  /**
8768
- * Initializes all menu options in the DOM. This must be re-run every time the options are changed.
8821
+ * Internal Defaults.
8769
8822
  * @private
8823
+ * @returns {void}
8770
8824
  */
8771
- initItems() {
8772
- this.items = Array.from(this.querySelectorAll('auro-menuoption, [auro-menuoption]'));
8773
- this.handleNoCheckmarkAttr();
8825
+ privateDefaults() {
8826
+ this.accent = false;
8827
+ this.customColor = false;
8828
+ this.customSvg = false;
8829
+ this.disabled = false;
8830
+ this.emphasis = false;
8831
+ this.error = false;
8832
+ this.info = false;
8833
+ this.label = false;
8834
+ this.primary = false;
8835
+ this.secondary = false;
8836
+ this.subtle = false;
8837
+ this.success = false;
8838
+ this.tertiary = false;
8839
+ this.warning = false;
8840
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
8774
8841
  }
8775
8842
 
8776
- /**
8777
- * Sets the index value of the selected item or first non-disabled menuoption.
8778
- * @private
8779
- */
8780
- getSelectedIndex() {
8781
- // find the first `selected` and not `disabled`, `hidden` or `static` option
8782
- const index = this.items.findIndex((option) => option.hasAttribute('selected') && this.optionInteractive(option));
8843
+ // function to define props used within the scope of this component
8844
+ static get properties() {
8845
+ return {
8846
+ ...super.properties,
8847
+ accent: {
8848
+ type: Boolean,
8849
+ reflect: true
8850
+ },
8851
+ ariaHidden: {
8852
+ type: String,
8853
+ reflect: true
8854
+ },
8855
+ category: {
8856
+ type: String,
8857
+ reflect: true
8858
+ },
8859
+ customColor: {
8860
+ type: Boolean
8861
+ },
8862
+ customSvg: {
8863
+ type: Boolean
8864
+ },
8865
+ disabled: {
8866
+ type: Boolean,
8867
+ reflect: true
8868
+ },
8869
+ emphasis: {
8870
+ type: Boolean,
8871
+ reflect: true
8872
+ },
8873
+ error: {
8874
+ type: Boolean,
8875
+ reflect: true
8876
+ },
8877
+ info: {
8878
+ type: Boolean,
8879
+ reflect: true
8880
+ },
8881
+ label: {
8882
+ type: Boolean,
8883
+ reflect: true
8884
+ },
8885
+ name: {
8886
+ type: String,
8887
+ reflect: true
8888
+ },
8889
+ primary: {
8890
+ type: Boolean,
8891
+ reflect: true
8892
+ },
8893
+ secondary: {
8894
+ type: Boolean,
8895
+ reflect: true
8896
+ },
8897
+ subtle: {
8898
+ type: Boolean,
8899
+ reflect: true
8900
+ },
8901
+ success: {
8902
+ type: Boolean,
8903
+ reflect: true
8904
+ },
8905
+ tertiary: {
8906
+ type: Boolean,
8907
+ reflect: true
8908
+ },
8909
+ uri: {
8910
+ type: String
8911
+ },
8912
+ warning: {
8913
+ type: Boolean,
8914
+ reflect: true
8915
+ }
8916
+ };
8917
+ }
8783
8918
 
8784
- if (index >= 0) {
8785
- this.index = index;
8786
- this.makeSelection();
8787
- }
8919
+ static get styles() {
8920
+ return [
8921
+ super.styles,
8922
+ i$c`${tokensCss}`,
8923
+ i$c`${styleCss}`,
8924
+ i$c`${colorCss}`
8925
+ ];
8788
8926
  }
8789
8927
 
8790
8928
  /**
8791
- * Using value of current this.index evaluates index
8792
- * of next :focus to set based on array of this.items ignoring items
8793
- * with disabled attr.
8929
+ * This will register this element with the browser.
8930
+ * @param {string} [name="auro-icon"] - The name of element that you want to register to.
8931
+ *
8932
+ * @example
8933
+ * AuroIcon.register("custom-icon") // this will register this element to <custom-icon/>
8794
8934
  *
8795
- * The event.target is not used as the function needs to know where to go,
8796
- * versus knowing where it is.
8797
- * @param {String} moveDirection - Up or Down based on keyboard event.
8798
8935
  */
8799
- selectNextItem(moveDirection) {
8800
- if (this.index >= 0) {
8801
- this.items[this.index].classList.remove('active');
8802
-
8803
- // calculate which is the selection we should focus next
8804
- let increment = 0;
8805
-
8806
- if (moveDirection === 'down') {
8807
- increment = 1;
8808
- } else if (moveDirection === 'up') {
8809
- increment = -1;
8810
- }
8811
-
8812
- this.index += increment;
8813
-
8814
- // keep looping inside the array of options
8815
- if (this.index > this.items.length - 1) {
8816
- this.index = 0;
8817
- } else if (this.index < 0) {
8818
- this.index = this.items.length - 1;
8819
- }
8936
+ static register(name = "auro-icon") {
8937
+ AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroIcon);
8938
+ }
8820
8939
 
8821
- // check if new index is disabled, static or hidden, if so, execute again
8822
- if (!this.optionInteractive(this.items[this.index])) {
8823
- this.selectNextItem(moveDirection);
8824
- } else {
8825
- // apply focus to new index
8826
- this.updateActiveOption(this.index);
8827
- }
8828
- } else {
8829
- this.index = 0;
8940
+ connectedCallback() {
8941
+ super.connectedCallback();
8830
8942
 
8831
- if (this.items[this.index].hasAttribute('hidden') || this.items[this.index].hasAttribute('disabled')) {
8832
- this.selectNextItem(moveDirection);
8833
- } else {
8834
- this.updateActiveOption(this.index);
8835
- }
8836
- }
8943
+ // Add the tag name as an attribute if it is different than the component name
8944
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-icon');
8837
8945
  }
8838
8946
 
8839
8947
  /**
8840
- * Used for applying indentation to each level of nested menu.
8841
- * @private
8842
- * @param {String} menu - Root level menu object.
8948
+ * @returns {void} Exposes CSS parts for styling from parent components.
8843
8949
  */
8844
- handleNestedMenus(menu) {
8845
- const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu');
8950
+ exposeCssParts() {
8951
+ this.setAttribute('exportparts', 'svg:iconSvg');
8952
+ }
8846
8953
 
8847
- if (nestedMenus.length === 0) {
8848
- return;
8849
- }
8954
+ // function that renders the HTML and CSS into the scope of the component
8955
+ render() {
8956
+ const a11y = {
8957
+ 'labelContainer': true,
8958
+ 'util_displayHiddenVisually': !this.label
8959
+ };
8850
8960
 
8851
- nestedMenus.forEach((nestedMenu) => {
8852
- const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption');
8961
+ const classes = {
8962
+ 'label': this.label
8963
+ };
8853
8964
 
8854
- options.forEach((option) => {
8855
- option.innerHTML = this.nestingSpacer + option.innerHTML;
8856
- });
8965
+ return x$2`
8966
+ <div
8967
+ class="${e(classes)}"
8968
+ title="${o(this.title || undefined)}">
8969
+ <span aria-hidden="${o(this.ariaHidden ? this.ariaHidden : true)}" part="svg">
8970
+ ${this.customSvg ? x$2`
8971
+ <slot name="svg"></slot>
8972
+ ` : x$2`
8973
+ ${this.svg}
8974
+ `
8975
+ }
8976
+ </span>
8857
8977
 
8858
- this.handleNestedMenus(nestedMenu);
8859
- });
8978
+ <div class="${e(a11y)}">
8979
+ <slot></slot>
8980
+ </div>
8981
+ </div>
8982
+ `;
8860
8983
  }
8984
+ }
8861
8985
 
8862
- /**
8863
- * Method to apply `selected` attribute to `menuoption` via `value`.
8864
- * @private
8865
- * @param {String} value - Must match a unique `menuoption` value.
8866
- */
8867
- selectByValue(value) {
8868
- let valueMatch = false;
8869
- if (!this.items) {
8870
- this.initItems();
8871
- }
8986
+ var iconVersion = '6.1.1';
8872
8987
 
8873
- this.index = undefined;
8988
+ 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>"};
8874
8989
 
8875
- if (this.value && this.value.length > 0) {
8876
- for (let index = 0; index < this.items.length; index += 1) {
8877
- if (this.items[index].value === value) {
8878
- valueMatch = true;
8879
- this.index = index;
8880
- }
8881
- }
8990
+ // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8991
+ // See LICENSE in the project root for license information.
8882
8992
 
8883
- if (!valueMatch) {
8884
- // reset the menu to no selection
8885
- this.index = undefined;
8886
8993
 
8887
- // this event needs to be removed after select and combobox are updated to use the new standard name
8888
- this.dispatchEvent(new CustomEvent('auroMenuSelectValueFailure', {
8889
- bubbles: true,
8890
- cancelable: false,
8891
- composed: true,
8892
- }));
8994
+ /**
8995
+ * The auro-menu element provides users a way to define a menu option.
8996
+ *
8997
+ * @attr {String} value - Specifies the value to be sent to a server.
8998
+ * @attr {String} noCheckmark - When true, selected option will not show the checkmark.
8999
+ * @attr {Boolean} disabled - When true specifies that the menuoption is disabled.
9000
+ * @attr {Boolean} selected - Specifies that an option is selected.
9001
+ * @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
9002
+ * @slot - Specifies text for an option, but is not the value.
9003
+ */
9004
+ class AuroMenuOption extends r$6 {
9005
+ constructor() {
9006
+ super();
8893
9007
 
8894
- this.dispatchEvent(new CustomEvent('auroMenu-selectValueFailure', {
8895
- bubbles: true,
8896
- cancelable: false,
8897
- composed: true,
8898
- }));
8899
- } else {
8900
- this.makeSelection();
9008
+ /**
9009
+ * Generate unique names for dependency components.
9010
+ */
9011
+ const versioning = new AuroDependencyVersioning$2();
9012
+ this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon);
9013
+
9014
+ this.selected = false;
9015
+ this.nocheckmark = false;
9016
+ this.disabled = false;
9017
+
9018
+ /**
9019
+ * @private
9020
+ */
9021
+ this.tabIndex = -1;
9022
+
9023
+ /**
9024
+ * @private
9025
+ */
9026
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
9027
+ }
9028
+
9029
+ static get properties() {
9030
+ return {
9031
+ nocheckmark: {
9032
+ type: Boolean,
9033
+ reflect: true
9034
+ },
9035
+ selected: {
9036
+ type: Boolean,
9037
+ reflect: true
9038
+ },
9039
+ disabled: {
9040
+ type: Boolean,
9041
+ reflect: true
9042
+ },
9043
+ value: {
9044
+ type: String,
9045
+ reflect: true
9046
+ },
9047
+ tabIndex: {
9048
+ type: Number,
9049
+ reflect: true
8901
9050
  }
8902
- } else {
8903
- this.resetOptionsStates();
9051
+ };
9052
+ }
8904
9053
 
8905
- this.dispatchEvent(new CustomEvent('auroMenu-selectValueReset', {
8906
- bubbles: true,
8907
- cancelable: false,
8908
- composed: true,
8909
- }));
8910
- }
9054
+ static get styles() {
9055
+ return [
9056
+ styleCss$1,
9057
+ colorCss$1,
9058
+ tokensCss$1
9059
+ ];
8911
9060
  }
8912
9061
 
8913
9062
  /**
8914
- * Used to make the active state for options follow mouseover.
8915
- * @param {Number} index - Index of the menuoption that will be made active.
8916
- * @private
9063
+ * This will register this element with the browser.
9064
+ * @param {string} [name="auro-menuoption"] - The name of element that you want to register to.
9065
+ *
9066
+ * @example
9067
+ * AuroMenuOption.register("custom-menuoption") // this will register this element to <custom-menuoption/>
9068
+ *
8917
9069
  */
8918
- updateActiveOption(index) {
8919
- this.items.forEach((item) => {
8920
- item.classList.remove('active');
8921
- });
8922
- this.items[index].classList.add('active');
8923
- this.optionActive = this.items[index];
9070
+ static register(name = "auro-menuoption") {
9071
+ AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroMenuOption);
9072
+ }
8924
9073
 
8925
- this.dispatchEvent(new CustomEvent('auroMenuActivatedOption', {
8926
- bubbles: true,
8927
- cancelable: false,
8928
- composed: true,
8929
- detail: this.items[index]
8930
- }));
9074
+ firstUpdated() {
9075
+ // Add the tag name as an attribute if it is different than the component name
9076
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-menuoption');
8931
9077
 
8932
- this.dispatchEvent(new CustomEvent('auroMenu-activatedOption', {
8933
- bubbles: true,
8934
- cancelable: false,
8935
- composed: true,
8936
- detail: this.items[index]
8937
- }));
9078
+ this.setAttribute('role', 'option');
9079
+ this.setAttribute('aria-selected', 'false');
9080
+
9081
+ this.addEventListener('mouseover', () => {
9082
+ this.dispatchEvent(new CustomEvent('auroMenuOption-mouseover', {
9083
+ bubbles: true,
9084
+ cancelable: false,
9085
+ composed: true,
9086
+ detail: this
9087
+ }));
9088
+ });
8938
9089
  }
8939
9090
 
8940
- /**
8941
- * Used to only make a selection when a menuoption is receiving a mousedown event.
8942
- * @param {Event} evt - Mousedown event.
8943
- * @private
8944
- */
8945
- handleMenuMouseDown(evt) {
8946
- if (evt.target !== this) {
8947
- this.makeSelection();
9091
+ // observer for selected property changes
9092
+ updated(changedProperties) {
9093
+ if (changedProperties.has('selected')) {
9094
+ this.setAttribute('aria-selected', this.selected.toString());
8948
9095
  }
8949
9096
  }
8950
9097
 
8951
9098
  /**
8952
- * Used for @slotchange event on slotted element.
9099
+ * Generates an HTML element containing an SVG icon based on the provided `svgContent`.
9100
+ *
8953
9101
  * @private
9102
+ * @param {string} svgContent - The SVG content to be embedded.
9103
+ * @returns {Element} The HTML element containing the SVG icon.
8954
9104
  */
8955
- handleSlotItems() {
8956
- // Determine if this is the root of the menu/submenu layout.
8957
- if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
8958
- this.rootMenu = false;
8959
- }
9105
+ generateIconHtml(svgContent) {
9106
+ const dom = new DOMParser().parseFromString(svgContent, 'text/html');
9107
+ const svg = dom.body.firstChild;
8960
9108
 
8961
- // If this is the root menu (not a nested menu) handle events, states and styling.
8962
- if (this.rootMenu) {
8963
- this.initItems();
8964
- this.setAttribute('role', 'listbox');
8965
- this.setAttribute('root', '');
8966
- this.handleNestedMenus(this);
8967
- this.markOptions();
8968
- this.index = -1;
8969
- this.getSelectedIndex();
9109
+ svg.setAttribute('slot', 'svg');
8970
9110
 
8971
- this.addEventListener('keydown', this.handleKeyDown);
8972
- this.addEventListener('mousedown', this.handleMenuMouseDown);
8973
- this.addEventListener('auroMenuOption-mouseover', (evt) => {
8974
- this.index = this.items.indexOf(evt.target);
8975
- this.updateActiveOption(this.index);
8976
- });
8977
- } else {
8978
- // make sure to update all menuoption noCheckmark attributes when the menu is dynamically changed
8979
- this.handleNoCheckmarkAttr();
8980
- }
9111
+ return u$6`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
8981
9112
  }
8982
9113
 
8983
9114
  render() {
8984
- return x$2`
8985
- <slot @slotchange=${this.handleSlotItems}></slot>
9115
+ return u$6`
9116
+ ${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
9117
+ <slot></slot>
8986
9118
  `;
8987
9119
  }
8988
9120
  }
@@ -9004,6 +9136,7 @@ function initExamples(initCount) {
9004
9136
  valueExample();
9005
9137
  focusExample();
9006
9138
  inDialogExample();
9139
+ auroMenuLoadingExample();
9007
9140
  } catch (err) {
9008
9141
  if (initCount <= 20) {
9009
9142
  // setTimeout handles issue where content is sometimes loaded after the functions get called