@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.9 → 0.0.0-pr624.91
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.
- package/components/bibtemplate/dist/auro-bibtemplate.d.ts +12 -2
- package/components/bibtemplate/dist/buttonVersion.d.ts +2 -0
- package/components/bibtemplate/dist/headerVersion.d.ts +1 -1
- package/components/bibtemplate/dist/iconVersion.d.ts +1 -1
- package/components/bibtemplate/dist/index.js +1241 -94
- package/components/bibtemplate/dist/registered.js +1241 -94
- package/components/checkbox/README.md +1 -1
- package/components/checkbox/demo/api.html +16 -10
- package/components/checkbox/demo/api.md +49 -15
- package/components/checkbox/demo/api.min.js +74 -46
- package/components/checkbox/demo/index.html +16 -10
- package/components/checkbox/demo/index.md +2 -2
- package/components/checkbox/demo/index.min.js +74 -46
- package/components/checkbox/demo/readme.html +16 -9
- package/components/checkbox/demo/readme.md +1 -1
- package/components/checkbox/dist/auro-checkbox-group.d.ts +1 -1
- package/components/checkbox/dist/auro-checkbox.d.ts +3 -3
- package/components/checkbox/dist/index.js +73 -45
- package/components/checkbox/dist/registered.js +73 -45
- package/components/combobox/demo/api.html +16 -10
- package/components/combobox/demo/api.md +115 -8
- package/components/combobox/demo/api.min.js +3305 -1002
- package/components/combobox/demo/index.html +16 -10
- package/components/combobox/demo/index.md +8 -34
- package/components/combobox/demo/index.min.js +3305 -1002
- package/components/combobox/demo/readme.html +16 -9
- package/components/combobox/dist/auro-combobox.d.ts +57 -14
- package/components/combobox/dist/index.js +2992 -836
- package/components/combobox/dist/registered.js +2992 -836
- package/components/counter/demo/api.html +17 -10
- package/components/counter/demo/api.md +158 -21
- package/components/counter/demo/api.min.js +3417 -765
- package/components/counter/demo/index.html +17 -10
- package/components/counter/demo/index.md +185 -34
- package/components/counter/demo/index.min.js +3417 -765
- package/components/counter/demo/readme.html +16 -9
- package/components/counter/dist/auro-counter-button.d.ts +2 -0
- package/components/counter/dist/auro-counter-group.d.ts +161 -11
- package/components/counter/dist/auro-counter.d.ts +16 -0
- package/components/counter/dist/helptextVersion.d.ts +2 -0
- package/components/counter/dist/iconVersion.d.ts +1 -1
- package/components/counter/dist/index.js +3420 -768
- package/components/counter/dist/registered.js +3420 -768
- package/components/datepicker/README.md +1 -1
- package/components/datepicker/demo/api.html +16 -10
- package/components/datepicker/demo/api.md +62 -28
- package/components/datepicker/demo/api.min.js +11956 -8070
- package/components/datepicker/demo/index.html +16 -10
- package/components/datepicker/demo/index.md +75 -8
- package/components/datepicker/demo/index.min.js +11956 -8070
- package/components/datepicker/demo/readme.html +16 -9
- package/components/datepicker/demo/readme.md +1 -1
- package/components/datepicker/dist/auro-datepicker.d.ts +151 -12
- package/components/datepicker/dist/buttonVersion.d.ts +1 -1
- package/components/datepicker/dist/iconVersion.d.ts +2 -0
- package/components/datepicker/dist/index.js +13802 -9916
- package/components/datepicker/dist/popoverVersion.d.ts +1 -1
- package/components/datepicker/dist/registered.js +13802 -9916
- package/components/dropdown/demo/api.html +16 -10
- package/components/dropdown/demo/api.md +82 -275
- package/components/dropdown/demo/api.min.js +450 -261
- package/components/dropdown/demo/index.html +16 -10
- package/components/dropdown/demo/index.md +92 -362
- package/components/dropdown/demo/index.min.js +450 -261
- package/components/dropdown/demo/readme.html +16 -9
- package/components/dropdown/dist/auro-dropdown.d.ts +43 -83
- package/components/dropdown/dist/auro-dropdownBib.d.ts +14 -0
- package/components/dropdown/dist/index.js +449 -260
- package/components/dropdown/dist/registered.js +449 -260
- package/components/form/demo/api.html +16 -9
- package/components/form/demo/api.md +1 -1
- package/components/form/demo/api.min.js +3 -3
- package/components/form/demo/autocomplete.html +19 -3
- package/components/form/demo/index.html +16 -9
- package/components/form/demo/index.min.js +3 -3
- package/components/form/demo/readme.html +16 -9
- package/components/form/demo/working.html +19 -13
- package/components/form/dist/auro-form.d.ts +1 -1
- package/components/form/dist/index.js +2 -2
- package/components/form/dist/registered.js +2 -2
- package/components/helptext/dist/auro-helptext.d.ts +0 -2
- package/components/helptext/dist/index.js +3 -5
- package/components/helptext/dist/registered.js +3 -5
- package/components/input/README.md +5 -2
- package/components/input/demo/api.html +16 -10
- package/components/input/demo/api.md +226 -132
- package/components/input/demo/api.min.js +1034 -297
- package/components/input/demo/index.html +16 -10
- package/components/input/demo/index.md +48 -32
- package/components/input/demo/index.min.js +1048 -311
- package/components/input/demo/readme.html +16 -9
- package/components/input/demo/readme.md +5 -2
- package/components/input/dist/auro-input.d.ts +24 -0
- package/components/input/dist/base-input.d.ts +45 -11
- package/components/input/dist/buttonVersion.d.ts +1 -1
- package/components/input/dist/iconVersion.d.ts +1 -1
- package/components/input/dist/index.js +1047 -310
- package/components/input/dist/registered.js +1047 -310
- package/components/layoutElement/dist/index.js +11 -8
- package/components/layoutElement/dist/registered.js +97 -0
- package/components/menu/demo/api.html +17 -10
- package/components/menu/demo/api.md +65 -8
- package/components/menu/demo/api.min.js +305 -63
- package/components/menu/demo/index.html +16 -10
- package/components/menu/demo/index.min.js +305 -63
- package/components/menu/demo/readme.html +16 -9
- package/components/menu/dist/auro-menu.d.ts +53 -7
- package/components/menu/dist/auro-menuoption.d.ts +21 -3
- package/components/menu/dist/iconVersion.d.ts +1 -1
- package/components/menu/dist/index.js +290 -48
- package/components/menu/dist/registered.js +290 -48
- package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
- package/components/menu/dist/styles/shapeSize-css.d.ts +2 -0
- package/components/radio/demo/api.html +16 -10
- package/components/radio/demo/api.md +39 -9
- package/components/radio/demo/api.min.js +92 -96
- package/components/radio/demo/index.html +16 -10
- package/components/radio/demo/index.min.js +92 -96
- package/components/radio/demo/readme.html +16 -9
- package/components/radio/dist/auro-radio-group.d.ts +1 -1
- package/components/radio/dist/auro-radio.d.ts +9 -12
- package/components/radio/dist/index.js +91 -95
- package/components/radio/dist/registered.js +91 -95
- package/components/select/demo/api.html +16 -10
- package/components/select/demo/api.js +0 -2
- package/components/select/demo/api.md +149 -122
- package/components/select/demo/api.min.js +2283 -736
- package/components/select/demo/index.html +17 -11
- package/components/select/demo/index.md +1066 -259
- package/components/select/demo/index.min.js +2284 -725
- package/components/select/demo/readme.html +16 -9
- package/components/select/dist/auro-select.d.ts +74 -25
- package/components/select/dist/index.js +2165 -753
- package/components/select/dist/registered.js +2165 -753
- package/package.json +31 -28
- /package/components/{datepicker/dist/styles/default/color-css.d.ts → counter/dist/styles/shapeSize-css.d.ts} +0 -0
- /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/classic}/color-css.d.ts +0 -0
- /package/components/datepicker/dist/styles/{emphasized → classic}/style-css.d.ts +0 -0
- /package/components/{dropdown/dist/styles/default/bibColors-css.d.ts → datepicker/dist/styles/snowflake/color-css.d.ts} +0 -0
- /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/style-css.d.ts +0 -0
- /package/components/dropdown/dist/styles/{default/bibStyles-css.d.ts → classic/bibColors-css.d.ts} +0 -0
- /package/components/{input/dist/styles/default/input-css.d.ts → dropdown/dist/styles/classic/bibStyles-css.d.ts} +0 -0
- /package/components/{input/dist/styles/default/label-css.d.ts → dropdown/dist/styles/classic/color-css.d.ts} +0 -0
- /package/components/{input/dist/styles/input-css.d.ts → dropdown/dist/styles/classic/style-css.d.ts} +0 -0
- /package/components/{menu/dist/styles/color-menu-css.d.ts → dropdown/dist/styles/style-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{color-menuoption-css.d.ts → default/color-menu-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{style-menu-css.d.ts → default/color-menuoption-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{style-menuoption-css.d.ts → default/style-menu-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{tokens-css.d.ts → default/style-menuoption-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
|
|
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
|
-
|
|
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' || (
|
|
2155
|
-
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
-
|
|
2702
|
-
|
|
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$
|
|
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:
|
|
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$
|
|
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="
|
|
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:
|
|
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:56px;max-height:56px;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:58px;max-height:58px;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:56px;max-height:56px;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:54px;max-height:54px}.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-box-lg{min-height:52px;max-height:52px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-box-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-box-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-box-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-box-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-box-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-box-sm{min-height:32px;max-height:32px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-sm.simple{border-width:0px;min-height:36px;max-height:36px;background-color:unset;box-shadow:none}.shape-box-sm.thin{border-width:1px;min-height:34px;max-height:34px;background-color:unset}.shape-box-sm.parentBorder{border:0;box-shadow:unset;min-height:32px;max-height:32px}.shape-box-xs{min-height:20px;max-height:20px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xs.simple{border-width:0px;min-height:24px;max-height:24px;background-color:unset;box-shadow:none}.shape-box-xs.thin{border-width:1px;min-height:22px;max-height:22px;background-color:unset}.shape-box-xs.parentBorder{border:0;box-shadow:unset;min-height:20px;max-height:20px}.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}`;
|
|
3222
|
+
|
|
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)}`;
|
|
2923
3224
|
|
|
2924
|
-
var
|
|
3225
|
+
var styleCss$1 = i$2`:host{position:relative;display:block}: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%}`;
|
|
2925
3226
|
|
|
2926
|
-
var classicColorCss = i$2
|
|
3227
|
+
var classicColorCss = i$2``;
|
|
2927
3228
|
|
|
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])
|
|
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{transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}: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)}:host([layout*=classic]) #showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}`;
|
|
2929
3230
|
|
|
2930
|
-
var styleEmphasizedCss = i$2
|
|
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)}`;
|
|
2931
3232
|
|
|
2932
|
-
var styleSnowflakeCss = i$2`:host
|
|
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)}`;
|
|
2933
3234
|
|
|
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-
|
|
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)}`;
|
|
2935
3236
|
|
|
2936
|
-
var styleCss = i$2`.
|
|
3237
|
+
var styleCss = i$2`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.63)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, 0.88)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:host{position:relative;display:block}.helptext-wrapper{display:none}.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
|
|
|
@@ -3013,8 +3314,6 @@ class AuroLibraryRuntimeUtils {
|
|
|
3013
3314
|
|
|
3014
3315
|
/**
|
|
3015
3316
|
* Displays help text or error messages within form elements - Internal Use Only.
|
|
3016
|
-
*
|
|
3017
|
-
* @attr { Boolean } large - If declared, make font-size to 1rem(16px).
|
|
3018
3317
|
*/
|
|
3019
3318
|
class AuroHelpText extends i {
|
|
3020
3319
|
|
|
@@ -3130,7 +3429,7 @@ class AuroHelpText extends i {
|
|
|
3130
3429
|
// function that renders the HTML and CSS into the scope of the component
|
|
3131
3430
|
render() {
|
|
3132
3431
|
return x`
|
|
3133
|
-
<div class="helptext-wrapper" ?visible="${this.hasTextContent}">
|
|
3432
|
+
<div class="helptext-wrapper body-xs" ?visible="${this.hasTextContent}">
|
|
3134
3433
|
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
3135
3434
|
</div>
|
|
3136
3435
|
`;
|
|
@@ -3174,19 +3473,22 @@ class AuroElement extends i {
|
|
|
3174
3473
|
}
|
|
3175
3474
|
|
|
3176
3475
|
resetShapeClasses() {
|
|
3177
|
-
|
|
3178
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
3476
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
3179
3477
|
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3478
|
+
if (wrapper) {
|
|
3479
|
+
wrapper.classList.forEach((className) => {
|
|
3480
|
+
if (className.startsWith('shape-')) {
|
|
3481
|
+
wrapper.classList.remove(className);
|
|
3482
|
+
}
|
|
3483
|
+
});
|
|
3186
3484
|
|
|
3485
|
+
if (this.shape && this.size) {
|
|
3187
3486
|
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
3487
|
+
} else {
|
|
3488
|
+
wrapper.classList.add('shape-none');
|
|
3188
3489
|
}
|
|
3189
3490
|
}
|
|
3491
|
+
|
|
3190
3492
|
}
|
|
3191
3493
|
|
|
3192
3494
|
resetLayoutClasses() {
|
|
@@ -3235,10 +3537,9 @@ class AuroElement extends i {
|
|
|
3235
3537
|
// See LICENSE in the project root for license information.
|
|
3236
3538
|
|
|
3237
3539
|
|
|
3238
|
-
|
|
3239
|
-
|
|
3540
|
+
|
|
3541
|
+
/*
|
|
3240
3542
|
* @slot - Default slot for the popover content.
|
|
3241
|
-
* @slot label - Defines the content of the label.
|
|
3242
3543
|
* @slot helpText - Defines the content of the helpText.
|
|
3243
3544
|
* @slot trigger - Defines the content of the trigger.
|
|
3244
3545
|
* @csspart trigger - The trigger content container.
|
|
@@ -3257,23 +3558,25 @@ class AuroDropdown extends AuroElement {
|
|
|
3257
3558
|
this.matchWidth = false;
|
|
3258
3559
|
this.noHideOnThisFocusLoss = false;
|
|
3259
3560
|
|
|
3260
|
-
this.errorMessage =
|
|
3561
|
+
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
3261
3562
|
|
|
3262
3563
|
// Layout Config
|
|
3263
|
-
this.layout =
|
|
3264
|
-
this.shape =
|
|
3265
|
-
this.size =
|
|
3564
|
+
this.layout = undefined;
|
|
3565
|
+
this.shape = undefined;
|
|
3566
|
+
this.size = undefined;
|
|
3567
|
+
|
|
3266
3568
|
this.parentBorder = false;
|
|
3267
3569
|
|
|
3268
|
-
|
|
3269
|
-
|
|
3570
|
+
/** @private */
|
|
3571
|
+
this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
|
|
3270
3572
|
|
|
3271
|
-
|
|
3272
|
-
return {
|
|
3273
|
-
// 'withValue': this.value && this.value.length > 0
|
|
3274
|
-
};
|
|
3573
|
+
this.privateDefaults();
|
|
3275
3574
|
}
|
|
3276
3575
|
|
|
3576
|
+
/**
|
|
3577
|
+
* @private
|
|
3578
|
+
* @returns {object} Class definition for the wrapper element.
|
|
3579
|
+
*/
|
|
3277
3580
|
get commonWrapperClasses() {
|
|
3278
3581
|
return {
|
|
3279
3582
|
'trigger': true,
|
|
@@ -3291,13 +3594,10 @@ class AuroDropdown extends AuroElement {
|
|
|
3291
3594
|
privateDefaults() {
|
|
3292
3595
|
this.chevron = false;
|
|
3293
3596
|
this.disabled = false;
|
|
3597
|
+
this.disableFocusTrap = false;
|
|
3294
3598
|
this.error = false;
|
|
3295
|
-
this.inset = false;
|
|
3296
|
-
this.rounded = false;
|
|
3297
3599
|
this.tabIndex = 0;
|
|
3298
3600
|
this.noToggle = false;
|
|
3299
|
-
this.a11yAutocomplete = 'none';
|
|
3300
|
-
this.labeled = true;
|
|
3301
3601
|
this.a11yRole = 'button';
|
|
3302
3602
|
this.onDark = false;
|
|
3303
3603
|
this.showTriggerBorders = true;
|
|
@@ -3393,6 +3693,18 @@ class AuroDropdown extends AuroElement {
|
|
|
3393
3693
|
this.floater.showBib();
|
|
3394
3694
|
}
|
|
3395
3695
|
|
|
3696
|
+
/**
|
|
3697
|
+
* When bib is open, focus on the first element inside of bib.
|
|
3698
|
+
* If not, trigger element will get focus.
|
|
3699
|
+
*/
|
|
3700
|
+
focus() {
|
|
3701
|
+
if (this.isPopoverVisible && this.focusTrap) {
|
|
3702
|
+
this.focusTrap.focusFirstElement();
|
|
3703
|
+
} else {
|
|
3704
|
+
this.trigger.focus();
|
|
3705
|
+
}
|
|
3706
|
+
}
|
|
3707
|
+
|
|
3396
3708
|
// function to define props used within the scope of this component
|
|
3397
3709
|
static get properties() {
|
|
3398
3710
|
return {
|
|
@@ -3406,6 +3718,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3406
3718
|
reflect: true
|
|
3407
3719
|
},
|
|
3408
3720
|
|
|
3721
|
+
/**
|
|
3722
|
+
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
3723
|
+
* @default false
|
|
3724
|
+
*/
|
|
3725
|
+
disableEventShow: {
|
|
3726
|
+
type: Boolean,
|
|
3727
|
+
reflect: true
|
|
3728
|
+
},
|
|
3729
|
+
|
|
3409
3730
|
/**
|
|
3410
3731
|
* If declared, applies a border around the trigger slot.
|
|
3411
3732
|
*/
|
|
@@ -3424,17 +3745,17 @@ class AuroDropdown extends AuroElement {
|
|
|
3424
3745
|
},
|
|
3425
3746
|
|
|
3426
3747
|
/**
|
|
3427
|
-
* If declared, the dropdown
|
|
3748
|
+
* If declared, the dropdown is not interactive.
|
|
3428
3749
|
*/
|
|
3429
|
-
|
|
3750
|
+
disabled: {
|
|
3430
3751
|
type: Boolean,
|
|
3431
3752
|
reflect: true
|
|
3432
3753
|
},
|
|
3433
3754
|
|
|
3434
3755
|
/**
|
|
3435
|
-
* If declared, the
|
|
3756
|
+
* If declared, the focus trap inside of bib will be turned off.
|
|
3436
3757
|
*/
|
|
3437
|
-
|
|
3758
|
+
disableFocusTrap: {
|
|
3438
3759
|
type: Boolean,
|
|
3439
3760
|
reflect: true
|
|
3440
3761
|
},
|
|
@@ -3479,27 +3800,13 @@ class AuroDropdown extends AuroElement {
|
|
|
3479
3800
|
reflect: true
|
|
3480
3801
|
},
|
|
3481
3802
|
|
|
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
3803
|
/**
|
|
3499
3804
|
* If true, the dropdown bib is displayed.
|
|
3500
3805
|
*/
|
|
3501
3806
|
isPopoverVisible: {
|
|
3502
|
-
type: Boolean
|
|
3807
|
+
type: Boolean,
|
|
3808
|
+
reflect: true,
|
|
3809
|
+
attribute: 'open'
|
|
3503
3810
|
},
|
|
3504
3811
|
|
|
3505
3812
|
/**
|
|
@@ -3538,15 +3845,6 @@ class AuroDropdown extends AuroElement {
|
|
|
3538
3845
|
reflect: true
|
|
3539
3846
|
},
|
|
3540
3847
|
|
|
3541
|
-
/**
|
|
3542
|
-
* Defines if there is a label preset.
|
|
3543
|
-
* @private
|
|
3544
|
-
*/
|
|
3545
|
-
labeled: {
|
|
3546
|
-
type: Boolean,
|
|
3547
|
-
reflect: true
|
|
3548
|
-
},
|
|
3549
|
-
|
|
3550
3848
|
/**
|
|
3551
3849
|
* Defines if the trigger should size based on the parent element providing the border UI.
|
|
3552
3850
|
* @private
|
|
@@ -3607,6 +3905,9 @@ class AuroDropdown extends AuroElement {
|
|
|
3607
3905
|
reflect: true
|
|
3608
3906
|
},
|
|
3609
3907
|
|
|
3908
|
+
/**
|
|
3909
|
+
* If declared, and a function is set, that function will execute when the slot content is updated.
|
|
3910
|
+
*/
|
|
3610
3911
|
onSlotChange: {
|
|
3611
3912
|
type: Function,
|
|
3612
3913
|
reflect: false
|
|
@@ -3621,14 +3922,6 @@ class AuroDropdown extends AuroElement {
|
|
|
3621
3922
|
reflect: true
|
|
3622
3923
|
},
|
|
3623
3924
|
|
|
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
3925
|
/**
|
|
3633
3926
|
* @private
|
|
3634
3927
|
*/
|
|
@@ -3643,22 +3936,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3643
3936
|
type: String || undefined,
|
|
3644
3937
|
attribute: false,
|
|
3645
3938
|
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
3939
|
}
|
|
3655
3940
|
};
|
|
3656
3941
|
}
|
|
3657
3942
|
|
|
3658
3943
|
static get styles() {
|
|
3659
3944
|
return [
|
|
3660
|
-
|
|
3945
|
+
styleCss$1,
|
|
3661
3946
|
tokensCss$1,
|
|
3947
|
+
colorCss$1,
|
|
3662
3948
|
|
|
3663
3949
|
// default layout
|
|
3664
3950
|
classicColorCss,
|
|
@@ -3720,13 +4006,27 @@ class AuroDropdown extends AuroElement {
|
|
|
3720
4006
|
if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
|
|
3721
4007
|
this.handleTriggerContentSlotChange();
|
|
3722
4008
|
}
|
|
4009
|
+
}
|
|
3723
4010
|
|
|
4011
|
+
/**
|
|
4012
|
+
* Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
|
|
4013
|
+
* @private
|
|
4014
|
+
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
4015
|
+
*/
|
|
4016
|
+
handleDropdownToggle(event) {
|
|
4017
|
+
this.updateFocusTrap();
|
|
4018
|
+
this.isPopoverVisible = event.detail.expanded;
|
|
4019
|
+
const eventType = event.detail.eventType || "unknown";
|
|
4020
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4021
|
+
this.trigger.focus();
|
|
4022
|
+
}
|
|
3724
4023
|
}
|
|
3725
4024
|
|
|
3726
4025
|
firstUpdated() {
|
|
3727
4026
|
|
|
3728
4027
|
// Configure the floater to, this will generate the ID for the bib
|
|
3729
4028
|
this.floater.configure(this, 'auroDropdown');
|
|
4029
|
+
this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
|
|
3730
4030
|
|
|
3731
4031
|
/**
|
|
3732
4032
|
* @description Let subscribers know that the dropdown ID ha been generated and added.
|
|
@@ -3744,6 +4044,13 @@ class AuroDropdown extends AuroElement {
|
|
|
3744
4044
|
|
|
3745
4045
|
// Add the tag name as an attribute if it is different than the component name
|
|
3746
4046
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-dropdown');
|
|
4047
|
+
|
|
4048
|
+
this.trigger.addEventListener('click', () => {
|
|
4049
|
+
this.dispatchEvent(new CustomEvent('auroDropdown-triggerClick', {
|
|
4050
|
+
bubbles: true,
|
|
4051
|
+
composed: true
|
|
4052
|
+
}));
|
|
4053
|
+
});
|
|
3747
4054
|
}
|
|
3748
4055
|
|
|
3749
4056
|
/**
|
|
@@ -3787,70 +4094,33 @@ class AuroDropdown extends AuroElement {
|
|
|
3787
4094
|
}
|
|
3788
4095
|
|
|
3789
4096
|
/**
|
|
3790
|
-
* Function to support @focusout event.
|
|
3791
4097
|
* @private
|
|
3792
|
-
* @return {void}
|
|
3793
4098
|
*/
|
|
3794
|
-
|
|
3795
|
-
|
|
4099
|
+
updateFocusTrap() {
|
|
4100
|
+
// If the dropdown is open, create a focus trap and focus the first element
|
|
4101
|
+
if (this.isPopoverVisible && !this.disableFocusTrap) {
|
|
4102
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
4103
|
+
this.focusTrap.focusFirstElement();
|
|
4104
|
+
return;
|
|
4105
|
+
}
|
|
4106
|
+
|
|
4107
|
+
// Guard Clause: Ensure there is a focus trap currently active before continuing
|
|
4108
|
+
if (!this.focusTrap) {
|
|
4109
|
+
return;
|
|
4110
|
+
}
|
|
4111
|
+
|
|
4112
|
+
// If the dropdown is not open, disconnect the focus trap if it exists
|
|
4113
|
+
this.focusTrap.disconnect();
|
|
4114
|
+
this.focusTrap = undefined;
|
|
3796
4115
|
}
|
|
3797
4116
|
|
|
3798
4117
|
/**
|
|
3799
|
-
*
|
|
4118
|
+
* Function to support @focusout event.
|
|
3800
4119
|
* @private
|
|
3801
|
-
* @
|
|
3802
|
-
* @returns {Boolean} - True if the element or any children are focusable.
|
|
4120
|
+
* @return {void}
|
|
3803
4121
|
*/
|
|
3804
|
-
|
|
3805
|
-
this.
|
|
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;
|
|
4122
|
+
handleFocusout() {
|
|
4123
|
+
this.hasFocus = false;
|
|
3854
4124
|
}
|
|
3855
4125
|
|
|
3856
4126
|
/**
|
|
@@ -3946,14 +4216,13 @@ class AuroDropdown extends AuroElement {
|
|
|
3946
4216
|
* @returns {void}
|
|
3947
4217
|
*/
|
|
3948
4218
|
handleTriggerContentSlotChange(event) {
|
|
3949
|
-
|
|
3950
4219
|
this.floater.handleTriggerTabIndex();
|
|
3951
4220
|
|
|
3952
4221
|
// Get the trigger
|
|
3953
4222
|
const trigger = this.shadowRoot.querySelector('#trigger');
|
|
3954
4223
|
|
|
3955
4224
|
// Get the trigger slot
|
|
3956
|
-
const triggerSlot = this.shadowRoot.querySelector('.
|
|
4225
|
+
const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
|
|
3957
4226
|
|
|
3958
4227
|
// If there's a trigger slot
|
|
3959
4228
|
if (triggerSlot) {
|
|
@@ -3965,7 +4234,7 @@ class AuroDropdown extends AuroElement {
|
|
|
3965
4234
|
if (triggerContentNodes) {
|
|
3966
4235
|
|
|
3967
4236
|
// See if any of them are focusable elements
|
|
3968
|
-
this.triggerContentFocusable = triggerContentNodes.some((node) =>
|
|
4237
|
+
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
|
|
3969
4238
|
|
|
3970
4239
|
// If any of them are focusable elements
|
|
3971
4240
|
if (this.triggerContentFocusable) {
|
|
@@ -4016,7 +4285,6 @@ class AuroDropdown extends AuroElement {
|
|
|
4016
4285
|
*
|
|
4017
4286
|
* @private
|
|
4018
4287
|
* @method handleDefaultSlot
|
|
4019
|
-
* @param {Event} event - The event object representing the slot change.
|
|
4020
4288
|
* @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
|
|
4021
4289
|
*/
|
|
4022
4290
|
handleDefaultSlot() {
|
|
@@ -4026,29 +4294,6 @@ class AuroDropdown extends AuroElement {
|
|
|
4026
4294
|
}
|
|
4027
4295
|
}
|
|
4028
4296
|
|
|
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
4297
|
/**
|
|
4053
4298
|
* Returns HTML for the common portion of the layouts.
|
|
4054
4299
|
* @private
|
|
@@ -4061,24 +4306,19 @@ class AuroDropdown extends AuroElement {
|
|
|
4061
4306
|
<div
|
|
4062
4307
|
id="trigger"
|
|
4063
4308
|
class="${e$2(this.commonWrapperClasses)}" part="wrapper"
|
|
4064
|
-
tabindex="${this.tabIndex}"
|
|
4309
|
+
tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
|
|
4065
4310
|
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)}"
|
|
4311
|
+
aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
4312
|
+
aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
4068
4313
|
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
4069
4314
|
@focusin="${this.handleFocusin}"
|
|
4070
4315
|
@blur="${this.handleFocusOut}">
|
|
4071
|
-
<div class="triggerContentWrapper">
|
|
4072
|
-
<
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
<div class="triggerContent">
|
|
4076
|
-
<slot
|
|
4077
|
-
name="trigger"
|
|
4078
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4079
|
-
</div>
|
|
4316
|
+
<div class="triggerContentWrapper" id="triggerLabel">
|
|
4317
|
+
<slot
|
|
4318
|
+
name="trigger"
|
|
4319
|
+
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4080
4320
|
</div>
|
|
4081
|
-
${this.chevron
|
|
4321
|
+
${this.chevron ? u$1`
|
|
4082
4322
|
<div
|
|
4083
4323
|
id="showStateIcon"
|
|
4084
4324
|
class="chevron"
|
|
@@ -4099,11 +4339,9 @@ class AuroDropdown extends AuroElement {
|
|
|
4099
4339
|
<div id="bibSizer" part="size"></div>
|
|
4100
4340
|
<${this.dropdownBibTag}
|
|
4101
4341
|
id="bib"
|
|
4342
|
+
shape="${this.shape}"
|
|
4102
4343
|
?data-show="${this.isPopoverVisible}"
|
|
4103
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
4104
|
-
?common="${this.common}"
|
|
4105
|
-
?rounded="${this.common || this.rounded}"
|
|
4106
|
-
?inset="${this.common || this.inset}">
|
|
4344
|
+
?isfullscreen="${this.isBibFullscreen}">
|
|
4107
4345
|
<div class="slotContent">
|
|
4108
4346
|
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
4109
4347
|
</div>
|
|
@@ -4118,62 +4356,13 @@ class AuroDropdown extends AuroElement {
|
|
|
4118
4356
|
* @returns {html} - Returns HTML for the classic layout.
|
|
4119
4357
|
*/
|
|
4120
4358
|
renderLayoutClassic() {
|
|
4359
|
+
// TODO: check with Doug why this was never used?
|
|
4360
|
+
const helpTextClasses = {
|
|
4361
|
+
'helpText': true
|
|
4362
|
+
};
|
|
4121
4363
|
|
|
4122
4364
|
return u$1`
|
|
4123
|
-
|
|
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>
|
|
4365
|
+
${this.renderBasicHtml(helpTextClasses)}
|
|
4177
4366
|
`;
|
|
4178
4367
|
}
|
|
4179
4368
|
|