@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.8 → 0.0.0-pr624.80

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 (143) 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 +1262 -81
  5. package/components/bibtemplate/dist/registered.js +1262 -81
  6. package/components/checkbox/README.md +1 -1
  7. package/components/checkbox/demo/api.html +16 -10
  8. package/components/checkbox/demo/api.md +49 -15
  9. package/components/checkbox/demo/api.min.js +73 -43
  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 +73 -43
  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 +72 -42
  18. package/components/checkbox/dist/registered.js +72 -42
  19. package/components/combobox/demo/api.html +16 -10
  20. package/components/combobox/demo/api.md +115 -8
  21. package/components/combobox/demo/api.min.js +3102 -921
  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 +3102 -921
  25. package/components/combobox/demo/readme.html +16 -9
  26. package/components/combobox/dist/auro-combobox.d.ts +44 -12
  27. package/components/combobox/dist/index.js +3080 -995
  28. package/components/combobox/dist/registered.js +3080 -995
  29. package/components/counter/demo/api.html +17 -10
  30. package/components/counter/demo/api.md +158 -21
  31. package/components/counter/demo/api.min.js +3416 -728
  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 +3416 -728
  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 +161 -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 +3416 -728
  42. package/components/counter/dist/registered.js +3416 -728
  43. package/components/datepicker/README.md +1 -1
  44. package/components/datepicker/demo/api.html +16 -10
  45. package/components/datepicker/demo/api.md +59 -28
  46. package/components/datepicker/demo/api.min.js +8486 -4644
  47. package/components/datepicker/demo/index.html +16 -10
  48. package/components/datepicker/demo/index.md +75 -8
  49. package/components/datepicker/demo/index.min.js +8486 -4644
  50. package/components/datepicker/demo/readme.html +16 -9
  51. package/components/datepicker/demo/readme.md +1 -1
  52. package/components/datepicker/dist/auro-datepicker.d.ts +151 -12
  53. package/components/datepicker/dist/buttonVersion.d.ts +1 -1
  54. package/components/datepicker/dist/iconVersion.d.ts +2 -0
  55. package/components/datepicker/dist/index.js +7033 -3191
  56. package/components/datepicker/dist/popoverVersion.d.ts +1 -1
  57. package/components/datepicker/dist/registered.js +7033 -3191
  58. package/components/dropdown/demo/api.html +16 -10
  59. package/components/dropdown/demo/api.md +82 -275
  60. package/components/dropdown/demo/api.min.js +451 -260
  61. package/components/dropdown/demo/index.html +16 -10
  62. package/components/dropdown/demo/index.md +92 -362
  63. package/components/dropdown/demo/index.min.js +451 -260
  64. package/components/dropdown/demo/readme.html +16 -9
  65. package/components/dropdown/dist/auro-dropdown.d.ts +43 -83
  66. package/components/dropdown/dist/auro-dropdownBib.d.ts +14 -0
  67. package/components/dropdown/dist/index.js +450 -259
  68. package/components/dropdown/dist/registered.js +450 -259
  69. package/components/form/demo/api.html +16 -9
  70. package/components/form/demo/api.min.js +2 -2
  71. package/components/form/demo/autocomplete.html +19 -3
  72. package/components/form/demo/index.html +16 -9
  73. package/components/form/demo/index.min.js +2 -2
  74. package/components/form/demo/readme.html +16 -9
  75. package/components/form/demo/working.html +19 -13
  76. package/components/form/dist/index.js +1 -1
  77. package/components/form/dist/registered.js +1 -1
  78. package/components/helptext/dist/index.js +2 -2
  79. package/components/helptext/dist/registered.js +2 -2
  80. package/components/input/README.md +5 -2
  81. package/components/input/demo/api.html +16 -10
  82. package/components/input/demo/api.md +228 -130
  83. package/components/input/demo/api.min.js +909 -247
  84. package/components/input/demo/index.html +16 -10
  85. package/components/input/demo/index.md +48 -32
  86. package/components/input/demo/index.min.js +909 -247
  87. package/components/input/demo/readme.html +16 -9
  88. package/components/input/demo/readme.md +5 -2
  89. package/components/input/dist/auro-input.d.ts +3 -3
  90. package/components/input/dist/base-input.d.ts +38 -10
  91. package/components/input/dist/buttonVersion.d.ts +1 -1
  92. package/components/input/dist/iconVersion.d.ts +1 -1
  93. package/components/input/dist/index.js +908 -246
  94. package/components/input/dist/registered.js +908 -246
  95. package/components/layoutElement/dist/index.js +13 -10
  96. package/components/menu/demo/api.html +32 -10
  97. package/components/menu/demo/api.md +69 -8
  98. package/components/menu/demo/api.min.js +239 -48
  99. package/components/menu/demo/index.html +16 -10
  100. package/components/menu/demo/index.min.js +239 -48
  101. package/components/menu/demo/readme.html +16 -9
  102. package/components/menu/dist/auro-menu.d.ts +41 -7
  103. package/components/menu/dist/auro-menuoption.d.ts +15 -3
  104. package/components/menu/dist/iconVersion.d.ts +1 -1
  105. package/components/menu/dist/index.js +238 -47
  106. package/components/menu/dist/registered.js +238 -47
  107. package/components/menu/dist/styles/default/color-menuoption-css.d.ts +2 -0
  108. package/components/menu/dist/styles/default/style-menu-css.d.ts +2 -0
  109. package/components/menu/dist/styles/default/style-menuoption-css.d.ts +2 -0
  110. package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
  111. package/components/radio/demo/api.html +16 -10
  112. package/components/radio/demo/api.md +39 -9
  113. package/components/radio/demo/api.min.js +91 -93
  114. package/components/radio/demo/index.html +16 -10
  115. package/components/radio/demo/index.min.js +91 -93
  116. package/components/radio/demo/readme.html +16 -9
  117. package/components/radio/dist/auro-radio-group.d.ts +1 -1
  118. package/components/radio/dist/auro-radio.d.ts +9 -12
  119. package/components/radio/dist/index.js +90 -92
  120. package/components/radio/dist/registered.js +90 -92
  121. package/components/select/demo/api.html +16 -10
  122. package/components/select/demo/api.js +0 -2
  123. package/components/select/demo/api.md +150 -121
  124. package/components/select/demo/api.min.js +2184 -704
  125. package/components/select/demo/index.html +17 -11
  126. package/components/select/demo/index.md +1066 -259
  127. package/components/select/demo/index.min.js +2186 -694
  128. package/components/select/demo/readme.html +16 -9
  129. package/components/select/dist/auro-select.d.ts +59 -21
  130. package/components/select/dist/index.js +2107 -711
  131. package/components/select/dist/registered.js +2107 -711
  132. package/package.json +31 -28
  133. /package/components/{datepicker/dist/styles/default/color-css.d.ts → counter/dist/styles/shapeSize-css.d.ts} +0 -0
  134. /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/classic}/color-css.d.ts +0 -0
  135. /package/components/datepicker/dist/styles/{emphasized → classic}/style-css.d.ts +0 -0
  136. /package/components/{dropdown/dist/styles/default/bibColors-css.d.ts → datepicker/dist/styles/snowflake/color-css.d.ts} +0 -0
  137. /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/style-css.d.ts +0 -0
  138. /package/components/dropdown/dist/styles/{default/bibStyles-css.d.ts → classic/bibColors-css.d.ts} +0 -0
  139. /package/components/{menu/dist/styles/color-menu-css.d.ts → dropdown/dist/styles/classic/bibStyles-css.d.ts} +0 -0
  140. /package/components/{menu/dist/styles/color-menuoption-css.d.ts → dropdown/dist/styles/classic/color-css.d.ts} +0 -0
  141. /package/components/{menu/dist/styles/style-menu-css.d.ts → dropdown/dist/styles/classic/style-css.d.ts} +0 -0
  142. /package/components/{menu/dist/styles/style-menuoption-css.d.ts → dropdown/dist/styles/style-css.d.ts} +0 -0
  143. /package/components/menu/dist/styles/{tokens-css.d.ts → default/color-menu-css.d.ts} +0 -0
@@ -36,7 +36,7 @@ const t=globalThis,e$1=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShad
36
36
  * @license
37
37
  * Copyright 2017 Google LLC
38
38
  * SPDX-License-Identifier: BSD-3-Clause
39
- */const{is:i$1,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o$2,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:"",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u,reflect:false,useDefault:false,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r(t),...o$2(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$1(s));}else void 0!==s&&i.push(c$1(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null;}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM();}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y[d("elementProperties")]=new Map,y[d("finalized")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.0");
39
+ */const{is:i$1,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o$2,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:"",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u,reflect:false,useDefault:false,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r(t),...o$2(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$1(s));}else void 0!==s&&i.push(c$1(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null;}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM();}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y[d("elementProperties")]=new Map,y[d("finalized")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.1");
40
40
 
41
41
  /**
42
42
  * @license
@@ -1730,7 +1730,7 @@ class AuroFloatingUI {
1730
1730
  */
1731
1731
  mirrorSize() {
1732
1732
  // mirror the boxsize from bibSizer
1733
- if (this.element.bibSizer) {
1733
+ if (this.element.bibSizer && this.element.matchWidth) {
1734
1734
  const sizerStyle = window.getComputedStyle(this.element.bibSizer);
1735
1735
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
1736
1736
  if (sizerStyle.width !== '0px') {
@@ -1866,6 +1866,7 @@ class AuroFloatingUI {
1866
1866
  this.element.bib.style.left = "0px";
1867
1867
  this.element.bib.style.width = '';
1868
1868
  this.element.bib.style.height = '';
1869
+ this.element.style.contain = '';
1869
1870
 
1870
1871
  // reset the size that was mirroring `size` css-part
1871
1872
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
@@ -1890,6 +1891,7 @@ class AuroFloatingUI {
1890
1891
  this.element.bib.style.position = '';
1891
1892
  this.element.bib.removeAttribute('isfullscreen');
1892
1893
  this.element.isBibFullscreen = false;
1894
+ this.element.style.contain = 'layout';
1893
1895
  }
1894
1896
 
1895
1897
  const isChanged = this.strategy && this.strategy !== value;
@@ -1942,13 +1944,13 @@ class AuroFloatingUI {
1942
1944
  if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
1943
1945
  return;
1944
1946
  }
1945
-
1947
+
1946
1948
  // if fullscreen bib is in fullscreen mode, do not close
1947
1949
  if (this.element.bib.hasAttribute('isfullscreen')) {
1948
1950
  return;
1949
1951
  }
1950
1952
 
1951
- this.hideBib();
1953
+ this.hideBib("keydown");
1952
1954
  }
1953
1955
 
1954
1956
  setupHideHandlers() {
@@ -1973,7 +1975,7 @@ class AuroFloatingUI {
1973
1975
  document.expandedAuroFormkitDropdown = null;
1974
1976
  document.expandedAuroFloater = this;
1975
1977
  } else {
1976
- this.hideBib();
1978
+ this.hideBib("click");
1977
1979
  }
1978
1980
  }
1979
1981
  };
@@ -1986,7 +1988,7 @@ class AuroFloatingUI {
1986
1988
  // if something else is open, let it handle itself
1987
1989
  return;
1988
1990
  }
1989
- this.hideBib();
1991
+ this.hideBib("keydown");
1990
1992
  }
1991
1993
  };
1992
1994
 
@@ -2069,7 +2071,11 @@ class AuroFloatingUI {
2069
2071
  }
2070
2072
  }
2071
2073
 
2072
- hideBib() {
2074
+ /**
2075
+ * Hides the floating UI element.
2076
+ * @param {String} eventType - The event type that triggered the hiding action.
2077
+ */
2078
+ hideBib(eventType = "unknown") {
2073
2079
  if (!this.element.disabled && !this.element.noToggle) {
2074
2080
  this.lockScroll(false);
2075
2081
  this.element.triggerChevron?.removeAttribute('data-expanded');
@@ -2080,7 +2086,7 @@ class AuroFloatingUI {
2080
2086
  if (this.showing) {
2081
2087
  this.cleanupHideHandlers();
2082
2088
  this.showing = false;
2083
- this.dispatchEventDropdownToggle();
2089
+ this.dispatchEventDropdownToggle(eventType);
2084
2090
  }
2085
2091
  }
2086
2092
  document.expandedAuroFloater = null;
@@ -2089,11 +2095,13 @@ class AuroFloatingUI {
2089
2095
  /**
2090
2096
  * @private
2091
2097
  * @returns {void} Dispatches event with an object showing the state of the dropdown.
2098
+ * @param {String} eventType - The event type that triggered the toggle action.
2092
2099
  */
2093
- dispatchEventDropdownToggle() {
2100
+ dispatchEventDropdownToggle(eventType) {
2094
2101
  const event = new CustomEvent(this.eventPrefix ? `${this.eventPrefix}-toggled` : 'toggled', {
2095
2102
  detail: {
2096
2103
  expanded: this.showing,
2104
+ eventType: eventType || "unknown",
2097
2105
  },
2098
2106
  composed: true
2099
2107
  });
@@ -2103,7 +2111,7 @@ class AuroFloatingUI {
2103
2111
 
2104
2112
  handleClick() {
2105
2113
  if (this.element.isPopoverVisible) {
2106
- this.hideBib();
2114
+ this.hideBib("click");
2107
2115
  } else {
2108
2116
  this.showBib();
2109
2117
  }
@@ -2126,8 +2134,9 @@ class AuroFloatingUI {
2126
2134
  // Space is included as it's expected behavior for interactive elements
2127
2135
 
2128
2136
  const origin = event.composedPath()[0];
2129
- if (event.key === 'Enter' || ((!origin || origin.tagName !== "INPUT") && event.key === ' ')) {
2130
- event.preventDefault(); // Prevent page scroll on space
2137
+ if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
2138
+
2139
+ event.preventDefault();
2131
2140
  this.handleClick();
2132
2141
  }
2133
2142
  break;
@@ -2138,7 +2147,7 @@ class AuroFloatingUI {
2138
2147
  break;
2139
2148
  case 'mouseleave':
2140
2149
  if (this.element.hoverToggle) {
2141
- this.hideBib();
2150
+ this.hideBib("mouseleave");
2142
2151
  }
2143
2152
  break;
2144
2153
  case 'focus':
@@ -2281,6 +2290,267 @@ class AuroFloatingUI {
2281
2290
  }
2282
2291
  }
2283
2292
 
2293
+ // Selectors for focusable elements
2294
+ const FOCUSABLE_SELECTORS = [
2295
+ 'a[href]',
2296
+ 'button:not([disabled])',
2297
+ 'textarea:not([disabled])',
2298
+ 'input:not([disabled])',
2299
+ 'select:not([disabled])',
2300
+ '[role="tab"]:not([disabled])',
2301
+ '[role="link"]:not([disabled])',
2302
+ '[role="button"]:not([disabled])',
2303
+ '[tabindex]:not([tabindex="-1"])',
2304
+ '[contenteditable]:not([contenteditable="false"])'
2305
+ ];
2306
+
2307
+ // List of custom components that are known to be focusable
2308
+ const FOCUSABLE_COMPONENTS = [
2309
+ 'auro-checkbox',
2310
+ 'auro-radio',
2311
+ 'auro-dropdown',
2312
+ 'auro-button',
2313
+ 'auro-combobox',
2314
+ 'auro-input',
2315
+ 'auro-counter',
2316
+ 'auro-menu',
2317
+ 'auro-select',
2318
+ 'auro-datepicker',
2319
+ 'auro-hyperlink',
2320
+ 'auro-accordion',
2321
+ ];
2322
+
2323
+ /**
2324
+ * Determines if a given element is a custom focusable component.
2325
+ * Returns true if the element matches a known focusable component and is not disabled.
2326
+ *
2327
+ * @param {HTMLElement} element The element to check for focusability.
2328
+ * @returns {boolean} True if the element is a focusable custom component, false otherwise.
2329
+ */
2330
+ function isFocusableComponent(element) {
2331
+ const componentName = element.tagName.toLowerCase();
2332
+
2333
+ // Guard Clause: Element is a focusable component
2334
+ if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
2335
+
2336
+ // Guard Clause: Element is not disabled
2337
+ if (element.hasAttribute('disabled')) return false;
2338
+
2339
+ // Guard Clause: The element is a hyperlink and has no href attribute
2340
+ if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
2341
+
2342
+ // If all guard clauses pass, the element is a focusable component
2343
+ return true;
2344
+ }
2345
+
2346
+ /**
2347
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
2348
+ * Returns a unique, ordered array of elements that can receive focus.
2349
+ *
2350
+ * @param {HTMLElement} container The container to search within
2351
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
2352
+ */
2353
+ function getFocusableElements(container) {
2354
+ // Get elements in DOM order by walking the tree
2355
+ const orderedFocusableElements = [];
2356
+
2357
+ // Define a recursive function to collect focusable elements in DOM order
2358
+ const collectFocusableElements = (root) => {
2359
+ // Check if current element is focusable
2360
+ if (root.nodeType === Node.ELEMENT_NODE) {
2361
+ // Check if this is a custom component that is focusable
2362
+ const isComponentFocusable = isFocusableComponent(root);
2363
+
2364
+ if (isComponentFocusable) {
2365
+ // Add the component itself as a focusable element and don't traverse its shadow DOM
2366
+ orderedFocusableElements.push(root);
2367
+ return; // Skip traversing inside this component
2368
+ }
2369
+
2370
+ // Check if the element itself matches any selector
2371
+ for (const selector of FOCUSABLE_SELECTORS) {
2372
+ if (root.matches?.(selector)) {
2373
+ orderedFocusableElements.push(root);
2374
+ break; // Once we know it's focusable, no need to check other selectors
2375
+ }
2376
+ }
2377
+
2378
+ // Process shadow DOM only for non-Auro components
2379
+ if (root.shadowRoot) {
2380
+ // Process shadow DOM children in order
2381
+ if (root.shadowRoot.children) {
2382
+ Array.from(root.shadowRoot.children).forEach(child => {
2383
+ collectFocusableElements(child);
2384
+ });
2385
+ }
2386
+ }
2387
+
2388
+ // Process slots and their assigned nodes in order
2389
+ if (root.tagName === 'SLOT') {
2390
+ const assignedNodes = root.assignedNodes({ flatten: true });
2391
+ for (const node of assignedNodes) {
2392
+ collectFocusableElements(node);
2393
+ }
2394
+ } else {
2395
+ // Process light DOM children in order
2396
+ if (root.children) {
2397
+ Array.from(root.children).forEach(child => {
2398
+ collectFocusableElements(child);
2399
+ });
2400
+ }
2401
+ }
2402
+ }
2403
+ };
2404
+
2405
+ // Start the traversal from the container
2406
+ collectFocusableElements(container);
2407
+
2408
+ // Remove duplicates that might have been collected through different paths
2409
+ // while preserving order
2410
+ const uniqueElements = [];
2411
+ const seen = new Set();
2412
+
2413
+ for (const element of orderedFocusableElements) {
2414
+ if (!seen.has(element)) {
2415
+ seen.add(element);
2416
+ uniqueElements.push(element);
2417
+ }
2418
+ }
2419
+
2420
+ return uniqueElements;
2421
+ }
2422
+
2423
+ /**
2424
+ * FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
2425
+ * It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
2426
+ */
2427
+ class FocusTrap {
2428
+ /**
2429
+ * Creates a new FocusTrap instance for the given container element.
2430
+ * Initializes event listeners and prepares the container for focus management.
2431
+ *
2432
+ * @param {HTMLElement} container The DOM element to trap focus within.
2433
+ * @throws {Error} If the provided container is not a valid HTMLElement.
2434
+ */
2435
+ constructor(container) {
2436
+ if (!container || !(container instanceof HTMLElement)) {
2437
+ throw new Error("FocusTrap requires a valid HTMLElement.");
2438
+ }
2439
+
2440
+ this.container = container;
2441
+ this.tabDirection = 'forward'; // or 'backward'
2442
+
2443
+ this._init();
2444
+ }
2445
+
2446
+ /**
2447
+ * Initializes the focus trap by setting up event listeners and attributes on the container.
2448
+ * Prepares the container for focus management, including support for shadow DOM and inert attributes.
2449
+ *
2450
+ * @private
2451
+ */
2452
+ _init() {
2453
+
2454
+ // Add inert attribute to prevent focusing programmatically as well (if supported)
2455
+ if ('inert' in HTMLElement.prototype) {
2456
+ this.container.inert = false; // Ensure the container isn't inert
2457
+ this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
2458
+ }
2459
+
2460
+ // Track tab direction
2461
+ this.container.addEventListener('keydown', this._onKeydown);
2462
+ }
2463
+
2464
+ /**
2465
+ * Handles keydown events to manage tab navigation within the container.
2466
+ * Ensures that focus wraps around when reaching the first or last focusable element.
2467
+ *
2468
+ * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
2469
+ * @private
2470
+ */
2471
+ _onKeydown = (e) => {
2472
+
2473
+ if (e.key === 'Tab') {
2474
+
2475
+ // Set the tab direction based on the key pressed
2476
+ this.tabDirection = e.shiftKey ? 'backward' : 'forward';
2477
+
2478
+ // Get the active element(s) in the document and shadow root
2479
+ // This will include the active element in the shadow DOM if it exists
2480
+ // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
2481
+ let activeElement = document.activeElement;
2482
+ const actives = [activeElement];
2483
+ while (activeElement?.shadowRoot?.activeElement) {
2484
+ actives.push(activeElement.shadowRoot.activeElement);
2485
+ activeElement = activeElement.shadowRoot.activeElement;
2486
+ }
2487
+
2488
+ // Update the focusable elements
2489
+ const focusables = this._getFocusableElements();
2490
+
2491
+ // If we're at either end of the focusable elements, wrap around to the other end
2492
+ const focusIndex =
2493
+ (actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
2494
+ ? focusables.length - 1
2495
+ : actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
2496
+ ? 0
2497
+ : null;
2498
+
2499
+ if (focusIndex !== null) {
2500
+ focusables[focusIndex].focus();
2501
+ e.preventDefault(); // Prevent default tab behavior
2502
+ e.stopPropagation(); // Stop the event from bubbling up
2503
+ }
2504
+ }
2505
+ };
2506
+
2507
+ /**
2508
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
2509
+ * Returns a unique, ordered array of elements that can receive focus.
2510
+ *
2511
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
2512
+ * @private
2513
+ */
2514
+ _getFocusableElements() {
2515
+ // Use the imported utility function to get focusable elements
2516
+ const elements = getFocusableElements(this.container);
2517
+
2518
+ // Filter out any elements with the 'focus-bookend' class
2519
+ return elements;
2520
+ }
2521
+
2522
+ /**
2523
+ * Moves focus to the first focusable element within the container.
2524
+ * Useful for setting initial focus when activating the focus trap.
2525
+ */
2526
+ focusFirstElement() {
2527
+ const focusables = this._getFocusableElements();
2528
+ if (focusables.length) focusables[0].focus();
2529
+ }
2530
+
2531
+ /**
2532
+ * Moves focus to the last focusable element within the container.
2533
+ * Useful for setting focus when deactivating or cycling focus in reverse.
2534
+ */
2535
+ focusLastElement() {
2536
+ const focusables = this._getFocusableElements();
2537
+ if (focusables.length) focusables[focusables.length - 1].focus();
2538
+ }
2539
+
2540
+ /**
2541
+ * Removes event listeners and attributes added by the focus trap.
2542
+ * Call this method to clean up when the focus trap is no longer needed.
2543
+ */
2544
+ disconnect() {
2545
+
2546
+ if (this.container.hasAttribute('data-focus-trap-container')) {
2547
+ this.container.removeAttribute('data-focus-trap-container');
2548
+ }
2549
+
2550
+ this.container.removeEventListener('keydown', this._onKeydown);
2551
+ }
2552
+ }
2553
+
2284
2554
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
2285
2555
  // See LICENSE in the project root for license information.
2286
2556
 
@@ -2393,7 +2663,7 @@ const cacheFetch = (uri, options = {}) => {
2393
2663
  return _fetchMap.get(uri);
2394
2664
  };
2395
2665
 
2396
- var styleCss$2 = i$2`: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}`;
2666
+ var styleCss$3 = i$2`: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}`;
2397
2667
 
2398
2668
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
2399
2669
  // See LICENSE in the project root for license information.
@@ -2436,7 +2706,7 @@ class BaseIcon extends AuroElement$1 {
2436
2706
 
2437
2707
  static get styles() {
2438
2708
  return i$2`
2439
- ${styleCss$2}
2709
+ ${styleCss$3}
2440
2710
  `;
2441
2711
  }
2442
2712
 
@@ -2638,7 +2908,7 @@ class AuroIcon extends BaseIcon {
2638
2908
  return [
2639
2909
  super.styles,
2640
2910
  i$2`${tokensCss$2}`,
2641
- i$2`${styleCss$2}`,
2911
+ i$2`${styleCss$3}`,
2642
2912
  i$2`${colorCss$3}`
2643
2913
  ];
2644
2914
  }
@@ -2673,8 +2943,12 @@ class AuroIcon extends BaseIcon {
2673
2943
  async firstUpdated() {
2674
2944
  await super.firstUpdated();
2675
2945
 
2676
- // Removes the SVG description for screenreader if ariaHidden is set to true
2677
- if (!this.hasAttribute('ariaHidden') && this.svg) {
2946
+ /**
2947
+ * icons provide a description for screen readers. Icon only instances Auro-button
2948
+ * depend on this description to provide context for the user using a screen reader.
2949
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
2950
+ */
2951
+ if (this.hasAttribute('ariaHidden') && this.svg) {
2678
2952
  const svgDesc = this.svg.querySelector('desc');
2679
2953
 
2680
2954
  if (svgDesc) {
@@ -2720,11 +2994,11 @@ class AuroIcon extends BaseIcon {
2720
2994
 
2721
2995
  var iconVersion = '6.1.2';
2722
2996
 
2723
- var styleCss$1 = i$2`: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}`;
2997
+ var styleCss$2 = i$2`: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}`;
2724
2998
 
2725
2999
  var colorCss$2 = i$2`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
2726
3000
 
2727
- var tokensCss$1 = i$2`: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)}`;
3001
+ var tokensCss$1 = i$2`: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)}`;
2728
3002
 
2729
3003
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
2730
3004
  // See LICENSE in the project root for license information.
@@ -2745,7 +3019,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
2745
3019
  */
2746
3020
 
2747
3021
  class AuroDropdownBib extends i {
2748
-
3022
+ // not extending AuroElement because Bib needs only `shape` prop
2749
3023
  constructor() {
2750
3024
  super();
2751
3025
 
@@ -2755,11 +3029,14 @@ class AuroDropdownBib extends i {
2755
3029
  this._mobileBreakpointValue = undefined;
2756
3030
 
2757
3031
  AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3032
+
3033
+ this.shape = "rounded";
3034
+ this.matchWidth = false;
2758
3035
  }
2759
3036
 
2760
3037
  static get styles() {
2761
3038
  return [
2762
- styleCss$1,
3039
+ styleCss$2,
2763
3040
  colorCss$2,
2764
3041
  tokensCss$1
2765
3042
  ];
@@ -2792,6 +3069,15 @@ class AuroDropdownBib extends i {
2792
3069
  reflect: true
2793
3070
  },
2794
3071
 
3072
+ /**
3073
+ * If declared, the bib width will match the trigger width.
3074
+ * @private
3075
+ */
3076
+ matchWidth: {
3077
+ type: Boolean,
3078
+ reflect: true
3079
+ },
3080
+
2795
3081
  /**
2796
3082
  * If declared, will apply border-radius to the bib.
2797
3083
  */
@@ -2805,6 +3091,11 @@ class AuroDropdownBib extends i {
2805
3091
  */
2806
3092
  bibTemplate: {
2807
3093
  type: Object
3094
+ },
3095
+
3096
+ shape: {
3097
+ type: String,
3098
+ reflect: true
2808
3099
  }
2809
3100
  };
2810
3101
  }
@@ -2884,8 +3175,16 @@ class AuroDropdownBib extends i {
2884
3175
 
2885
3176
  // function that renders the HTML and CSS into the scope of the component
2886
3177
  render() {
3178
+ const classes = {
3179
+ container: true
3180
+ };
3181
+
3182
+ // Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
3183
+ // mimicking the class naming convention used in AuroElement.resetShapeClasses.
3184
+ classes[`shape-${this.shape}`] = true;
3185
+
2887
3186
  return u$1`
2888
- <div class="container" part="bibContainer">
3187
+ <div class="${e$2(classes)}" part="bibContainer">
2889
3188
  <slot></slot>
2890
3189
  </div>
2891
3190
  `;
@@ -2894,21 +3193,23 @@ class AuroDropdownBib extends i {
2894
3193
 
2895
3194
  var dropdownVersion = '3.0.0';
2896
3195
 
2897
- var shapeSizeCss = i$2`.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}`;
3196
+ var shapeSizeCss = i$2`.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}`;
2898
3197
 
2899
- var colorCss$1 = i$2`: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)}`;
3198
+ var colorCss$1 = i$2`: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)}`;
2900
3199
 
2901
- var classicColorCss = i$2`: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))}`;
3200
+ var styleCss$1 = i$2`:host{display:block;position:relative}:host([open]){z-index:var(--depth-tooltip, 400)}.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([matchwidth]) #bibSizer{width:100%}`;
2902
3201
 
2903
- var classicLayoutCss = i$2`: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)}`;
3202
+ var classicColorCss = i$2``;
2904
3203
 
2905
- var styleEmphasizedCss = i$2`: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))}`;
3204
+ var classicLayoutCss = i$2`: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)}`;
2906
3205
 
2907
- var styleSnowflakeCss = i$2`: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)}`;
3206
+ var styleEmphasizedCss = i$2`.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}: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)}`;
2908
3207
 
2909
- var colorCss = i$2`: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)}`;
3208
+ var styleSnowflakeCss = i$2`: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)}`;
2910
3209
 
2911
- var styleCss = i$2`.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}`;
3210
+ var colorCss = i$2`: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)}`;
3211
+
3212
+ var styleCss = i$2`: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}`;
2912
3213
 
2913
3214
  var tokensCss = i$2`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
2914
3215
 
@@ -3149,18 +3450,21 @@ class AuroElement extends i {
3149
3450
  }
3150
3451
 
3151
3452
  resetShapeClasses() {
3152
- if (this.shape && this.size) {
3153
- const wrapper = this.shadowRoot.querySelector('.wrapper');
3453
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
3154
3454
 
3155
- if (wrapper) {
3156
- wrapper.classList.forEach((className) => {
3157
- if (className.startsWith('shape-')) {
3158
- wrapper.classList.remove(className);
3159
- }
3160
- });
3455
+ if (wrapper) {
3456
+ wrapper.classList.forEach((className) => {
3457
+ if (className.startsWith('shape-')) {
3458
+ wrapper.classList.remove(className);
3459
+ }
3460
+ });
3161
3461
 
3162
- wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
3163
- }
3462
+ }
3463
+
3464
+ if (this.shape && this.size) {
3465
+ wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
3466
+ } else {
3467
+ wrapper.classList.add('shape-none');
3164
3468
  }
3165
3469
  }
3166
3470
 
@@ -3210,10 +3514,9 @@ class AuroElement extends i {
3210
3514
  // See LICENSE in the project root for license information.
3211
3515
 
3212
3516
 
3213
- /**
3214
- * @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
3517
+
3518
+ /*
3215
3519
  * @slot - Default slot for the popover content.
3216
- * @slot label - Defines the content of the label.
3217
3520
  * @slot helpText - Defines the content of the helpText.
3218
3521
  * @slot trigger - Defines the content of the trigger.
3219
3522
  * @csspart trigger - The trigger content container.
@@ -3232,23 +3535,25 @@ class AuroDropdown extends AuroElement {
3232
3535
  this.matchWidth = false;
3233
3536
  this.noHideOnThisFocusLoss = false;
3234
3537
 
3235
- this.errorMessage = ''; // TODO!
3538
+ this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
3236
3539
 
3237
3540
  // Layout Config
3238
- this.layout = 'classic';
3239
- this.shape = 'rounded';
3240
- this.size = 'xl';
3541
+ this.layout = undefined;
3542
+ this.shape = undefined;
3543
+ this.size = undefined;
3544
+
3241
3545
  this.parentBorder = false;
3242
3546
 
3243
- this.privateDefaults();
3244
- }
3547
+ /** @private */
3548
+ this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
3245
3549
 
3246
- get commonLabelClasses() {
3247
- return {
3248
- // 'withValue': this.value && this.value.length > 0
3249
- };
3550
+ this.privateDefaults();
3250
3551
  }
3251
3552
 
3553
+ /**
3554
+ * @private
3555
+ * @returns {object} Class definition for the wrapper element.
3556
+ */
3252
3557
  get commonWrapperClasses() {
3253
3558
  return {
3254
3559
  'trigger': true,
@@ -3266,13 +3571,10 @@ class AuroDropdown extends AuroElement {
3266
3571
  privateDefaults() {
3267
3572
  this.chevron = false;
3268
3573
  this.disabled = false;
3574
+ this.disableFocusTrap = false;
3269
3575
  this.error = false;
3270
- this.inset = false;
3271
- this.rounded = false;
3272
3576
  this.tabIndex = 0;
3273
3577
  this.noToggle = false;
3274
- this.a11yAutocomplete = 'none';
3275
- this.labeled = true;
3276
3578
  this.a11yRole = 'button';
3277
3579
  this.onDark = false;
3278
3580
  this.showTriggerBorders = true;
@@ -3368,6 +3670,18 @@ class AuroDropdown extends AuroElement {
3368
3670
  this.floater.showBib();
3369
3671
  }
3370
3672
 
3673
+ /**
3674
+ * When bib is open, focus on the first element inside of bib.
3675
+ * If not, trigger element will get focus.
3676
+ */
3677
+ focus() {
3678
+ if (this.isPopoverVisible && this.focusTrap) {
3679
+ this.focusTrap.focusFirstElement();
3680
+ } else {
3681
+ this.trigger.focus();
3682
+ }
3683
+ }
3684
+
3371
3685
  // function to define props used within the scope of this component
3372
3686
  static get properties() {
3373
3687
  return {
@@ -3381,6 +3695,15 @@ class AuroDropdown extends AuroElement {
3381
3695
  reflect: true
3382
3696
  },
3383
3697
 
3698
+ /**
3699
+ * If declared, the dropdown will only show by calling the API .show() public method.
3700
+ * @default false
3701
+ */
3702
+ disableEventShow: {
3703
+ type: Boolean,
3704
+ reflect: true
3705
+ },
3706
+
3384
3707
  /**
3385
3708
  * If declared, applies a border around the trigger slot.
3386
3709
  */
@@ -3399,17 +3722,17 @@ class AuroDropdown extends AuroElement {
3399
3722
  },
3400
3723
 
3401
3724
  /**
3402
- * If declared, the dropdown will be styled with the common theme.
3725
+ * If declared, the dropdown is not interactive.
3403
3726
  */
3404
- common: {
3727
+ disabled: {
3405
3728
  type: Boolean,
3406
3729
  reflect: true
3407
3730
  },
3408
3731
 
3409
3732
  /**
3410
- * If declared, the dropdown is not interactive.
3733
+ * If declared, the focus trap inside of bib will be turned off.
3411
3734
  */
3412
- disabled: {
3735
+ disableFocusTrap: {
3413
3736
  type: Boolean,
3414
3737
  reflect: true
3415
3738
  },
@@ -3454,27 +3777,13 @@ class AuroDropdown extends AuroElement {
3454
3777
  reflect: true
3455
3778
  },
3456
3779
 
3457
- /**
3458
- * Makes the trigger to be full width of its parent container.
3459
- */
3460
- fluid: {
3461
- type: Boolean,
3462
- reflect: true
3463
- },
3464
-
3465
- /**
3466
- * If declared, will apply padding around trigger slot content.
3467
- */
3468
- inset: {
3469
- type: Boolean,
3470
- reflect: true
3471
- },
3472
-
3473
3780
  /**
3474
3781
  * If true, the dropdown bib is displayed.
3475
3782
  */
3476
3783
  isPopoverVisible: {
3477
- type: Boolean
3784
+ type: Boolean,
3785
+ reflect: true,
3786
+ attribute: 'open'
3478
3787
  },
3479
3788
 
3480
3789
  /**
@@ -3513,15 +3822,6 @@ class AuroDropdown extends AuroElement {
3513
3822
  reflect: true
3514
3823
  },
3515
3824
 
3516
- /**
3517
- * Defines if there is a label preset.
3518
- * @private
3519
- */
3520
- labeled: {
3521
- type: Boolean,
3522
- reflect: true
3523
- },
3524
-
3525
3825
  /**
3526
3826
  * Defines if the trigger should size based on the parent element providing the border UI.
3527
3827
  * @private
@@ -3582,6 +3882,9 @@ class AuroDropdown extends AuroElement {
3582
3882
  reflect: true
3583
3883
  },
3584
3884
 
3885
+ /**
3886
+ * If declared, and a function is set, that function will execute when the slot content is updated.
3887
+ */
3585
3888
  onSlotChange: {
3586
3889
  type: Function,
3587
3890
  reflect: false
@@ -3596,14 +3899,6 @@ class AuroDropdown extends AuroElement {
3596
3899
  reflect: true
3597
3900
  },
3598
3901
 
3599
- /**
3600
- * If declared, will apply border-radius to trigger and default slots.
3601
- */
3602
- rounded: {
3603
- type: Boolean,
3604
- reflect: true
3605
- },
3606
-
3607
3902
  /**
3608
3903
  * @private
3609
3904
  */
@@ -3618,22 +3913,15 @@ class AuroDropdown extends AuroElement {
3618
3913
  type: String || undefined,
3619
3914
  attribute: false,
3620
3915
  reflect: false
3621
- },
3622
-
3623
- /**
3624
- * The value for the aria-autocomplete attribute of the trigger element.
3625
- */
3626
- a11yAutocomplete: {
3627
- type: String,
3628
- attribute: false,
3629
3916
  }
3630
3917
  };
3631
3918
  }
3632
3919
 
3633
3920
  static get styles() {
3634
3921
  return [
3635
- colorCss$1,
3922
+ styleCss$1,
3636
3923
  tokensCss$1,
3924
+ colorCss$1,
3637
3925
 
3638
3926
  // default layout
3639
3927
  classicColorCss,
@@ -3695,13 +3983,27 @@ class AuroDropdown extends AuroElement {
3695
3983
  if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
3696
3984
  this.handleTriggerContentSlotChange();
3697
3985
  }
3986
+ }
3698
3987
 
3988
+ /**
3989
+ * Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
3990
+ * @private
3991
+ * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
3992
+ */
3993
+ handleDropdownToggle(event) {
3994
+ this.updateFocusTrap();
3995
+ this.isPopoverVisible = event.detail.expanded;
3996
+ const eventType = event.detail.eventType || "unknown";
3997
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
3998
+ this.trigger.focus();
3999
+ }
3699
4000
  }
3700
4001
 
3701
4002
  firstUpdated() {
3702
4003
 
3703
4004
  // Configure the floater to, this will generate the ID for the bib
3704
4005
  this.floater.configure(this, 'auroDropdown');
4006
+ this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
3705
4007
 
3706
4008
  /**
3707
4009
  * @description Let subscribers know that the dropdown ID ha been generated and added.
@@ -3719,6 +4021,13 @@ class AuroDropdown extends AuroElement {
3719
4021
 
3720
4022
  // Add the tag name as an attribute if it is different than the component name
3721
4023
  this.runtimeUtils.handleComponentTagRename(this, 'auro-dropdown');
4024
+
4025
+ this.trigger.addEventListener('click', () => {
4026
+ this.dispatchEvent(new CustomEvent('auroDropdown-triggerClick', {
4027
+ bubbles: true,
4028
+ composed: true
4029
+ }));
4030
+ });
3722
4031
  }
3723
4032
 
3724
4033
  /**
@@ -3762,70 +4071,33 @@ class AuroDropdown extends AuroElement {
3762
4071
  }
3763
4072
 
3764
4073
  /**
3765
- * Function to support @focusout event.
3766
4074
  * @private
3767
- * @return {void}
3768
4075
  */
3769
- handleFocusout() {
3770
- this.hasFocus = false;
4076
+ updateFocusTrap() {
4077
+ // If the dropdown is open, create a focus trap and focus the first element
4078
+ if (this.isPopoverVisible && !this.disableFocusTrap) {
4079
+ this.focusTrap = new FocusTrap(this.bibContent);
4080
+ this.focusTrap.focusFirstElement();
4081
+ return;
4082
+ }
4083
+
4084
+ // Guard Clause: Ensure there is a focus trap currently active before continuing
4085
+ if (!this.focusTrap) {
4086
+ return;
4087
+ }
4088
+
4089
+ // If the dropdown is not open, disconnect the focus trap if it exists
4090
+ this.focusTrap.disconnect();
4091
+ this.focusTrap = undefined;
3771
4092
  }
3772
4093
 
3773
4094
  /**
3774
- * Determines if the element or any children are focusable.
4095
+ * Function to support @focusout event.
3775
4096
  * @private
3776
- * @param {HTMLElement} element - Element to check.
3777
- * @returns {Boolean} - True if the element or any children are focusable.
4097
+ * @return {void}
3778
4098
  */
3779
- containsFocusableElement(element) {
3780
- this.showTriggerBorders = true;
3781
-
3782
- const nodes = [
3783
- element,
3784
- ...element.children
3785
- ];
3786
-
3787
- const focusableElements = [
3788
- 'a',
3789
- 'auro-hyperlink',
3790
- 'button',
3791
- 'auro-button',
3792
- 'input',
3793
- 'auro-input',
3794
- ];
3795
-
3796
- const focusableElementsThatNeedBorders = ['auro-input'];
3797
-
3798
- const result = nodes.some((node) => {
3799
- const tagName = node.tagName.toLowerCase();
3800
-
3801
- if (node.tabIndex > -1) {
3802
- return true;
3803
- }
3804
-
3805
- if (focusableElements.includes(tagName)) {
3806
- if ((tagName === 'a' || tagName === 'auro-hyperlink' || node.hasAttribute('auro-hyperlink')) && node.hasAttribute('href')) {
3807
- return true;
3808
- }
3809
- if (!node.hasAttribute('disabled')) {
3810
- return true;
3811
- }
3812
- }
3813
-
3814
- if (focusableElements.some((focusableElement) => focusableElement.startsWith('auro-') && (focusableElement === tagName || node.hasAttribute(focusableElement)))) {
3815
- return true;
3816
- }
3817
-
3818
- return false;
3819
- });
3820
-
3821
- if (result) {
3822
- this.showTriggerBorders = !nodes.some((node) => {
3823
- const tagName = node.tagName.toLowerCase();
3824
- return focusableElements.includes(tagName) && !focusableElementsThatNeedBorders.includes(tagName);
3825
- });
3826
- }
3827
-
3828
- return result;
4099
+ handleFocusout() {
4100
+ this.hasFocus = false;
3829
4101
  }
3830
4102
 
3831
4103
  /**
@@ -3921,14 +4193,13 @@ class AuroDropdown extends AuroElement {
3921
4193
  * @returns {void}
3922
4194
  */
3923
4195
  handleTriggerContentSlotChange(event) {
3924
-
3925
4196
  this.floater.handleTriggerTabIndex();
3926
4197
 
3927
4198
  // Get the trigger
3928
4199
  const trigger = this.shadowRoot.querySelector('#trigger');
3929
4200
 
3930
4201
  // Get the trigger slot
3931
- const triggerSlot = this.shadowRoot.querySelector('.triggerContent slot');
4202
+ const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
3932
4203
 
3933
4204
  // If there's a trigger slot
3934
4205
  if (triggerSlot) {
@@ -3940,7 +4211,7 @@ class AuroDropdown extends AuroElement {
3940
4211
  if (triggerContentNodes) {
3941
4212
 
3942
4213
  // See if any of them are focusable elements
3943
- this.triggerContentFocusable = triggerContentNodes.some((node) => this.containsFocusableElement(node));
4214
+ this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
3944
4215
 
3945
4216
  // If any of them are focusable elements
3946
4217
  if (this.triggerContentFocusable) {
@@ -3991,7 +4262,6 @@ class AuroDropdown extends AuroElement {
3991
4262
  *
3992
4263
  * @private
3993
4264
  * @method handleDefaultSlot
3994
- * @param {Event} event - The event object representing the slot change.
3995
4265
  * @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
3996
4266
  */
3997
4267
  handleDefaultSlot() {
@@ -4001,29 +4271,6 @@ class AuroDropdown extends AuroElement {
4001
4271
  }
4002
4272
  }
4003
4273
 
4004
- /**
4005
- * @private
4006
- * @method handleLabelSlotChange
4007
- * @param {event} event - The event object representing the slot change.
4008
- * @description Handles the slot change event for the label slot.
4009
- */
4010
- handleLabelSlotChange (event) {
4011
-
4012
- // Get the nodes from the event
4013
- const nodes = event.target.assignedNodes();
4014
-
4015
- // Guard clause for no nodes
4016
- if (!nodes) {
4017
- return;
4018
- }
4019
-
4020
- // Convert the nodes to a measurable array so we can get the length
4021
- const nodesArr = Array.from(nodes);
4022
-
4023
- // If the nodes array has a length, the dropdown is labeled
4024
- this.labeled = nodesArr.length > 0;
4025
- }
4026
-
4027
4274
  /**
4028
4275
  * Returns HTML for the common portion of the layouts.
4029
4276
  * @private
@@ -4036,24 +4283,19 @@ class AuroDropdown extends AuroElement {
4036
4283
  <div
4037
4284
  id="trigger"
4038
4285
  class="${e$2(this.commonWrapperClasses)}" part="wrapper"
4039
- tabindex="${this.tabIndex}"
4286
+ tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
4040
4287
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4041
- aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4042
- aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
4288
+ aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4289
+ aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
4043
4290
  aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
4044
4291
  @focusin="${this.handleFocusin}"
4045
4292
  @blur="${this.handleFocusOut}">
4046
- <div class="triggerContentWrapper">
4047
- <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
4048
- <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
4049
- </label>
4050
- <div class="triggerContent">
4051
- <slot
4052
- name="trigger"
4053
- @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4054
- </div>
4293
+ <div class="triggerContentWrapper" id="triggerLabel">
4294
+ <slot
4295
+ name="trigger"
4296
+ @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4055
4297
  </div>
4056
- ${this.chevron || this.common ? u$1`
4298
+ ${this.chevron ? u$1`
4057
4299
  <div
4058
4300
  id="showStateIcon"
4059
4301
  class="chevron"
@@ -4074,11 +4316,9 @@ class AuroDropdown extends AuroElement {
4074
4316
  <div id="bibSizer" part="size"></div>
4075
4317
  <${this.dropdownBibTag}
4076
4318
  id="bib"
4319
+ shape="${this.shape}"
4077
4320
  ?data-show="${this.isPopoverVisible}"
4078
- ?isfullscreen="${this.isBibFullscreen}"
4079
- ?common="${this.common}"
4080
- ?rounded="${this.common || this.rounded}"
4081
- ?inset="${this.common || this.inset}">
4321
+ ?isfullscreen="${this.isBibFullscreen}">
4082
4322
  <div class="slotContent">
4083
4323
  <slot @slotchange="${this.handleDefaultSlot}"></slot>
4084
4324
  </div>
@@ -4093,62 +4333,13 @@ class AuroDropdown extends AuroElement {
4093
4333
  * @returns {html} - Returns HTML for the classic layout.
4094
4334
  */
4095
4335
  renderLayoutClassic() {
4336
+ // TODO: check with Doug why this was never used?
4337
+ const helpTextClasses = {
4338
+ 'helpText': true
4339
+ };
4096
4340
 
4097
4341
  return u$1`
4098
- <div>
4099
- <div
4100
- id="trigger"
4101
- class="trigger"
4102
- part="trigger"
4103
- tabindex="${this.tabIndex}"
4104
- ?showBorder="${this.showTriggerBorders}"
4105
- role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4106
- aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4107
- aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
4108
- aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
4109
- >
4110
- <div class="triggerContentWrapper">
4111
- <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
4112
- <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
4113
- </label>
4114
- <div class="triggerContent">
4115
- <slot
4116
- name="trigger"
4117
- @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4118
- </div>
4119
- </div>
4120
- ${this.chevron || this.common ? u$1`
4121
- <div
4122
- id="showStateIcon"
4123
- part="chevron">
4124
- <${this.iconTag}
4125
- category="interface"
4126
- name="chevron-down"
4127
- ?onDark="${this.onDark}"
4128
- variant="${this.disabled ? 'disabled' : 'muted'}">
4129
- >
4130
- </${this.iconTag}>
4131
- </div>
4132
- ` : undefined }
4133
- </div>
4134
- <${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
4135
- <slot name="helpText"></slot>
4136
- </${this.helpTextTag}>
4137
-
4138
- <div id="bibSizer" part="size"></div>
4139
- <${this.dropdownBibTag}
4140
- id="bib"
4141
- ?data-show="${this.isPopoverVisible}"
4142
- ?isfullscreen="${this.isBibFullscreen}"
4143
- ?common="${this.common}"
4144
- ?rounded="${this.common || this.rounded}"
4145
- ?inset="${this.common || this.inset}"
4146
- >
4147
- <div class="slotContent">
4148
- <slot @slotchange="${this.handleDefaultSlot}"></slot>
4149
- </div>
4150
- </${this.dropdownBibTag}>
4151
- </div>
4342
+ ${this.renderBasicHtml(helpTextClasses)}
4152
4343
  `;
4153
4344
  }
4154
4345