@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
@@ -61,7 +61,7 @@ const t=globalThis,e$1=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShad
61
61
  * @license
62
62
  * Copyright 2017 Google LLC
63
63
  * SPDX-License-Identifier: BSD-3-Clause
64
- */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");
64
+ */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");
65
65
 
66
66
  /**
67
67
  * @license
@@ -1755,7 +1755,7 @@ class AuroFloatingUI {
1755
1755
  */
1756
1756
  mirrorSize() {
1757
1757
  // mirror the boxsize from bibSizer
1758
- if (this.element.bibSizer) {
1758
+ if (this.element.bibSizer && this.element.matchWidth) {
1759
1759
  const sizerStyle = window.getComputedStyle(this.element.bibSizer);
1760
1760
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
1761
1761
  if (sizerStyle.width !== '0px') {
@@ -1891,6 +1891,7 @@ class AuroFloatingUI {
1891
1891
  this.element.bib.style.left = "0px";
1892
1892
  this.element.bib.style.width = '';
1893
1893
  this.element.bib.style.height = '';
1894
+ this.element.style.contain = '';
1894
1895
 
1895
1896
  // reset the size that was mirroring `size` css-part
1896
1897
  const bibContent = this.element.bib.shadowRoot.querySelector(".container");
@@ -1915,6 +1916,7 @@ class AuroFloatingUI {
1915
1916
  this.element.bib.style.position = '';
1916
1917
  this.element.bib.removeAttribute('isfullscreen');
1917
1918
  this.element.isBibFullscreen = false;
1919
+ this.element.style.contain = 'layout';
1918
1920
  }
1919
1921
 
1920
1922
  const isChanged = this.strategy && this.strategy !== value;
@@ -1967,13 +1969,13 @@ class AuroFloatingUI {
1967
1969
  if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
1968
1970
  return;
1969
1971
  }
1970
-
1972
+
1971
1973
  // if fullscreen bib is in fullscreen mode, do not close
1972
1974
  if (this.element.bib.hasAttribute('isfullscreen')) {
1973
1975
  return;
1974
1976
  }
1975
1977
 
1976
- this.hideBib();
1978
+ this.hideBib("keydown");
1977
1979
  }
1978
1980
 
1979
1981
  setupHideHandlers() {
@@ -1998,7 +2000,7 @@ class AuroFloatingUI {
1998
2000
  document.expandedAuroFormkitDropdown = null;
1999
2001
  document.expandedAuroFloater = this;
2000
2002
  } else {
2001
- this.hideBib();
2003
+ this.hideBib("click");
2002
2004
  }
2003
2005
  }
2004
2006
  };
@@ -2011,7 +2013,7 @@ class AuroFloatingUI {
2011
2013
  // if something else is open, let it handle itself
2012
2014
  return;
2013
2015
  }
2014
- this.hideBib();
2016
+ this.hideBib("keydown");
2015
2017
  }
2016
2018
  };
2017
2019
 
@@ -2094,7 +2096,11 @@ class AuroFloatingUI {
2094
2096
  }
2095
2097
  }
2096
2098
 
2097
- hideBib() {
2099
+ /**
2100
+ * Hides the floating UI element.
2101
+ * @param {String} eventType - The event type that triggered the hiding action.
2102
+ */
2103
+ hideBib(eventType = "unknown") {
2098
2104
  if (!this.element.disabled && !this.element.noToggle) {
2099
2105
  this.lockScroll(false);
2100
2106
  this.element.triggerChevron?.removeAttribute('data-expanded');
@@ -2105,7 +2111,7 @@ class AuroFloatingUI {
2105
2111
  if (this.showing) {
2106
2112
  this.cleanupHideHandlers();
2107
2113
  this.showing = false;
2108
- this.dispatchEventDropdownToggle();
2114
+ this.dispatchEventDropdownToggle(eventType);
2109
2115
  }
2110
2116
  }
2111
2117
  document.expandedAuroFloater = null;
@@ -2114,11 +2120,13 @@ class AuroFloatingUI {
2114
2120
  /**
2115
2121
  * @private
2116
2122
  * @returns {void} Dispatches event with an object showing the state of the dropdown.
2123
+ * @param {String} eventType - The event type that triggered the toggle action.
2117
2124
  */
2118
- dispatchEventDropdownToggle() {
2125
+ dispatchEventDropdownToggle(eventType) {
2119
2126
  const event = new CustomEvent(this.eventPrefix ? `${this.eventPrefix}-toggled` : 'toggled', {
2120
2127
  detail: {
2121
2128
  expanded: this.showing,
2129
+ eventType: eventType || "unknown",
2122
2130
  },
2123
2131
  composed: true
2124
2132
  });
@@ -2128,7 +2136,7 @@ class AuroFloatingUI {
2128
2136
 
2129
2137
  handleClick() {
2130
2138
  if (this.element.isPopoverVisible) {
2131
- this.hideBib();
2139
+ this.hideBib("click");
2132
2140
  } else {
2133
2141
  this.showBib();
2134
2142
  }
@@ -2151,8 +2159,9 @@ class AuroFloatingUI {
2151
2159
  // Space is included as it's expected behavior for interactive elements
2152
2160
 
2153
2161
  const origin = event.composedPath()[0];
2154
- if (event.key === 'Enter' || ((!origin || origin.tagName !== "INPUT") && event.key === ' ')) {
2155
- event.preventDefault(); // Prevent page scroll on space
2162
+ if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
2163
+
2164
+ event.preventDefault();
2156
2165
  this.handleClick();
2157
2166
  }
2158
2167
  break;
@@ -2163,7 +2172,7 @@ class AuroFloatingUI {
2163
2172
  break;
2164
2173
  case 'mouseleave':
2165
2174
  if (this.element.hoverToggle) {
2166
- this.hideBib();
2175
+ this.hideBib("mouseleave");
2167
2176
  }
2168
2177
  break;
2169
2178
  case 'focus':
@@ -2306,6 +2315,267 @@ class AuroFloatingUI {
2306
2315
  }
2307
2316
  }
2308
2317
 
2318
+ // Selectors for focusable elements
2319
+ const FOCUSABLE_SELECTORS = [
2320
+ 'a[href]',
2321
+ 'button:not([disabled])',
2322
+ 'textarea:not([disabled])',
2323
+ 'input:not([disabled])',
2324
+ 'select:not([disabled])',
2325
+ '[role="tab"]:not([disabled])',
2326
+ '[role="link"]:not([disabled])',
2327
+ '[role="button"]:not([disabled])',
2328
+ '[tabindex]:not([tabindex="-1"])',
2329
+ '[contenteditable]:not([contenteditable="false"])'
2330
+ ];
2331
+
2332
+ // List of custom components that are known to be focusable
2333
+ const FOCUSABLE_COMPONENTS = [
2334
+ 'auro-checkbox',
2335
+ 'auro-radio',
2336
+ 'auro-dropdown',
2337
+ 'auro-button',
2338
+ 'auro-combobox',
2339
+ 'auro-input',
2340
+ 'auro-counter',
2341
+ 'auro-menu',
2342
+ 'auro-select',
2343
+ 'auro-datepicker',
2344
+ 'auro-hyperlink',
2345
+ 'auro-accordion',
2346
+ ];
2347
+
2348
+ /**
2349
+ * Determines if a given element is a custom focusable component.
2350
+ * Returns true if the element matches a known focusable component and is not disabled.
2351
+ *
2352
+ * @param {HTMLElement} element The element to check for focusability.
2353
+ * @returns {boolean} True if the element is a focusable custom component, false otherwise.
2354
+ */
2355
+ function isFocusableComponent(element) {
2356
+ const componentName = element.tagName.toLowerCase();
2357
+
2358
+ // Guard Clause: Element is a focusable component
2359
+ if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
2360
+
2361
+ // Guard Clause: Element is not disabled
2362
+ if (element.hasAttribute('disabled')) return false;
2363
+
2364
+ // Guard Clause: The element is a hyperlink and has no href attribute
2365
+ if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
2366
+
2367
+ // If all guard clauses pass, the element is a focusable component
2368
+ return true;
2369
+ }
2370
+
2371
+ /**
2372
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
2373
+ * Returns a unique, ordered array of elements that can receive focus.
2374
+ *
2375
+ * @param {HTMLElement} container The container to search within
2376
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
2377
+ */
2378
+ function getFocusableElements(container) {
2379
+ // Get elements in DOM order by walking the tree
2380
+ const orderedFocusableElements = [];
2381
+
2382
+ // Define a recursive function to collect focusable elements in DOM order
2383
+ const collectFocusableElements = (root) => {
2384
+ // Check if current element is focusable
2385
+ if (root.nodeType === Node.ELEMENT_NODE) {
2386
+ // Check if this is a custom component that is focusable
2387
+ const isComponentFocusable = isFocusableComponent(root);
2388
+
2389
+ if (isComponentFocusable) {
2390
+ // Add the component itself as a focusable element and don't traverse its shadow DOM
2391
+ orderedFocusableElements.push(root);
2392
+ return; // Skip traversing inside this component
2393
+ }
2394
+
2395
+ // Check if the element itself matches any selector
2396
+ for (const selector of FOCUSABLE_SELECTORS) {
2397
+ if (root.matches?.(selector)) {
2398
+ orderedFocusableElements.push(root);
2399
+ break; // Once we know it's focusable, no need to check other selectors
2400
+ }
2401
+ }
2402
+
2403
+ // Process shadow DOM only for non-Auro components
2404
+ if (root.shadowRoot) {
2405
+ // Process shadow DOM children in order
2406
+ if (root.shadowRoot.children) {
2407
+ Array.from(root.shadowRoot.children).forEach(child => {
2408
+ collectFocusableElements(child);
2409
+ });
2410
+ }
2411
+ }
2412
+
2413
+ // Process slots and their assigned nodes in order
2414
+ if (root.tagName === 'SLOT') {
2415
+ const assignedNodes = root.assignedNodes({ flatten: true });
2416
+ for (const node of assignedNodes) {
2417
+ collectFocusableElements(node);
2418
+ }
2419
+ } else {
2420
+ // Process light DOM children in order
2421
+ if (root.children) {
2422
+ Array.from(root.children).forEach(child => {
2423
+ collectFocusableElements(child);
2424
+ });
2425
+ }
2426
+ }
2427
+ }
2428
+ };
2429
+
2430
+ // Start the traversal from the container
2431
+ collectFocusableElements(container);
2432
+
2433
+ // Remove duplicates that might have been collected through different paths
2434
+ // while preserving order
2435
+ const uniqueElements = [];
2436
+ const seen = new Set();
2437
+
2438
+ for (const element of orderedFocusableElements) {
2439
+ if (!seen.has(element)) {
2440
+ seen.add(element);
2441
+ uniqueElements.push(element);
2442
+ }
2443
+ }
2444
+
2445
+ return uniqueElements;
2446
+ }
2447
+
2448
+ /**
2449
+ * FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
2450
+ * It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
2451
+ */
2452
+ class FocusTrap {
2453
+ /**
2454
+ * Creates a new FocusTrap instance for the given container element.
2455
+ * Initializes event listeners and prepares the container for focus management.
2456
+ *
2457
+ * @param {HTMLElement} container The DOM element to trap focus within.
2458
+ * @throws {Error} If the provided container is not a valid HTMLElement.
2459
+ */
2460
+ constructor(container) {
2461
+ if (!container || !(container instanceof HTMLElement)) {
2462
+ throw new Error("FocusTrap requires a valid HTMLElement.");
2463
+ }
2464
+
2465
+ this.container = container;
2466
+ this.tabDirection = 'forward'; // or 'backward'
2467
+
2468
+ this._init();
2469
+ }
2470
+
2471
+ /**
2472
+ * Initializes the focus trap by setting up event listeners and attributes on the container.
2473
+ * Prepares the container for focus management, including support for shadow DOM and inert attributes.
2474
+ *
2475
+ * @private
2476
+ */
2477
+ _init() {
2478
+
2479
+ // Add inert attribute to prevent focusing programmatically as well (if supported)
2480
+ if ('inert' in HTMLElement.prototype) {
2481
+ this.container.inert = false; // Ensure the container isn't inert
2482
+ this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
2483
+ }
2484
+
2485
+ // Track tab direction
2486
+ this.container.addEventListener('keydown', this._onKeydown);
2487
+ }
2488
+
2489
+ /**
2490
+ * Handles keydown events to manage tab navigation within the container.
2491
+ * Ensures that focus wraps around when reaching the first or last focusable element.
2492
+ *
2493
+ * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
2494
+ * @private
2495
+ */
2496
+ _onKeydown = (e) => {
2497
+
2498
+ if (e.key === 'Tab') {
2499
+
2500
+ // Set the tab direction based on the key pressed
2501
+ this.tabDirection = e.shiftKey ? 'backward' : 'forward';
2502
+
2503
+ // Get the active element(s) in the document and shadow root
2504
+ // This will include the active element in the shadow DOM if it exists
2505
+ // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
2506
+ let activeElement = document.activeElement;
2507
+ const actives = [activeElement];
2508
+ while (activeElement?.shadowRoot?.activeElement) {
2509
+ actives.push(activeElement.shadowRoot.activeElement);
2510
+ activeElement = activeElement.shadowRoot.activeElement;
2511
+ }
2512
+
2513
+ // Update the focusable elements
2514
+ const focusables = this._getFocusableElements();
2515
+
2516
+ // If we're at either end of the focusable elements, wrap around to the other end
2517
+ const focusIndex =
2518
+ (actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
2519
+ ? focusables.length - 1
2520
+ : actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
2521
+ ? 0
2522
+ : null;
2523
+
2524
+ if (focusIndex !== null) {
2525
+ focusables[focusIndex].focus();
2526
+ e.preventDefault(); // Prevent default tab behavior
2527
+ e.stopPropagation(); // Stop the event from bubbling up
2528
+ }
2529
+ }
2530
+ };
2531
+
2532
+ /**
2533
+ * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
2534
+ * Returns a unique, ordered array of elements that can receive focus.
2535
+ *
2536
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
2537
+ * @private
2538
+ */
2539
+ _getFocusableElements() {
2540
+ // Use the imported utility function to get focusable elements
2541
+ const elements = getFocusableElements(this.container);
2542
+
2543
+ // Filter out any elements with the 'focus-bookend' class
2544
+ return elements;
2545
+ }
2546
+
2547
+ /**
2548
+ * Moves focus to the first focusable element within the container.
2549
+ * Useful for setting initial focus when activating the focus trap.
2550
+ */
2551
+ focusFirstElement() {
2552
+ const focusables = this._getFocusableElements();
2553
+ if (focusables.length) focusables[0].focus();
2554
+ }
2555
+
2556
+ /**
2557
+ * Moves focus to the last focusable element within the container.
2558
+ * Useful for setting focus when deactivating or cycling focus in reverse.
2559
+ */
2560
+ focusLastElement() {
2561
+ const focusables = this._getFocusableElements();
2562
+ if (focusables.length) focusables[focusables.length - 1].focus();
2563
+ }
2564
+
2565
+ /**
2566
+ * Removes event listeners and attributes added by the focus trap.
2567
+ * Call this method to clean up when the focus trap is no longer needed.
2568
+ */
2569
+ disconnect() {
2570
+
2571
+ if (this.container.hasAttribute('data-focus-trap-container')) {
2572
+ this.container.removeAttribute('data-focus-trap-container');
2573
+ }
2574
+
2575
+ this.container.removeEventListener('keydown', this._onKeydown);
2576
+ }
2577
+ }
2578
+
2309
2579
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
2310
2580
  // See LICENSE in the project root for license information.
2311
2581
 
@@ -2418,7 +2688,7 @@ const cacheFetch = (uri, options = {}) => {
2418
2688
  return _fetchMap.get(uri);
2419
2689
  };
2420
2690
 
2421
- 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}`;
2691
+ 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}`;
2422
2692
 
2423
2693
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
2424
2694
  // See LICENSE in the project root for license information.
@@ -2461,7 +2731,7 @@ class BaseIcon extends AuroElement$1 {
2461
2731
 
2462
2732
  static get styles() {
2463
2733
  return i$2`
2464
- ${styleCss$2}
2734
+ ${styleCss$3}
2465
2735
  `;
2466
2736
  }
2467
2737
 
@@ -2663,7 +2933,7 @@ class AuroIcon extends BaseIcon {
2663
2933
  return [
2664
2934
  super.styles,
2665
2935
  i$2`${tokensCss$2}`,
2666
- i$2`${styleCss$2}`,
2936
+ i$2`${styleCss$3}`,
2667
2937
  i$2`${colorCss$3}`
2668
2938
  ];
2669
2939
  }
@@ -2698,8 +2968,12 @@ class AuroIcon extends BaseIcon {
2698
2968
  async firstUpdated() {
2699
2969
  await super.firstUpdated();
2700
2970
 
2701
- // Removes the SVG description for screenreader if ariaHidden is set to true
2702
- if (!this.hasAttribute('ariaHidden') && this.svg) {
2971
+ /**
2972
+ * icons provide a description for screen readers. Icon only instances Auro-button
2973
+ * depend on this description to provide context for the user using a screen reader.
2974
+ * Removes the SVG description for screen reader if ariaHidden is set to true.
2975
+ */
2976
+ if (this.hasAttribute('ariaHidden') && this.svg) {
2703
2977
  const svgDesc = this.svg.querySelector('desc');
2704
2978
 
2705
2979
  if (svgDesc) {
@@ -2745,11 +3019,11 @@ class AuroIcon extends BaseIcon {
2745
3019
 
2746
3020
  var iconVersion = '6.1.2';
2747
3021
 
2748
- 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}`;
3022
+ 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}`;
2749
3023
 
2750
3024
  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)}`;
2751
3025
 
2752
- 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)}`;
3026
+ 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)}`;
2753
3027
 
2754
3028
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
2755
3029
  // See LICENSE in the project root for license information.
@@ -2770,7 +3044,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
2770
3044
  */
2771
3045
 
2772
3046
  class AuroDropdownBib extends i {
2773
-
3047
+ // not extending AuroElement because Bib needs only `shape` prop
2774
3048
  constructor() {
2775
3049
  super();
2776
3050
 
@@ -2780,11 +3054,14 @@ class AuroDropdownBib extends i {
2780
3054
  this._mobileBreakpointValue = undefined;
2781
3055
 
2782
3056
  AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
3057
+
3058
+ this.shape = "rounded";
3059
+ this.matchWidth = false;
2783
3060
  }
2784
3061
 
2785
3062
  static get styles() {
2786
3063
  return [
2787
- styleCss$1,
3064
+ styleCss$2,
2788
3065
  colorCss$2,
2789
3066
  tokensCss$1
2790
3067
  ];
@@ -2817,6 +3094,15 @@ class AuroDropdownBib extends i {
2817
3094
  reflect: true
2818
3095
  },
2819
3096
 
3097
+ /**
3098
+ * If declared, the bib width will match the trigger width.
3099
+ * @private
3100
+ */
3101
+ matchWidth: {
3102
+ type: Boolean,
3103
+ reflect: true
3104
+ },
3105
+
2820
3106
  /**
2821
3107
  * If declared, will apply border-radius to the bib.
2822
3108
  */
@@ -2830,6 +3116,11 @@ class AuroDropdownBib extends i {
2830
3116
  */
2831
3117
  bibTemplate: {
2832
3118
  type: Object
3119
+ },
3120
+
3121
+ shape: {
3122
+ type: String,
3123
+ reflect: true
2833
3124
  }
2834
3125
  };
2835
3126
  }
@@ -2909,8 +3200,16 @@ class AuroDropdownBib extends i {
2909
3200
 
2910
3201
  // function that renders the HTML and CSS into the scope of the component
2911
3202
  render() {
3203
+ const classes = {
3204
+ container: true
3205
+ };
3206
+
3207
+ // Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
3208
+ // mimicking the class naming convention used in AuroElement.resetShapeClasses.
3209
+ classes[`shape-${this.shape}`] = true;
3210
+
2912
3211
  return u$1`
2913
- <div class="container" part="bibContainer">
3212
+ <div class="${e$2(classes)}" part="bibContainer">
2914
3213
  <slot></slot>
2915
3214
  </div>
2916
3215
  `;
@@ -2919,21 +3218,23 @@ class AuroDropdownBib extends i {
2919
3218
 
2920
3219
  var dropdownVersion = '3.0.0';
2921
3220
 
2922
- 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}`;
3221
+ 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}`;
2923
3222
 
2924
- 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)}`;
3223
+ 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)}`;
2925
3224
 
2926
- 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))}`;
3225
+ 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%}`;
2927
3226
 
2928
- 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)}`;
3227
+ var classicColorCss = i$2``;
2929
3228
 
2930
- 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))}`;
3229
+ 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)}`;
2931
3230
 
2932
- 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)}`;
3231
+ 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)}`;
2933
3232
 
2934
- 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)}`;
3233
+ 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)}`;
2935
3234
 
2936
- 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}`;
3235
+ 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)}`;
3236
+
3237
+ 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}`;
2937
3238
 
2938
3239
  var tokensCss = i$2`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
2939
3240
 
@@ -3174,18 +3475,21 @@ class AuroElement extends i {
3174
3475
  }
3175
3476
 
3176
3477
  resetShapeClasses() {
3177
- if (this.shape && this.size) {
3178
- const wrapper = this.shadowRoot.querySelector('.wrapper');
3478
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
3179
3479
 
3180
- if (wrapper) {
3181
- wrapper.classList.forEach((className) => {
3182
- if (className.startsWith('shape-')) {
3183
- wrapper.classList.remove(className);
3184
- }
3185
- });
3480
+ if (wrapper) {
3481
+ wrapper.classList.forEach((className) => {
3482
+ if (className.startsWith('shape-')) {
3483
+ wrapper.classList.remove(className);
3484
+ }
3485
+ });
3186
3486
 
3187
- wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
3188
- }
3487
+ }
3488
+
3489
+ if (this.shape && this.size) {
3490
+ wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
3491
+ } else {
3492
+ wrapper.classList.add('shape-none');
3189
3493
  }
3190
3494
  }
3191
3495
 
@@ -3235,10 +3539,9 @@ class AuroElement extends i {
3235
3539
  // See LICENSE in the project root for license information.
3236
3540
 
3237
3541
 
3238
- /**
3239
- * @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
3542
+
3543
+ /*
3240
3544
  * @slot - Default slot for the popover content.
3241
- * @slot label - Defines the content of the label.
3242
3545
  * @slot helpText - Defines the content of the helpText.
3243
3546
  * @slot trigger - Defines the content of the trigger.
3244
3547
  * @csspart trigger - The trigger content container.
@@ -3257,23 +3560,25 @@ class AuroDropdown extends AuroElement {
3257
3560
  this.matchWidth = false;
3258
3561
  this.noHideOnThisFocusLoss = false;
3259
3562
 
3260
- this.errorMessage = ''; // TODO!
3563
+ this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
3261
3564
 
3262
3565
  // Layout Config
3263
- this.layout = 'classic';
3264
- this.shape = 'rounded';
3265
- this.size = 'xl';
3566
+ this.layout = undefined;
3567
+ this.shape = undefined;
3568
+ this.size = undefined;
3569
+
3266
3570
  this.parentBorder = false;
3267
3571
 
3268
- this.privateDefaults();
3269
- }
3572
+ /** @private */
3573
+ this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
3270
3574
 
3271
- get commonLabelClasses() {
3272
- return {
3273
- // 'withValue': this.value && this.value.length > 0
3274
- };
3575
+ this.privateDefaults();
3275
3576
  }
3276
3577
 
3578
+ /**
3579
+ * @private
3580
+ * @returns {object} Class definition for the wrapper element.
3581
+ */
3277
3582
  get commonWrapperClasses() {
3278
3583
  return {
3279
3584
  'trigger': true,
@@ -3291,13 +3596,10 @@ class AuroDropdown extends AuroElement {
3291
3596
  privateDefaults() {
3292
3597
  this.chevron = false;
3293
3598
  this.disabled = false;
3599
+ this.disableFocusTrap = false;
3294
3600
  this.error = false;
3295
- this.inset = false;
3296
- this.rounded = false;
3297
3601
  this.tabIndex = 0;
3298
3602
  this.noToggle = false;
3299
- this.a11yAutocomplete = 'none';
3300
- this.labeled = true;
3301
3603
  this.a11yRole = 'button';
3302
3604
  this.onDark = false;
3303
3605
  this.showTriggerBorders = true;
@@ -3393,6 +3695,18 @@ class AuroDropdown extends AuroElement {
3393
3695
  this.floater.showBib();
3394
3696
  }
3395
3697
 
3698
+ /**
3699
+ * When bib is open, focus on the first element inside of bib.
3700
+ * If not, trigger element will get focus.
3701
+ */
3702
+ focus() {
3703
+ if (this.isPopoverVisible && this.focusTrap) {
3704
+ this.focusTrap.focusFirstElement();
3705
+ } else {
3706
+ this.trigger.focus();
3707
+ }
3708
+ }
3709
+
3396
3710
  // function to define props used within the scope of this component
3397
3711
  static get properties() {
3398
3712
  return {
@@ -3406,6 +3720,15 @@ class AuroDropdown extends AuroElement {
3406
3720
  reflect: true
3407
3721
  },
3408
3722
 
3723
+ /**
3724
+ * If declared, the dropdown will only show by calling the API .show() public method.
3725
+ * @default false
3726
+ */
3727
+ disableEventShow: {
3728
+ type: Boolean,
3729
+ reflect: true
3730
+ },
3731
+
3409
3732
  /**
3410
3733
  * If declared, applies a border around the trigger slot.
3411
3734
  */
@@ -3424,17 +3747,17 @@ class AuroDropdown extends AuroElement {
3424
3747
  },
3425
3748
 
3426
3749
  /**
3427
- * If declared, the dropdown will be styled with the common theme.
3750
+ * If declared, the dropdown is not interactive.
3428
3751
  */
3429
- common: {
3752
+ disabled: {
3430
3753
  type: Boolean,
3431
3754
  reflect: true
3432
3755
  },
3433
3756
 
3434
3757
  /**
3435
- * If declared, the dropdown is not interactive.
3758
+ * If declared, the focus trap inside of bib will be turned off.
3436
3759
  */
3437
- disabled: {
3760
+ disableFocusTrap: {
3438
3761
  type: Boolean,
3439
3762
  reflect: true
3440
3763
  },
@@ -3479,27 +3802,13 @@ class AuroDropdown extends AuroElement {
3479
3802
  reflect: true
3480
3803
  },
3481
3804
 
3482
- /**
3483
- * Makes the trigger to be full width of its parent container.
3484
- */
3485
- fluid: {
3486
- type: Boolean,
3487
- reflect: true
3488
- },
3489
-
3490
- /**
3491
- * If declared, will apply padding around trigger slot content.
3492
- */
3493
- inset: {
3494
- type: Boolean,
3495
- reflect: true
3496
- },
3497
-
3498
3805
  /**
3499
3806
  * If true, the dropdown bib is displayed.
3500
3807
  */
3501
3808
  isPopoverVisible: {
3502
- type: Boolean
3809
+ type: Boolean,
3810
+ reflect: true,
3811
+ attribute: 'open'
3503
3812
  },
3504
3813
 
3505
3814
  /**
@@ -3538,15 +3847,6 @@ class AuroDropdown extends AuroElement {
3538
3847
  reflect: true
3539
3848
  },
3540
3849
 
3541
- /**
3542
- * Defines if there is a label preset.
3543
- * @private
3544
- */
3545
- labeled: {
3546
- type: Boolean,
3547
- reflect: true
3548
- },
3549
-
3550
3850
  /**
3551
3851
  * Defines if the trigger should size based on the parent element providing the border UI.
3552
3852
  * @private
@@ -3607,6 +3907,9 @@ class AuroDropdown extends AuroElement {
3607
3907
  reflect: true
3608
3908
  },
3609
3909
 
3910
+ /**
3911
+ * If declared, and a function is set, that function will execute when the slot content is updated.
3912
+ */
3610
3913
  onSlotChange: {
3611
3914
  type: Function,
3612
3915
  reflect: false
@@ -3621,14 +3924,6 @@ class AuroDropdown extends AuroElement {
3621
3924
  reflect: true
3622
3925
  },
3623
3926
 
3624
- /**
3625
- * If declared, will apply border-radius to trigger and default slots.
3626
- */
3627
- rounded: {
3628
- type: Boolean,
3629
- reflect: true
3630
- },
3631
-
3632
3927
  /**
3633
3928
  * @private
3634
3929
  */
@@ -3643,22 +3938,15 @@ class AuroDropdown extends AuroElement {
3643
3938
  type: String || undefined,
3644
3939
  attribute: false,
3645
3940
  reflect: false
3646
- },
3647
-
3648
- /**
3649
- * The value for the aria-autocomplete attribute of the trigger element.
3650
- */
3651
- a11yAutocomplete: {
3652
- type: String,
3653
- attribute: false,
3654
3941
  }
3655
3942
  };
3656
3943
  }
3657
3944
 
3658
3945
  static get styles() {
3659
3946
  return [
3660
- colorCss$1,
3947
+ styleCss$1,
3661
3948
  tokensCss$1,
3949
+ colorCss$1,
3662
3950
 
3663
3951
  // default layout
3664
3952
  classicColorCss,
@@ -3720,13 +4008,27 @@ class AuroDropdown extends AuroElement {
3720
4008
  if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
3721
4009
  this.handleTriggerContentSlotChange();
3722
4010
  }
4011
+ }
3723
4012
 
4013
+ /**
4014
+ * Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
4015
+ * @private
4016
+ * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
4017
+ */
4018
+ handleDropdownToggle(event) {
4019
+ this.updateFocusTrap();
4020
+ this.isPopoverVisible = event.detail.expanded;
4021
+ const eventType = event.detail.eventType || "unknown";
4022
+ if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
4023
+ this.trigger.focus();
4024
+ }
3724
4025
  }
3725
4026
 
3726
4027
  firstUpdated() {
3727
4028
 
3728
4029
  // Configure the floater to, this will generate the ID for the bib
3729
4030
  this.floater.configure(this, 'auroDropdown');
4031
+ this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
3730
4032
 
3731
4033
  /**
3732
4034
  * @description Let subscribers know that the dropdown ID ha been generated and added.
@@ -3744,6 +4046,13 @@ class AuroDropdown extends AuroElement {
3744
4046
 
3745
4047
  // Add the tag name as an attribute if it is different than the component name
3746
4048
  this.runtimeUtils.handleComponentTagRename(this, 'auro-dropdown');
4049
+
4050
+ this.trigger.addEventListener('click', () => {
4051
+ this.dispatchEvent(new CustomEvent('auroDropdown-triggerClick', {
4052
+ bubbles: true,
4053
+ composed: true
4054
+ }));
4055
+ });
3747
4056
  }
3748
4057
 
3749
4058
  /**
@@ -3787,70 +4096,33 @@ class AuroDropdown extends AuroElement {
3787
4096
  }
3788
4097
 
3789
4098
  /**
3790
- * Function to support @focusout event.
3791
4099
  * @private
3792
- * @return {void}
3793
4100
  */
3794
- handleFocusout() {
3795
- this.hasFocus = false;
4101
+ updateFocusTrap() {
4102
+ // If the dropdown is open, create a focus trap and focus the first element
4103
+ if (this.isPopoverVisible && !this.disableFocusTrap) {
4104
+ this.focusTrap = new FocusTrap(this.bibContent);
4105
+ this.focusTrap.focusFirstElement();
4106
+ return;
4107
+ }
4108
+
4109
+ // Guard Clause: Ensure there is a focus trap currently active before continuing
4110
+ if (!this.focusTrap) {
4111
+ return;
4112
+ }
4113
+
4114
+ // If the dropdown is not open, disconnect the focus trap if it exists
4115
+ this.focusTrap.disconnect();
4116
+ this.focusTrap = undefined;
3796
4117
  }
3797
4118
 
3798
4119
  /**
3799
- * Determines if the element or any children are focusable.
4120
+ * Function to support @focusout event.
3800
4121
  * @private
3801
- * @param {HTMLElement} element - Element to check.
3802
- * @returns {Boolean} - True if the element or any children are focusable.
4122
+ * @return {void}
3803
4123
  */
3804
- containsFocusableElement(element) {
3805
- this.showTriggerBorders = true;
3806
-
3807
- const nodes = [
3808
- element,
3809
- ...element.children
3810
- ];
3811
-
3812
- const focusableElements = [
3813
- 'a',
3814
- 'auro-hyperlink',
3815
- 'button',
3816
- 'auro-button',
3817
- 'input',
3818
- 'auro-input',
3819
- ];
3820
-
3821
- const focusableElementsThatNeedBorders = ['auro-input'];
3822
-
3823
- const result = nodes.some((node) => {
3824
- const tagName = node.tagName.toLowerCase();
3825
-
3826
- if (node.tabIndex > -1) {
3827
- return true;
3828
- }
3829
-
3830
- if (focusableElements.includes(tagName)) {
3831
- if ((tagName === 'a' || tagName === 'auro-hyperlink' || node.hasAttribute('auro-hyperlink')) && node.hasAttribute('href')) {
3832
- return true;
3833
- }
3834
- if (!node.hasAttribute('disabled')) {
3835
- return true;
3836
- }
3837
- }
3838
-
3839
- if (focusableElements.some((focusableElement) => focusableElement.startsWith('auro-') && (focusableElement === tagName || node.hasAttribute(focusableElement)))) {
3840
- return true;
3841
- }
3842
-
3843
- return false;
3844
- });
3845
-
3846
- if (result) {
3847
- this.showTriggerBorders = !nodes.some((node) => {
3848
- const tagName = node.tagName.toLowerCase();
3849
- return focusableElements.includes(tagName) && !focusableElementsThatNeedBorders.includes(tagName);
3850
- });
3851
- }
3852
-
3853
- return result;
4124
+ handleFocusout() {
4125
+ this.hasFocus = false;
3854
4126
  }
3855
4127
 
3856
4128
  /**
@@ -3946,14 +4218,13 @@ class AuroDropdown extends AuroElement {
3946
4218
  * @returns {void}
3947
4219
  */
3948
4220
  handleTriggerContentSlotChange(event) {
3949
-
3950
4221
  this.floater.handleTriggerTabIndex();
3951
4222
 
3952
4223
  // Get the trigger
3953
4224
  const trigger = this.shadowRoot.querySelector('#trigger');
3954
4225
 
3955
4226
  // Get the trigger slot
3956
- const triggerSlot = this.shadowRoot.querySelector('.triggerContent slot');
4227
+ const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
3957
4228
 
3958
4229
  // If there's a trigger slot
3959
4230
  if (triggerSlot) {
@@ -3965,7 +4236,7 @@ class AuroDropdown extends AuroElement {
3965
4236
  if (triggerContentNodes) {
3966
4237
 
3967
4238
  // See if any of them are focusable elements
3968
- this.triggerContentFocusable = triggerContentNodes.some((node) => this.containsFocusableElement(node));
4239
+ this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
3969
4240
 
3970
4241
  // If any of them are focusable elements
3971
4242
  if (this.triggerContentFocusable) {
@@ -4016,7 +4287,6 @@ class AuroDropdown extends AuroElement {
4016
4287
  *
4017
4288
  * @private
4018
4289
  * @method handleDefaultSlot
4019
- * @param {Event} event - The event object representing the slot change.
4020
4290
  * @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
4021
4291
  */
4022
4292
  handleDefaultSlot() {
@@ -4026,29 +4296,6 @@ class AuroDropdown extends AuroElement {
4026
4296
  }
4027
4297
  }
4028
4298
 
4029
- /**
4030
- * @private
4031
- * @method handleLabelSlotChange
4032
- * @param {event} event - The event object representing the slot change.
4033
- * @description Handles the slot change event for the label slot.
4034
- */
4035
- handleLabelSlotChange (event) {
4036
-
4037
- // Get the nodes from the event
4038
- const nodes = event.target.assignedNodes();
4039
-
4040
- // Guard clause for no nodes
4041
- if (!nodes) {
4042
- return;
4043
- }
4044
-
4045
- // Convert the nodes to a measurable array so we can get the length
4046
- const nodesArr = Array.from(nodes);
4047
-
4048
- // If the nodes array has a length, the dropdown is labeled
4049
- this.labeled = nodesArr.length > 0;
4050
- }
4051
-
4052
4299
  /**
4053
4300
  * Returns HTML for the common portion of the layouts.
4054
4301
  * @private
@@ -4061,24 +4308,19 @@ class AuroDropdown extends AuroElement {
4061
4308
  <div
4062
4309
  id="trigger"
4063
4310
  class="${e$2(this.commonWrapperClasses)}" part="wrapper"
4064
- tabindex="${this.tabIndex}"
4311
+ tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
4065
4312
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4066
- aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4067
- aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
4313
+ aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4314
+ aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
4068
4315
  aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
4069
4316
  @focusin="${this.handleFocusin}"
4070
4317
  @blur="${this.handleFocusOut}">
4071
- <div class="triggerContentWrapper">
4072
- <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
4073
- <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
4074
- </label>
4075
- <div class="triggerContent">
4076
- <slot
4077
- name="trigger"
4078
- @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4079
- </div>
4318
+ <div class="triggerContentWrapper" id="triggerLabel">
4319
+ <slot
4320
+ name="trigger"
4321
+ @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4080
4322
  </div>
4081
- ${this.chevron || this.common ? u$1`
4323
+ ${this.chevron ? u$1`
4082
4324
  <div
4083
4325
  id="showStateIcon"
4084
4326
  class="chevron"
@@ -4099,11 +4341,9 @@ class AuroDropdown extends AuroElement {
4099
4341
  <div id="bibSizer" part="size"></div>
4100
4342
  <${this.dropdownBibTag}
4101
4343
  id="bib"
4344
+ shape="${this.shape}"
4102
4345
  ?data-show="${this.isPopoverVisible}"
4103
- ?isfullscreen="${this.isBibFullscreen}"
4104
- ?common="${this.common}"
4105
- ?rounded="${this.common || this.rounded}"
4106
- ?inset="${this.common || this.inset}">
4346
+ ?isfullscreen="${this.isBibFullscreen}">
4107
4347
  <div class="slotContent">
4108
4348
  <slot @slotchange="${this.handleDefaultSlot}"></slot>
4109
4349
  </div>
@@ -4118,62 +4358,13 @@ class AuroDropdown extends AuroElement {
4118
4358
  * @returns {html} - Returns HTML for the classic layout.
4119
4359
  */
4120
4360
  renderLayoutClassic() {
4361
+ // TODO: check with Doug why this was never used?
4362
+ const helpTextClasses = {
4363
+ 'helpText': true
4364
+ };
4121
4365
 
4122
4366
  return u$1`
4123
- <div>
4124
- <div
4125
- id="trigger"
4126
- class="trigger"
4127
- part="trigger"
4128
- tabindex="${this.tabIndex}"
4129
- ?showBorder="${this.showTriggerBorders}"
4130
- role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
4131
- aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
4132
- aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
4133
- aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
4134
- >
4135
- <div class="triggerContentWrapper">
4136
- <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
4137
- <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
4138
- </label>
4139
- <div class="triggerContent">
4140
- <slot
4141
- name="trigger"
4142
- @slotchange="${this.handleTriggerContentSlotChange}"></slot>
4143
- </div>
4144
- </div>
4145
- ${this.chevron || this.common ? u$1`
4146
- <div
4147
- id="showStateIcon"
4148
- part="chevron">
4149
- <${this.iconTag}
4150
- category="interface"
4151
- name="chevron-down"
4152
- ?onDark="${this.onDark}"
4153
- variant="${this.disabled ? 'disabled' : 'muted'}">
4154
- >
4155
- </${this.iconTag}>
4156
- </div>
4157
- ` : undefined }
4158
- </div>
4159
- <${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
4160
- <slot name="helpText"></slot>
4161
- </${this.helpTextTag}>
4162
-
4163
- <div id="bibSizer" part="size"></div>
4164
- <${this.dropdownBibTag}
4165
- id="bib"
4166
- ?data-show="${this.isPopoverVisible}"
4167
- ?isfullscreen="${this.isBibFullscreen}"
4168
- ?common="${this.common}"
4169
- ?rounded="${this.common || this.rounded}"
4170
- ?inset="${this.common || this.inset}"
4171
- >
4172
- <div class="slotContent">
4173
- <slot @slotchange="${this.handleDefaultSlot}"></slot>
4174
- </div>
4175
- </${this.dropdownBibTag}>
4176
- </div>
4367
+ ${this.renderBasicHtml(helpTextClasses)}
4177
4368
  `;
4178
4369
  }
4179
4370