@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.6 → 0.0.0-pr624.61

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 (138) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +12 -2
  2. package/components/bibtemplate/dist/buttonVersion.d.ts +2 -0
  3. package/components/bibtemplate/dist/iconVersion.d.ts +1 -1
  4. package/components/bibtemplate/dist/index.js +1214 -83
  5. package/components/bibtemplate/dist/registered.js +1214 -83
  6. package/components/checkbox/README.md +1 -1
  7. package/components/checkbox/demo/api.html +16 -10
  8. package/components/checkbox/demo/api.md +47 -14
  9. package/components/checkbox/demo/api.min.js +65 -42
  10. package/components/checkbox/demo/index.html +16 -10
  11. package/components/checkbox/demo/index.md +2 -2
  12. package/components/checkbox/demo/index.min.js +65 -42
  13. package/components/checkbox/demo/readme.html +16 -9
  14. package/components/checkbox/demo/readme.md +1 -1
  15. package/components/checkbox/dist/auro-checkbox-group.d.ts +1 -1
  16. package/components/checkbox/dist/auro-checkbox.d.ts +3 -3
  17. package/components/checkbox/dist/index.js +65 -42
  18. package/components/checkbox/dist/registered.js +65 -42
  19. package/components/combobox/demo/api.html +16 -10
  20. package/components/combobox/demo/api.md +113 -8
  21. package/components/combobox/demo/api.min.js +3052 -926
  22. package/components/combobox/demo/index.html +16 -10
  23. package/components/combobox/demo/index.md +6 -30
  24. package/components/combobox/demo/index.min.js +3052 -926
  25. package/components/combobox/demo/readme.html +16 -9
  26. package/components/combobox/dist/auro-combobox.d.ts +42 -8
  27. package/components/combobox/dist/index.js +2773 -743
  28. package/components/combobox/dist/registered.js +2773 -743
  29. package/components/counter/demo/api.html +17 -10
  30. package/components/counter/demo/api.md +156 -21
  31. package/components/counter/demo/api.min.js +6728 -4118
  32. package/components/counter/demo/index.html +17 -10
  33. package/components/counter/demo/index.md +185 -34
  34. package/components/counter/demo/index.min.js +6728 -4118
  35. package/components/counter/demo/readme.html +16 -9
  36. package/components/counter/dist/auro-counter-button.d.ts +2 -0
  37. package/components/counter/dist/auro-counter-group.d.ts +151 -11
  38. package/components/counter/dist/auro-counter.d.ts +16 -0
  39. package/components/counter/dist/helptextVersion.d.ts +2 -0
  40. package/components/counter/dist/iconVersion.d.ts +1 -1
  41. package/components/counter/dist/index.js +6728 -4118
  42. package/components/counter/dist/registered.js +6728 -4118
  43. package/components/datepicker/demo/api.html +16 -10
  44. package/components/datepicker/demo/api.md +25 -16
  45. package/components/datepicker/demo/api.min.js +11540 -7985
  46. package/components/datepicker/demo/index.html +16 -10
  47. package/components/datepicker/demo/index.md +71 -4
  48. package/components/datepicker/demo/index.min.js +11540 -7985
  49. package/components/datepicker/demo/readme.html +16 -9
  50. package/components/datepicker/dist/auro-datepicker.d.ts +89 -11
  51. package/components/datepicker/dist/buttonVersion.d.ts +1 -1
  52. package/components/datepicker/dist/iconVersion.d.ts +2 -0
  53. package/components/datepicker/dist/index.js +11603 -8048
  54. package/components/datepicker/dist/popoverVersion.d.ts +1 -1
  55. package/components/datepicker/dist/registered.js +11603 -8048
  56. package/components/dropdown/demo/api.html +16 -10
  57. package/components/dropdown/demo/api.md +81 -274
  58. package/components/dropdown/demo/api.min.js +429 -195
  59. package/components/dropdown/demo/index.html +16 -10
  60. package/components/dropdown/demo/index.md +92 -362
  61. package/components/dropdown/demo/index.min.js +429 -195
  62. package/components/dropdown/demo/readme.html +16 -9
  63. package/components/dropdown/dist/auro-dropdown.d.ts +41 -76
  64. package/components/dropdown/dist/auro-dropdownBib.d.ts +14 -0
  65. package/components/dropdown/dist/index.js +429 -195
  66. package/components/dropdown/dist/registered.js +429 -195
  67. package/components/form/demo/api.html +16 -9
  68. package/components/form/demo/api.min.js +1 -1
  69. package/components/form/demo/autocomplete.html +19 -3
  70. package/components/form/demo/index.html +16 -9
  71. package/components/form/demo/index.min.js +1 -1
  72. package/components/form/demo/readme.html +16 -9
  73. package/components/form/demo/working.html +19 -13
  74. package/components/form/dist/index.js +1 -1
  75. package/components/form/dist/registered.js +1 -1
  76. package/components/helptext/dist/index.js +2 -2
  77. package/components/helptext/dist/registered.js +2 -2
  78. package/components/input/README.md +5 -2
  79. package/components/input/demo/api.html +16 -10
  80. package/components/input/demo/api.md +228 -130
  81. package/components/input/demo/api.min.js +853 -241
  82. package/components/input/demo/index.html +16 -10
  83. package/components/input/demo/index.md +48 -32
  84. package/components/input/demo/index.min.js +853 -241
  85. package/components/input/demo/readme.html +16 -9
  86. package/components/input/demo/readme.md +5 -2
  87. package/components/input/dist/auro-input.d.ts +3 -3
  88. package/components/input/dist/base-input.d.ts +38 -10
  89. package/components/input/dist/buttonVersion.d.ts +1 -1
  90. package/components/input/dist/iconVersion.d.ts +1 -1
  91. package/components/input/dist/index.js +853 -241
  92. package/components/input/dist/registered.js +853 -241
  93. package/components/layoutElement/dist/index.js +13 -10
  94. package/components/menu/demo/api.html +32 -10
  95. package/components/menu/demo/api.md +69 -8
  96. package/components/menu/demo/api.min.js +238 -47
  97. package/components/menu/demo/index.html +16 -10
  98. package/components/menu/demo/index.min.js +238 -47
  99. package/components/menu/demo/readme.html +16 -9
  100. package/components/menu/dist/auro-menu.d.ts +41 -7
  101. package/components/menu/dist/auro-menuoption.d.ts +15 -3
  102. package/components/menu/dist/iconVersion.d.ts +1 -1
  103. package/components/menu/dist/index.js +238 -47
  104. package/components/menu/dist/registered.js +238 -47
  105. package/components/menu/dist/styles/default/style-menuoption-css.d.ts +2 -0
  106. package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
  107. package/components/radio/demo/api.html +16 -10
  108. package/components/radio/demo/api.md +7 -8
  109. package/components/radio/demo/api.min.js +88 -90
  110. package/components/radio/demo/index.html +16 -10
  111. package/components/radio/demo/index.min.js +88 -90
  112. package/components/radio/demo/readme.html +16 -9
  113. package/components/radio/dist/auro-radio-group.d.ts +1 -1
  114. package/components/radio/dist/auro-radio.d.ts +9 -12
  115. package/components/radio/dist/index.js +88 -90
  116. package/components/radio/dist/registered.js +88 -90
  117. package/components/select/demo/api.html +16 -10
  118. package/components/select/demo/api.js +0 -2
  119. package/components/select/demo/api.md +104 -57
  120. package/components/select/demo/api.min.js +2123 -644
  121. package/components/select/demo/index.html +16 -11
  122. package/components/select/demo/index.md +45 -158
  123. package/components/select/demo/index.min.js +2123 -632
  124. package/components/select/demo/readme.html +16 -9
  125. package/components/select/dist/auro-select.d.ts +57 -16
  126. package/components/select/dist/index.js +2047 -652
  127. package/components/select/dist/registered.js +2047 -652
  128. package/package.json +29 -26
  129. /package/components/{datepicker/dist/styles/emphasized/style-css.d.ts → counter/dist/styles/shapeSize-css.d.ts} +0 -0
  130. /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/color-css.d.ts +0 -0
  131. /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/style-css.d.ts +0 -0
  132. /package/components/dropdown/dist/styles/{default → classic}/bibColors-css.d.ts +0 -0
  133. /package/components/dropdown/dist/styles/{default → classic}/bibStyles-css.d.ts +0 -0
  134. /package/components/{menu/dist/styles/color-menu-css.d.ts → dropdown/dist/styles/classic/color-css.d.ts} +0 -0
  135. /package/components/{menu/dist/styles/color-menuoption-css.d.ts → dropdown/dist/styles/classic/style-css.d.ts} +0 -0
  136. /package/components/menu/dist/styles/{style-menu-css.d.ts → default/color-menu-css.d.ts} +0 -0
  137. /package/components/menu/dist/styles/{style-menuoption-css.d.ts → default/color-menuoption-css.d.ts} +0 -0
  138. /package/components/menu/dist/styles/{tokens-css.d.ts → default/style-menu-css.d.ts} +0 -0
@@ -44,7 +44,7 @@ const t={ATTRIBUTE:1},e$1=t=>(...e)=>({_$litDirective$:t,values:e});let i$1 = cl
44
44
  */
45
45
  const a=Symbol.for(""),o$1=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=false;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$1(i));)c+=s+r[++$],f=true;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u;}return t(r,...e)},u=n(x);
46
46
 
47
- let AuroElement$3 = class AuroElement extends i$2 {
47
+ let AuroElement$4 = class AuroElement extends i$2 {
48
48
  static get properties() {
49
49
  return {
50
50
 
@@ -79,18 +79,21 @@ let AuroElement$3 = class AuroElement extends i$2 {
79
79
  }
80
80
 
81
81
  resetShapeClasses() {
82
- if (this.shape && this.size) {
83
- const wrapper = this.shadowRoot.querySelector('.wrapper');
82
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
84
83
 
85
- if (wrapper) {
86
- wrapper.classList.forEach((className) => {
87
- if (className.startsWith('shape-')) {
88
- wrapper.classList.remove(className);
89
- }
90
- });
84
+ if (wrapper) {
85
+ wrapper.classList.forEach((className) => {
86
+ if (className.startsWith('shape-')) {
87
+ wrapper.classList.remove(className);
88
+ }
89
+ });
91
90
 
92
- wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
93
- }
91
+ }
92
+
93
+ if (this.shape && this.size) {
94
+ wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
95
+ } else {
96
+ wrapper.classList.add('shape-none');
94
97
  }
95
98
  }
96
99
 
@@ -136,9 +139,9 @@ let AuroElement$3 = class AuroElement extends i$2 {
136
139
  }
137
140
  };
138
141
 
139
- var shapeSizeCss$1 = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-md{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;min-height:44px;max-height:44px}`;
142
+ var shapeSizeCss$1 = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
140
143
 
141
- var tokensCss$5 = i$5`:host(:not([ondark])){--ds-auro-select-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-select-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: transparent}:host([ondark]){--ds-auro-select-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-select-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-error-icon-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: transparent}`;
144
+ var tokensCss$5 = i$5`:host(:not([ondark])){--ds-auro-select-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-select-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: transparent}:host([ondark]){--ds-auro-select-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-select-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-select-outline-color: transparent}`;
142
145
 
143
146
  class DateFormatter {
144
147
 
@@ -556,7 +559,7 @@ const {
556
559
 
557
560
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
558
561
 
559
- let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
562
+ let AuroLibraryRuntimeUtils$6 = class AuroLibraryRuntimeUtils {
560
563
 
561
564
  /* eslint-disable jsdoc/require-param */
562
565
 
@@ -626,7 +629,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
626
629
  class AuroFormValidation {
627
630
 
628
631
  constructor() {
629
- this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
632
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
630
633
  }
631
634
 
632
635
  /**
@@ -686,19 +689,19 @@ class AuroFormValidation {
686
689
  {
687
690
  check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
688
691
  validity: 'tooShort',
689
- message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
692
+ message: e => e.getAttribute('setCustomValidityTooShort') || e.setCustomValidity || ''
690
693
  },
691
694
  {
692
695
  check: (e) => e.value?.length > e.maxLength,
693
696
  validity: 'tooLong',
694
- message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
697
+ message: e => e.getAttribute('setCustomValidityTooLong') || e.setCustomValidity || ''
695
698
  }
696
699
  ],
697
700
  pattern: [
698
701
  {
699
702
  check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
700
703
  validity: 'patternMismatch',
701
- message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
704
+ message: e => e.getAttribute('setCustomValidityPatternMismatch') || e.setCustomValidity || ''
702
705
  }
703
706
  ]
704
707
  },
@@ -845,13 +848,24 @@ class AuroFormValidation {
845
848
  this.getInputElements(elem);
846
849
  this.getAuroInputs(elem);
847
850
 
848
- // Validate only if noValidate is not true and the input does not have focus
851
+ // Check if validation should run
849
852
  let validationShouldRun =
853
+
854
+ // If the validation was forced
850
855
  force ||
851
- (!elem.contains(document.activeElement) &&
852
- (elem.touched ||
853
- (!elem.touched && typeof elem.value !== "undefined"))) ||
854
- elem.validateOnInput;
856
+
857
+ // If the validation should run on input
858
+ elem.validateOnInput ||
859
+
860
+ // State-based checks
861
+ (
862
+ // Element is not currently focused
863
+ !elem.contains(document.activeElement) && // native input is not focused directly
864
+ !document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
865
+
866
+ // And element has been touched or is untouched but has a value
867
+ ( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
868
+ );
855
869
 
856
870
  if (elem.hasAttribute('error')) {
857
871
  elem.validity = 'customError';
@@ -893,10 +907,10 @@ class AuroFormValidation {
893
907
  if (!hasValue && elem.required && elem.touched) {
894
908
  elem.validity = 'valueMissing';
895
909
  elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
896
- } else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
910
+ } else if (hasValue && this.runtimeUtils.elementMatch(elem, 'auro-input')) {
897
911
  this.validateType(elem);
898
912
  this.validateElementAttributes(elem);
899
- } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
913
+ } else if (hasValue && (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group'))) {
900
914
  this.validateElementAttributes(elem);
901
915
  }
902
916
  }
@@ -905,7 +919,9 @@ class AuroFormValidation {
905
919
  elem.validity = this.auroInputElements[0].validity;
906
920
  elem.errorMessage = this.auroInputElements[0].errorMessage;
907
921
 
908
- if (elem.validity === 'valid' && this.auroInputElements.length > 1) {
922
+ // combobox has 2 inputs but no need to check validity on the 2nd one which is in fullscreen bib.
923
+ // combobox's 2nd input will have noValidate set true.
924
+ if (elem.validity === 'valid' && this.auroInputElements.length > 1 && !this.auroInputElements[1].noValidate) {
909
925
  elem.validity = this.auroInputElements[1].validity;
910
926
  elem.errorMessage = this.auroInputElements[1].errorMessage;
911
927
  }
@@ -2717,7 +2733,7 @@ class AuroFloatingUI {
2717
2733
  */
2718
2734
  mirrorSize() {
2719
2735
  // mirror the boxsize from bibSizer
2720
- if (this.element.bibSizer) {
2736
+ if (this.element.bibSizer && this.element.matchWidth) {
2721
2737
  const sizerStyle = window.getComputedStyle(this.element.bibSizer);
2722
2738
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
2723
2739
  if (sizerStyle.width !== '0px') {
@@ -2929,13 +2945,13 @@ class AuroFloatingUI {
2929
2945
  if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
2930
2946
  return;
2931
2947
  }
2932
-
2948
+
2933
2949
  // if fullscreen bib is in fullscreen mode, do not close
2934
2950
  if (this.element.bib.hasAttribute('isfullscreen')) {
2935
2951
  return;
2936
2952
  }
2937
2953
 
2938
- this.hideBib();
2954
+ this.hideBib("keydown");
2939
2955
  }
2940
2956
 
2941
2957
  setupHideHandlers() {
@@ -2960,7 +2976,7 @@ class AuroFloatingUI {
2960
2976
  document.expandedAuroFormkitDropdown = null;
2961
2977
  document.expandedAuroFloater = this;
2962
2978
  } else {
2963
- this.hideBib();
2979
+ this.hideBib("click");
2964
2980
  }
2965
2981
  }
2966
2982
  };
@@ -2973,7 +2989,7 @@ class AuroFloatingUI {
2973
2989
  // if something else is open, let it handle itself
2974
2990
  return;
2975
2991
  }
2976
- this.hideBib();
2992
+ this.hideBib("keydown");
2977
2993
  }
2978
2994
  };
2979
2995
 
@@ -3056,7 +3072,11 @@ class AuroFloatingUI {
3056
3072
  }
3057
3073
  }
3058
3074
 
3059
- hideBib() {
3075
+ /**
3076
+ * Hides the floating UI element.
3077
+ * @param {String} eventType - The event type that triggered the hiding action.
3078
+ */
3079
+ hideBib(eventType = "unknown") {
3060
3080
  if (!this.element.disabled && !this.element.noToggle) {
3061
3081
  this.lockScroll(false);
3062
3082
  this.element.triggerChevron?.removeAttribute('data-expanded');
@@ -3067,7 +3087,7 @@ class AuroFloatingUI {
3067
3087
  if (this.showing) {
3068
3088
  this.cleanupHideHandlers();
3069
3089
  this.showing = false;
3070
- this.dispatchEventDropdownToggle();
3090
+ this.dispatchEventDropdownToggle(eventType);
3071
3091
  }
3072
3092
  }
3073
3093
  document.expandedAuroFloater = null;
@@ -3076,11 +3096,13 @@ class AuroFloatingUI {
3076
3096
  /**
3077
3097
  * @private
3078
3098
  * @returns {void} Dispatches event with an object showing the state of the dropdown.
3099
+ * @param {String} eventType - The event type that triggered the toggle action.
3079
3100
  */
3080
- dispatchEventDropdownToggle() {
3101
+ dispatchEventDropdownToggle(eventType) {
3081
3102
  const event = new CustomEvent(this.eventPrefix ? `${this.eventPrefix}-toggled` : 'toggled', {
3082
3103
  detail: {
3083
3104
  expanded: this.showing,
3105
+ eventType: eventType || "unknown",
3084
3106
  },
3085
3107
  composed: true
3086
3108
  });
@@ -3090,7 +3112,7 @@ class AuroFloatingUI {
3090
3112
 
3091
3113
  handleClick() {
3092
3114
  if (this.element.isPopoverVisible) {
3093
- this.hideBib();
3115
+ this.hideBib("click");
3094
3116
  } else {
3095
3117
  this.showBib();
3096
3118
  }
@@ -3113,8 +3135,9 @@ class AuroFloatingUI {
3113
3135
  // Space is included as it's expected behavior for interactive elements
3114
3136
 
3115
3137
  const origin = event.composedPath()[0];
3116
- if (event.key === 'Enter' || ((!origin || origin.tagName !== "INPUT") && event.key === ' ')) {
3117
- event.preventDefault(); // Prevent page scroll on space
3138
+ if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
3139
+
3140
+ event.preventDefault();
3118
3141
  this.handleClick();
3119
3142
  }
3120
3143
  break;
@@ -3125,7 +3148,7 @@ class AuroFloatingUI {
3125
3148
  break;
3126
3149
  case 'mouseleave':
3127
3150
  if (this.element.hoverToggle) {
3128
- this.hideBib();
3151
+ this.hideBib("mouseleave");
3129
3152
  }
3130
3153
  break;
3131
3154
  case 'focus':
@@ -3268,6 +3291,267 @@ class AuroFloatingUI {
3268
3291
  }
3269
3292
  }
3270
3293
 
3294
+ // Selectors for focusable elements
3295
+ const FOCUSABLE_SELECTORS = [
3296
+ 'a[href]',
3297
+ 'button:not([disabled])',
3298
+ 'textarea:not([disabled])',
3299
+ 'input:not([disabled])',
3300
+ 'select:not([disabled])',
3301
+ '[role="tab"]:not([disabled])',
3302
+ '[role="link"]:not([disabled])',
3303
+ '[role="button"]:not([disabled])',
3304
+ '[tabindex]:not([tabindex="-1"])',
3305
+ '[contenteditable]:not([contenteditable="false"])'
3306
+ ];
3307
+
3308
+ // List of custom components that are known to be focusable
3309
+ const FOCUSABLE_COMPONENTS = [
3310
+ 'auro-checkbox',
3311
+ 'auro-radio',
3312
+ 'auro-dropdown',
3313
+ 'auro-button',
3314
+ 'auro-combobox',
3315
+ 'auro-input',
3316
+ 'auro-counter',
3317
+ 'auro-menu',
3318
+ 'auro-select',
3319
+ 'auro-datepicker',
3320
+ 'auro-hyperlink',
3321
+ 'auro-accordion',
3322
+ ];
3323
+
3324
+ /**
3325
+ * Determines if a given element is a custom focusable component.
3326
+ * Returns true if the element matches a known focusable component and is not disabled.
3327
+ *
3328
+ * @param {HTMLElement} element The element to check for focusability.
3329
+ * @returns {boolean} True if the element is a focusable custom component, false otherwise.
3330
+ */
3331
+ function isFocusableComponent(element) {
3332
+ const componentName = element.tagName.toLowerCase();
3333
+
3334
+ // Guard Clause: Element is a focusable component
3335
+ if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
3336
+
3337
+ // Guard Clause: Element is not disabled
3338
+ if (element.hasAttribute('disabled')) return false;
3339
+
3340
+ // Guard Clause: The element is a hyperlink and has no href attribute
3341
+ if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
3342
+
3343
+ // If all guard clauses pass, the element is a focusable component
3344
+ return true;
3345
+ }
3346
+
3347
+ /**
3348
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
3349
+ * Returns a unique, ordered array of elements that can receive focus.
3350
+ *
3351
+ * @param {HTMLElement} container The container to search within
3352
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
3353
+ */
3354
+ function getFocusableElements(container) {
3355
+ // Get elements in DOM order by walking the tree
3356
+ const orderedFocusableElements = [];
3357
+
3358
+ // Define a recursive function to collect focusable elements in DOM order
3359
+ const collectFocusableElements = (root) => {
3360
+ // Check if current element is focusable
3361
+ if (root.nodeType === Node.ELEMENT_NODE) {
3362
+ // Check if this is a custom component that is focusable
3363
+ const isComponentFocusable = isFocusableComponent(root);
3364
+
3365
+ if (isComponentFocusable) {
3366
+ // Add the component itself as a focusable element and don't traverse its shadow DOM
3367
+ orderedFocusableElements.push(root);
3368
+ return; // Skip traversing inside this component
3369
+ }
3370
+
3371
+ // Check if the element itself matches any selector
3372
+ for (const selector of FOCUSABLE_SELECTORS) {
3373
+ if (root.matches?.(selector)) {
3374
+ orderedFocusableElements.push(root);
3375
+ break; // Once we know it's focusable, no need to check other selectors
3376
+ }
3377
+ }
3378
+
3379
+ // Process shadow DOM only for non-Auro components
3380
+ if (root.shadowRoot) {
3381
+ // Process shadow DOM children in order
3382
+ if (root.shadowRoot.children) {
3383
+ Array.from(root.shadowRoot.children).forEach(child => {
3384
+ collectFocusableElements(child);
3385
+ });
3386
+ }
3387
+ }
3388
+
3389
+ // Process slots and their assigned nodes in order
3390
+ if (root.tagName === 'SLOT') {
3391
+ const assignedNodes = root.assignedNodes({ flatten: true });
3392
+ for (const node of assignedNodes) {
3393
+ collectFocusableElements(node);
3394
+ }
3395
+ } else {
3396
+ // Process light DOM children in order
3397
+ if (root.children) {
3398
+ Array.from(root.children).forEach(child => {
3399
+ collectFocusableElements(child);
3400
+ });
3401
+ }
3402
+ }
3403
+ }
3404
+ };
3405
+
3406
+ // Start the traversal from the container
3407
+ collectFocusableElements(container);
3408
+
3409
+ // Remove duplicates that might have been collected through different paths
3410
+ // while preserving order
3411
+ const uniqueElements = [];
3412
+ const seen = new Set();
3413
+
3414
+ for (const element of orderedFocusableElements) {
3415
+ if (!seen.has(element)) {
3416
+ seen.add(element);
3417
+ uniqueElements.push(element);
3418
+ }
3419
+ }
3420
+
3421
+ return uniqueElements;
3422
+ }
3423
+
3424
+ /**
3425
+ * FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
3426
+ * It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
3427
+ */
3428
+ class FocusTrap {
3429
+ /**
3430
+ * Creates a new FocusTrap instance for the given container element.
3431
+ * Initializes event listeners and prepares the container for focus management.
3432
+ *
3433
+ * @param {HTMLElement} container The DOM element to trap focus within.
3434
+ * @throws {Error} If the provided container is not a valid HTMLElement.
3435
+ */
3436
+ constructor(container) {
3437
+ if (!container || !(container instanceof HTMLElement)) {
3438
+ throw new Error("FocusTrap requires a valid HTMLElement.");
3439
+ }
3440
+
3441
+ this.container = container;
3442
+ this.tabDirection = 'forward'; // or 'backward'
3443
+
3444
+ this._init();
3445
+ }
3446
+
3447
+ /**
3448
+ * Initializes the focus trap by setting up event listeners and attributes on the container.
3449
+ * Prepares the container for focus management, including support for shadow DOM and inert attributes.
3450
+ *
3451
+ * @private
3452
+ */
3453
+ _init() {
3454
+
3455
+ // Add inert attribute to prevent focusing programmatically as well (if supported)
3456
+ if ('inert' in HTMLElement.prototype) {
3457
+ this.container.inert = false; // Ensure the container isn't inert
3458
+ this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
3459
+ }
3460
+
3461
+ // Track tab direction
3462
+ this.container.addEventListener('keydown', this._onKeydown);
3463
+ }
3464
+
3465
+ /**
3466
+ * Handles keydown events to manage tab navigation within the container.
3467
+ * Ensures that focus wraps around when reaching the first or last focusable element.
3468
+ *
3469
+ * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
3470
+ * @private
3471
+ */
3472
+ _onKeydown = (e) => {
3473
+
3474
+ if (e.key === 'Tab') {
3475
+
3476
+ // Set the tab direction based on the key pressed
3477
+ this.tabDirection = e.shiftKey ? 'backward' : 'forward';
3478
+
3479
+ // Get the active element(s) in the document and shadow root
3480
+ // This will include the active element in the shadow DOM if it exists
3481
+ // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
3482
+ let activeElement = document.activeElement;
3483
+ const actives = [activeElement];
3484
+ while (activeElement?.shadowRoot?.activeElement) {
3485
+ actives.push(activeElement.shadowRoot.activeElement);
3486
+ activeElement = activeElement.shadowRoot.activeElement;
3487
+ }
3488
+
3489
+ // Update the focusable elements
3490
+ const focusables = this._getFocusableElements();
3491
+
3492
+ // If we're at either end of the focusable elements, wrap around to the other end
3493
+ const focusIndex =
3494
+ (actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
3495
+ ? focusables.length - 1
3496
+ : actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
3497
+ ? 0
3498
+ : null;
3499
+
3500
+ if (focusIndex !== null) {
3501
+ focusables[focusIndex].focus();
3502
+ e.preventDefault(); // Prevent default tab behavior
3503
+ e.stopPropagation(); // Stop the event from bubbling up
3504
+ }
3505
+ }
3506
+ };
3507
+
3508
+ /**
3509
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
3510
+ * Returns a unique, ordered array of elements that can receive focus.
3511
+ *
3512
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
3513
+ * @private
3514
+ */
3515
+ _getFocusableElements() {
3516
+ // Use the imported utility function to get focusable elements
3517
+ const elements = getFocusableElements(this.container);
3518
+
3519
+ // Filter out any elements with the 'focus-bookend' class
3520
+ return elements;
3521
+ }
3522
+
3523
+ /**
3524
+ * Moves focus to the first focusable element within the container.
3525
+ * Useful for setting initial focus when activating the focus trap.
3526
+ */
3527
+ focusFirstElement() {
3528
+ const focusables = this._getFocusableElements();
3529
+ if (focusables.length) focusables[0].focus();
3530
+ }
3531
+
3532
+ /**
3533
+ * Moves focus to the last focusable element within the container.
3534
+ * Useful for setting focus when deactivating or cycling focus in reverse.
3535
+ */
3536
+ focusLastElement() {
3537
+ const focusables = this._getFocusableElements();
3538
+ if (focusables.length) focusables[focusables.length - 1].focus();
3539
+ }
3540
+
3541
+ /**
3542
+ * Removes event listeners and attributes added by the focus trap.
3543
+ * Call this method to clean up when the focus trap is no longer needed.
3544
+ */
3545
+ disconnect() {
3546
+
3547
+ if (this.container.hasAttribute('data-focus-trap-container')) {
3548
+ this.container.removeAttribute('data-focus-trap-container');
3549
+ }
3550
+
3551
+ this.container.removeEventListener('keydown', this._onKeydown);
3552
+ }
3553
+ }
3554
+
3271
3555
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
3272
3556
  // See LICENSE in the project root for license information.
3273
3557
 
@@ -3458,9 +3742,9 @@ let BaseIcon$2 = class BaseIcon extends AuroElement$1$1 {
3458
3742
  }
3459
3743
  };
3460
3744
 
3461
- var tokensCss$2$1 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
3745
+ var tokensCss$2$2 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
3462
3746
 
3463
- var colorCss$3$1 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
3747
+ var colorCss$3$2 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
3464
3748
 
3465
3749
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
3466
3750
  // See LICENSE in the project root for license information.
@@ -3618,9 +3902,9 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3618
3902
  static get styles() {
3619
3903
  return [
3620
3904
  super.styles,
3621
- i$5`${tokensCss$2$1}`,
3905
+ i$5`${tokensCss$2$2}`,
3622
3906
  i$5`${styleCss$2$2}`,
3623
- i$5`${colorCss$3$1}`
3907
+ i$5`${colorCss$3$2}`
3624
3908
  ];
3625
3909
  }
3626
3910
 
@@ -3654,8 +3938,12 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3654
3938
  async firstUpdated() {
3655
3939
  await super.firstUpdated();
3656
3940
 
3657
- // Removes the SVG description for screenreader if ariaHidden is set to true
3658
- if (!this.hasAttribute('ariaHidden') && this.svg) {
3941
+ /**
3942
+ * icons provide a description for screen readers. Icon only instances Auro-button
3943
+ * depend on this description to provide context for the user using a screen reader.
3944
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
3945
+ */
3946
+ if (this.hasAttribute('ariaHidden') && this.svg) {
3659
3947
  const svgDesc = this.svg.querySelector('desc');
3660
3948
 
3661
3949
  if (svgDesc) {
@@ -3701,11 +3989,11 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
3701
3989
 
3702
3990
  var iconVersion$2 = '6.1.2';
3703
3991
 
3704
- var styleCss$1$2 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}.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;overscroll-behavior:contain}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}`;
3992
+ var styleCss$1$2 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}`;
3705
3993
 
3706
- var colorCss$2$1 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
3994
+ var colorCss$2$2 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
3707
3995
 
3708
- var tokensCss$1$1 = i$5`:host(:not([ondark])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: transparent;--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: transparent;--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
3996
+ var tokensCss$1$2 = i$5`:host(:not([ondark])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
3709
3997
 
3710
3998
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
3711
3999
  // See LICENSE in the project root for license information.
@@ -3726,7 +4014,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
3726
4014
  */
3727
4015
 
3728
4016
  class AuroDropdownBib extends i$2 {
3729
-
4017
+ // not extending AuroElement because Bib needs only `shape` prop
3730
4018
  constructor() {
3731
4019
  super();
3732
4020
 
@@ -3736,13 +4024,16 @@ class AuroDropdownBib extends i$2 {
3736
4024
  this._mobileBreakpointValue = undefined;
3737
4025
 
3738
4026
  AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
4027
+
4028
+ this.shape = "rounded";
4029
+ this.matchWidth = false;
3739
4030
  }
3740
4031
 
3741
4032
  static get styles() {
3742
4033
  return [
3743
4034
  styleCss$1$2,
3744
- colorCss$2$1,
3745
- tokensCss$1$1
4035
+ colorCss$2$2,
4036
+ tokensCss$1$2
3746
4037
  ];
3747
4038
  }
3748
4039
 
@@ -3773,6 +4064,15 @@ class AuroDropdownBib extends i$2 {
3773
4064
  reflect: true
3774
4065
  },
3775
4066
 
4067
+ /**
4068
+ * If declared, the bib width will match the trigger width.
4069
+ * @private
4070
+ */
4071
+ matchWidth: {
4072
+ type: Boolean,
4073
+ reflect: true
4074
+ },
4075
+
3776
4076
  /**
3777
4077
  * If declared, will apply border-radius to the bib.
3778
4078
  */
@@ -3786,6 +4086,11 @@ class AuroDropdownBib extends i$2 {
3786
4086
  */
3787
4087
  bibTemplate: {
3788
4088
  type: Object
4089
+ },
4090
+
4091
+ shape: {
4092
+ type: String,
4093
+ reflect: true
3789
4094
  }
3790
4095
  };
3791
4096
  }
@@ -3865,8 +4170,16 @@ class AuroDropdownBib extends i$2 {
3865
4170
 
3866
4171
  // function that renders the HTML and CSS into the scope of the component
3867
4172
  render() {
4173
+ const classes = {
4174
+ container: true
4175
+ };
4176
+
4177
+ // Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
4178
+ // mimicking the class naming convention used in AuroElement.resetShapeClasses.
4179
+ classes[`shape-${this.shape}`] = true;
4180
+
3868
4181
  return u`
3869
- <div class="container" part="bibContainer">
4182
+ <div class="${e(classes)}" part="bibContainer">
3870
4183
  <slot></slot>
3871
4184
  </div>
3872
4185
  `;
@@ -3875,21 +4188,21 @@ class AuroDropdownBib extends i$2 {
3875
4188
 
3876
4189
  var dropdownVersion$1 = '3.0.0';
3877
4190
 
3878
- var shapeSizeCss = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-md{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:72px;max-height:72px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;min-height:44px;max-height:44px}`;
4191
+ var shapeSizeCss = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
3879
4192
 
3880
- var colorCss$1$2 = i$5`:host .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus,:host(:not([ondark])) .wrapper:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-brand, #00274a)}:host([ondark]) .wrapper:focus,:host([ondark]) .wrapper:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff)}:host([error]:not([ondark])){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([error][ondark]){--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}.helpText{color:var(--ds-auro-dropdown-helptext-text-color)}`;
4193
+ var colorCss$1$2 = i$5`:host(:not([layout*=classic])){--ds-auro-dropdown-trigger-border-color: transparent}:host(:not([ondark])) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus-within,:host(:not([ondark])) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host(:not([onDark])[disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([ondark])[error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([onDark]) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host([onDark]) .wrapper:focus-within,:host([onDark]) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([onDark][disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse-disabled, rgba(255, 255, 255, 0.1))}:host([ondark][error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}`;
3881
4194
 
3882
- var classicColorCss = i$5`:host([layout*=classic]) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([layout*=classic]) .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);outline-color:var(--ds-auro-dropdown-trigger-outline-color)}:host([layout*=classic]) .trigger:focus-within,:host([layout*=classic]) .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host([layout*=classic])[disabled]{--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host([layout*=classic])[common],:host([layout*=classic])[bordered]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67)}:host([layout*=classic])[common] .trigger:active,:host([layout*=classic])[common] .trigger:focus-within,:host([layout*=classic])[bordered] .trigger:active,:host([layout*=classic])[bordered] .trigger:focus-within{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a)}:host([layout*=classic])[error]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([layout*=classic])[error] .trigger{outline:solid 1px var(--ds-auro-dropdown-trigger-border-color)}:host([layout*=classic])[error] .trigger:focus-within,:host([layout*=classic])[error] .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host([layout*=classic])[disabled][common],:host([layout*=classic])[disabled][bordered]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host([layout*=classic])[onDark]{--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([layout*=classic])[onDark]:focus-within,:host([layout*=classic])[onDark]:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([layout*=classic])[onDark][disabled]{--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([layout*=classic])[onDark][common],:host([layout*=classic])[onDark][bordered]{--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff)}:host([layout*=classic])[onDark][common] .trigger:focus-within,:host([layout*=classic])[onDark][common] .trigger:active,:host([layout*=classic])[onDark][bordered] .trigger:focus-within,:host([layout*=classic])[onDark][bordered] .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([layout*=classic])[onDark][error]{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}:host([layout*=classic])[onDark][error] .trigger{outline:solid 1px var(--ds-auro-dropdown-trigger-border-color)}:host([layout*=classic])[onDark][error] .trigger:focus-within,:host([layout*=classic])[onDark][error] .trigger:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([layout*=classic])[onDark][disabled][common],:host([layout*=classic])[onDark][disabled][bordered]{--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse-disabled, rgba(255, 255, 255, 0.1))}`;
4195
+ var classicColorCss = i$5``;
3883
4196
 
3884
- var classicLayoutCss = i$5`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .trigger{display:flex;flex-direction:row}@media(hover: hover){:host([layout*=classic]) .trigger:hover{cursor:pointer}}:host([layout*=classic]) .triggerContentWrapper{overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) #showStateIcon{display:flex;overflow:hidden;height:100%;align-items:center;margin-left:var(--ds-size-100, 0.5rem)}:host([layout*=classic]) #showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}:host([layout*=classic]) #showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}:host([layout*=classic][fluid]){display:block}:host([layout*=classic][matchwidth]) #bibSizer{width:100%}:host([layout*=classic][disabled]){pointer-events:none}:host([layout*=classic][inset]) .trigger{padding:var(--ds-size-150, 0.75rem) var(--ds-size-200, 1rem)}:host([layout*=classic][common]) .trigger,:host([layout*=classic][inset][bordered]) .trigger{padding:var(--ds-size-200, 1rem) var(--ds-size-150, 0.75rem)}:host([layout*=classic][inset][bordered][labeled]) .trigger{padding:var(--ds-size-100, 0.5rem) var(--ds-size-150, 0.75rem)}:host([layout*=classic][common]) .trigger,:host([layout*=classic][rounded]) .trigger{border-radius:var(--ds-border-radius, 0.375rem)}`;
4197
+ var classicLayoutCss = i$5`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .wrapper{display:flex;flex-direction:row;box-shadow:inset 0 0 0 1px var(--ds-auro-dropdown-trigger-outline-color)}@media(hover: hover){:host([layout*=classic]) .wrapper:hover{cursor:pointer}}:host([layout*=classic]) .triggerContentWrapper{overflow:hidden;flex:1;justify-content:start;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) #showStateIcon{display:flex;overflow:hidden;height:100%;align-items:center;padding-right:var(--ds-size-150, 0.75rem)}:host([layout*=classic]) #showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}:host([layout*=classic]) #showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}:host([matchwidth]) #bibSizer{width:100%}`;
3885
4198
 
3886
- var styleEmphasizedCss = i$5`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex-direction:row}.trigger{flex:1;display:flex;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{flex:1;display:flex;align-items:center;justify-content:center;width:100%}.triggerContent{overflow:hidden;flex:1;display:flex;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap;width:100%}:host([layout*=emphasized][shape*=pill]:not([layout*=right])) .leftIndent{margin-left:var(--ds-size-300, 1.5rem);width:calc(100% - var(--ds-size-300, 1.5rem))}:host([layout*=emphasized][shape*=pill]:not([layout*=left])) .rightIndent{margin-right:var(--ds-size-300, 1.5rem);width:calc(100% - var(--ds-size-300, 1.5rem))}:host([layout*=emphasized][shape*=pill]:not([layout*=left]):not([layout*=right])) .rightIndent{margin-right:var(--ds-size-300, 1.5rem);width:calc(100% - var(--ds-size-600, 3rem))}`;
4199
+ var styleEmphasizedCss = i$5`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=emphasized][shape*=pill]:not([layout*=right])) .leftIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left])) .rightIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-right:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left]):not([layout*=right])) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}`;
3887
4200
 
3888
- var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex-direction:wrapper}.trigger{flex:1;display:flex;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{flex:1;display:flex;align-items:center;justify-content:center;width:100%}.triggerContent{overflow:hidden;flex:1;display:flex;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap;width:100%}:host([layout*=snowflake]) .leftIndent{margin-left:var(--ds-size-300, 1.5rem);width:calc(100% - var(--ds-size-600, 3rem))}:host([layout*=snowflake]) .rightIndent{margin-right:var(--ds-size-300, 1.5rem);width:calc(100% - var(--ds-size-600, 3rem))}.layout-snowflake .chevron,.layout-snowflake-left .chevron,.layout-snowflake-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}`;
4201
+ var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=snowflake]) .leftIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}.layout-snowflake .chevron,.layout-snowflake-left .chevron,.layout-snowflake-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}`;
3889
4202
 
3890
- var colorCss$5 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
4203
+ var colorCss$5 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
3891
4204
 
3892
- var styleCss$6 = i$5`.helptext-wrapper{display:none;font-size:var(--ds-basic-text-body-xs-font-size, 12px);font-weight:var(--ds-basic-text-body-xs-font-weight, 450);letter-spacing:var(--ds-basic-text-body-xs-letter-spacing, 0);line-height:var(--ds-basic-text-body-xs-line-height, 16px)}:host([large]) .helptext-wrapper{font-size:var(--ds-basic-text-body-default-font-size, 16px);font-weight:var(--ds-basic-text-body-default-font-weight, 450);letter-spacing:var(--ds-basic-text-body-default-letter-spacing, 0);line-height:var(--ds-basic-text-body-default-line-height, 24px)}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
4205
+ var styleCss$6 = i$5`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
3893
4206
 
3894
4207
  var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
3895
4208
 
@@ -3900,7 +4213,7 @@ var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
3900
4213
 
3901
4214
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
3902
4215
 
3903
- let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
4216
+ let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
3904
4217
 
3905
4218
  /* eslint-disable jsdoc/require-param */
3906
4219
 
@@ -3981,7 +4294,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
3981
4294
  this.onDark = false;
3982
4295
  this.hasTextContent = false;
3983
4296
 
3984
- AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-helptext');
4297
+ AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
3985
4298
  }
3986
4299
 
3987
4300
  static get styles() {
@@ -4037,7 +4350,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
4037
4350
  *
4038
4351
  */
4039
4352
  static register(name = "auro-helptext") {
4040
- AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroHelpText);
4353
+ AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
4041
4354
  }
4042
4355
 
4043
4356
  updated() {
@@ -4095,7 +4408,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
4095
4408
 
4096
4409
  var helpTextVersion$1 = '1.0.0';
4097
4410
 
4098
- let AuroElement$2 = class AuroElement extends i$2 {
4411
+ let AuroElement$3 = class AuroElement extends i$2 {
4099
4412
  static get properties() {
4100
4413
  return {
4101
4414
 
@@ -4130,18 +4443,21 @@ let AuroElement$2 = class AuroElement extends i$2 {
4130
4443
  }
4131
4444
 
4132
4445
  resetShapeClasses() {
4133
- if (this.shape && this.size) {
4134
- const wrapper = this.shadowRoot.querySelector('.wrapper');
4446
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
4135
4447
 
4136
- if (wrapper) {
4137
- wrapper.classList.forEach((className) => {
4138
- if (className.startsWith('shape-')) {
4139
- wrapper.classList.remove(className);
4140
- }
4141
- });
4448
+ if (wrapper) {
4449
+ wrapper.classList.forEach((className) => {
4450
+ if (className.startsWith('shape-')) {
4451
+ wrapper.classList.remove(className);
4452
+ }
4453
+ });
4142
4454
 
4143
- wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
4144
- }
4455
+ }
4456
+
4457
+ if (this.shape && this.size) {
4458
+ wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
4459
+ } else {
4460
+ wrapper.classList.add('shape-none');
4145
4461
  }
4146
4462
  }
4147
4463
 
@@ -4191,10 +4507,8 @@ let AuroElement$2 = class AuroElement extends i$2 {
4191
4507
  // See LICENSE in the project root for license information.
4192
4508
 
4193
4509
 
4194
- /**
4195
- * @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
4510
+ /*
4196
4511
  * @slot - Default slot for the popover content.
4197
- * @slot label - Defines the content of the label.
4198
4512
  * @slot helpText - Defines the content of the helpText.
4199
4513
  * @slot trigger - Defines the content of the trigger.
4200
4514
  * @csspart trigger - The trigger content container.
@@ -4204,7 +4518,7 @@ let AuroElement$2 = class AuroElement extends i$2 {
4204
4518
  * @event auroDropdown-toggled - Notifies that the visibility of the dropdown bib has changed.
4205
4519
  * @event auroDropdown-idAdded - Notifies consumers that the unique ID for the dropdown bib has been generated.
4206
4520
  */
4207
- class AuroDropdown extends AuroElement$2 {
4521
+ class AuroDropdown extends AuroElement$3 {
4208
4522
  constructor() {
4209
4523
  super();
4210
4524
 
@@ -4213,23 +4527,25 @@ class AuroDropdown extends AuroElement$2 {
4213
4527
  this.matchWidth = false;
4214
4528
  this.noHideOnThisFocusLoss = false;
4215
4529
 
4216
- this.errorMessage = ''; // TODO!
4530
+ this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
4217
4531
 
4218
4532
  // Layout Config
4219
- this.layout = 'classic';
4220
- this.shape = 'rounded';
4221
- this.size = 'xl';
4533
+ this.layout = undefined;
4534
+ this.shape = undefined;
4535
+ this.size = undefined;
4536
+
4222
4537
  this.parentBorder = false;
4223
4538
 
4224
- this.privateDefaults();
4225
- }
4539
+ /** @private */
4540
+ this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
4226
4541
 
4227
- get commonLabelClasses() {
4228
- return {
4229
- // 'withValue': this.value && this.value.length > 0
4230
- };
4542
+ this.privateDefaults();
4231
4543
  }
4232
4544
 
4545
+ /**
4546
+ * @private
4547
+ * @returns {object} Class definition for the wrapper element.
4548
+ */
4233
4549
  get commonWrapperClasses() {
4234
4550
  return {
4235
4551
  'trigger': true,
@@ -4247,13 +4563,10 @@ class AuroDropdown extends AuroElement$2 {
4247
4563
  privateDefaults() {
4248
4564
  this.chevron = false;
4249
4565
  this.disabled = false;
4566
+ this.disableFocusTrap = false;
4250
4567
  this.error = false;
4251
- this.inset = false;
4252
- this.rounded = false;
4253
4568
  this.tabIndex = 0;
4254
4569
  this.noToggle = false;
4255
- this.a11yAutocomplete = 'none';
4256
- this.labeled = true;
4257
4570
  this.a11yRole = 'button';
4258
4571
  this.onDark = false;
4259
4572
  this.showTriggerBorders = true;
@@ -4349,6 +4662,18 @@ class AuroDropdown extends AuroElement$2 {
4349
4662
  this.floater.showBib();
4350
4663
  }
4351
4664
 
4665
+ /**
4666
+ * When bib is open, focus on the first element inside of bib.
4667
+ * If not, trigger element will get focus.
4668
+ */
4669
+ focus() {
4670
+ if (this.isPopoverVisible && this.focusTrap) {
4671
+ this.focusTrap.focusFirstElement();
4672
+ } else {
4673
+ this.trigger.focus();
4674
+ }
4675
+ }
4676
+
4352
4677
  // function to define props used within the scope of this component
4353
4678
  static get properties() {
4354
4679
  return {
@@ -4362,6 +4687,15 @@ class AuroDropdown extends AuroElement$2 {
4362
4687
  reflect: true
4363
4688
  },
4364
4689
 
4690
+ /**
4691
+ * If declared, the dropdown will only show by calling the API .show() public method.
4692
+ * @default false
4693
+ */
4694
+ disableEventShow: {
4695
+ type: Boolean,
4696
+ reflect: true
4697
+ },
4698
+
4365
4699
  /**
4366
4700
  * If declared, applies a border around the trigger slot.
4367
4701
  */
@@ -4380,17 +4714,17 @@ class AuroDropdown extends AuroElement$2 {
4380
4714
  },
4381
4715
 
4382
4716
  /**
4383
- * If declared, the dropdown will be styled with the common theme.
4717
+ * If declared, the dropdown is not interactive.
4384
4718
  */
4385
- common: {
4719
+ disabled: {
4386
4720
  type: Boolean,
4387
4721
  reflect: true
4388
4722
  },
4389
4723
 
4390
4724
  /**
4391
- * If declared, the dropdown is not interactive.
4725
+ * If declared, the focus trap inside of bib will be turned off.
4392
4726
  */
4393
- disabled: {
4727
+ disableFocusTrap: {
4394
4728
  type: Boolean,
4395
4729
  reflect: true
4396
4730
  },
@@ -4435,22 +4769,6 @@ class AuroDropdown extends AuroElement$2 {
4435
4769
  reflect: true
4436
4770
  },
4437
4771
 
4438
- /**
4439
- * Makes the trigger to be full width of its parent container.
4440
- */
4441
- fluid: {
4442
- type: Boolean,
4443
- reflect: true
4444
- },
4445
-
4446
- /**
4447
- * If declared, will apply padding around trigger slot content.
4448
- */
4449
- inset: {
4450
- type: Boolean,
4451
- reflect: true
4452
- },
4453
-
4454
4772
  /**
4455
4773
  * If true, the dropdown bib is displayed.
4456
4774
  */
@@ -4494,15 +4812,6 @@ class AuroDropdown extends AuroElement$2 {
4494
4812
  reflect: true
4495
4813
  },
4496
4814
 
4497
- /**
4498
- * Defines if there is a label preset.
4499
- * @private
4500
- */
4501
- labeled: {
4502
- type: Boolean,
4503
- reflect: true
4504
- },
4505
-
4506
4815
  /**
4507
4816
  * Defines if the trigger should size based on the parent element providing the border UI.
4508
4817
  * @private
@@ -4563,6 +4872,9 @@ class AuroDropdown extends AuroElement$2 {
4563
4872
  reflect: true
4564
4873
  },
4565
4874
 
4875
+ /**
4876
+ * If declared, and a function is set, that function will execute when the slot content is updated.
4877
+ */
4566
4878
  onSlotChange: {
4567
4879
  type: Function,
4568
4880
  reflect: false
@@ -4577,14 +4889,6 @@ class AuroDropdown extends AuroElement$2 {
4577
4889
  reflect: true
4578
4890
  },
4579
4891
 
4580
- /**
4581
- * If declared, will apply border-radius to trigger and default slots.
4582
- */
4583
- rounded: {
4584
- type: Boolean,
4585
- reflect: true
4586
- },
4587
-
4588
4892
  /**
4589
4893
  * @private
4590
4894
  */
@@ -4599,22 +4903,14 @@ class AuroDropdown extends AuroElement$2 {
4599
4903
  type: String || undefined,
4600
4904
  attribute: false,
4601
4905
  reflect: false
4602
- },
4603
-
4604
- /**
4605
- * The value for the aria-autocomplete attribute of the trigger element.
4606
- */
4607
- a11yAutocomplete: {
4608
- type: String,
4609
- attribute: false,
4610
4906
  }
4611
4907
  };
4612
4908
  }
4613
4909
 
4614
4910
  static get styles() {
4615
4911
  return [
4912
+ tokensCss$1$2,
4616
4913
  colorCss$1$2,
4617
- tokensCss$1$1,
4618
4914
 
4619
4915
  // default layout
4620
4916
  classicColorCss,
@@ -4676,13 +4972,27 @@ class AuroDropdown extends AuroElement$2 {
4676
4972
  if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
4677
4973
  this.handleTriggerContentSlotChange();
4678
4974
  }
4975
+ }
4679
4976
 
4977
+ /**
4978
+ * Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
4979
+ * @private
4980
+ * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
4981
+ */
4982
+ handleDropdownToggle(event) {
4983
+ this.updateFocusTrap();
4984
+ this.isPopoverVisible = event.detail.expanded;
4985
+ const eventType = event.detail.eventType || "unknown";
4986
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
4987
+ this.trigger.focus();
4988
+ }
4680
4989
  }
4681
4990
 
4682
4991
  firstUpdated() {
4683
4992
 
4684
4993
  // Configure the floater to, this will generate the ID for the bib
4685
4994
  this.floater.configure(this, 'auroDropdown');
4995
+ this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
4686
4996
 
4687
4997
  /**
4688
4998
  * @description Let subscribers know that the dropdown ID ha been generated and added.
@@ -4742,6 +5052,27 @@ class AuroDropdown extends AuroElement$2 {
4742
5052
  this.hasFocus = true;
4743
5053
  }
4744
5054
 
5055
+ /**
5056
+ * @private
5057
+ */
5058
+ updateFocusTrap() {
5059
+ // If the dropdown is open, create a focus trap and focus the first element
5060
+ if (this.isPopoverVisible && !this.disableFocusTrap) {
5061
+ this.focusTrap = new FocusTrap(this.bibContent);
5062
+ this.focusTrap.focusFirstElement();
5063
+ return;
5064
+ }
5065
+
5066
+ // Guard Clause: Ensure there is a focus trap currently active before continuing
5067
+ if (!this.focusTrap) {
5068
+ return;
5069
+ }
5070
+
5071
+ // If the dropdown is not open, disconnect the focus trap if it exists
5072
+ this.focusTrap.disconnect();
5073
+ this.focusTrap = undefined;
5074
+ }
5075
+
4745
5076
  /**
4746
5077
  * Function to support @focusout event.
4747
5078
  * @private
@@ -4902,14 +5233,13 @@ class AuroDropdown extends AuroElement$2 {
4902
5233
  * @returns {void}
4903
5234
  */
4904
5235
  handleTriggerContentSlotChange(event) {
4905
-
4906
5236
  this.floater.handleTriggerTabIndex();
4907
5237
 
4908
5238
  // Get the trigger
4909
5239
  const trigger = this.shadowRoot.querySelector('#trigger');
4910
5240
 
4911
5241
  // Get the trigger slot
4912
- const triggerSlot = this.shadowRoot.querySelector('.triggerContent slot');
5242
+ const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
4913
5243
 
4914
5244
  // If there's a trigger slot
4915
5245
  if (triggerSlot) {
@@ -4972,7 +5302,6 @@ class AuroDropdown extends AuroElement$2 {
4972
5302
  *
4973
5303
  * @private
4974
5304
  * @method handleDefaultSlot
4975
- * @param {Event} event - The event object representing the slot change.
4976
5305
  * @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
4977
5306
  */
4978
5307
  handleDefaultSlot() {
@@ -4983,33 +5312,10 @@ class AuroDropdown extends AuroElement$2 {
4983
5312
  }
4984
5313
 
4985
5314
  /**
5315
+ * Returns HTML for the common portion of the layouts.
4986
5316
  * @private
4987
- * @method handleLabelSlotChange
4988
- * @param {event} event - The event object representing the slot change.
4989
- * @description Handles the slot change event for the label slot.
4990
- */
4991
- handleLabelSlotChange (event) {
4992
-
4993
- // Get the nodes from the event
4994
- const nodes = event.target.assignedNodes();
4995
-
4996
- // Guard clause for no nodes
4997
- if (!nodes) {
4998
- return;
4999
- }
5000
-
5001
- // Convert the nodes to a measurable array so we can get the length
5002
- const nodesArr = Array.from(nodes);
5003
-
5004
- // If the nodes array has a length, the dropdown is labeled
5005
- this.labeled = nodesArr.length > 0;
5006
- }
5007
-
5008
- /**
5009
- * Returns HTML for the common portion of the layouts.
5010
- * @private
5011
- * @param {Object} helpTextClasses - Classes to apply to the help text container.
5012
- * @returns {html} - Returns HTML.
5317
+ * @param {Object} helpTextClasses - Classes to apply to the help text container.
5318
+ * @returns {html} - Returns HTML.
5013
5319
  */
5014
5320
  renderBasicHtml(helpTextClasses) {
5015
5321
  return u`
@@ -5019,22 +5325,17 @@ class AuroDropdown extends AuroElement$2 {
5019
5325
  class="${e(this.commonWrapperClasses)}" part="wrapper"
5020
5326
  tabindex="${this.tabIndex}"
5021
5327
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
5022
- aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5023
- aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
5328
+ aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5329
+ aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
5024
5330
  aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
5025
5331
  @focusin="${this.handleFocusin}"
5026
5332
  @blur="${this.handleFocusOut}">
5027
- <div class="triggerContentWrapper">
5028
- <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
5029
- <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
5030
- </label>
5031
- <div class="triggerContent">
5032
- <slot
5033
- name="trigger"
5034
- @slotchange="${this.handleTriggerContentSlotChange}"></slot>
5035
- </div>
5333
+ <div class="triggerContentWrapper" id="triggerLabel">
5334
+ <slot
5335
+ name="trigger"
5336
+ @slotchange="${this.handleTriggerContentSlotChange}"></slot>
5036
5337
  </div>
5037
- ${this.chevron || this.common ? u`
5338
+ ${this.chevron ? u`
5038
5339
  <div
5039
5340
  id="showStateIcon"
5040
5341
  class="chevron"
@@ -5055,11 +5356,9 @@ class AuroDropdown extends AuroElement$2 {
5055
5356
  <div id="bibSizer" part="size"></div>
5056
5357
  <${this.dropdownBibTag}
5057
5358
  id="bib"
5359
+ shape="${this.shape}"
5058
5360
  ?data-show="${this.isPopoverVisible}"
5059
- ?isfullscreen="${this.isBibFullscreen}"
5060
- ?common="${this.common}"
5061
- ?rounded="${this.common || this.rounded}"
5062
- ?inset="${this.common || this.inset}">
5361
+ ?isfullscreen="${this.isBibFullscreen}">
5063
5362
  <div class="slotContent">
5064
5363
  <slot @slotchange="${this.handleDefaultSlot}"></slot>
5065
5364
  </div>
@@ -5074,62 +5373,13 @@ class AuroDropdown extends AuroElement$2 {
5074
5373
  * @returns {html} - Returns HTML for the classic layout.
5075
5374
  */
5076
5375
  renderLayoutClassic() {
5376
+ // TODO: check with Doug why this was never used?
5377
+ const helpTextClasses = {
5378
+ 'helpText': true
5379
+ };
5077
5380
 
5078
5381
  return u`
5079
- <div>
5080
- <div
5081
- id="trigger"
5082
- class="trigger"
5083
- part="trigger"
5084
- tabindex="${this.tabIndex}"
5085
- ?showBorder="${this.showTriggerBorders}"
5086
- role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
5087
- aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
5088
- aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
5089
- aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
5090
- >
5091
- <div class="triggerContentWrapper">
5092
- <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
5093
- <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
5094
- </label>
5095
- <div class="triggerContent">
5096
- <slot
5097
- name="trigger"
5098
- @slotchange="${this.handleTriggerContentSlotChange}"></slot>
5099
- </div>
5100
- </div>
5101
- ${this.chevron || this.common ? u`
5102
- <div
5103
- id="showStateIcon"
5104
- part="chevron">
5105
- <${this.iconTag}
5106
- category="interface"
5107
- name="chevron-down"
5108
- ?onDark="${this.onDark}"
5109
- variant="${this.disabled ? 'disabled' : 'muted'}">
5110
- >
5111
- </${this.iconTag}>
5112
- </div>
5113
- ` : undefined }
5114
- </div>
5115
- <${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
5116
- <slot name="helpText"></slot>
5117
- </${this.helpTextTag}>
5118
-
5119
- <div id="bibSizer" part="size"></div>
5120
- <${this.dropdownBibTag}
5121
- id="bib"
5122
- ?data-show="${this.isPopoverVisible}"
5123
- ?isfullscreen="${this.isBibFullscreen}"
5124
- ?common="${this.common}"
5125
- ?rounded="${this.common || this.rounded}"
5126
- ?inset="${this.common || this.inset}"
5127
- >
5128
- <div class="slotContent">
5129
- <slot @slotchange="${this.handleDefaultSlot}"></slot>
5130
- </div>
5131
- </${this.dropdownBibTag}>
5132
- </div>
5382
+ ${this.renderBasicHtml(helpTextClasses)}
5133
5383
  `;
5134
5384
  }
5135
5385
 
@@ -5197,9 +5447,9 @@ class AuroDropdown extends AuroElement$2 {
5197
5447
 
5198
5448
  var dropdownVersion = '3.0.0';
5199
5449
 
5200
- var colorCss$1$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
5450
+ var colorCss$3$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
5201
5451
 
5202
- var styleCss$2$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column}#header{display:flex;width:100%;min-height:var(--ds-size-1000, 5rem);box-sizing:border-box;align-items:end;padding-top:var(--ds-size-400, 2rem);padding-right:var(--ds-size-700, 3.5rem);padding-left:var(--ds-size-200, 1rem);pointer-events:none}#subheader{width:100%}#subheader ::slotted([auro-input]){padding:0 var(--ds-size-200, 1rem)}#closeButton{position:absolute;top:var(--ds-size-400, 2rem);right:var(--ds-size-200, 1rem);border:none;background-color:transparent;cursor:pointer}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
5452
+ var styleCss$4$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column}#header{display:flex;width:100%;min-height:var(--ds-size-1000, 5rem);box-sizing:border-box;align-items:end;padding-top:var(--ds-size-400, 2rem);padding-right:var(--ds-size-700, 3.5rem);padding-left:var(--ds-size-200, 1rem);pointer-events:none}#subheader{width:100%}#subheader ::slotted([auro-input]){box-sizing:border-box;padding:0 var(--ds-size-200, 1rem)}#closeButton{position:absolute;top:var(--ds-size-400, 2rem);right:var(--ds-size-200, 1rem);border:none;background-color:transparent;cursor:pointer}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
5203
5453
 
5204
5454
  var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
5205
5455
 
@@ -5210,109 +5460,1153 @@ var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-
5210
5460
 
5211
5461
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5212
5462
 
5213
- let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
5463
+ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
5464
+
5465
+ /* eslint-disable jsdoc/require-param */
5466
+
5467
+ /**
5468
+ * This will register a new custom element with the browser.
5469
+ * @param {String} name - The name of the custom element.
5470
+ * @param {Object} componentClass - The class to register as a custom element.
5471
+ * @returns {void}
5472
+ */
5473
+ registerComponent(name, componentClass) {
5474
+ if (!customElements.get(name)) {
5475
+ customElements.define(name, class extends componentClass {});
5476
+ }
5477
+ }
5478
+
5479
+ /**
5480
+ * Finds and returns the closest HTML Element based on a selector.
5481
+ * @returns {void}
5482
+ */
5483
+ closestElement(
5484
+ selector, // selector like in .closest()
5485
+ base = this, // extra functionality to skip a parent
5486
+ __Closest = (el, found = el && el.closest(selector)) =>
5487
+ !el || el === document || el === window
5488
+ ? null // standard .closest() returns null for non-found selectors also
5489
+ : found
5490
+ ? found // found a selector INside this element
5491
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5492
+ ) {
5493
+ return __Closest(base);
5494
+ }
5495
+ /* eslint-enable jsdoc/require-param */
5496
+
5497
+ /**
5498
+ * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
5499
+ * @param {Object} elem - The element to check.
5500
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
5501
+ * @returns {void}
5502
+ */
5503
+ handleComponentTagRename(elem, tagName) {
5504
+ const tag = tagName.toLowerCase();
5505
+ const elemTag = elem.tagName.toLowerCase();
5506
+
5507
+ if (elemTag !== tag) {
5508
+ elem.setAttribute(tag, true);
5509
+ }
5510
+ }
5511
+
5512
+ /**
5513
+ * Validates if an element is a specific Auro component.
5514
+ * @param {Object} elem - The element to validate.
5515
+ * @param {String} tagName - The name of the Auro component to check against.
5516
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
5517
+ */
5518
+ elementMatch(elem, tagName) {
5519
+ const tag = tagName.toLowerCase();
5520
+ const elemTag = elem.tagName.toLowerCase();
5521
+
5522
+ return elemTag === tag || elem.hasAttribute(tag);
5523
+ }
5524
+ };
5525
+
5526
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5527
+ // See LICENSE in the project root for license information.
5528
+
5529
+
5530
+ class AuroDependencyVersioning {
5531
+
5532
+ /**
5533
+ * Generates a unique string to be used for child auro element naming.
5534
+ * @private
5535
+ * @param {string} baseName - Defines the first part of the unique element name.
5536
+ * @param {string} version - Version of the component that will be appended to the baseName.
5537
+ * @returns {string} - Unique string to be used for naming.
5538
+ */
5539
+ generateElementName(baseName, version) {
5540
+ let result = baseName;
5541
+
5542
+ result += '-';
5543
+ result += version.replace(/[.]/g, '_');
5544
+
5545
+ return result;
5546
+ }
5547
+
5548
+ /**
5549
+ * Generates a unique string to be used for child auro element naming.
5550
+ * @param {string} baseName - Defines the first part of the unique element name.
5551
+ * @param {string} version - Version of the component that will be appended to the baseName.
5552
+ * @returns {string} - Unique string to be used for naming.
5553
+ */
5554
+ generateTag(baseName, version, tagClass) {
5555
+ const elementName = this.generateElementName(baseName, version);
5556
+ const tag = i`${s(elementName)}`;
5557
+
5558
+ if (!customElements.get(elementName)) {
5559
+ customElements.define(elementName, class extends tagClass {});
5560
+ }
5561
+
5562
+ return tag;
5563
+ }
5564
+ }
5565
+
5566
+ /**
5567
+ * Private module-level WeakMap to hold MutationObservers for each host element.
5568
+ */
5569
+ const _observers = new WeakMap();
5570
+
5571
+ /**
5572
+ * Private module-level WeakMap to hold attribute matchers and targets for each host element.
5573
+ * Structure: {
5574
+ * host: {
5575
+ * matchers: Set<Function>,
5576
+ * targets: Map<HTMLElement, Map<Function, {removeOriginal: boolean, currentAttributes: Map<string, string>}>>
5577
+ * }
5578
+ * }
5579
+ */
5580
+ const _transportConfig = new WeakMap();
5581
+
5582
+ /**
5583
+ * Transfers all matching attributes from a host element to a target element and observes for future changes.
5584
+ *
5585
+ * @param {Object} params - The parameters for the function.
5586
+ * @param {HTMLElement} params.host - The host element from which attributes will be transported.
5587
+ * @param {HTMLElement} params.target - The target element to which attributes will be transported.
5588
+ * @param {boolean} [params.removeOriginal=true] - Whether to remove the attributes from the host element.
5589
+ * @param {boolean} [params.observe=true] - Whether to attach a MutationObserver to the host element.
5590
+ * @returns {Function} A function to detach the observer when no longer needed.
5591
+ * @throws {TypeError} If the host or target parameters are not instances of HTMLElement.
5592
+ */
5593
+ const transportAttributes = ({ host, target, match, removeOriginal = true }) => {
5594
+ // Guard Clause: Ensure host is valid HTMLElement instance
5595
+ if (typeof host !== 'object' || !(host instanceof HTMLElement)) {
5596
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "host" parameter must be an instance of HTMLElement.');
5597
+ }
5598
+
5599
+ // Guard Clause: Ensure target is valid HTMLElement instance
5600
+ if (typeof target !== 'object' || !(target instanceof HTMLElement)) {
5601
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "target" parameter must be an instance of HTMLElement.');
5602
+ }
5603
+
5604
+ // Guard Clause: Ensure match is a function
5605
+ if (typeof match !== 'function') {
5606
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "match" parameter must be a function.');
5607
+ }
5608
+
5609
+ // Guard Clause: Ensure removeOriginal is a boolean
5610
+ if (typeof removeOriginal !== 'boolean') {
5611
+ throw new TypeError('a11yUtilities.js | transportAttributes | The "removeOriginal" parameter must be a boolean.');
5612
+ }
5613
+
5614
+ // Register this transport and get cleanup function
5615
+ return _registerTransport({
5616
+ host,
5617
+ target,
5618
+ matcher: match,
5619
+ removeOriginal
5620
+ });
5621
+ };
5622
+
5623
+ /**
5624
+ * Registers a matcher and target for a host element and attaches an observer if needed.
5625
+ *
5626
+ * @param {Object} params - The parameters object.
5627
+ * @param {HTMLElement} params.host - The host element to observe.
5628
+ * @param {HTMLElement} params.target - The target element to receive attributes.
5629
+ * @param {Function} params.matcher - Function that determines which attributes to transport.
5630
+ * @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes.
5631
+ * @param {boolean} [params.observe=true] - Whether to observe for attribute changes.
5632
+ * @returns {Function} Function to detach the specific matcher and target pairing.
5633
+ * @private
5634
+ */
5635
+ const _registerTransport = ({ host, target, matcher, removeOriginal = true }) => {
5636
+ // Initialize config for this host if it doesn't exist
5637
+ if (!_transportConfig.has(host)) {
5638
+ _transportConfig.set(host, {
5639
+ matchers: new Set(),
5640
+ targets: new Map()
5641
+ });
5642
+ }
5643
+
5644
+ const config = _transportConfig.get(host);
5645
+
5646
+ // Add the matcher to the set of matchers for this host
5647
+ config.matchers.add(matcher);
5648
+
5649
+ // Initialize target entry if it doesn't exist
5650
+ if (!config.targets.has(target)) {
5651
+ config.targets.set(target, new Map());
5652
+ }
5653
+
5654
+ // Store the matcher with its removeOriginal setting for this target
5655
+ config.targets.get(target).set(matcher, {
5656
+ removeOriginal,
5657
+ currentAttributes: new Map()
5658
+ });
5659
+
5660
+ // Perform initial attribute transport
5661
+ _transportAttributes({ host, target, matcher, removeOriginal });
5662
+
5663
+ // Attach observer
5664
+ _attachObserver(host);
5665
+
5666
+ // Return cleanup function and utility functions
5667
+ return {
5668
+ cleanup: () => _cleanupTransport(host, target, matcher),
5669
+ getObservedAttributes: () => _getObservedAttributes(host, target, matcher),
5670
+ getObservedAttribute: (attr) => _getObservedAttribute(host, target, matcher, attr),
5671
+ }
5672
+ };
5673
+
5674
+ /**
5675
+ * Cleans up resources associated with a specific matcher and target for a host element.
5676
+ *
5677
+ * @param {HTMLElement} host - The host element
5678
+ * @param {HTMLElement} target - The target element
5679
+ * @param {Function} matcher - The matcher function
5680
+ * @private
5681
+ */
5682
+ const _cleanupTransport = (host, target, matcher) => {
5683
+ const config = _transportConfig.get(host);
5684
+ if (!config) return;
5685
+
5686
+ // Remove this matcher from this target
5687
+ const targetMatchers = config.targets.get(target);
5688
+ if (targetMatchers) {
5689
+ targetMatchers.delete(matcher);
5690
+
5691
+ // If this target has no more matchers, remove it
5692
+ if (targetMatchers.size === 0) {
5693
+ config.targets.delete(target);
5694
+ }
5695
+ }
5696
+
5697
+ // Check if this matcher is still used by any target
5698
+ let matcherStillUsed = false;
5699
+ for (const matcherMap of config.targets.values()) {
5700
+ if (matcherMap.has(matcher)) {
5701
+ matcherStillUsed = true;
5702
+ break;
5703
+ }
5704
+ }
5705
+
5706
+ // If not used anymore, remove from matchers set
5707
+ if (!matcherStillUsed) {
5708
+ config.matchers.delete(matcher);
5709
+ }
5710
+
5711
+ // If no more targets or matchers, detach observer
5712
+ if (config.targets.size === 0 || config.matchers.size === 0) {
5713
+ _detachObserver(host);
5714
+ }
5715
+ };
5716
+
5717
+ /**
5718
+ * Generic function to transport attributes from a host element to a target element.
5719
+ *
5720
+ * @param {Object} params - The parameters object.
5721
+ * @param {HTMLElement} params.host - The host element from which to transport attributes.
5722
+ * @param {HTMLElement} params.target - The target element to which attributes will be transported.
5723
+ * @param {Function} params.matcher - Function that takes an attribute name and returns true if it should be transported.
5724
+ * @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes from host.
5725
+ * @returns {void}
5726
+ * @private
5727
+ */
5728
+ const _transportAttributes = ({ host, target, matcher, removeOriginal = true }) => {
5729
+ // Get a list of all matching attributes on the host element and their values
5730
+ const matchingAttributes = host.getAttributeNames()
5731
+ .filter(attr => matcher(attr))
5732
+ .reduce((acc, attr) => {
5733
+ acc[attr] = host.getAttribute(attr);
5734
+ return acc;
5735
+ }, {});
5736
+
5737
+ // Move matching attributes to the target element, removing them from the host if removeOriginal is true
5738
+ Object.entries(matchingAttributes).forEach(([key, value]) => {
5739
+ _setObservedAttribute(host, target, matcher, key, value);
5740
+ target.setAttribute(key, value);
5741
+ if (removeOriginal) {
5742
+ host.removeAttribute(key);
5743
+ }
5744
+ });
5745
+ };
5746
+
5747
+ /**
5748
+ * Attaches a MutationObserver to the host element to monitor attribute changes.
5749
+ *
5750
+ * @param {HTMLElement} host - The element to observe for attribute changes.
5751
+ * @returns {MutationObserver} The observer instance.
5752
+ * @private
5753
+ */
5754
+ const _attachObserver = (host) => {
5755
+ // If an observer for this host already exists, return it
5756
+ if (_observers.has(host)) {
5757
+ return _observers.get(host);
5758
+ }
5759
+
5760
+ // Create a new MutationObserver
5761
+ const observer = new MutationObserver((mutations) => {
5762
+ const config = _transportConfig.get(host);
5763
+ if (!config) return;
5764
+
5765
+ // For each mutation affecting attributes
5766
+ mutations
5767
+ .filter(mutation => mutation.type === 'attributes')
5768
+ .forEach(mutation => {
5769
+ const attributeName = mutation.attributeName;
5770
+
5771
+ // Find matchers that care about this attribute
5772
+ for (const matcher of config.matchers) {
5773
+ if (matcher(attributeName)) {
5774
+ // For each target that uses this matcher
5775
+ for (const [target, matcherConfigs] of config.targets.entries()) {
5776
+ if (matcherConfigs.has(matcher)) {
5777
+ const { removeOriginal } = matcherConfigs.get(matcher);
5778
+ _transportAttributes({
5779
+ host,
5780
+ target,
5781
+ matcher,
5782
+ removeOriginal
5783
+ });
5784
+ }
5785
+ }
5786
+ }
5787
+ }
5788
+ });
5789
+ });
5790
+
5791
+ // Start observing attribute changes
5792
+ observer.observe(host, { attributes: true });
5793
+
5794
+ // Store the observer
5795
+ _observers.set(host, observer);
5796
+
5797
+ return observer;
5798
+ };
5799
+
5800
+ /**
5801
+ * Detaches and cleans up the MutationObserver for a given host element.
5802
+ *
5803
+ * @param {HTMLElement} host - The element whose observer should be detached.
5804
+ * @private
5805
+ */
5806
+ const _detachObserver = (host) => {
5807
+ if (_observers.has(host)) {
5808
+ const observer = _observers.get(host);
5809
+ observer.disconnect();
5810
+ _observers.delete(host);
5811
+ }
5812
+
5813
+ // Clean up the transport config as well
5814
+ if (_transportConfig.has(host)) {
5815
+ _transportConfig.delete(host);
5816
+ }
5817
+ };
5818
+
5819
+ /**
5820
+ * Gets the matcher configuration for a specific host, target, and matcher
5821
+ * @param {HTMLElement} host - The host element
5822
+ * @param {HTMLElement} target - The target element
5823
+ * @param {Function} matcher - The matcher function
5824
+ * @returns {Object|undefined} The matcher configuration if found
5825
+ * @private
5826
+ */
5827
+ const _getMatcherConfig = (host, target, matcher) => {
5828
+ const config = _transportConfig.get(host);
5829
+ if (!config) return undefined;
5830
+
5831
+ const targetMatchers = config.targets.get(target);
5832
+ if (!targetMatchers) return undefined;
5833
+
5834
+ return targetMatchers.get(matcher);
5835
+ };
5836
+
5837
+ /**
5838
+ * Sets an observed attribute value
5839
+ * @param {HTMLElement} host - The host element
5840
+ * @param {HTMLElement} target - The target element
5841
+ * @param {Function} matcher - The matcher function
5842
+ * @param {string} key - The attribute name
5843
+ * @param {string} value - The attribute value
5844
+ * @private
5845
+ */
5846
+ const _setObservedAttribute = (host, target, matcher, key, value) => {
5847
+ const matcherConfig = _getMatcherConfig(host, target, matcher);
5848
+ if (matcherConfig) {
5849
+ matcherConfig.currentAttributes.set(key, value);
5850
+ }
5851
+ };
5852
+
5853
+ const _getObservedAttribute = (host, target, matcher, attr) => {
5854
+ const matcherConfig = _getMatcherConfig(host, target, matcher);
5855
+ if (matcherConfig) return matcherConfig.currentAttributes.get(attr);
5856
+ return undefined;
5857
+ };
5858
+
5859
+ const _getObservedAttributes = (host, target, matcher) => {
5860
+ const matcherConfig = _getMatcherConfig(host, target, matcher);
5861
+ if (matcherConfig) return Array.from(matcherConfig.currentAttributes.entries());
5862
+ return [];
5863
+ };
5864
+
5865
+ const _matchers = {
5866
+ 'aria-': attr => attr.startsWith('aria-'),
5867
+ 'role': attr => attr.match(/^role$/)
5868
+ };
5869
+
5870
+ const transportAllA11yAttributes = ({ host, target, removeOriginal = true }) => {
5871
+ return transportAttributes({
5872
+ host,
5873
+ target,
5874
+ match: attr => {
5875
+ for (const key in _matchers) {
5876
+ if (_matchers[key](attr)) return true;
5877
+ }
5878
+ return false;
5879
+ },
5880
+ removeOriginal
5881
+ });
5882
+ };
5883
+
5884
+ let AuroElement$1 = class AuroElement extends i$2 {
5885
+
5886
+ /**
5887
+ * @type {Object} return object from transportAttributes via a11yUtilities
5888
+ * @property {Function} cleanup - Function to clean up the attribute watcher.
5889
+ * @property {Function} getCurrentAttributes - Function to get the current attributes being watched and their values.
5890
+ * @property {Function} getObservedAttribute - Function to get the value of a specific observed attribute by name.
5891
+ * @private
5892
+ */
5893
+ attributeWatcher;
5894
+
5895
+ static get properties() {
5896
+ return {
5897
+
5898
+ /**
5899
+ * Defines the layout of an element.
5900
+ * @default {'default'}
5901
+ */
5902
+ layout: {
5903
+ type: String,
5904
+ attribute: "layout",
5905
+ reflect: true
5906
+ },
5907
+
5908
+ /**
5909
+ * Defines the shape of an element.
5910
+ * @property {'default', 'rounded', 'pill', 'circle'}
5911
+ * @default {'default'}
5912
+ */
5913
+ shape: {
5914
+ type: String,
5915
+ attribute: "shape",
5916
+ reflect: true
5917
+ },
5918
+
5919
+ /**
5920
+ * Defines the size of an element.
5921
+ * @property {'xs', 'sm', 'md', 'lg', 'xl'}
5922
+ * @default {'md'}
5923
+ */
5924
+ size: {
5925
+ type: String,
5926
+ attribute: "size",
5927
+ reflect: true
5928
+ },
5929
+
5930
+ /**
5931
+ * This Boolean attribute lets you specify that the element should be rendered in dark mode.
5932
+ * @default {false}
5933
+ */
5934
+ onDark: {
5935
+ type: Boolean,
5936
+ attribute: "ondark",
5937
+ reflect: true
5938
+ },
5939
+
5940
+ /**
5941
+ * A reference to the wrapper element in the shadow DOM.
5942
+ * This is used to apply layout and shape classes dynamically.
5943
+ * @type {HTMLElement|null}
5944
+ * @default {null}
5945
+ * @private
5946
+ */
5947
+ wrapper: {
5948
+ attribute: false,
5949
+ reflect: false
5950
+ }
5951
+ };
5952
+ }
5953
+
5954
+
5955
+
5956
+ resetShapeClasses() {
5957
+ if (this.shape && this.size) {
5958
+
5959
+ if (this.wrapper) {
5960
+ this.wrapper.classList.forEach((className) => {
5961
+ if (className.startsWith('shape-')) {
5962
+ this.wrapper.classList.remove(className);
5963
+ }
5964
+ });
5965
+
5966
+ this.wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
5967
+ }
5968
+ }
5969
+ }
5970
+
5971
+ resetLayoutClasses() {
5972
+ if (this.layout) {
5973
+ if (this.wrapper) {
5974
+ this.wrapper.classList.forEach((className) => {
5975
+ if (className.startsWith('layout-')) {
5976
+ this.wrapper.classList.remove(className);
5977
+ }
5978
+ });
5979
+
5980
+ this.wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
5981
+ }
5982
+ }
5983
+ }
5984
+
5985
+ updateComponentArchitecture() {
5986
+ this.resetLayoutClasses();
5987
+ this.resetShapeClasses();
5988
+ }
5989
+
5990
+ updated(changedProperties) {
5991
+ if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
5992
+ this.updateComponentArchitecture();
5993
+ }
5994
+ }
5995
+
5996
+ firstUpdated() {
5997
+ super.firstUpdated();
5998
+
5999
+ // Set a reference to the wrapper element in the shadow DOM
6000
+ this.wrapper = this.shadowRoot.querySelector('.wrapper');
6001
+
6002
+ // Initialize the transportation of ARIA attributes to the target element and get the disconnect function for cleanup
6003
+ this.attributeWatcher = transportAllA11yAttributes({ host: this, target: this.shadowRoot.querySelector('.wrapper') });
6004
+ }
6005
+
6006
+ disconnectedCallback() {
6007
+ super.disconnectedCallback();
6008
+
6009
+ // Cleanup the ARIA observer if it exists
6010
+ if (this.attributeWatcher) {
6011
+ this.attributeWatcher.cleanup();
6012
+ this.attributeWatcher = null;
6013
+ }
6014
+ }
6015
+
6016
+ // Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
6017
+ // This will catch if an invalid layout value is passed in and render the default layout if so.
6018
+ render() {
6019
+ try {
6020
+ return this.renderLayout();
6021
+ } catch (error) {
6022
+ // failed to get the defined layout
6023
+ console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
6024
+
6025
+ // fallback to the default layout
6026
+ return this.getLayout('default');
6027
+ }
6028
+ }
6029
+ };
6030
+
6031
+ var styleCss$3$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}:host([fluid]) .auro-button,:host([fluid=true]) .auro-button{min-width:auto;width:100%}:host([variant=flat]){display:inline-block}::slotted(svg){vertical-align:middle}slot{pointer-events:none}.auro-button{position:relative;padding:0 var(--ds-size-300, 1.5rem);cursor:pointer;border-width:1px;border-style:solid;border-radius:var(--ds-border-radius, 0.375rem);overflow:hidden;text-overflow:ellipsis;user-select:none;white-space:nowrap;min-height:var(--ds-size-600, 3rem);max-height:var(--ds-size-600, 3rem);display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--ds-size-100, 0.5rem);margin:0;-webkit-touch-callout:none;-webkit-user-select:none;transition:padding 300ms ease-out}.auro-button:active{transform:scale(0.95)}.auro-button:focus-visible,.auro-button:focus{outline:none;outline-style:solid;outline-width:var(--ds-size-50, 0.25rem);outline-offset:calc(var(--ds-size-50, 0.25rem)*-1)}.auro-button:focus-visible:not([variant=secondary]):not([variant=tertiary]),.auro-button:focus:not([variant=secondary]):not([variant=tertiary]){outline-width:calc(var(--ds-size-50, 0.25rem) - 1px)}.auro-button.loading{cursor:not-allowed}.auro-button.loading *:not([auro-loader]){visibility:hidden}@media screen and (min-width: 576px){.auro-button{min-width:8.75rem;width:auto}}.auro-button:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=secondary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=ghost]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark][variant=secondary]:disabled{cursor:not-allowed;transform:unset}@media(hover: hover){.auro-button[onDark][variant=tertiary]:active,.auro-button[onDark][variant=tertiary]:hover{box-shadow:none}}.auro-button[onDark][variant=tertiary]:active{box-shadow:none}.auro-button[onDark][variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button.icon-only ::slotted(:not(auro-icon):not([auro-icon])){display:none}.auro-button--slim{min-width:unset;min-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem));max-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem))}.auro-button--iconOnly{padding:0 var(--ds-size-100, 0.5rem);border-radius:100px;min-width:unset;height:var(--ds-size-600, 3rem);width:var(--ds-size-500, 2.5rem)}.auro-button--iconOnly ::slotted(auro-icon),.auro-button--iconOnly ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--iconOnly:not(.auro-button--rounded):focus-visible:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]),.auro-button--iconOnly:not(.auro-button--rounded):focus:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]){outline-width:1px;outline-offset:-2px}.auro-button--iconOnlySlim{padding:0 var(--ds-size-50, 0.25rem);height:calc(var(--ds-size-400, 2rem) + var(--ds-size-50, 0.25rem));width:calc(var(--ds-size-300, 1.5rem) + var(--ds-size-50, 0.25rem))}.auro-button--iconOnlySlim ::slotted(auro-icon),.auro-button--iconOnlySlim ::slotted([auro-icon]){--ds-auro-icon-size:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, 0.25rem))}.auro-button--rounded{border-radius:100px;box-shadow:var(--ds-elevation-300, 0px 0px 15px rgba(0, 0, 0, 0.2));height:var(--ds-size-500, 2.5rem);min-width:unset;transition:padding 300ms ease-out,outline 0ms,outline-offset 0ms}.auro-button--rounded ::slotted(auro-icon),.auro-button--rounded ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--rounded:focus-visible:not([variant=flat]):after,.auro-button--rounded:focus:not([variant=flat]):after{border-radius:100px}:host([size=xs]) .wrapper:focus-visible,:host([size=xs]) .wrapper:focus{outline-width:1px;outline-offset:-2px}:host([rounded]) .textSlot{transition:opacity 300ms ease-in;opacity:1}:host([rounded][iconOnly]) .textSlot{opacity:0}:host([rounded][iconOnly]) .textWrapper{display:none}:host([rounded][iconOnly]) .auro-button{min-width:unset;padding:unset;width:var(--ds-size-600, 3rem)}[auro-loader]{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}`;
6032
+
6033
+ var colorCss$2$1 = i$5`[auro-loader]{color:var(--ds-auro-button-loader-color)}.auro-button{-webkit-tap-highlight-color:var(--ds-auro-button-tap-color);color:var(--ds-auro-button-text-color);background-color:var(--ds-auro-button-container-color);background-image:linear-gradient(var(--ds-auro-button-container-image), var(--ds-auro-button-container-image));border-color:var(--ds-auro-button-border-color)}.auro-button:not([variant=secondary]):not([variant=tertiary]):focus-visible{outline-color:var(--ds-auro-button-border-inset-color)}.auro-button:not([ondark]):active:not(:disabled),.auro-button:not([ondark]):hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-hover, #00274a)}.auro-button:not([ondark]):disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-disabled, #acc9e2)}.auro-button:not([ondark])[variant=secondary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text, #01426a)}.auro-button:not([ondark])[variant=secondary]:active:not(:disabled),.auro-button:not([ondark])[variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-hover, #00274a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-hover, #00274a)}.auro-button:not([ondark])[variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=secondary]:disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-disabled, #cfe0ef);--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text, #01426a)}.auro-button:not([ondark])[variant=tertiary]:active:not(:disabled),.auro-button:not([ondark])[variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=tertiary]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text, #01426a)}.auro-button:not([ondark])[variant=ghost]:active:not(:disabled),.auro-button:not([ondark])[variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=ghost]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=flat]{color:var(--ds-advanced-color-button-flat-text, #676767);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:active:not(:disabled),.auro-button:not([ondark])[variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-hover, #525252);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-disabled, #d0d0d0);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a)}.auro-button[ondark]:active:not(:disabled),.auro-button[ondark]:hover:not(:disabled){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-hover, #ebf3f9);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9)}.auro-button[ondark]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]:disabled{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=secondary]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:active:not(:disabled),.auro-button[ondark][variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse-disabled, #dddddd)}.auro-button[ondark][variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:active:not(:disabled),.auro-button[ondark][variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:active:not(:disabled),.auro-button[ondark][variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05))}.auro-button[ondark][variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=flat]{color:var(--ds-advanced-color-button-flat-text-inverse, #ffffff);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:active:not(:disabled),.auro-button[ondark][variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-inverse-hover, #adadad);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-inverse-disabled, #7e8894);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}`;
6034
+
6035
+ var tokensCss$2$1 = i$5`:host(:not([onDark])){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-tap-color:transparent}:host([onDark]){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-tap-color:transparent}`;
6036
+
6037
+ var shapeSize = i$5`.shape-rounded-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-md{min-height:44px;max-height:44px;border-style:solid;border-radius:6px;overflow:hidden;font-size:16px}.shape-rounded-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:6px;overflow:hidden;font-size:14px}.shape-rounded-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:4px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px;overflow:hidden;font-size:18px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px 0 0 34px;overflow:hidden}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:0 34px 34px 0;overflow:hidden}.shape-pill-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px;overflow:hidden;font-size:18px}.shape-pill-left-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px 0 0 26px;overflow:hidden}.shape-pill-right-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:0 26px 26px 0;overflow:hidden}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px;overflow:hidden}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px 0 0 22px;overflow:hidden}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-radius:0 22px 22px 0;overflow:hidden;font-size:16px}.shape-pill-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px;overflow:hidden;font-size:14px}.shape-pill-left-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px 0 0 16px;overflow:hidden}.shape-pill-right-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:0 16px 16px 0;overflow:hidden}.shape-pill-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-left-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px 0 0 10px;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-pill-right-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:0 10px 10px 0;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-circle-xl{min-height:68px;max-height:68px;min-width:68px;max-width:68px;border-style:solid;border-radius:34px;overflow:hidden;padding:0}.shape-circle-lg{min-height:52px;max-height:52px;min-width:52px;max-width:52px;border-style:solid;border-radius:26px;overflow:hidden;padding:0}.shape-circle-md{min-height:44px;max-height:44px;min-width:44px;max-width:44px;border-style:solid;border-radius:22px;overflow:hidden;padding:0}.shape-circle-sm{min-height:32px;max-height:32px;min-width:32px;max-width:32px;border-style:solid;border-radius:16px;overflow:hidden;padding:0}.shape-circle-xs{min-height:20px;max-height:20px;min-width:20px;max-width:20px;border-style:solid;border-radius:10px;overflow:hidden;padding:0;outline-offset:-2px;outline-width:1px}`;
6038
+
6039
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
6040
+ // See LICENSE in the project root for license information.
6041
+
6042
+ // ---------------------------------------------------------------------
6043
+
6044
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
6045
+
6046
+ let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
6047
+
6048
+ /* eslint-disable jsdoc/require-param */
6049
+
6050
+ /**
6051
+ * This will register a new custom element with the browser.
6052
+ * @param {String} name - The name of the custom element.
6053
+ * @param {Object} componentClass - The class to register as a custom element.
6054
+ * @returns {void}
6055
+ */
6056
+ registerComponent(name, componentClass) {
6057
+ if (!customElements.get(name)) {
6058
+ customElements.define(name, class extends componentClass {});
6059
+ }
6060
+ }
6061
+
6062
+ /**
6063
+ * Finds and returns the closest HTML Element based on a selector.
6064
+ * @returns {void}
6065
+ */
6066
+ closestElement(
6067
+ selector, // selector like in .closest()
6068
+ base = this, // extra functionality to skip a parent
6069
+ __Closest = (el, found = el && el.closest(selector)) =>
6070
+ !el || el === document || el === window
6071
+ ? null // standard .closest() returns null for non-found selectors also
6072
+ : found
6073
+ ? found // found a selector INside this element
6074
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
6075
+ ) {
6076
+ return __Closest(base);
6077
+ }
6078
+ /* eslint-enable jsdoc/require-param */
6079
+
6080
+ /**
6081
+ * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
6082
+ * @param {Object} elem - The element to check.
6083
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
6084
+ * @returns {void}
6085
+ */
6086
+ handleComponentTagRename(elem, tagName) {
6087
+ const tag = tagName.toLowerCase();
6088
+ const elemTag = elem.tagName.toLowerCase();
6089
+
6090
+ if (elemTag !== tag) {
6091
+ elem.setAttribute(tag, true);
6092
+ }
6093
+ }
6094
+
6095
+ /**
6096
+ * Validates if an element is a specific Auro component.
6097
+ * @param {Object} elem - The element to validate.
6098
+ * @param {String} tagName - The name of the Auro component to check against.
6099
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
6100
+ */
6101
+ elementMatch(elem, tagName) {
6102
+ const tag = tagName.toLowerCase();
6103
+ const elemTag = elem.tagName.toLowerCase();
6104
+
6105
+ return elemTag === tag || elem.hasAttribute(tag);
6106
+ }
6107
+ };
6108
+
6109
+ var styleCss$2$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin:0.375rem;--margin-xs:0.2rem;--margin-sm:0.5rem;--margin-md:0.75rem;--margin-lg:1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin)*6);height:1.5rem}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(2.55rem + var(--margin-xs)*6);height:1.55rem}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm)*6);height:2.5rem}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md)*6);height:3.5rem}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg)*6);height:5.5rem}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-400ms}:host([pulse])>span:nth-child(2){animation-delay:-200ms}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,100%{opacity:.1;transform:scale(0.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}100%{left:110%}}:host>.no-animation{display:none}@media(prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center;font-size:1rem}:host>span{opacity:1}:host>.loader{display:none}:host>.no-animation{display:block}}`;
6110
+
6111
+ var colorCss$1$1 = i$5`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]){--ds-auro-loader-color:var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--ds-auro-loader-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color:transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color:currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color:currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}`;
6112
+
6113
+ var tokensCss$1$1 = i$5`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
6114
+
6115
+ // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6116
+ // See LICENSE in the project root for license information.
6117
+
6118
+
6119
+ class AuroLoader extends i$2 {
6120
+ constructor() {
6121
+ super();
6122
+
6123
+ /**
6124
+ * @private
6125
+ */
6126
+ this.keys = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
6127
+
6128
+ /**
6129
+ * @private
6130
+ */
6131
+ this.mdCount = 3;
6132
+
6133
+ /**
6134
+ * @private
6135
+ */
6136
+ this.smCount = 2;
6137
+
6138
+ /**
6139
+ * @private
6140
+ */
6141
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
6142
+
6143
+ this.orbit = false;
6144
+ this.ringworm = false;
6145
+ this.laser = false;
6146
+ this.pulse = false;
6147
+ }
6148
+
6149
+ // function to define props used within the scope of this component
6150
+ static get properties() {
6151
+ return {
6152
+
6153
+ /**
6154
+ * Sets loader to laser type.
6155
+ */
6156
+ laser: {
6157
+ type: Boolean,
6158
+ reflect: true
6159
+ },
6160
+
6161
+ /**
6162
+ * Sets loader to orbit type.
6163
+ */
6164
+ orbit: {
6165
+ type: Boolean,
6166
+ reflect: true
6167
+ },
6168
+
6169
+ /**
6170
+ * Sets loader to pulse type.
6171
+ */
6172
+ pulse: {
6173
+ type: Boolean,
6174
+ reflect: true
6175
+ },
6176
+
6177
+ /**
6178
+ * Sets loader to ringworm type.
6179
+ */
6180
+ ringworm: {
6181
+ type: Boolean,
6182
+ reflect: true
6183
+ }
6184
+ };
6185
+ }
6186
+
6187
+ static get styles() {
6188
+ return [
6189
+ i$5`${styleCss$2$1}`,
6190
+ i$5`${colorCss$1$1}`,
6191
+ i$5`${tokensCss$1$1}`
6192
+ ];
6193
+ }
6194
+
6195
+ /**
6196
+ * This will register this element with the browser.
6197
+ * @param {string} [name="auro-loader"] - The name of element that you want to register to.
6198
+ *
6199
+ * @example
6200
+ * AuroLoader.register("custom-loader") // this will register this element to <custom-loader/>
6201
+ *
6202
+ */
6203
+ static register(name = "auro-loader") {
6204
+ AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroLoader);
6205
+ }
6206
+
6207
+ firstUpdated() {
6208
+ // Add the tag name as an attribute if it is different than the component name
6209
+ this.runtimeUtils.handleComponentTagRename(this, 'auro-loader');
6210
+ }
6211
+
6212
+ connectedCallback() {
6213
+ super.connectedCallback();
6214
+ }
6215
+
6216
+ /**
6217
+ * @private
6218
+ * @returns {Array} Numbered array for template map.
6219
+ */
6220
+ defineTemplate() {
6221
+ let nodes = Array.from(Array(this.mdCount).keys());
6222
+
6223
+ if (this.orbit || this.laser) {
6224
+ nodes = Array.from(Array(this.smCount).keys());
6225
+ } else if (this.ringworm) {
6226
+ nodes = Array.from(Array(0).keys());
6227
+ }
6228
+
6229
+ return nodes;
6230
+ }
6231
+
6232
+ // When using auroElement, use the following attribute and function when hiding content from screen readers.
6233
+ // aria-hidden="${this.hideAudible(this.hiddenAudible)}"
6234
+
6235
+ // function that renders the HTML and CSS into the scope of the component
6236
+ render() {
6237
+ return x`
6238
+ ${this.defineTemplate().map((idx) => x`
6239
+ <span part="element" class="loader node-${idx}"></span>
6240
+ `)}
6241
+
6242
+ <div class="no-animation">Loading...</div>
6243
+
6244
+ ${this.ringworm ? x`
6245
+ <svg part="element" class="circular" viewBox="25 25 50 50">
6246
+ <circle class="path" cx="50" cy="50" r="20" fill="none"/>
6247
+ </svg>`
6248
+ : ``
6249
+ }
6250
+ `;
6251
+ }
6252
+ }
6253
+
6254
+ var loaderVersion = '5.0.0';
6255
+
6256
+ /* eslint-disable max-lines, curly, jsdoc/no-undefined-types */
6257
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
6258
+ // See LICENSE in the project root for license information.
6259
+
6260
+
6261
+ /**
6262
+ * @slot - Default slot for the text of the button.
6263
+ * @csspart button - Apply CSS to HTML5 button.
6264
+ * @csspart loader - Apply CSS to auro-loader.
6265
+ * @csspart text - Apply CSS to text slot.
6266
+ * @csspart icon - Apply CSS to icon slot.
6267
+ */
6268
+
6269
+ /* eslint-disable lit/no-invalid-html, lit/binding-positions */
6270
+
6271
+ const ICON_ONLY_SHAPES = ['circle'];
6272
+
6273
+ /**
6274
+ * AuroButton is a custom element that provides a styled, accessible button with support for various states and form association.
6275
+ * It is designed to be flexible, supporting loading states, icon slots, and integration with HTML5 forms.
6276
+ * @property {'default', 'rounded', 'pill', 'circle'} shape - Defines the shape of the button.
6277
+ * @property {'xs', 'sm', 'md', 'lg', 'xl'} size - Defines the size of the button.
6278
+ * @property {'primary', 'secondary', 'tertiary', 'ghost', 'flat'} variant - Sets the button variant.
6279
+ * @property {'submit', 'reset', 'button'} type - The type of button. Matches HTML5 Button Spec.
6280
+ * @property {boolean} onDark - Indicates if the button is rendered in dark mode.
6281
+ */
6282
+ class AuroButton extends AuroElement$1 {
6283
+
6284
+ /**
6285
+ * Enables form association for this element.
6286
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals
6287
+ * @returns {boolean} - Returns true to enable form association.
6288
+ */
6289
+ static get formAssociated() {
6290
+ return true;
6291
+ }
6292
+
6293
+ constructor() {
6294
+ super();
6295
+ this.autofocus = false;
6296
+ this.disabled = false;
6297
+ this.loading = false;
6298
+ this.size = "md";
6299
+ this.shape = "rounded";
6300
+ this.onDark = false;
6301
+ this.fluid = false;
6302
+ this.loadingText = this.loadingText || 'Loading...';
6303
+
6304
+ // Support for HTML5 forms
6305
+ if (typeof this.attachInternals === 'function') {
6306
+ this.internals = this.attachInternals();
6307
+ } else {
6308
+ this.internals = null;
6309
+
6310
+ // eslint-disable-next-line no-console
6311
+ console.warn('This browser does not support form association features. Some form-related functionality may not work as expected. Consider using a polyfill or handling click events manually.');
6312
+ }
6313
+
6314
+ /**
6315
+ * Generate unique names for dependency components.
6316
+ */
6317
+ const versioning = new AuroDependencyVersioning();
6318
+
6319
+ /**
6320
+ * @private
6321
+ */
6322
+ this.loaderTag = versioning.generateTag('auro-loader', loaderVersion, AuroLoader);
6323
+
6324
+ /**
6325
+ * @private
6326
+ */
6327
+ this.buttonHref = undefined;
6328
+
6329
+ /**
6330
+ * @private
6331
+ */
6332
+ this.buttonTarget = undefined;
6333
+
6334
+ /**
6335
+ * @private
6336
+ */
6337
+ this.buttonRel = undefined;
6338
+ }
6339
+
6340
+ static get styles() {
6341
+ return [
6342
+ tokensCss$2$1,
6343
+ styleCss$3$1,
6344
+ colorCss$2$1,
6345
+ shapeSize
6346
+ ];
6347
+ }
6348
+
6349
+ static get properties() {
6350
+ return {
6351
+
6352
+ ...super.properties,
6353
+
6354
+ /**
6355
+ * Override layout since it isn't used in this component.
6356
+ * @private
6357
+ */
6358
+ layout: {
6359
+ type: Boolean,
6360
+ attribute: false,
6361
+ reflect: false
6362
+ },
6363
+
6364
+ /**
6365
+ * This Boolean attribute lets you specify that the button should have input focus when the page loads, unless overridden by the user.
6366
+ */
6367
+ autofocus: {
6368
+ type: Boolean,
6369
+ reflect: true
6370
+ },
6371
+
6372
+ /**
6373
+ * If set to true, button will become disabled and not allow for interactions.
6374
+ */
6375
+ disabled: {
6376
+ type: Boolean,
6377
+ reflect: true
6378
+ },
6379
+
6380
+ /**
6381
+ * Alters the shape of the button to be full width of its parent container.
6382
+ */
6383
+ fluid: {
6384
+ type: Boolean,
6385
+ reflect: true
6386
+ },
6387
+
6388
+ /**
6389
+ * If set to true button text will be replaced with `auro-loader` and become disabled.
6390
+ */
6391
+ loading: {
6392
+ type: Boolean,
6393
+ reflect: true
6394
+ },
6395
+
6396
+ /**
6397
+ * Sets custom loading text for the `aria-label` on a button in loading state. If not set, the default value of "Loading..." will be used.
6398
+ */
6399
+ loadingText: {
6400
+ type: String
6401
+ },
6402
+
6403
+ /**
6404
+ * Populates `tabindex` to define the focusable sequence in keyboard navigation.
6405
+ */
6406
+ tIndex: {
6407
+ type: String,
6408
+ reflect: true
6409
+ },
6410
+
6411
+ /**
6412
+ * Populates `tabindex` to define the focusable sequence in keyboard navigation.
6413
+ * Must be used with "." to ensure the host element does not retain a reference to the `tabindex` attribute.
6414
+ * Example: `<auro-button .tabindex="${this.disabled ? '-1' : '0'}"></auro-button>`
6415
+ */
6416
+ tabindex: {
6417
+ type: String,
6418
+ reflect: false
6419
+ },
6420
+
6421
+ /**
6422
+ * Sets title attribute. The information is most often shown as a tooltip text when the mouse moves over the element.
6423
+ */
6424
+ title: {
6425
+ type: String,
6426
+ reflect: true
6427
+ },
6428
+
6429
+ /**
6430
+ * The type of the button. Possible values are: `submit`, `reset`, `button`.
6431
+ */
6432
+ type: {
6433
+ type: String,
6434
+ reflect: true
6435
+ },
6436
+
6437
+ /**
6438
+ * Defines the value associated with the button which is submitted with the form data.
6439
+ */
6440
+ value: {
6441
+ type: String,
6442
+ reflect: true
6443
+ },
6444
+
6445
+ /**
6446
+ * Sets button variant option.
6447
+ * @default primary
6448
+ */
6449
+ variant: {
6450
+ type: String,
6451
+ reflect: true
6452
+ },
6453
+
6454
+ /**
6455
+ * @private
6456
+ */
6457
+ buttonHref: {
6458
+ type: String,
6459
+ },
6460
+
6461
+ /**
6462
+ * @private
6463
+ */
6464
+ buttonTarget: {
6465
+ type: String,
6466
+ },
5214
6467
 
5215
- /* eslint-disable jsdoc/require-param */
6468
+ /**
6469
+ * @private
6470
+ */
6471
+ buttonRel: {
6472
+ type: String,
6473
+ },
6474
+ };
6475
+ }
5216
6476
 
5217
6477
  /**
5218
- * This will register a new custom element with the browser.
5219
- * @param {String} name - The name of the custom element.
5220
- * @param {Object} componentClass - The class to register as a custom element.
5221
- * @returns {void}
6478
+ * This will register this element with the browser.
6479
+ * @param {string} [name="auro-button"] - The name of element that you want to register to.
6480
+ *
6481
+ * @example
6482
+ * AuroButton.register("custom-button") // this will register this element to <custom-button/>
6483
+ *
5222
6484
  */
5223
- registerComponent(name, componentClass) {
5224
- if (!customElements.get(name)) {
5225
- customElements.define(name, class extends componentClass {});
5226
- }
6485
+ static register(name = "auro-button") {
6486
+ AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroButton);
5227
6487
  }
5228
6488
 
5229
6489
  /**
5230
- * Finds and returns the closest HTML Element based on a selector.
6490
+ * Internal method to apply focus to the HTML5 button.
6491
+ * @private
5231
6492
  * @returns {void}
5232
6493
  */
5233
- closestElement(
5234
- selector, // selector like in .closest()
5235
- base = this, // extra functionality to skip a parent
5236
- __Closest = (el, found = el && el.closest(selector)) =>
5237
- !el || el === document || el === window
5238
- ? null // standard .closest() returns null for non-found selectors also
5239
- : found
5240
- ? found // found a selector INside this element
5241
- : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
5242
- ) {
5243
- return __Closest(base);
6494
+ focus() {
6495
+ this.renderRoot.querySelector('button').focus();
5244
6496
  }
5245
- /* eslint-enable jsdoc/require-param */
5246
6497
 
5247
6498
  /**
5248
- * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
5249
- * @param {Object} elem - The element to check.
5250
- * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
6499
+ * Submits the form that this button is associated with.
6500
+ * @private
5251
6501
  * @returns {void}
5252
6502
  */
5253
- handleComponentTagRename(elem, tagName) {
5254
- const tag = tagName.toLowerCase();
5255
- const elemTag = elem.tagName.toLowerCase();
5256
-
5257
- if (elemTag !== tag) {
5258
- elem.setAttribute(tag, true);
6503
+ surfaceSubmitEvent() {
6504
+ if (this.form) {
6505
+ this.form.requestSubmit();
5259
6506
  }
5260
6507
  }
5261
6508
 
5262
6509
  /**
5263
- * Validates if an element is a specific Auro component.
5264
- * @param {Object} elem - The element to validate.
5265
- * @param {String} tagName - The name of the Auro component to check against.
5266
- * @returns {Boolean} - Returns true if the element is the specified Auro component.
6510
+ * Returns the form element that this button is associated with.
6511
+ * @private
6512
+ * @returns {HTMLFormElement | null}
5267
6513
  */
5268
- elementMatch(elem, tagName) {
5269
- const tag = tagName.toLowerCase();
5270
- const elemTag = elem.tagName.toLowerCase();
5271
-
5272
- return elemTag === tag || elem.hasAttribute(tag);
6514
+ get form() {
6515
+ return this.internals ? this.internals.form : null;
5273
6516
  }
5274
- };
5275
6517
 
5276
- // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
5277
- // See LICENSE in the project root for license information.
6518
+ /**
6519
+ * @private
6520
+ * @returns {Boolean}
6521
+ */
6522
+ get hideText() {
6523
+ return ICON_ONLY_SHAPES.includes(this.shape);
6524
+ }
5278
6525
 
6526
+ /**
6527
+ * Returns the current value of the projected `aria-label` attribute or undefined if not set.
6528
+ * @returns {string | undefined}
6529
+ * @private
6530
+ */
6531
+ get currentAriaLabel() {
6532
+ if (!this.attributeWatcher) return undefined;
5279
6533
 
5280
- class AuroDependencyVersioning {
6534
+ const ariaLabel = this.attributeWatcher.getObservedAttribute("aria-label");
6535
+ return ariaLabel || undefined;
6536
+ }
5281
6537
 
5282
6538
  /**
5283
- * Generates a unique string to be used for child auro element naming.
6539
+ * Returns the current value of the projected `aria-labelledby` attribute or undefined if not set.
6540
+ * @returns {string | undefined}
5284
6541
  * @private
5285
- * @param {string} baseName - Defines the first part of the unique element name.
5286
- * @param {string} version - Version of the component that will be appended to the baseName.
5287
- * @returns {string} - Unique string to be used for naming.
5288
6542
  */
5289
- generateElementName(baseName, version) {
5290
- let result = baseName;
5291
-
5292
- result += '-';
5293
- result += version.replace(/[.]/g, '_');
6543
+ get currentAriaLabelledBy() {
6544
+ if (!this.attributeWatcher) return undefined;
5294
6545
 
5295
- return result;
6546
+ const ariaLabelledBy = this.attributeWatcher.getObservedAttribute("aria-labelledby");
6547
+ return ariaLabelledBy || undefined;
5296
6548
  }
5297
6549
 
5298
6550
  /**
5299
- * Generates a unique string to be used for child auro element naming.
5300
- * @param {string} baseName - Defines the first part of the unique element name.
5301
- * @param {string} version - Version of the component that will be appended to the baseName.
5302
- * @returns {string} - Unique string to be used for naming.
6551
+ * Renders the default layout for the button.
6552
+ * @returns {TemplateResult}
6553
+ * @private
5303
6554
  */
5304
- generateTag(baseName, version, tagClass) {
5305
- const elementName = this.generateElementName(baseName, version);
5306
- const tag = i`${s(elementName)}`;
6555
+ renderLayoutDefault() {
6556
+ const classes = {
6557
+ "util_insetLg--squish": true,
6558
+ "auro-button": true,
6559
+ "icon-only": this.hideText,
6560
+ wrapper: true,
6561
+ loading: this.loading,
6562
+ };
5307
6563
 
5308
- if (!customElements.get(elementName)) {
5309
- customElements.define(elementName, class extends tagClass {});
5310
- }
6564
+ const tag = this.buttonHref ? i`a` : i`button`;
6565
+ const part = this.buttonHref ? 'link' : 'button';
5311
6566
 
5312
- return tag;
6567
+ return u`
6568
+ <${tag}
6569
+ part="${part}"
6570
+ aria-label="${o(this.loading ? this.loadingText : this.currentAriaLabel || undefined)}"
6571
+ aria-labelledby="${o(this.loading ? undefined : this.currentAriaLabelledBy || undefined)}"
6572
+ tabindex="${o(this.tIndex || this.tabindex)}"
6573
+ ?autofocus="${this.autofocus}"
6574
+ class=${e(classes)}
6575
+ ?disabled="${this.disabled || this.loading}"
6576
+ ?onDark="${this.onDark}"
6577
+ title="${o(this.title ? this.title : undefined)}"
6578
+ name="${o(this.name ? this.name : undefined)}"
6579
+ type="${o(this.type ? this.type : undefined)}"
6580
+ variant="${o(this.variant ? this.variant : undefined)}"
6581
+ .value="${o(this.value ? this.value : undefined)}"
6582
+ @click="${this.type === 'submit' ? this.surfaceSubmitEvent : undefined}"
6583
+ href="${o(this.buttonHref || undefined)}"
6584
+ target="${o(this.buttonTarget || undefined)}"
6585
+ rel="${o(this.buttonRel || undefined)}"
6586
+ >
6587
+ ${o(this.loading ? u`<${this.loaderTag} pulse part="loader"></${this.loaderTag}>` : undefined)}
6588
+
6589
+ <span class="contentWrapper">
6590
+ <span class="textSlot" part="text">
6591
+ <slot></slot>
6592
+ </span>
6593
+ </span>
6594
+ </${tag}>
6595
+ `;
6596
+ }
6597
+
6598
+ /**
6599
+ * Renders the layout of the button.
6600
+ * @returns {TemplateResult}
6601
+ * @private
6602
+ */
6603
+ renderLayout() {
6604
+ return this.renderLayoutDefault();
5313
6605
  }
5314
6606
  }
5315
6607
 
6608
+ var buttonVersion = '11.2.1';
6609
+
5316
6610
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5317
6611
  // See LICENSE in the project root for license information.
5318
6612
 
@@ -5323,7 +6617,7 @@ class AuroDependencyVersioning {
5323
6617
  * @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
5324
6618
  */
5325
6619
 
5326
- let AuroElement$1 = class AuroElement extends i$2 {
6620
+ let AuroElement$2 = class AuroElement extends i$2 {
5327
6621
 
5328
6622
  // function to define props used within the scope of this component
5329
6623
  static get properties() {
@@ -5391,7 +6685,7 @@ var styleCss$1$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}
5391
6685
  */
5392
6686
 
5393
6687
  // build the component class
5394
- let BaseIcon$1 = class BaseIcon extends AuroElement$1 {
6688
+ let BaseIcon$1 = class BaseIcon extends AuroElement$2 {
5395
6689
  constructor() {
5396
6690
  super();
5397
6691
  this.onDark = false;
@@ -5474,7 +6768,7 @@ var colorCss$4 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){
5474
6768
 
5475
6769
  /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
5476
6770
 
5477
- let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
6771
+ let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
5478
6772
 
5479
6773
  /* eslint-disable jsdoc/require-param */
5480
6774
 
@@ -5556,7 +6850,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5556
6850
  */
5557
6851
  privateDefaults() {
5558
6852
  this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
5559
- this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
6853
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
5560
6854
  }
5561
6855
 
5562
6856
  // function to define props used within the scope of this component
@@ -5638,7 +6932,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5638
6932
  *
5639
6933
  */
5640
6934
  static register(name = "auro-icon") {
5641
- AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroIcon);
6935
+ AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroIcon);
5642
6936
  }
5643
6937
 
5644
6938
  connectedCallback() {
@@ -5659,8 +6953,12 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5659
6953
  async firstUpdated() {
5660
6954
  await super.firstUpdated();
5661
6955
 
5662
- // Removes the SVG description for screenreader if ariaHidden is set to true
5663
- if (!this.hasAttribute('ariaHidden') && this.svg) {
6956
+ /**
6957
+ * icons provide a description for screen readers. Icon only instances Auro-button
6958
+ * depend on this description to provide context for the user using a screen reader.
6959
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
6960
+ */
6961
+ if (this.hasAttribute('ariaHidden') && this.svg) {
5664
6962
  const svgDesc = this.svg.querySelector('desc');
5665
6963
 
5666
6964
  if (svgDesc) {
@@ -5704,7 +7002,77 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
5704
7002
  }
5705
7003
  };
5706
7004
 
5707
- var iconVersion$1 = '8.0.3';
7005
+ var iconVersion$1 = '8.0.4';
7006
+
7007
+ // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
7008
+ // See LICENSE in the project root for license information.
7009
+
7010
+ // ---------------------------------------------------------------------
7011
+
7012
+ /* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
7013
+
7014
+ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
7015
+
7016
+ /* eslint-disable jsdoc/require-param */
7017
+
7018
+ /**
7019
+ * This will register a new custom element with the browser.
7020
+ * @param {String} name - The name of the custom element.
7021
+ * @param {Object} componentClass - The class to register as a custom element.
7022
+ * @returns {void}
7023
+ */
7024
+ registerComponent(name, componentClass) {
7025
+ if (!customElements.get(name)) {
7026
+ customElements.define(name, class extends componentClass {});
7027
+ }
7028
+ }
7029
+
7030
+ /**
7031
+ * Finds and returns the closest HTML Element based on a selector.
7032
+ * @returns {void}
7033
+ */
7034
+ closestElement(
7035
+ selector, // selector like in .closest()
7036
+ base = this, // extra functionality to skip a parent
7037
+ __Closest = (el, found = el && el.closest(selector)) =>
7038
+ !el || el === document || el === window
7039
+ ? null // standard .closest() returns null for non-found selectors also
7040
+ : found
7041
+ ? found // found a selector INside this element
7042
+ : __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
7043
+ ) {
7044
+ return __Closest(base);
7045
+ }
7046
+ /* eslint-enable jsdoc/require-param */
7047
+
7048
+ /**
7049
+ * If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
7050
+ * @param {Object} elem - The element to check.
7051
+ * @param {String} tagName - The name of the Auro component to check for or add as an attribute.
7052
+ * @returns {void}
7053
+ */
7054
+ handleComponentTagRename(elem, tagName) {
7055
+ const tag = tagName.toLowerCase();
7056
+ const elemTag = elem.tagName.toLowerCase();
7057
+
7058
+ if (elemTag !== tag) {
7059
+ elem.setAttribute(tag, true);
7060
+ }
7061
+ }
7062
+
7063
+ /**
7064
+ * Validates if an element is a specific Auro component.
7065
+ * @param {Object} elem - The element to validate.
7066
+ * @param {String} tagName - The name of the Auro component to check against.
7067
+ * @returns {Boolean} - Returns true if the element is the specified Auro component.
7068
+ */
7069
+ elementMatch(elem, tagName) {
7070
+ const tag = tagName.toLowerCase();
7071
+ const elemTag = elem.tagName.toLowerCase();
7072
+
7073
+ return elemTag === tag || elem.hasAttribute(tag);
7074
+ }
7075
+ };
5708
7076
 
5709
7077
  var styleCss$5 = i$5`.heading{margin:1.75rem 0;letter-spacing:var(--ds-text-heading-default-spacing, -0.2px);font-weight:var(--ds-text-heading-default-weight, 500)}.heading--display{margin-top:0;font-size:var(--ds-text-heading-display-size-breakpoint-sm, 2.75rem);font-weight:var(--ds-text-heading-display-weight, 100);line-height:var(--ds-text-heading-display-height-breakpoint-sm, 3.375rem)}@media screen and (min-width: 768px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-md, 3rem);line-height:var(--ds-text-heading-display-height-breakpoint-md, 3.75rem)}}@media screen and (min-width: 1024px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-lg, 3.5rem);line-height:var(--ds-text-heading-display-height-breakpoint-lg, 4.25rem)}}.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-sm, 2rem);font-weight:var(--ds-text-heading-800-weight, 500);line-height:var(--ds-text-heading-800-height-breakpoint-sm, 2.375rem)}@media screen and (min-width: 768px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-md, 2.25rem);line-height:var(--ds-text-heading-800-height-breakpoint-md, 2.625rem)}}@media screen and (min-width: 1024px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-lg, 2.5rem);line-height:var(--ds-text-heading-800-height-breakpoint-lg, 3rem)}}.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-sm, 1.75rem);font-weight:var(--ds-text-heading-700-weight, 500);line-height:var(--ds-text-heading-700-height-breakpoint-sm, 2.125rem)}@media screen and (min-width: 768px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-md, 2rem);line-height:var(--ds-text-heading-700-height-breakpoint-md, 2.375rem)}}@media screen and (min-width: 1024px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-lg, 2.25rem);line-height:var(--ds-text-heading-700-height-breakpoint-lg, 2.75rem)}}.heading--600{margin:1rem 0;font-size:var(--ds-text-heading-600-size-breakpoint-sm, 1.625rem);font-weight:var(--ds-text-heading-600-weight, 300);line-height:var(--ds-text-heading-600-height-breakpoint-sm, 1.875rem)}@media screen and (min-width: 768px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-md, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-md, 2.125rem)}}@media screen and (min-width: 1024px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-lg, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-lg, 2.25rem)}}.heading--500{margin:1rem 0;font-size:var(--ds-text-heading-500-size-breakpoint-sm, 1.375rem);font-weight:var(--ds-text-heading-500-weight, 300);line-height:var(--ds-text-heading-500-height-breakpoint-sm, 1.625rem)}@media screen and (min-width: 768px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-md, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-md, 1.875rem)}}@media screen and (min-width: 1024px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-lg, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-lg, 2rem)}}.heading--400{margin:.75rem 0;font-size:var(--ds-text-heading-400-size, 1.25rem);font-weight:var(--ds-text-heading-400-weight, 300);line-height:var(--ds-text-heading-400-height, 1.625rem)}.heading--300{margin:.75rem 0;font-size:var(--ds-text-heading-300-size, 1.125rem);font-weight:var(--ds-text-heading-300-weight, 300);line-height:var(--ds-text-heading-300-height, 1.625rem)}:host([no-margin-block]) .heading{margin-block:0}.util_stackMarginnone--bottom{margin-bottom:0}.util_stackMargin25--bottom{margin-bottom:var(--ds-size-25, 0.125rem)}.util_stackMargin50--bottom{margin-bottom:var(--ds-size-50, 0.25rem)}.util_stackMargin100--bottom{margin-bottom:var(--ds-size-100, 0.5rem)}.util_stackMargin150--bottom{margin-bottom:var(--ds-size-150, 0.75rem)}.util_stackMargin200--bottom{margin-bottom:var(--ds-size-200, 1rem)}.util_stackMargin300--bottom{margin-bottom:var(--ds-size-300, 1.5rem)}.util_stackMargin400--bottom{margin-bottom:var(--ds-size-400, 2rem)}.util_stackMargin600--bottom{margin-bottom:var(--ds-size-600, 3rem)}.util_stackMargin800--bottom{margin-bottom:var(--ds-size-800, 4rem)}.util_stackMarginnone--top{margin-top:0}.util_stackMargin25--top{margin-top:var(--ds-size-25, 0.125rem)}.util_stackMargin50--top{margin-top:var(--ds-size-50, 0.25rem)}.util_stackMargin100--top{margin-top:var(--ds-size-100, 0.5rem)}.util_stackMargin150--top{margin-top:var(--ds-size-150, 0.75rem)}.util_stackMargin200--top{margin-top:var(--ds-size-200, 1rem)}.util_stackMargin300--top{margin-top:var(--ds-size-300, 1.5rem)}.util_stackMargin400--top{margin-top:var(--ds-size-400, 2rem)}.util_stackMargin600--top{margin-top:var(--ds-size-600, 3rem)}.util_stackMargin800--top{margin-top:var(--ds-size-800, 4rem)}`;
5710
7078
 
@@ -5735,7 +7103,7 @@ class AuroHeader extends i$2 {
5735
7103
  /**
5736
7104
  * @private
5737
7105
  */
5738
- this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
7106
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
5739
7107
  }
5740
7108
 
5741
7109
  // function to define props used within the scope of this component
@@ -5765,7 +7133,7 @@ class AuroHeader extends i$2 {
5765
7133
  *
5766
7134
  */
5767
7135
  static register(name = "auro-header") {
5768
- AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroHeader);
7136
+ AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHeader);
5769
7137
  }
5770
7138
 
5771
7139
  firstUpdated() {
@@ -5861,17 +7229,30 @@ class AuroBibtemplate extends i$2 {
5861
7229
 
5862
7230
  this.large = false;
5863
7231
 
5864
- AuroLibraryRuntimeUtils$1$1.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
7232
+ AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
5865
7233
 
5866
7234
  const versioning = new AuroDependencyVersioning();
7235
+
7236
+ /**
7237
+ * @private
7238
+ */
5867
7239
  this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion$1, AuroIcon$1);
7240
+
7241
+ /**
7242
+ * @private
7243
+ */
5868
7244
  this.headerTag = versioning.generateTag('auro-formkit-bibtemplate-header', headerVersion, AuroHeader);
7245
+
7246
+ /**
7247
+ * @private
7248
+ */
7249
+ this.buttonTag = versioning.generateTag('auro-formkit-input-button', buttonVersion, AuroButton);
5869
7250
  }
5870
7251
 
5871
7252
  static get styles() {
5872
7253
  return [
5873
- colorCss$1$1,
5874
- styleCss$2$1,
7254
+ colorCss$3$1,
7255
+ styleCss$4$1,
5875
7256
  tokenCss
5876
7257
  ];
5877
7258
  }
@@ -5900,7 +7281,7 @@ class AuroBibtemplate extends i$2 {
5900
7281
  *
5901
7282
  */
5902
7283
  static register(name = "auro-bibtemplate") {
5903
- AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroBibtemplate);
7284
+ AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroBibtemplate);
5904
7285
  }
5905
7286
 
5906
7287
  /**
@@ -5958,9 +7339,9 @@ class AuroBibtemplate extends i$2 {
5958
7339
  <div id="bibTemplate" part="bibtemplate">
5959
7340
  ${this.isFullscreen ? u`
5960
7341
  <div id="headerContainer">
5961
- <button id="closeButton" @click="${this.onCloseButtonClick}">
7342
+ <${this.buttonTag} id="closeButton" aria-label="Close" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
5962
7343
  <${this.iconTag} category="interface" name="x-lg"></${this.iconTag}>
5963
- </button>
7344
+ </${this.buttonTag}>
5964
7345
  <${this.headerTag} display="${this.large ? 'display' : '600'}" level="3" size="none" id="header" no-margin-block>
5965
7346
  <slot name="header"></slot>
5966
7347
  </${this.headerTag}>
@@ -5984,9 +7365,9 @@ class AuroBibtemplate extends i$2 {
5984
7365
 
5985
7366
  var bibTemplateVersion = '1.0.0';
5986
7367
 
5987
- var colorCss$3 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
7368
+ var colorCss$3 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
5988
7369
 
5989
- var styleCss$4 = i$5`.helptext-wrapper{display:none;font-size:var(--ds-basic-text-body-xs-font-size, 12px);font-weight:var(--ds-basic-text-body-xs-font-weight, 450);letter-spacing:var(--ds-basic-text-body-xs-letter-spacing, 0);line-height:var(--ds-basic-text-body-xs-line-height, 16px)}:host([large]) .helptext-wrapper{font-size:var(--ds-basic-text-body-default-font-size, 16px);font-weight:var(--ds-basic-text-body-default-font-weight, 450);letter-spacing:var(--ds-basic-text-body-default-letter-spacing, 0);line-height:var(--ds-basic-text-body-default-line-height, 24px)}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
7370
+ var styleCss$4 = i$5`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
5990
7371
 
5991
7372
  var tokensCss$2 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
5992
7373
 
@@ -6192,68 +7573,7 @@ class AuroHelpText extends i$2 {
6192
7573
 
6193
7574
  var helpTextVersion = '1.0.0';
6194
7575
 
6195
- i$5`: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].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)}`;
6196
-
6197
- i$5`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
6198
-
6199
- i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
6200
-
6201
- // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6202
- // See LICENSE in the project root for license information.
6203
-
6204
- // ---------------------------------------------------------------------
6205
-
6206
- /**
6207
- * Converts value to an array.
6208
- * If the value is a JSON string representing an array, it will be parsed.
6209
- * If the value is already an array, it is returned.
6210
- * If the value is undefined, it returns undefined.
6211
- * @private
6212
- * @param {any} value - The value to be converted. Can be a string, array, or undefined.
6213
- * @returns {Array|undefined} - The converted array or undefined.
6214
- * @throws {Error} - Throws an error if the value is not an array, undefined,
6215
- * or if the value cannot be parsed into an array from a JSON string.
6216
- */
6217
- function arrayConverter(value) {
6218
- // Allow undefined
6219
- if (value === undefined) {
6220
- return undefined;
6221
- }
6222
-
6223
- // Return the value if it is already an array
6224
- if (Array.isArray(value)) {
6225
- return value;
6226
- }
6227
-
6228
- try {
6229
- // If value is a JSON string, parse it
6230
- const parsed = typeof value === 'string' ? JSON.parse(value) : value;
6231
-
6232
- // Check if the parsed value is an array
6233
- if (Array.isArray(parsed)) {
6234
- return parsed;
6235
- }
6236
- } catch (error) {
6237
- // If JSON parsing fails, continue to throw an error below
6238
- /* eslint-disable no-console */
6239
- console.error('JSON parsing failed:', error);
6240
- }
6241
-
6242
- // Throw error if the input is not an array or undefined
6243
- throw new Error('Invalid value: Input must be an array or undefined');
6244
- }
6245
-
6246
- i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
6247
-
6248
- i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
6249
-
6250
- i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
6251
-
6252
- i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
6253
-
6254
- i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
6255
-
6256
- var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color)}.mainContent{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;justify-content:center;align-items:center}::slotted([slot=typeIcon]){margin-right:8px}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;align-items:center;justify-content:center;width:100%;padding:0 8px 0 24px}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([disabled]) *{user-select:none}`;
7576
+ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color)}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}.mainContent{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent,:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) [auro-dropdown] label.withValue{font-size:var(--ds-text-body-size-xs);line-height:20px}:host([layout*=emphasized]) [auro-dropdown] label.withValue{font-size:var(--ds-text-body-size-xs);line-height:20px}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{cursor:text;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host([layout*=classic]) label.withValue{font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([layout*=classic]) .value{height:auto;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
6257
7577
 
6258
7578
  // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
6259
7579
  // See LICENSE in the project root for license information.
@@ -6266,9 +7586,10 @@ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock
6266
7586
  * @slot - Default slot for the menu content.
6267
7587
  * @slot bib.fullscreen.headline - Defines the headline to display above menu-options
6268
7588
  * @slot label - Defines the content of the label.
7589
+ * @slot {HTMLSlotElement} optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
6269
7590
  * @slot helpText - Defines the content of the helpText.
6270
- * @slot placeholder - Defines the content of the placeholder to be shown when there is no value
6271
7591
  * @slot valueText - Dropdown value text display.
7592
+ * @slot displayValue - Allows custom HTML content to display the selected value when select is not focused.
6272
7593
  * @event auroSelect-valueSet - Notifies that the component has a new value set.
6273
7594
  * @event input - Notifies every time the value prop of the element is changed. The updated `value` and `optionSelected` will be delivered in `detail` object.
6274
7595
  * @event auroFormElement-validated - Notifies that the `validity` and `errorMessage` values have changed.
@@ -6276,7 +7597,7 @@ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock
6276
7597
  */
6277
7598
 
6278
7599
  // build the component class
6279
- class AuroSelect extends AuroElement$3 {
7600
+ class AuroSelect extends AuroElement$4 {
6280
7601
  constructor() {
6281
7602
  super();
6282
7603
 
@@ -6286,11 +7607,11 @@ class AuroSelect extends AuroElement$3 {
6286
7607
  const idSubstrEnd = 8;
6287
7608
  const idSubstrStart = 2;
6288
7609
 
6289
- this.matchWidth = true;
7610
+ this.matchWidth = false;
6290
7611
 
6291
7612
  // Layout Config
6292
- this.layout = 'classic';
6293
- this.shape = 'classic';
7613
+ this.layout = 'snowflake';
7614
+ this.shape = 'snowflake';
6294
7615
  this.size = 'xl';
6295
7616
 
6296
7617
  // floaterConfig
@@ -6301,6 +7622,10 @@ class AuroSelect extends AuroElement$3 {
6301
7622
 
6302
7623
  this.forceDisplayValue = false;
6303
7624
 
7625
+ this.layout = 'classic';
7626
+ this.shape = 'classic';
7627
+ this.size = 'xl';
7628
+
6304
7629
  /**
6305
7630
  * @private
6306
7631
  */
@@ -6316,7 +7641,7 @@ class AuroSelect extends AuroElement$3 {
6316
7641
  /**
6317
7642
  * @private
6318
7643
  */
6319
- this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
7644
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
6320
7645
 
6321
7646
  /**
6322
7647
  * Generate unique names for dependency components.
@@ -6365,6 +7690,7 @@ class AuroSelect extends AuroElement$3 {
6365
7690
  this.value = undefined;
6366
7691
  this.fullscreenBreakpoint = 'sm';
6367
7692
  this.onDark = false;
7693
+ this.isPopoverVisible = false;
6368
7694
  }
6369
7695
 
6370
7696
  // This function is to define props used within the scope of this component
@@ -6406,6 +7732,14 @@ class AuroSelect extends AuroElement$3 {
6406
7732
  reflect: true
6407
7733
  },
6408
7734
 
7735
+ /**
7736
+ * @private
7737
+ */
7738
+ isPopoverVisible: {
7739
+ type: Boolean,
7740
+ reflect: false
7741
+ },
7742
+
6409
7743
  /**
6410
7744
  * If declared, the popover and trigger will be set to the same width.
6411
7745
  */
@@ -6422,14 +7756,6 @@ class AuroSelect extends AuroElement$3 {
6422
7756
  reflect: true
6423
7757
  },
6424
7758
 
6425
- /**
6426
- * If set, makes dropdown width match the size of the content, rather than the width of the trigger.
6427
- */
6428
- flexMenuWidth: {
6429
- type: Boolean,
6430
- reflect: true
6431
- },
6432
-
6433
7759
  /**
6434
7760
  * Defines the screen size breakpoint (`xs`, `sm`, `md`, `lg`, `xl`, `disabled`)
6435
7761
  * at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.
@@ -6523,7 +7849,7 @@ class AuroSelect extends AuroElement$3 {
6523
7849
  * "top" | "right" | "bottom" | "left" |
6524
7850
  * "bottom-start" | "top-start" | "top-end" |
6525
7851
  * "right-start" | "right-end" | "bottom-end" |
6526
- * "left-start" | "left-end"
7852
+ * "left-start" | "left-end".
6527
7853
  * @default bottom-start
6528
7854
  */
6529
7855
  placement: {
@@ -6531,6 +7857,14 @@ class AuroSelect extends AuroElement$3 {
6531
7857
  reflect: true
6532
7858
  },
6533
7859
 
7860
+ /**
7861
+ * Define custom placeholder text.
7862
+ */
7863
+ placeholder: {
7864
+ type: String,
7865
+ reflect: true
7866
+ },
7867
+
6534
7868
  /**
6535
7869
  * Populates the `required` attribute on the element. Used for client-side validation.
6536
7870
  */
@@ -6577,11 +7911,12 @@ class AuroSelect extends AuroElement$3 {
6577
7911
  },
6578
7912
 
6579
7913
  /**
6580
- * Value selected for the component. Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
6581
- * @type {String|Array<String>}
7914
+ * Value selected for the component.
6582
7915
  */
6583
7916
  value: {
6584
- type: Object
7917
+ type: String,
7918
+ reflect: true,
7919
+ attribute: 'value'
6585
7920
  },
6586
7921
 
6587
7922
  /**
@@ -6633,10 +7968,42 @@ class AuroSelect extends AuroElement$3 {
6633
7968
  ];
6634
7969
  }
6635
7970
 
7971
+ /**
7972
+ * Formatted value based on `multiSelect` state.
7973
+ * Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
7974
+ * @private
7975
+ * @returns {String|Array<String>}
7976
+ */
7977
+ get formattedValue() {
7978
+ if (this.multiSelect) {
7979
+ if (!this.value) {
7980
+ return undefined;
7981
+ }
7982
+ if (this.value.startsWith("[")) {
7983
+ return JSON.parse(this.value);
7984
+ }
7985
+ return [this.value];
7986
+ }
7987
+ return this.value;
7988
+ }
7989
+
7990
+ /**
7991
+ * Returns classmap configuration for html5 input labels in all layouts.
7992
+ * @private
7993
+ * @returns {void}
7994
+ */
7995
+ get commonLabelClasses() {
7996
+ return {
7997
+ 'is-disabled': this.disabled,
7998
+ 'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
7999
+ 'util_displayHiddenVisually': this.hasDisplayValueContent && !this.hasFocus && this.value && this.value.length > 0
8000
+ };
8001
+ }
8002
+
6636
8003
  /**
6637
8004
  * Returns classmap configuration for wrapper elements in each layout.
6638
8005
  * @private
6639
- * @return {object} - Returns classmap.
8006
+ * @returns {object} - Returns classmap.
6640
8007
  */
6641
8008
  get commonWrapperClasses() {
6642
8009
  return {
@@ -6652,8 +8019,27 @@ class AuroSelect extends AuroElement$3 {
6652
8019
  configureDropdown() {
6653
8020
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
6654
8021
 
8022
+ this.dropdown.addEventListener('auroDropdown-toggled', () => {
8023
+ this.isPopoverVisible = this.dropdown.isPopoverVisible;
8024
+
8025
+ if (this.dropdown.isPopoverVisible) {
8026
+ // wait til the bib gets fully rendered
8027
+ setTimeout(() => {
8028
+ if (this.dropdown.isBibFullscreen) {
8029
+ // trigger holds the focus since menu is not a focusable element.
8030
+ this.dropdown.trigger.focus();
8031
+
8032
+ // default focus indicator on the first menu option
8033
+ if (this.menu.index < 0) {
8034
+ this.menu.navigateOptions('down');
8035
+ }
8036
+ }
8037
+ });
8038
+ }
8039
+ });
8040
+
6655
8041
  // setting up bibtemplate
6656
- this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$); // eslint-disable-line no-underscore-dangle
8042
+ this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
6657
8043
 
6658
8044
  if (this.customBibWidth) {
6659
8045
  this.dropdown.dropdownWidth = this.customBibWidth;
@@ -6672,7 +8058,7 @@ class AuroSelect extends AuroElement$3 {
6672
8058
  *
6673
8059
  */
6674
8060
  static register(name = "auro-select") {
6675
- AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroSelect);
8061
+ AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroSelect);
6676
8062
  }
6677
8063
 
6678
8064
  /**
@@ -6684,13 +8070,18 @@ class AuroSelect extends AuroElement$3 {
6684
8070
  const triggerContentEl = this.dropdown.querySelector('#triggerFocus');
6685
8071
 
6686
8072
  // Clear out old value
6687
- // const placeholder = triggerContentEl.querySelector('#placeholder');
6688
8073
  const valueElem = triggerContentEl.querySelector('#value');
6689
8074
  if (valueElem) {
6690
8075
  valueElem.innerHTML = '';
6691
- // valueElem.innerHTML = ''.appendChild(value);
6692
8076
  }
6693
8077
 
8078
+ const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
8079
+ const slottedElements = slot.assignedElements();
8080
+
8081
+ slottedElements.forEach((element) => {
8082
+ element.remove();
8083
+ });
8084
+
6694
8085
  // Handle selected options
6695
8086
  if (this.optionSelected) {
6696
8087
  if (this.multiSelect && this.optionSelected.length > 0) {
@@ -6700,10 +8091,8 @@ class AuroSelect extends AuroElement$3 {
6700
8091
  } else {
6701
8092
  valueElem.innerHTML = this.optionSelected.innerHTML;
6702
8093
  const displayValueEl = this.optionSelected.querySelector("[slot='displayValue']");
6703
- if (displayValueEl) {
6704
- const oldDisplayValueEl = this.querySelectorAll("[slot='displayValue']");
6705
- oldDisplayValueEl.forEach((el) => el.remove());
6706
8094
 
8095
+ if (displayValueEl) {
6707
8096
  this.appendChild(displayValueEl.cloneNode(true));
6708
8097
  }
6709
8098
  this.hasDisplayValueContent = displayValueEl !== null;
@@ -6729,6 +8118,15 @@ class AuroSelect extends AuroElement$3 {
6729
8118
  return;
6730
8119
  }
6731
8120
 
8121
+ // set menu's default size if there it's not specified.
8122
+ if (!this.menu.getAttribute('size')) {
8123
+ this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
8124
+ }
8125
+
8126
+ if (!this.getAttribute('shape')) {
8127
+ this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
8128
+ }
8129
+
6732
8130
  if (this.multiSelect) {
6733
8131
  this.menu.multiSelect = this.multiSelect;
6734
8132
  }
@@ -6788,46 +8186,58 @@ class AuroSelect extends AuroElement$3 {
6788
8186
  configureSelect() {
6789
8187
 
6790
8188
  this.addEventListener('keydown', (evt) => {
6791
- if (evt.key === 'ArrowUp') {
6792
- evt.preventDefault();
8189
+ // when the focus is on trigger not on close button
8190
+ if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
8191
+ if (evt.key === 'ArrowUp') {
8192
+ evt.preventDefault();
6793
8193
 
6794
- this.dropdown.show();
8194
+ this.dropdown.show();
8195
+
8196
+ if (this.dropdown.isPopoverVisible) {
8197
+ this.menu.navigateOptions('up');
8198
+ }
6795
8199
 
6796
- if (this.dropdown.isPopoverVisible) {
6797
- this.menu.navigateOptions('up');
8200
+ return;
6798
8201
  }
6799
8202
 
6800
- return;
6801
- }
8203
+ if (evt.key === 'ArrowDown') {
8204
+ evt.preventDefault();
6802
8205
 
6803
- if (evt.key === 'ArrowDown') {
6804
- evt.preventDefault();
8206
+ this.dropdown.show();
6805
8207
 
6806
- this.dropdown.show();
8208
+ if (this.dropdown.isPopoverVisible) {
8209
+ this.menu.navigateOptions('down');
8210
+ }
6807
8211
 
6808
- if (this.dropdown.isPopoverVisible) {
6809
- this.menu.navigateOptions('down');
8212
+ return;
6810
8213
  }
6811
8214
 
6812
- return;
6813
- }
8215
+ if (evt.key === 'Enter') {
8216
+ if (!this.dropdown.isPopoverVisible) {
8217
+ evt.preventDefault();
8218
+ this.menu.makeSelection();
8219
+ }
6814
8220
 
6815
- if (evt.key === 'Enter') {
6816
- if (!this.dropdown.isPopoverVisible) {
6817
- evt.preventDefault();
6818
- this.menu.makeSelection();
8221
+ return;
6819
8222
  }
6820
-
6821
- return;
6822
8223
  }
6823
8224
 
6824
- if (evt.key === 'Tab') {
8225
+ if (evt.key === 'Tab' && this.dropdown.isPopoverVisible) {
6825
8226
  if (this.dropdown.isBibFullscreen) {
6826
8227
  evt.preventDefault();
8228
+
8229
+ // when the focus is on trigger not on close button
8230
+ if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
8231
+ // `dropdown.focus` will move focus to the first focusable element in bib when it's open,
8232
+ // when bib it not open, it will focus onto trigger.
8233
+ this.dropdown.focus();
8234
+ } else {
8235
+ // when close button has the focus, move focus back to the trigger
8236
+ this.dropdown.trigger.focus();
8237
+ }
6827
8238
  } else {
6828
8239
  this.dropdown.hide();
6829
8240
  }
6830
-
6831
8241
  return;
6832
8242
  }
6833
8243
 
@@ -6992,34 +8402,39 @@ class AuroSelect extends AuroElement$3 {
6992
8402
  // Add the tag name as an attribute if it is different than the component name
6993
8403
  this.runtimeUtils.handleComponentTagRename(this, 'auro-select');
6994
8404
 
6995
- this.configureMenu();
6996
8405
  this.configureDropdown();
8406
+ this.configureMenu();
6997
8407
  this.configureSelect();
8408
+ }
6998
8409
 
6999
- // Set the initial value in auro-menu if defined
7000
- if (this.hasAttribute('value') && this.getAttribute('value').length > 0) {
7001
- this.value = this.multiSelect ? arrayConverter(this.getAttribute('value')) : this.getAttribute('value');
7002
- this.menu.value = this.value;
7003
- }
8410
+ /**
8411
+ * Update the menu value. With checks for menu existence. Awaits value update.
8412
+ * @param {string} value - The value to set in the menu.
8413
+ * @returns {void}
8414
+ * @private
8415
+ */
8416
+ async updateMenuValue(value) {
8417
+ if (!this.menu) return;
8418
+
8419
+ this.menu.setAttribute('value', value);
8420
+ this.menu.value = value;
8421
+ await this.menu.updateComplete;
7004
8422
  }
7005
8423
 
7006
8424
  async updated(changedProperties) {
7007
- if (changedProperties.has('multiSelect')) {
8425
+ if (changedProperties.has('multiSelect') && !changedProperties.has('value')) {
7008
8426
  this.clearSelection();
7009
8427
  }
7010
8428
 
7011
8429
  if (changedProperties.has('value')) {
7012
8430
  if (this.value) {
7013
- this.value = this.multiSelect ? arrayConverter(this.value) : this.value;
8431
+ await this.updateMenuValue(this.value);
7014
8432
 
7015
- this.menu.value = this.value;
7016
-
7017
- // Wait for menu to finish updating its value
7018
- await this.menu.updateComplete;
7019
-
7020
- this.optionSelected = this.menu.optionSelected;
8433
+ if (this.menu) {
8434
+ this.optionSelected = this.menu.optionSelected;
8435
+ }
7021
8436
  } else {
7022
- this.menu.value = undefined;
8437
+ await this.updateMenuValue(undefined);
7023
8438
  }
7024
8439
 
7025
8440
  this._updateNativeSelect();
@@ -7038,7 +8453,7 @@ class AuroSelect extends AuroElement$3 {
7038
8453
  composed: true,
7039
8454
  detail: {
7040
8455
  optionSelected: this.optionSelected,
7041
- value: this.value
8456
+ value: this.formattedValue
7042
8457
  }
7043
8458
  }));
7044
8459
  }
@@ -7050,6 +8465,14 @@ class AuroSelect extends AuroElement$3 {
7050
8465
  if (changedProperties.has('error')) {
7051
8466
  this.validate(true);
7052
8467
  }
8468
+
8469
+ if (changedProperties.has('shape') && this.menu) {
8470
+ this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
8471
+ }
8472
+
8473
+ if (changedProperties.has('size') && this.menu) {
8474
+ this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
8475
+ }
7053
8476
  }
7054
8477
 
7055
8478
  /**
@@ -7089,13 +8512,13 @@ class AuroSelect extends AuroElement$3 {
7089
8512
  const selectedValue = selectedOption.value;
7090
8513
 
7091
8514
  if (this.multiSelect) {
7092
- const currentArray = Array.isArray(this.value) ? this.value : [];
8515
+ const currentArray = this.formattedValue;
7093
8516
 
7094
8517
  if (!currentArray.includes(selectedValue)) {
7095
- this.value = [
8518
+ this.value = JSON.stringify([
7096
8519
  ...currentArray,
7097
8520
  selectedValue
7098
- ];
8521
+ ]);
7099
8522
  }
7100
8523
  } else {
7101
8524
  const currentValue = this.value;
@@ -7118,12 +8541,17 @@ class AuroSelect extends AuroElement$3 {
7118
8541
  }
7119
8542
 
7120
8543
  if (this.multiSelect) {
7121
- nativeSelect.value = this.value ? this.value[0] : '';
8544
+ nativeSelect.value = this.multiSelect ? this.multiSelect[0] : '';
7122
8545
  } else {
7123
8546
  nativeSelect.value = this.value || '';
7124
8547
  }
7125
8548
  }
7126
8549
 
8550
+ /**
8551
+ * Returns HTML for the hidden a11y screen reader content.
8552
+ * @private
8553
+ * @returns {html} - Returns HTML for the hidden a11y screen reader content.
8554
+ */
7127
8555
  renderAriaHtml() {
7128
8556
  return u`
7129
8557
  <div aria-live="polite" class="util_displayHiddenVisually">
@@ -7144,9 +8572,14 @@ class AuroSelect extends AuroElement$3 {
7144
8572
  `;
7145
8573
  }
7146
8574
 
8575
+ /**
8576
+ * Returns HTML for the hidden HTML5 select.
8577
+ * @private
8578
+ * @returns {html} - Returns HTML for the hidden HTML5 select.
8579
+ */
7147
8580
  renderNativeSelect() {
7148
8581
  return u`
7149
- <div class="nativeSelectWrapper">
8582
+ <div class="nativeSelectWrapper util_displayHidden">
7150
8583
  <select
7151
8584
  tabindex="-1"
7152
8585
  id="${`native-select-${this.id || this.uniqueId}`}"
@@ -7183,14 +8616,14 @@ class AuroSelect extends AuroElement$3 {
7183
8616
  ? u`
7184
8617
  <${this.helpTextTag} ?onDark="${this.onDark}">
7185
8618
  <p id="${this.uniqueId}" part="helpText">
7186
- <slot name="helptext"></slot>
8619
+ <slot name="helpText"></slot>
7187
8620
  </p>
7188
8621
  </${this.helpTextTag}>
7189
8622
  `
7190
8623
  : u`
7191
8624
  <${this.helpTextTag} error ?onDark="${this.onDark}">
7192
8625
  <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
7193
- ERROR MESSAGE ${this.errorMessage}
8626
+ ${this.errorMessage}
7194
8627
  </p>
7195
8628
  </${this.helpTextTag}>
7196
8629
  `
@@ -7203,23 +8636,22 @@ class AuroSelect extends AuroElement$3 {
7203
8636
  * @private
7204
8637
  * @returns {import("lit").TemplateResult} - Returns HTML for the emphasized layout.
7205
8638
  */
7206
- // TODO update to use util class
7207
8639
  renderLayoutEmphasized() {
7208
8640
  const placeholderClass = {
7209
- hidden: this.value,
8641
+ 'util_displayHidden': this.value
7210
8642
  };
7211
8643
 
7212
8644
  const displayValueClasses = {
7213
8645
  'displayValue': true,
7214
8646
  'hasContent': this.hasDisplayValueContent,
7215
- 'hasFocus': this.hasFocus,
7216
- 'withValue': this.value && this.value.length > 0,
8647
+ 'hasFocus': this.isPopoverVisible,
8648
+ 'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
7217
8649
  'force': this.forceDisplayValue,
7218
8650
  };
7219
8651
 
7220
8652
  const valueContainerClasses = {
7221
8653
  'valueContainer': true,
7222
- 'util_displayHiddenVisually': true
8654
+ 'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
7223
8655
  };
7224
8656
 
7225
8657
  return u`
@@ -7230,16 +8662,16 @@ class AuroSelect extends AuroElement$3 {
7230
8662
  <slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
7231
8663
  </div>
7232
8664
  <${this.dropdownTag}
8665
+ a11yRole="select"
7233
8666
  ?autoPlacement="${this.autoPlacement}"
7234
8667
  ?error="${this.validity !== undefined && this.validity !== 'valid'}"
7235
- ?matchWidth="${!this.flexMenuWidth}"
8668
+ ?matchWidth="${this.matchWidth}"
7236
8669
  ?noFlip="${this.noFlip}"
7237
8670
  ?onDark="${this.onDark}"
7238
8671
  .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
7239
8672
  .offset="${this.offset}"
7240
8673
  .placement="${this.placement}"
7241
8674
  chevron
7242
- fluid
7243
8675
  for="selectMenu"
7244
8676
  layout="${this.layout}"
7245
8677
  part="dropdown"
@@ -7251,15 +8683,14 @@ class AuroSelect extends AuroElement$3 {
7251
8683
  </div>
7252
8684
  <div class="mainContent">
7253
8685
  <div class="${e(valueContainerClasses)}">
7254
- <label>
8686
+ <label class="${e(this.commonLabelClasses)}">
7255
8687
  <slot name="label"></slot>
8688
+ ${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
7256
8689
  </label>
7257
8690
  <div class="value" id="value"></div>
7258
- ${this.value ? undefined : u`
7259
- <div id="placeholder" class="${e(placeholderClass)}">
7260
- <slot name="placeholder"></slot>
7261
- </div>
7262
- `}
8691
+ <div id="placeholder" class="${e(placeholderClass)}">
8692
+ ${this.placeholder}
8693
+ </div>
7263
8694
  </div>
7264
8695
  <div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
7265
8696
  <slot name="displayValue"></slot>
@@ -7286,20 +8717,20 @@ class AuroSelect extends AuroElement$3 {
7286
8717
  */
7287
8718
  renderLayoutSnowflake() {
7288
8719
  const placeholderClass = {
7289
- hidden: this.value,
8720
+ 'util_displayHidden': this.value
7290
8721
  };
7291
8722
 
7292
8723
  const displayValueClasses = {
7293
8724
  'displayValue': true,
7294
8725
  'hasContent': this.hasDisplayValueContent,
7295
- 'hasFocus': this.hasFocus,
7296
- 'withValue': this.value && this.value.length > 0,
8726
+ 'hasFocus': this.isPopoverVisible,
8727
+ 'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
7297
8728
  'force': this.forceDisplayValue,
7298
8729
  };
7299
8730
 
7300
8731
  const valueContainerClasses = {
7301
8732
  'valueContainer': true,
7302
- 'util_displayHiddenVisually': (this.forceDisplayValue || !this.hasFocus) && this.hasDisplayValueContent
8733
+ 'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
7303
8734
  };
7304
8735
 
7305
8736
  return u`
@@ -7312,14 +8743,13 @@ class AuroSelect extends AuroElement$3 {
7312
8743
  <${this.dropdownTag}
7313
8744
  ?autoPlacement="${this.autoPlacement}"
7314
8745
  ?error="${this.validity !== undefined && this.validity !== 'valid'}"
7315
- ?matchWidth="${!this.flexMenuWidth}"
8746
+ ?matchWidth="${this.matchWidth}"
7316
8747
  ?noFlip="${this.noFlip}"
7317
8748
  ?onDark="${this.onDark}"
7318
8749
  .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
7319
8750
  .offset="${this.offset}"
7320
8751
  .placement="${this.placement}"
7321
8752
  chevron
7322
- fluid
7323
8753
  for="selectMenu"
7324
8754
  layout="${this.layout}"
7325
8755
  part="dropdown"
@@ -7331,15 +8761,14 @@ class AuroSelect extends AuroElement$3 {
7331
8761
  </div>
7332
8762
  <div class="mainContent">
7333
8763
  <div class="${e(valueContainerClasses)}">
7334
- <label>
8764
+ <label class="${e(this.commonLabelClasses)}">
7335
8765
  <slot name="label"></slot>
8766
+ ${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
7336
8767
  </label>
7337
8768
  <div class="value" id="value"></div>
7338
- ${this.value ? undefined : u`
7339
- <div id="placeholder" class="${e(placeholderClass)}">
7340
- <slot name="placeholder"></slot>
7341
- </div>
7342
- `}
8769
+ <div id="placeholder" class="${e(placeholderClass)}">
8770
+ ${this.placeholder}
8771
+ </div>
7343
8772
  </div>
7344
8773
  <div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
7345
8774
  <slot name="displayValue"></slot>
@@ -7355,6 +8784,7 @@ class AuroSelect extends AuroElement$3 {
7355
8784
  ${this.renderHtmlHelpText()}
7356
8785
  </div>
7357
8786
  </${this.dropdownTag}>
8787
+ ${this.renderNativeSelect()}
7358
8788
  </div>
7359
8789
  `;
7360
8790
  }
@@ -7365,11 +8795,75 @@ class AuroSelect extends AuroElement$3 {
7365
8795
  * @returns {import("lit").TemplateResult} - Returns HTML for the classic layout.
7366
8796
  */
7367
8797
  renderLayoutClassic() {
8798
+ const placeholderClass = {
8799
+ 'util_displayHidden': this.value
8800
+ };
8801
+
8802
+ const displayValueClasses = {
8803
+ 'displayValue': true,
8804
+ 'hasContent': this.hasDisplayValueContent,
8805
+ 'hasFocus': this.isPopoverVisible,
8806
+ 'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
8807
+ 'force': this.forceDisplayValue,
8808
+ };
8809
+
8810
+ const valueContainerClasses = {
8811
+ 'valueContainer': true,
8812
+ 'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
8813
+ };
8814
+
7368
8815
  return u`
7369
8816
  <div
7370
- class="${e(this.commonWrapperClasses)} thin"
8817
+ class="${e(this.commonWrapperClasses)}"
7371
8818
  part="wrapper">
7372
- classic
8819
+ <div id="slotHolder" aria-hidden="true">
8820
+ <slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
8821
+ </div>
8822
+ <${this.dropdownTag}
8823
+ ?autoPlacement="${this.autoPlacement}"
8824
+ ?error="${this.validity !== undefined && this.validity !== 'valid'}"
8825
+ ?matchWidth="${!this.flexMenuWidth}"
8826
+ ?noFlip="${this.noFlip}"
8827
+ ?onDark="${this.onDark}"
8828
+ .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
8829
+ .offset="${this.offset}"
8830
+ .placement="${this.placement}"
8831
+ chevron
8832
+ for="selectMenu"
8833
+ layout="${this.layout}"
8834
+ part="dropdown"
8835
+ shape="${this.shape}"
8836
+ size="${this.size}">
8837
+ <div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
8838
+ <div class="accents left">
8839
+ <slot name="typeIcon"></slot>
8840
+ </div>
8841
+ <div class="mainContent">
8842
+ <div class="${e(valueContainerClasses)}">
8843
+ <label class="${e(this.commonLabelClasses)}">
8844
+ <slot name="label"></slot>
8845
+ ${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
8846
+ </label>
8847
+ <div class="value" id="value"></div>
8848
+ <div id="placeholder" class="${e(placeholderClass)}">
8849
+ ${this.placeholder}
8850
+ </div>
8851
+ </div>
8852
+ <div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
8853
+ <slot name="displayValue"></slot>
8854
+ </div>
8855
+ </div>
8856
+ <div class="accents right"></div>
8857
+ </div>
8858
+ <div class="menuWrapper"></div>
8859
+ <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
8860
+ <slot></slot>
8861
+ </${this.bibtemplateTag}>
8862
+ <div slot="helpText">
8863
+ ${this.renderHtmlHelpText()}
8864
+ </div>
8865
+ </${this.dropdownTag}>
8866
+ ${this.renderNativeSelect()}
7373
8867
  </div>
7374
8868
  `;
7375
8869
  }
@@ -7403,112 +8897,13 @@ class AuroSelect extends AuroElement$3 {
7403
8897
 
7404
8898
  // When using auroElement, use the following attribute and function when hiding content from screen readers.
7405
8899
  // aria-hidden="${this.hideAudible(this.hiddenAudible)}"
7406
-
7407
- // function that renders the HTML and CSS into the scope of the component
7408
- renderBACKUP() {
7409
- const placeholderClass = {
7410
- hidden: this.value,
7411
- };
7412
-
7413
- return u`
7414
- <div class="outerWrapper">
7415
- <div aria-live="polite" class="util_displayHiddenVisually">
7416
- ${this.optionActive && this.options.length > 0
7417
- ? u`
7418
- ${`${this.optionActive.innerText}, option ${this.options.indexOf(this.optionActive) + 1} of ${this.options.length}`}
7419
- `
7420
- : undefined
7421
- };
7422
-
7423
- ${this.optionSelected && this.options.length > 0
7424
- ? u`
7425
- ${`${this.optionSelected.innerText} selected`}
7426
- `
7427
- : undefined
7428
- };
7429
- </div>
7430
- <div id="slotHolder" aria-hidden="true">
7431
- <slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
7432
- </div>
7433
- <${this.dropdownTag}
7434
- ?autoPlacement="${this.autoPlacement}"
7435
- ?disabled="${this.disabled}"
7436
- ?error="${this.validity !== undefined && this.validity !== 'valid'}"
7437
- ?matchWidth="${!this.flexMenuWidth}"
7438
- ?noFlip="${this.noFlip}"
7439
- ?onDark="${this.onDark}"
7440
- .fullscreenBreakpoint="${this.fullscreenBreakpoint}"
7441
- .offset="${this.offset}"
7442
- .placement="${this.placement}"
7443
- chevron
7444
- fluid
7445
- for="selectMenu"
7446
- layout="${this.layout}"
7447
- part="dropdown"
7448
- shape="${this.shape}"
7449
- size="${this.size}">
7450
- <span slot="trigger" aria-haspopup="true" id="triggerFocus">
7451
- <span id="placeholder"
7452
- class="${e(placeholderClass)}"
7453
- ?aria-hidden="${this.optionSelected && this.optionSelected.length ? 'true' : false}"
7454
- >
7455
- <slot name="placeholder"></slot>
7456
- </span>
7457
- <slot name="valueText" id="valueText"></slot>
7458
- </span>
7459
-
7460
- <${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
7461
- <slot></slot>
7462
- </${this.bibtemplateTag}>
7463
- <slot name="label" slot="label"></slot>
7464
- <p slot="helpText">
7465
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
7466
- ? u`
7467
- <span id="${this.uniqueId}" part="helpText">
7468
- <slot name="helpText"></slot>
7469
- </span>`
7470
- : u`
7471
- <span id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
7472
- ${this.errorMessage}
7473
- </span>`
7474
- }
7475
- </p>
7476
- </${this.dropdownTag}>
7477
- <div class="nativeSelectWrapper">
7478
- <select
7479
- tabindex="-1"
7480
- id="${`native-select-${this.id || this.uniqueId}`}"
7481
- name="${this.name || ''}"
7482
- ?disabled="${this.disabled}"
7483
- ?required="${this.required}"
7484
- aria-hidden="true"
7485
- autocomplete="${o(this.autocomplete)}"
7486
- @change="${this._handleNativeSelectChange}">
7487
- <option value="" ?selected="${!this.value}"></option>
7488
- ${this.options.map((option) => {
7489
- const optionValue = option.value || option.textContent;
7490
- return u`
7491
- <option
7492
- value="${optionValue}"
7493
- ?selected="${this.value === optionValue}">
7494
- ${option.textContent}
7495
- </option>
7496
- `;
7497
- })}
7498
- </select>
7499
- </div>
7500
- <!-- Help text and error message template -->
7501
- ${this.renderHtmlHelpText()}
7502
- </div>
7503
- `;
7504
- }
7505
8900
  }
7506
8901
 
7507
- var styleCss$2 = i$5`: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].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)}`;
8902
+ var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:block;vertical-align:middle}:host .wrapper{box-sizing:border-box;display:inline-block;width:100%;margin:0;padding:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host [loadingplaceholder].empty{opacity:0;position:absolute}:host [loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}:host [loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}:host([root]){overflow-y:auto}:host([root]) .wrapper[class*=-lg]{padding:var(--ds-size-150, 0.75rem)}:host([root]) .wrapper[class*=-xl]{padding:var(--ds-size-200, 1rem)}`;
7508
8903
 
7509
8904
  var colorCss$2 = i$5`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
7510
8905
 
7511
- var tokensCss$1 = i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
8906
+ var tokensCss$1 = i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-container-border-color: var(--ds-auro-menuoption-container-color);--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
7512
8907
 
7513
8908
  // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
7514
8909
  // See LICENSE in the project root for license information.
@@ -7561,7 +8956,6 @@ function dispatchMenuEvent(element, eventName, detail = null) {
7561
8956
  * @attr {boolean} nocheckmark - When true, selected option will not show the checkmark.
7562
8957
  * @attr {boolean} loading - When true, displays a loading state using the loadingIcon and loadingText slots if provided.
7563
8958
  * @attr {boolean} multiselect - When true, the selected option can be multiple options.
7564
- * @attr {String|Array<string>} value - Value selected for the menu, type `string` by default. In multi-select mode, `value` is an array of strings.
7565
8959
  * @prop {boolean} hasLoadingPlaceholder - Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state.
7566
8960
  * @event {CustomEvent<Element>} auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
7567
8961
  * @event {CustomEvent<any>} auroMenu-customEventFired - Notifies that a custom event has been fired.
@@ -7574,14 +8968,17 @@ function dispatchMenuEvent(element, eventName, detail = null) {
7574
8968
  * @slot - Slot for insertion of menu options.
7575
8969
  */
7576
8970
 
7577
- /* eslint-disable no-magic-numbers, max-lines, no-extra-parens */
8971
+ /* eslint-disable no-magic-numbers, max-lines, no-extra-parens, no-inline-comments, line-comment-position */
7578
8972
 
7579
- class AuroMenu extends i$2 {
8973
+ class AuroMenu extends AuroElement$4 {
7580
8974
  constructor() {
7581
8975
  super();
7582
8976
 
7583
8977
  // State properties (reactive)
7584
8978
 
8979
+ this.shape = ""; // box, rounded, pill
8980
+ this.size = ""; // md, lg, xl
8981
+
7585
8982
  // Value of the selected options
7586
8983
  this.value = undefined;
7587
8984
  // Currently selected option
@@ -7640,6 +9037,7 @@ class AuroMenu extends i$2 {
7640
9037
 
7641
9038
  static get properties() {
7642
9039
  return {
9040
+ ...super.properties,
7643
9041
  noCheckmark: {
7644
9042
  type: Boolean,
7645
9043
  reflect: true,
@@ -7670,9 +9068,24 @@ class AuroMenu extends i$2 {
7670
9068
  reflect: true,
7671
9069
  attribute: 'multiselect'
7672
9070
  },
9071
+
9072
+ /**
9073
+ * Value selected for the component.
9074
+ */
7673
9075
  value: {
7674
- // Allow string, string[] arrays and undefined
7675
- type: Object
9076
+ type: String,
9077
+ reflect: true,
9078
+ attribute: 'value'
9079
+ },
9080
+
9081
+ /**
9082
+ * Indent level for submenus.
9083
+ * @private
9084
+ */
9085
+ level: {
9086
+ type: Number,
9087
+ reflect: false,
9088
+ attribute: false
7676
9089
  }
7677
9090
  };
7678
9091
  }
@@ -7694,7 +9107,26 @@ class AuroMenu extends i$2 {
7694
9107
  *
7695
9108
  */
7696
9109
  static register(name = "auro-menu") {
7697
- AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroMenu);
9110
+ AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenu);
9111
+ }
9112
+
9113
+ /**
9114
+ * Formatted value based on `multiSelect` state.
9115
+ * Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
9116
+ * @private
9117
+ * @returns {String|Array<String>}
9118
+ */
9119
+ get formattedValue() {
9120
+ if (this.multiSelect) {
9121
+ if (!this.value) {
9122
+ return undefined;
9123
+ }
9124
+ if (this.value.startsWith("[")) {
9125
+ return JSON.parse(this.value);
9126
+ }
9127
+ return [this.value];
9128
+ }
9129
+ return this.value;
7698
9130
  }
7699
9131
 
7700
9132
  // Lifecycle Methods
@@ -7706,6 +9138,7 @@ class AuroMenu extends i$2 {
7706
9138
  this.addEventListener('mousedown', this.handleMouseSelect);
7707
9139
  this.addEventListener('auroMenuOption-mouseover', this.handleOptionHover);
7708
9140
  this.addEventListener('slotchange', this.handleSlotChange);
9141
+ this.setTagAttribute("auro-menu");
7709
9142
  }
7710
9143
 
7711
9144
  disconnectedCallback() {
@@ -7718,19 +9151,33 @@ class AuroMenu extends i$2 {
7718
9151
  }
7719
9152
 
7720
9153
  firstUpdated() {
7721
- AuroLibraryRuntimeUtils$4.prototype.handleComponentTagRename(this, 'auro-menu');
9154
+ AuroLibraryRuntimeUtils$6.prototype.handleComponentTagRename(this, 'auro-menu');
7722
9155
 
7723
9156
  this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
7724
9157
  this.initializeMenu();
7725
9158
  }
7726
9159
 
9160
+ /**
9161
+ * Sets an attribute that matches the default tag name if the tag name is not the default.
9162
+ * @param {string} tagName - The tag name to set as an attribute.
9163
+ * @private
9164
+ */
9165
+ setTagAttribute(tagName) {
9166
+ if (this.tagName.toLowerCase() !== tagName) {
9167
+ this.setAttribute(tagName, true);
9168
+ }
9169
+ }
9170
+
7727
9171
  updated(changedProperties) {
7728
- if (changedProperties.has('multiSelect')) {
9172
+ super.updated(changedProperties);
9173
+
9174
+ if (changedProperties.has('multiSelect') && !changedProperties.has("value")) {
7729
9175
  // Reset selection if multiSelect mode changes
7730
9176
  this.clearSelection();
7731
9177
  }
7732
9178
 
7733
- if (changedProperties.has('value')) {
9179
+
9180
+ if (changedProperties.has("value")) {
7734
9181
  // Handle null/undefined case
7735
9182
  if (this.value === undefined || this.value === null) {
7736
9183
  this.optionSelected = undefined;
@@ -7738,7 +9185,7 @@ class AuroMenu extends i$2 {
7738
9185
  } else {
7739
9186
  if (this.multiSelect) {
7740
9187
  // In multiselect mode, this.value should be an array of strings
7741
- const valueArray = Array.isArray(this.value) ? this.value : [this.value];
9188
+ const valueArray = this.formattedValue;
7742
9189
  const matchingOptions = this.items.filter((item) => valueArray.includes(item.value));
7743
9190
 
7744
9191
  this.optionSelected = matchingOptions.length > 0 ? matchingOptions : undefined;
@@ -7798,6 +9245,19 @@ class AuroMenu extends i$2 {
7798
9245
  this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]').forEach((element) => element.setAttribute('noCheckmark', ''));
7799
9246
  }
7800
9247
 
9248
+ // Handle layout propagation to all menus and options
9249
+ const propagationTargets = this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]');
9250
+ [
9251
+ 'size',
9252
+ 'shape'
9253
+ ].forEach((prop) => {
9254
+ if (changedProperties.has(prop)) {
9255
+ propagationTargets.forEach((el) => {
9256
+ el.setAttribute(prop, this[prop]);
9257
+ });
9258
+ }
9259
+ });
9260
+
7801
9261
  // Regex for matchWord if needed
7802
9262
  let regexWord = null;
7803
9263
 
@@ -7892,14 +9352,14 @@ class AuroMenu extends i$2 {
7892
9352
  */
7893
9353
  handleSelectState(option) {
7894
9354
  if (this.multiSelect) {
7895
- const currentValue = this.value || [];
9355
+ const currentValue = this.formattedValue || [];
7896
9356
  const currentSelected = this.optionSelected || [];
7897
9357
 
7898
9358
  if (!currentValue.includes(option.value)) {
7899
- this.value = [
9359
+ this.value = JSON.stringify([
7900
9360
  ...currentValue,
7901
9361
  option.value
7902
- ];
9362
+ ]);
7903
9363
  }
7904
9364
  if (!currentSelected.includes(option)) {
7905
9365
  this.optionSelected = [
@@ -7922,13 +9382,15 @@ class AuroMenu extends i$2 {
7922
9382
  * @param {HTMLElement} option - The menuoption to be deselected.
7923
9383
  */
7924
9384
  handleDeselectState(option) {
7925
- if (this.multiSelect && Array.isArray(this.value)) {
9385
+ if (this.multiSelect) {
7926
9386
  // Remove this option from array
7927
- this.value = this.value.filter((val) => val !== option.value);
9387
+ const newFormattedValue = (this.formattedValue || []).filter((val) => val !== option.value);
7928
9388
 
7929
9389
  // If array is empty after removal, set back to undefined
7930
- if (this.value.length === 0) {
9390
+ if (newFormattedValue && newFormattedValue.length === 0) {
7931
9391
  this.value = undefined;
9392
+ } else {
9393
+ this.value = JSON.stringify(newFormattedValue);
7932
9394
  }
7933
9395
 
7934
9396
  this.optionSelected = this.optionSelected.filter((val) => val !== option);
@@ -7994,21 +9456,20 @@ class AuroMenu extends i$2 {
7994
9456
  * @param {HTMLElement} menu - Root menu element.
7995
9457
  */
7996
9458
  handleNestedMenus(menu) {
7997
- const nestedMenus = menu.querySelectorAll('auro-menu, [auro-menu]');
9459
+ menu.level = menu.parentElement.level >= 0 ? menu.parentElement.level + 1 : 0;
7998
9460
 
7999
- nestedMenus.forEach((nestedMenu) => {
8000
- // role="listbox" only allows "role=group" for children.
8001
- nestedMenu.setAttribute('role', 'group');
8002
- if (!nestedMenu.hasAttribute('aria-label')) {
8003
- nestedMenu.setAttribute('aria-label', 'submenu');
9461
+ if (menu.level > 0) {
9462
+ menu.setAttribute('role', 'group');
9463
+ menu.removeAttribute("root");
9464
+ if (!menu.hasAttribute('aria-label')) {
9465
+ menu.setAttribute('aria-label', 'submenu');
8004
9466
  }
9467
+ }
8005
9468
 
8006
- const options = nestedMenu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption]');
8007
- options.forEach((option) => {
8008
- option.innerHTML = this.nestingSpacer + option.innerHTML;
8009
- });
8010
-
8011
- this.handleNestedMenus(nestedMenu);
9469
+ const options = menu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption]');
9470
+ options.forEach((option) => {
9471
+ const regex = new RegExp(this.nestingSpacer, "gu");
9472
+ option.innerHTML = this.nestingSpacer.repeat(menu.level) + option.innerHTML.replace(regex, '');
8012
9473
  });
8013
9474
  }
8014
9475
 
@@ -8250,28 +9711,39 @@ class AuroMenu extends i$2 {
8250
9711
  }
8251
9712
 
8252
9713
  /**
8253
- * Renders the component.
8254
- * @returns {boolean} - True if loading slots are present and non-empty.
9714
+ * Logic to determine the layout of the component.
9715
+ * @protected
9716
+ * @returns {void}
8255
9717
  */
8256
- render() {
9718
+ renderLayout() {
8257
9719
  if (this.loading) {
8258
9720
  return x`
8259
- <auro-menuoption disabled loadingplaceholder class="${this.hasLoadingPlaceholder ? '' : 'empty'}">
8260
- <div>
8261
- <slot name="loadingIcon"></slot>
8262
- <slot name="loadingText"></slot>
8263
- </div>
8264
- </auro-menuoption>
9721
+ <div class="wrapper">
9722
+ <auro-menuoption
9723
+ disabled
9724
+ loadingplaceholder
9725
+ class="${this.hasLoadingPlaceholder ? "" : "empty"}"
9726
+ >
9727
+ <div>
9728
+ <slot name="loadingIcon"></slot>
9729
+ <slot name="loadingText"></slot>
9730
+ </div>
9731
+ </auro-menuoption>
9732
+ </div>
8265
9733
  `;
8266
9734
  }
8267
9735
 
8268
- return x`<slot @slotchange=${this.handleSlotChange}></slot>`;
9736
+ return x`
9737
+ <div class="wrapper">
9738
+ <slot @slotchange=${this.handleSlotChange}></slot>
9739
+ </div>
9740
+ `;
8269
9741
  }
8270
9742
  }
8271
9743
 
8272
- var styleCss$1 = i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
9744
+ var styleCss$1 = i$5`:host{cursor:pointer;user-select:none}:host .wrapper{display:flex;align-items:center;padding-right:var(--ds-size-200, 1rem);padding-left:calc(var(--ds-size-150, 0.75rem) + var(--ds-size-300, 1.5rem) + var(--ds-size-100, 0.5rem));padding-top:var(--ds-size-50, 0.25rem);padding-bottom:var(--ds-size-50, 0.25rem);-webkit-tap-highlight-color:transparent}:host .wrapper[class*=shape-box],:host .wrapper[class*=shape-snowflake]{border-radius:unset}:host .wrapper[class*=shape-pill]{border-radius:30px}:host .wrapper[class*=-lg]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-75, 0.375rem);padding-bottom:var(--ds-size-75, 0.375rem);padding-right:var(--ds-size-150, 0.75rem)}:host .wrapper[class*=-lg]:not(:last-child){margin-bottom:var(--ds-size-50, 0.25rem)}:host .wrapper[class*=-xl]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-100, 0.5rem);padding-bottom:var(--ds-size-100, 0.5rem);padding-right:var(--ds-size-200, 1rem)}:host .wrapper[class*=-xl]:not(:last-child){margin-bottom:var(--ds-size-100, 0.5rem)}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([loadingplaceholder]) .wrapper{padding-left:calc(var(--ds-size-150, 0.75rem) + var(--ds-size-300, 1.5rem) + var(--ds-size-100, 0.5rem))}:host([selected]) .wrapper{padding-left:0}:host([nocheckmark]) .wrapper{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-lg]{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-xl]{padding-left:var(--ds-size-200, 1rem)}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
8273
9745
 
8274
- var colorCss$1 = i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
9746
+ var colorCss$1 = i$5`:host .wrapper{border:1px solid var(--ds-auro-menuoption-container-border-color);background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
8275
9747
 
8276
9748
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
8277
9749
  // See LICENSE in the project root for license information.
@@ -8619,8 +10091,12 @@ class AuroIcon extends BaseIcon {
8619
10091
  async firstUpdated() {
8620
10092
  await super.firstUpdated();
8621
10093
 
8622
- // Removes the SVG description for screenreader if ariaHidden is set to true
8623
- if (!this.hasAttribute('ariaHidden') && this.svg) {
10094
+ /**
10095
+ * icons provide a description for screen readers. Icon only instances Auro-button
10096
+ * depend on this description to provide context for the user using a screen reader.
10097
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
10098
+ */
10099
+ if (this.hasAttribute('ariaHidden') && this.svg) {
8624
10100
  const svgDesc = this.svg.querySelector('desc');
8625
10101
 
8626
10102
  if (svgDesc) {
@@ -8664,7 +10140,7 @@ class AuroIcon extends BaseIcon {
8664
10140
  }
8665
10141
  }
8666
10142
 
8667
- var iconVersion = '8.0.3';
10143
+ var iconVersion = '8.0.4';
8668
10144
 
8669
10145
  var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"checkmark-sm__desc\" class=\"ico_squareLarge\" role=\"img\" style=\"min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor\" viewBox=\"0 0 24 24\" part=\"svg\"><title/><desc id=\"checkmark-sm__desc\">a small check mark.</desc><path d=\"M8.461 11.84a.625.625 0 1 0-.922.844l2.504 2.738c.247.27.674.27.922 0l5.496-6a.625.625 0 1 0-.922-.844l-5.035 5.496z\"/></svg>"};
8670
10146
 
@@ -8682,10 +10158,13 @@ var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlin
8682
10158
  * @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
8683
10159
  * @slot - Specifies text for an option, but is not the value.
8684
10160
  */
8685
- class AuroMenuOption extends i$2 {
10161
+ class AuroMenuOption extends AuroElement$4 {
8686
10162
  constructor() {
8687
10163
  super();
8688
10164
 
10165
+ this.size = ""; // md, lg, xl
10166
+ this.shape = ""; // box, rounded, pill
10167
+
8689
10168
  /**
8690
10169
  * Generate unique names for dependency components.
8691
10170
  */
@@ -8704,11 +10183,12 @@ class AuroMenuOption extends i$2 {
8704
10183
  /**
8705
10184
  * @private
8706
10185
  */
8707
- this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
10186
+ this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
8708
10187
  }
8709
10188
 
8710
10189
  static get properties() {
8711
10190
  return {
10191
+ ...super.properties,
8712
10192
  nocheckmark: {
8713
10193
  type: Boolean,
8714
10194
  reflect: true
@@ -8748,7 +10228,7 @@ class AuroMenuOption extends i$2 {
8748
10228
  *
8749
10229
  */
8750
10230
  static register(name = "auro-menuoption") {
8751
- AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroMenuOption);
10231
+ AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenuOption);
8752
10232
  }
8753
10233
 
8754
10234
  firstUpdated() {
@@ -8770,6 +10250,8 @@ class AuroMenuOption extends i$2 {
8770
10250
 
8771
10251
  // observer for selected property changes
8772
10252
  updated(changedProperties) {
10253
+ super.updated(changedProperties);
10254
+
8773
10255
  if (changedProperties.has('selected')) {
8774
10256
  this.setAttribute('aria-selected', this.selected.toString());
8775
10257
  }
@@ -8791,10 +10273,19 @@ class AuroMenuOption extends i$2 {
8791
10273
  return u`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
8792
10274
  }
8793
10275
 
8794
- render() {
10276
+ /**
10277
+ * Logic to determine the layout of the component.
10278
+ * @protected
10279
+ * @returns {void}
10280
+ */
10281
+ renderLayout() {
8795
10282
  return u`
8796
- ${this.selected && !this.nocheckmark ? this.generateIconHtml(checkmarkIcon.svg) : undefined}
8797
- <slot></slot>
10283
+ <div class="wrapper">
10284
+ ${this.selected && !this.nocheckmark
10285
+ ? this.generateIconHtml(checkmarkIcon.svg)
10286
+ : undefined}
10287
+ <slot></slot>
10288
+ </div>
8798
10289
  `;
8799
10290
  }
8800
10291
  }