@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.11 → 0.0.0-pr624.111
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 +1244 -95
- package/components/bibtemplate/dist/registered.js +1244 -95
- package/components/checkbox/README.md +1 -1
- package/components/checkbox/demo/api.html +16 -10
- package/components/checkbox/demo/api.md +54 -19
- package/components/checkbox/demo/api.min.js +70 -45
- package/components/checkbox/demo/index.html +16 -10
- package/components/checkbox/demo/index.md +2 -2
- package/components/checkbox/demo/index.min.js +70 -45
- 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 +6 -3
- package/components/checkbox/dist/index.js +69 -44
- package/components/checkbox/dist/registered.js +69 -44
- package/components/combobox/README.md +2 -0
- package/components/combobox/demo/api.html +16 -10
- package/components/combobox/demo/api.md +121 -8
- package/components/combobox/demo/api.min.js +3283 -963
- package/components/combobox/demo/index.html +16 -10
- package/components/combobox/demo/index.md +20 -34
- package/components/combobox/demo/index.min.js +3283 -963
- package/components/combobox/demo/readme.html +16 -9
- package/components/combobox/demo/readme.md +2 -0
- package/components/combobox/dist/auro-combobox.d.ts +59 -14
- package/components/combobox/dist/index.js +3024 -848
- package/components/combobox/dist/registered.js +3024 -848
- package/components/counter/demo/api.html +17 -10
- package/components/counter/demo/api.md +167 -21
- package/components/counter/demo/api.min.js +3428 -777
- package/components/counter/demo/index.html +17 -10
- package/components/counter/demo/index.md +191 -34
- package/components/counter/demo/index.min.js +3428 -777
- 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 +162 -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 +3427 -776
- package/components/counter/dist/registered.js +3427 -776
- package/components/datepicker/README.md +2 -1
- package/components/datepicker/demo/api.html +16 -10
- package/components/datepicker/demo/api.md +70 -28
- package/components/datepicker/demo/api.min.js +7082 -3165
- package/components/datepicker/demo/index.html +16 -10
- package/components/datepicker/demo/index.md +87 -8
- package/components/datepicker/demo/index.min.js +7082 -3165
- package/components/datepicker/demo/readme.html +16 -9
- package/components/datepicker/demo/readme.md +2 -1
- package/components/datepicker/dist/auro-datepicker.d.ts +152 -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 +14635 -10718
- package/components/datepicker/dist/popoverVersion.d.ts +1 -1
- package/components/datepicker/dist/registered.js +14635 -10718
- package/components/dropdown/demo/api.html +16 -10
- package/components/dropdown/demo/api.md +89 -281
- package/components/dropdown/demo/api.min.js +452 -271
- package/components/dropdown/demo/index.html +16 -10
- package/components/dropdown/demo/index.md +92 -362
- package/components/dropdown/demo/index.min.js +452 -271
- package/components/dropdown/demo/readme.html +16 -9
- package/components/dropdown/dist/auro-dropdown.d.ts +43 -82
- package/components/dropdown/dist/auro-dropdownBib.d.ts +14 -0
- package/components/dropdown/dist/index.js +451 -270
- package/components/dropdown/dist/registered.js +451 -270
- 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 +2 -4
- package/components/helptext/dist/registered.js +2 -4
- package/components/input/README.md +6 -2
- package/components/input/demo/api.html +16 -10
- package/components/input/demo/api.md +234 -136
- package/components/input/demo/api.min.js +1057 -299
- package/components/input/demo/index.html +16 -10
- package/components/input/demo/index.md +55 -32
- package/components/input/demo/index.min.js +1071 -313
- package/components/input/demo/readme.html +16 -9
- package/components/input/demo/readme.md +6 -2
- package/components/input/dist/auro-input.d.ts +36 -2
- package/components/input/dist/base-input.d.ts +47 -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 +1070 -312
- package/components/input/dist/registered.js +1070 -312
- 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 +303 -64
- package/components/menu/demo/index.html +16 -10
- package/components/menu/demo/index.min.js +303 -64
- 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 +288 -49
- package/components/menu/dist/registered.js +288 -49
- package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
- package/components/radio/demo/api.html +16 -10
- package/components/radio/demo/api.md +41 -9
- package/components/radio/demo/api.min.js +93 -95
- package/components/radio/demo/index.html +16 -10
- package/components/radio/demo/index.min.js +93 -95
- 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 +11 -12
- package/components/radio/dist/index.js +92 -94
- package/components/radio/dist/registered.js +92 -94
- package/components/select/README.md +1 -0
- package/components/select/demo/api.html +16 -10
- package/components/select/demo/api.js +0 -2
- package/components/select/demo/api.md +159 -125
- package/components/select/demo/api.min.js +2284 -729
- package/components/select/demo/index.html +17 -11
- package/components/select/demo/index.md +1074 -259
- package/components/select/demo/index.min.js +2286 -719
- package/components/select/demo/readme.html +16 -9
- package/components/select/demo/readme.md +1 -0
- package/components/select/dist/auro-select.d.ts +86 -25
- package/components/select/dist/index.js +2178 -755
- package/components/select/dist/registered.js +2178 -755
- 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/datepicker/dist/styles/{emphasized/style-css.d.ts → classic/color-css.d.ts} +0 -0
- /package/components/{input/dist/styles/default/input-css.d.ts → datepicker/dist/styles/classic/style-css.d.ts} +0 -0
- /package/components/{input/dist/styles/default/label-css.d.ts → datepicker/dist/styles/snowflake/color-css.d.ts} +0 -0
- /package/components/{input/dist/styles/input-css.d.ts → datepicker/dist/styles/snowflake/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,22 +1969,16 @@ 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() {
|
|
1980
|
-
this.preventFocusLoseOnBibClick = (event) => {
|
|
1981
|
-
event.preventDefault();
|
|
1982
|
-
event.stopPropagation();
|
|
1983
|
-
};
|
|
1984
|
-
this.element.bib.addEventListener('mousedown', this.preventFocusLoseOnBibClick);
|
|
1985
|
-
|
|
1986
1982
|
// Define handlers & store references
|
|
1987
1983
|
this.focusHandler = () => this.handleFocusLoss();
|
|
1988
1984
|
|
|
@@ -1998,7 +1994,7 @@ class AuroFloatingUI {
|
|
|
1998
1994
|
document.expandedAuroFormkitDropdown = null;
|
|
1999
1995
|
document.expandedAuroFloater = this;
|
|
2000
1996
|
} else {
|
|
2001
|
-
this.hideBib();
|
|
1997
|
+
this.hideBib("click");
|
|
2002
1998
|
}
|
|
2003
1999
|
}
|
|
2004
2000
|
};
|
|
@@ -2011,7 +2007,7 @@ class AuroFloatingUI {
|
|
|
2011
2007
|
// if something else is open, let it handle itself
|
|
2012
2008
|
return;
|
|
2013
2009
|
}
|
|
2014
|
-
this.hideBib();
|
|
2010
|
+
this.hideBib("keydown");
|
|
2015
2011
|
}
|
|
2016
2012
|
};
|
|
2017
2013
|
|
|
@@ -2032,11 +2028,6 @@ class AuroFloatingUI {
|
|
|
2032
2028
|
cleanupHideHandlers() {
|
|
2033
2029
|
// Remove event listeners if they exist
|
|
2034
2030
|
|
|
2035
|
-
if (this.preventFocusLoseOnBibClick) {
|
|
2036
|
-
this.element.bib.removeEventListener('mousedown', this.preventFocusLoseOnBibClick);
|
|
2037
|
-
delete this.preventFocusLoseOnBibClick;
|
|
2038
|
-
}
|
|
2039
|
-
|
|
2040
2031
|
if (this.focusHandler) {
|
|
2041
2032
|
document.removeEventListener('focusin', this.focusHandler);
|
|
2042
2033
|
this.focusHandler = null;
|
|
@@ -2094,7 +2085,11 @@ class AuroFloatingUI {
|
|
|
2094
2085
|
}
|
|
2095
2086
|
}
|
|
2096
2087
|
|
|
2097
|
-
|
|
2088
|
+
/**
|
|
2089
|
+
* Hides the floating UI element.
|
|
2090
|
+
* @param {String} eventType - The event type that triggered the hiding action.
|
|
2091
|
+
*/
|
|
2092
|
+
hideBib(eventType = "unknown") {
|
|
2098
2093
|
if (!this.element.disabled && !this.element.noToggle) {
|
|
2099
2094
|
this.lockScroll(false);
|
|
2100
2095
|
this.element.triggerChevron?.removeAttribute('data-expanded');
|
|
@@ -2105,7 +2100,7 @@ class AuroFloatingUI {
|
|
|
2105
2100
|
if (this.showing) {
|
|
2106
2101
|
this.cleanupHideHandlers();
|
|
2107
2102
|
this.showing = false;
|
|
2108
|
-
this.dispatchEventDropdownToggle();
|
|
2103
|
+
this.dispatchEventDropdownToggle(eventType);
|
|
2109
2104
|
}
|
|
2110
2105
|
}
|
|
2111
2106
|
document.expandedAuroFloater = null;
|
|
@@ -2114,11 +2109,13 @@ class AuroFloatingUI {
|
|
|
2114
2109
|
/**
|
|
2115
2110
|
* @private
|
|
2116
2111
|
* @returns {void} Dispatches event with an object showing the state of the dropdown.
|
|
2112
|
+
* @param {String} eventType - The event type that triggered the toggle action.
|
|
2117
2113
|
*/
|
|
2118
|
-
dispatchEventDropdownToggle() {
|
|
2114
|
+
dispatchEventDropdownToggle(eventType) {
|
|
2119
2115
|
const event = new CustomEvent(this.eventPrefix ? `${this.eventPrefix}-toggled` : 'toggled', {
|
|
2120
2116
|
detail: {
|
|
2121
2117
|
expanded: this.showing,
|
|
2118
|
+
eventType: eventType || "unknown",
|
|
2122
2119
|
},
|
|
2123
2120
|
composed: true
|
|
2124
2121
|
});
|
|
@@ -2128,7 +2125,7 @@ class AuroFloatingUI {
|
|
|
2128
2125
|
|
|
2129
2126
|
handleClick() {
|
|
2130
2127
|
if (this.element.isPopoverVisible) {
|
|
2131
|
-
this.hideBib();
|
|
2128
|
+
this.hideBib("click");
|
|
2132
2129
|
} else {
|
|
2133
2130
|
this.showBib();
|
|
2134
2131
|
}
|
|
@@ -2151,8 +2148,9 @@ class AuroFloatingUI {
|
|
|
2151
2148
|
// Space is included as it's expected behavior for interactive elements
|
|
2152
2149
|
|
|
2153
2150
|
const origin = event.composedPath()[0];
|
|
2154
|
-
if (event.key === 'Enter' || (
|
|
2155
|
-
|
|
2151
|
+
if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
|
|
2152
|
+
|
|
2153
|
+
event.preventDefault();
|
|
2156
2154
|
this.handleClick();
|
|
2157
2155
|
}
|
|
2158
2156
|
break;
|
|
@@ -2163,7 +2161,7 @@ class AuroFloatingUI {
|
|
|
2163
2161
|
break;
|
|
2164
2162
|
case 'mouseleave':
|
|
2165
2163
|
if (this.element.hoverToggle) {
|
|
2166
|
-
this.hideBib();
|
|
2164
|
+
this.hideBib("mouseleave");
|
|
2167
2165
|
}
|
|
2168
2166
|
break;
|
|
2169
2167
|
case 'focus':
|
|
@@ -2306,6 +2304,267 @@ class AuroFloatingUI {
|
|
|
2306
2304
|
}
|
|
2307
2305
|
}
|
|
2308
2306
|
|
|
2307
|
+
// Selectors for focusable elements
|
|
2308
|
+
const FOCUSABLE_SELECTORS = [
|
|
2309
|
+
'a[href]',
|
|
2310
|
+
'button:not([disabled])',
|
|
2311
|
+
'textarea:not([disabled])',
|
|
2312
|
+
'input:not([disabled])',
|
|
2313
|
+
'select:not([disabled])',
|
|
2314
|
+
'[role="tab"]:not([disabled])',
|
|
2315
|
+
'[role="link"]:not([disabled])',
|
|
2316
|
+
'[role="button"]:not([disabled])',
|
|
2317
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
2318
|
+
'[contenteditable]:not([contenteditable="false"])'
|
|
2319
|
+
];
|
|
2320
|
+
|
|
2321
|
+
// List of custom components that are known to be focusable
|
|
2322
|
+
const FOCUSABLE_COMPONENTS = [
|
|
2323
|
+
'auro-checkbox',
|
|
2324
|
+
'auro-radio',
|
|
2325
|
+
'auro-dropdown',
|
|
2326
|
+
'auro-button',
|
|
2327
|
+
'auro-combobox',
|
|
2328
|
+
'auro-input',
|
|
2329
|
+
'auro-counter',
|
|
2330
|
+
'auro-menu',
|
|
2331
|
+
'auro-select',
|
|
2332
|
+
'auro-datepicker',
|
|
2333
|
+
'auro-hyperlink',
|
|
2334
|
+
'auro-accordion',
|
|
2335
|
+
];
|
|
2336
|
+
|
|
2337
|
+
/**
|
|
2338
|
+
* Determines if a given element is a custom focusable component.
|
|
2339
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
2340
|
+
*
|
|
2341
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
2342
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
2343
|
+
*/
|
|
2344
|
+
function isFocusableComponent(element) {
|
|
2345
|
+
const componentName = element.tagName.toLowerCase();
|
|
2346
|
+
|
|
2347
|
+
// Guard Clause: Element is a focusable component
|
|
2348
|
+
if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
|
|
2349
|
+
|
|
2350
|
+
// Guard Clause: Element is not disabled
|
|
2351
|
+
if (element.hasAttribute('disabled')) return false;
|
|
2352
|
+
|
|
2353
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
2354
|
+
if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
|
|
2355
|
+
|
|
2356
|
+
// If all guard clauses pass, the element is a focusable component
|
|
2357
|
+
return true;
|
|
2358
|
+
}
|
|
2359
|
+
|
|
2360
|
+
/**
|
|
2361
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
2362
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
2363
|
+
*
|
|
2364
|
+
* @param {HTMLElement} container The container to search within
|
|
2365
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
2366
|
+
*/
|
|
2367
|
+
function getFocusableElements(container) {
|
|
2368
|
+
// Get elements in DOM order by walking the tree
|
|
2369
|
+
const orderedFocusableElements = [];
|
|
2370
|
+
|
|
2371
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
2372
|
+
const collectFocusableElements = (root) => {
|
|
2373
|
+
// Check if current element is focusable
|
|
2374
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
2375
|
+
// Check if this is a custom component that is focusable
|
|
2376
|
+
const isComponentFocusable = isFocusableComponent(root);
|
|
2377
|
+
|
|
2378
|
+
if (isComponentFocusable) {
|
|
2379
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
2380
|
+
orderedFocusableElements.push(root);
|
|
2381
|
+
return; // Skip traversing inside this component
|
|
2382
|
+
}
|
|
2383
|
+
|
|
2384
|
+
// Check if the element itself matches any selector
|
|
2385
|
+
for (const selector of FOCUSABLE_SELECTORS) {
|
|
2386
|
+
if (root.matches?.(selector)) {
|
|
2387
|
+
orderedFocusableElements.push(root);
|
|
2388
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
2389
|
+
}
|
|
2390
|
+
}
|
|
2391
|
+
|
|
2392
|
+
// Process shadow DOM only for non-Auro components
|
|
2393
|
+
if (root.shadowRoot) {
|
|
2394
|
+
// Process shadow DOM children in order
|
|
2395
|
+
if (root.shadowRoot.children) {
|
|
2396
|
+
Array.from(root.shadowRoot.children).forEach(child => {
|
|
2397
|
+
collectFocusableElements(child);
|
|
2398
|
+
});
|
|
2399
|
+
}
|
|
2400
|
+
}
|
|
2401
|
+
|
|
2402
|
+
// Process slots and their assigned nodes in order
|
|
2403
|
+
if (root.tagName === 'SLOT') {
|
|
2404
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
2405
|
+
for (const node of assignedNodes) {
|
|
2406
|
+
collectFocusableElements(node);
|
|
2407
|
+
}
|
|
2408
|
+
} else {
|
|
2409
|
+
// Process light DOM children in order
|
|
2410
|
+
if (root.children) {
|
|
2411
|
+
Array.from(root.children).forEach(child => {
|
|
2412
|
+
collectFocusableElements(child);
|
|
2413
|
+
});
|
|
2414
|
+
}
|
|
2415
|
+
}
|
|
2416
|
+
}
|
|
2417
|
+
};
|
|
2418
|
+
|
|
2419
|
+
// Start the traversal from the container
|
|
2420
|
+
collectFocusableElements(container);
|
|
2421
|
+
|
|
2422
|
+
// Remove duplicates that might have been collected through different paths
|
|
2423
|
+
// while preserving order
|
|
2424
|
+
const uniqueElements = [];
|
|
2425
|
+
const seen = new Set();
|
|
2426
|
+
|
|
2427
|
+
for (const element of orderedFocusableElements) {
|
|
2428
|
+
if (!seen.has(element)) {
|
|
2429
|
+
seen.add(element);
|
|
2430
|
+
uniqueElements.push(element);
|
|
2431
|
+
}
|
|
2432
|
+
}
|
|
2433
|
+
|
|
2434
|
+
return uniqueElements;
|
|
2435
|
+
}
|
|
2436
|
+
|
|
2437
|
+
/**
|
|
2438
|
+
* FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
|
|
2439
|
+
* It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
|
|
2440
|
+
*/
|
|
2441
|
+
class FocusTrap {
|
|
2442
|
+
/**
|
|
2443
|
+
* Creates a new FocusTrap instance for the given container element.
|
|
2444
|
+
* Initializes event listeners and prepares the container for focus management.
|
|
2445
|
+
*
|
|
2446
|
+
* @param {HTMLElement} container The DOM element to trap focus within.
|
|
2447
|
+
* @throws {Error} If the provided container is not a valid HTMLElement.
|
|
2448
|
+
*/
|
|
2449
|
+
constructor(container) {
|
|
2450
|
+
if (!container || !(container instanceof HTMLElement)) {
|
|
2451
|
+
throw new Error("FocusTrap requires a valid HTMLElement.");
|
|
2452
|
+
}
|
|
2453
|
+
|
|
2454
|
+
this.container = container;
|
|
2455
|
+
this.tabDirection = 'forward'; // or 'backward'
|
|
2456
|
+
|
|
2457
|
+
this._init();
|
|
2458
|
+
}
|
|
2459
|
+
|
|
2460
|
+
/**
|
|
2461
|
+
* Initializes the focus trap by setting up event listeners and attributes on the container.
|
|
2462
|
+
* Prepares the container for focus management, including support for shadow DOM and inert attributes.
|
|
2463
|
+
*
|
|
2464
|
+
* @private
|
|
2465
|
+
*/
|
|
2466
|
+
_init() {
|
|
2467
|
+
|
|
2468
|
+
// Add inert attribute to prevent focusing programmatically as well (if supported)
|
|
2469
|
+
if ('inert' in HTMLElement.prototype) {
|
|
2470
|
+
this.container.inert = false; // Ensure the container isn't inert
|
|
2471
|
+
this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
|
|
2472
|
+
}
|
|
2473
|
+
|
|
2474
|
+
// Track tab direction
|
|
2475
|
+
this.container.addEventListener('keydown', this._onKeydown);
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
/**
|
|
2479
|
+
* Handles keydown events to manage tab navigation within the container.
|
|
2480
|
+
* Ensures that focus wraps around when reaching the first or last focusable element.
|
|
2481
|
+
*
|
|
2482
|
+
* @param {KeyboardEvent} e The keyboard event triggered by user interaction.
|
|
2483
|
+
* @private
|
|
2484
|
+
*/
|
|
2485
|
+
_onKeydown = (e) => {
|
|
2486
|
+
|
|
2487
|
+
if (e.key === 'Tab') {
|
|
2488
|
+
|
|
2489
|
+
// Set the tab direction based on the key pressed
|
|
2490
|
+
this.tabDirection = e.shiftKey ? 'backward' : 'forward';
|
|
2491
|
+
|
|
2492
|
+
// Get the active element(s) in the document and shadow root
|
|
2493
|
+
// This will include the active element in the shadow DOM if it exists
|
|
2494
|
+
// Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
|
|
2495
|
+
let activeElement = document.activeElement;
|
|
2496
|
+
const actives = [activeElement];
|
|
2497
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
2498
|
+
actives.push(activeElement.shadowRoot.activeElement);
|
|
2499
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
2500
|
+
}
|
|
2501
|
+
|
|
2502
|
+
// Update the focusable elements
|
|
2503
|
+
const focusables = this._getFocusableElements();
|
|
2504
|
+
|
|
2505
|
+
// If we're at either end of the focusable elements, wrap around to the other end
|
|
2506
|
+
const focusIndex =
|
|
2507
|
+
(actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
|
|
2508
|
+
? focusables.length - 1
|
|
2509
|
+
: actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
|
|
2510
|
+
? 0
|
|
2511
|
+
: null;
|
|
2512
|
+
|
|
2513
|
+
if (focusIndex !== null) {
|
|
2514
|
+
focusables[focusIndex].focus();
|
|
2515
|
+
e.preventDefault(); // Prevent default tab behavior
|
|
2516
|
+
e.stopPropagation(); // Stop the event from bubbling up
|
|
2517
|
+
}
|
|
2518
|
+
}
|
|
2519
|
+
};
|
|
2520
|
+
|
|
2521
|
+
/**
|
|
2522
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
2523
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
2524
|
+
*
|
|
2525
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
2526
|
+
* @private
|
|
2527
|
+
*/
|
|
2528
|
+
_getFocusableElements() {
|
|
2529
|
+
// Use the imported utility function to get focusable elements
|
|
2530
|
+
const elements = getFocusableElements(this.container);
|
|
2531
|
+
|
|
2532
|
+
// Filter out any elements with the 'focus-bookend' class
|
|
2533
|
+
return elements;
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
/**
|
|
2537
|
+
* Moves focus to the first focusable element within the container.
|
|
2538
|
+
* Useful for setting initial focus when activating the focus trap.
|
|
2539
|
+
*/
|
|
2540
|
+
focusFirstElement() {
|
|
2541
|
+
const focusables = this._getFocusableElements();
|
|
2542
|
+
if (focusables.length) focusables[0].focus();
|
|
2543
|
+
}
|
|
2544
|
+
|
|
2545
|
+
/**
|
|
2546
|
+
* Moves focus to the last focusable element within the container.
|
|
2547
|
+
* Useful for setting focus when deactivating or cycling focus in reverse.
|
|
2548
|
+
*/
|
|
2549
|
+
focusLastElement() {
|
|
2550
|
+
const focusables = this._getFocusableElements();
|
|
2551
|
+
if (focusables.length) focusables[focusables.length - 1].focus();
|
|
2552
|
+
}
|
|
2553
|
+
|
|
2554
|
+
/**
|
|
2555
|
+
* Removes event listeners and attributes added by the focus trap.
|
|
2556
|
+
* Call this method to clean up when the focus trap is no longer needed.
|
|
2557
|
+
*/
|
|
2558
|
+
disconnect() {
|
|
2559
|
+
|
|
2560
|
+
if (this.container.hasAttribute('data-focus-trap-container')) {
|
|
2561
|
+
this.container.removeAttribute('data-focus-trap-container');
|
|
2562
|
+
}
|
|
2563
|
+
|
|
2564
|
+
this.container.removeEventListener('keydown', this._onKeydown);
|
|
2565
|
+
}
|
|
2566
|
+
}
|
|
2567
|
+
|
|
2309
2568
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
2310
2569
|
// See LICENSE in the project root for license information.
|
|
2311
2570
|
|
|
@@ -2418,7 +2677,7 @@ const cacheFetch = (uri, options = {}) => {
|
|
|
2418
2677
|
return _fetchMap.get(uri);
|
|
2419
2678
|
};
|
|
2420
2679
|
|
|
2421
|
-
var styleCss$
|
|
2680
|
+
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
2681
|
|
|
2423
2682
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
2424
2683
|
// See LICENSE in the project root for license information.
|
|
@@ -2461,7 +2720,7 @@ class BaseIcon extends AuroElement$1 {
|
|
|
2461
2720
|
|
|
2462
2721
|
static get styles() {
|
|
2463
2722
|
return i$2`
|
|
2464
|
-
${styleCss$
|
|
2723
|
+
${styleCss$3}
|
|
2465
2724
|
`;
|
|
2466
2725
|
}
|
|
2467
2726
|
|
|
@@ -2623,7 +2882,8 @@ class AuroIcon extends BaseIcon {
|
|
|
2623
2882
|
* Allows custom color to be set.
|
|
2624
2883
|
*/
|
|
2625
2884
|
customColor: {
|
|
2626
|
-
type: Boolean
|
|
2885
|
+
type: Boolean,
|
|
2886
|
+
reflect: true
|
|
2627
2887
|
},
|
|
2628
2888
|
|
|
2629
2889
|
/**
|
|
@@ -2663,7 +2923,7 @@ class AuroIcon extends BaseIcon {
|
|
|
2663
2923
|
return [
|
|
2664
2924
|
super.styles,
|
|
2665
2925
|
i$2`${tokensCss$2}`,
|
|
2666
|
-
i$2`${styleCss$
|
|
2926
|
+
i$2`${styleCss$3}`,
|
|
2667
2927
|
i$2`${colorCss$3}`
|
|
2668
2928
|
];
|
|
2669
2929
|
}
|
|
@@ -2698,8 +2958,12 @@ class AuroIcon extends BaseIcon {
|
|
|
2698
2958
|
async firstUpdated() {
|
|
2699
2959
|
await super.firstUpdated();
|
|
2700
2960
|
|
|
2701
|
-
|
|
2702
|
-
|
|
2961
|
+
/**
|
|
2962
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
2963
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
2964
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
2965
|
+
*/
|
|
2966
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
2703
2967
|
const svgDesc = this.svg.querySelector('desc');
|
|
2704
2968
|
|
|
2705
2969
|
if (svgDesc) {
|
|
@@ -2745,11 +3009,11 @@ class AuroIcon extends BaseIcon {
|
|
|
2745
3009
|
|
|
2746
3010
|
var iconVersion = '6.1.2';
|
|
2747
3011
|
|
|
2748
|
-
var styleCss$
|
|
3012
|
+
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
3013
|
|
|
2750
3014
|
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
3015
|
|
|
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:
|
|
3016
|
+
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
3017
|
|
|
2754
3018
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
2755
3019
|
// See LICENSE in the project root for license information.
|
|
@@ -2770,7 +3034,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
|
|
|
2770
3034
|
*/
|
|
2771
3035
|
|
|
2772
3036
|
class AuroDropdownBib extends i {
|
|
2773
|
-
|
|
3037
|
+
// not extending AuroElement because Bib needs only `shape` prop
|
|
2774
3038
|
constructor() {
|
|
2775
3039
|
super();
|
|
2776
3040
|
|
|
@@ -2780,11 +3044,14 @@ class AuroDropdownBib extends i {
|
|
|
2780
3044
|
this._mobileBreakpointValue = undefined;
|
|
2781
3045
|
|
|
2782
3046
|
AuroLibraryRuntimeUtils$2.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
|
|
3047
|
+
|
|
3048
|
+
this.shape = "rounded";
|
|
3049
|
+
this.matchWidth = false;
|
|
2783
3050
|
}
|
|
2784
3051
|
|
|
2785
3052
|
static get styles() {
|
|
2786
3053
|
return [
|
|
2787
|
-
styleCss$
|
|
3054
|
+
styleCss$2,
|
|
2788
3055
|
colorCss$2,
|
|
2789
3056
|
tokensCss$1
|
|
2790
3057
|
];
|
|
@@ -2817,6 +3084,15 @@ class AuroDropdownBib extends i {
|
|
|
2817
3084
|
reflect: true
|
|
2818
3085
|
},
|
|
2819
3086
|
|
|
3087
|
+
/**
|
|
3088
|
+
* If declared, the bib width will match the trigger width.
|
|
3089
|
+
* @private
|
|
3090
|
+
*/
|
|
3091
|
+
matchWidth: {
|
|
3092
|
+
type: Boolean,
|
|
3093
|
+
reflect: true
|
|
3094
|
+
},
|
|
3095
|
+
|
|
2820
3096
|
/**
|
|
2821
3097
|
* If declared, will apply border-radius to the bib.
|
|
2822
3098
|
*/
|
|
@@ -2830,6 +3106,11 @@ class AuroDropdownBib extends i {
|
|
|
2830
3106
|
*/
|
|
2831
3107
|
bibTemplate: {
|
|
2832
3108
|
type: Object
|
|
3109
|
+
},
|
|
3110
|
+
|
|
3111
|
+
shape: {
|
|
3112
|
+
type: String,
|
|
3113
|
+
reflect: true
|
|
2833
3114
|
}
|
|
2834
3115
|
};
|
|
2835
3116
|
}
|
|
@@ -2909,8 +3190,16 @@ class AuroDropdownBib extends i {
|
|
|
2909
3190
|
|
|
2910
3191
|
// function that renders the HTML and CSS into the scope of the component
|
|
2911
3192
|
render() {
|
|
3193
|
+
const classes = {
|
|
3194
|
+
container: true
|
|
3195
|
+
};
|
|
3196
|
+
|
|
3197
|
+
// Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
|
|
3198
|
+
// mimicking the class naming convention used in AuroElement.resetShapeClasses.
|
|
3199
|
+
classes[`shape-${this.shape}`] = true;
|
|
3200
|
+
|
|
2912
3201
|
return u$1`
|
|
2913
|
-
<div class="
|
|
3202
|
+
<div class="${e$2(classes)}" part="bibContainer">
|
|
2914
3203
|
<slot></slot>
|
|
2915
3204
|
</div>
|
|
2916
3205
|
`;
|
|
@@ -2919,21 +3208,23 @@ class AuroDropdownBib extends i {
|
|
|
2919
3208
|
|
|
2920
3209
|
var dropdownVersion = '3.0.0';
|
|
2921
3210
|
|
|
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:
|
|
3211
|
+
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}`;
|
|
3212
|
+
|
|
3213
|
+
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,:host([onDark]) .helpText{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-advanced-color-state-error-inverse, #f9a4a8)}`;
|
|
2923
3214
|
|
|
2924
|
-
var
|
|
3215
|
+
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
3216
|
|
|
2926
|
-
var classicColorCss = i$2
|
|
3217
|
+
var classicColorCss = i$2``;
|
|
2927
3218
|
|
|
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])
|
|
3219
|
+
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
3220
|
|
|
2930
|
-
var styleEmphasizedCss = i$2
|
|
3221
|
+
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
3222
|
|
|
2932
|
-
var styleSnowflakeCss = i$2`:host
|
|
3223
|
+
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)}:host([layout*=snowflake]) .trigger,:host([layout*=snowflake]) .helpText{text-align:center}.layout-snowflake .chevron,.layout-snowflake-left .chevron,.layout-snowflake-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}`;
|
|
2933
3224
|
|
|
2934
3225
|
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)}`;
|
|
2935
3226
|
|
|
2936
|
-
var styleCss = i$2`.
|
|
3227
|
+
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
3228
|
|
|
2938
3229
|
var tokensCss = i$2`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
2939
3230
|
|
|
@@ -3013,8 +3304,6 @@ class AuroLibraryRuntimeUtils {
|
|
|
3013
3304
|
|
|
3014
3305
|
/**
|
|
3015
3306
|
* 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
3307
|
*/
|
|
3019
3308
|
class AuroHelpText extends i {
|
|
3020
3309
|
|
|
@@ -3130,7 +3419,7 @@ class AuroHelpText extends i {
|
|
|
3130
3419
|
// function that renders the HTML and CSS into the scope of the component
|
|
3131
3420
|
render() {
|
|
3132
3421
|
return x`
|
|
3133
|
-
<div class="helptext-wrapper" ?visible="${this.hasTextContent}">
|
|
3422
|
+
<div class="helptext-wrapper body-xs" ?visible="${this.hasTextContent}">
|
|
3134
3423
|
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
3135
3424
|
</div>
|
|
3136
3425
|
`;
|
|
@@ -3174,19 +3463,22 @@ class AuroElement extends i {
|
|
|
3174
3463
|
}
|
|
3175
3464
|
|
|
3176
3465
|
resetShapeClasses() {
|
|
3177
|
-
|
|
3178
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
3466
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
3179
3467
|
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3468
|
+
if (wrapper) {
|
|
3469
|
+
wrapper.classList.forEach((className) => {
|
|
3470
|
+
if (className.startsWith('shape-')) {
|
|
3471
|
+
wrapper.classList.remove(className);
|
|
3472
|
+
}
|
|
3473
|
+
});
|
|
3186
3474
|
|
|
3475
|
+
if (this.shape && this.size) {
|
|
3187
3476
|
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
3477
|
+
} else {
|
|
3478
|
+
wrapper.classList.add('shape-none');
|
|
3188
3479
|
}
|
|
3189
3480
|
}
|
|
3481
|
+
|
|
3190
3482
|
}
|
|
3191
3483
|
|
|
3192
3484
|
resetLayoutClasses() {
|
|
@@ -3235,14 +3527,14 @@ class AuroElement extends i {
|
|
|
3235
3527
|
// See LICENSE in the project root for license information.
|
|
3236
3528
|
|
|
3237
3529
|
|
|
3238
|
-
|
|
3239
|
-
|
|
3530
|
+
|
|
3531
|
+
/*
|
|
3240
3532
|
* @slot - Default slot for the popover content.
|
|
3241
|
-
* @slot label - Defines the content of the label.
|
|
3242
3533
|
* @slot helpText - Defines the content of the helpText.
|
|
3243
3534
|
* @slot trigger - Defines the content of the trigger.
|
|
3244
3535
|
* @csspart trigger - The trigger content container.
|
|
3245
3536
|
* @csspart chevron - The collapsed/expanded state icon container.
|
|
3537
|
+
* @csspart size - The size of the dropdown bib. (height, width, maxHeight, maxWidth only)
|
|
3246
3538
|
* @csspart helpText - The helpText content container.
|
|
3247
3539
|
* @event auroDropdown-triggerClick - Notifies that the trigger has been clicked.
|
|
3248
3540
|
* @event auroDropdown-toggled - Notifies that the visibility of the dropdown bib has changed.
|
|
@@ -3257,23 +3549,25 @@ class AuroDropdown extends AuroElement {
|
|
|
3257
3549
|
this.matchWidth = false;
|
|
3258
3550
|
this.noHideOnThisFocusLoss = false;
|
|
3259
3551
|
|
|
3260
|
-
this.errorMessage =
|
|
3552
|
+
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
3261
3553
|
|
|
3262
3554
|
// Layout Config
|
|
3263
|
-
this.layout =
|
|
3264
|
-
this.shape =
|
|
3265
|
-
this.size =
|
|
3555
|
+
this.layout = undefined;
|
|
3556
|
+
this.shape = undefined;
|
|
3557
|
+
this.size = undefined;
|
|
3558
|
+
|
|
3266
3559
|
this.parentBorder = false;
|
|
3267
3560
|
|
|
3268
|
-
|
|
3269
|
-
|
|
3561
|
+
/** @private */
|
|
3562
|
+
this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
|
|
3270
3563
|
|
|
3271
|
-
|
|
3272
|
-
return {
|
|
3273
|
-
// 'withValue': this.value && this.value.length > 0
|
|
3274
|
-
};
|
|
3564
|
+
this.privateDefaults();
|
|
3275
3565
|
}
|
|
3276
3566
|
|
|
3567
|
+
/**
|
|
3568
|
+
* @private
|
|
3569
|
+
* @returns {object} Class definition for the wrapper element.
|
|
3570
|
+
*/
|
|
3277
3571
|
get commonWrapperClasses() {
|
|
3278
3572
|
return {
|
|
3279
3573
|
'trigger': true,
|
|
@@ -3291,13 +3585,10 @@ class AuroDropdown extends AuroElement {
|
|
|
3291
3585
|
privateDefaults() {
|
|
3292
3586
|
this.chevron = false;
|
|
3293
3587
|
this.disabled = false;
|
|
3588
|
+
this.disableFocusTrap = false;
|
|
3294
3589
|
this.error = false;
|
|
3295
|
-
this.inset = false;
|
|
3296
|
-
this.rounded = false;
|
|
3297
3590
|
this.tabIndex = 0;
|
|
3298
3591
|
this.noToggle = false;
|
|
3299
|
-
this.a11yAutocomplete = 'none';
|
|
3300
|
-
this.labeled = true;
|
|
3301
3592
|
this.a11yRole = 'button';
|
|
3302
3593
|
this.onDark = false;
|
|
3303
3594
|
this.showTriggerBorders = true;
|
|
@@ -3393,6 +3684,18 @@ class AuroDropdown extends AuroElement {
|
|
|
3393
3684
|
this.floater.showBib();
|
|
3394
3685
|
}
|
|
3395
3686
|
|
|
3687
|
+
/**
|
|
3688
|
+
* When bib is open, focus on the first element inside of bib.
|
|
3689
|
+
* If not, trigger element will get focus.
|
|
3690
|
+
*/
|
|
3691
|
+
focus() {
|
|
3692
|
+
if (this.isPopoverVisible && this.focusTrap) {
|
|
3693
|
+
this.focusTrap.focusFirstElement();
|
|
3694
|
+
} else {
|
|
3695
|
+
this.trigger.focus();
|
|
3696
|
+
}
|
|
3697
|
+
}
|
|
3698
|
+
|
|
3396
3699
|
// function to define props used within the scope of this component
|
|
3397
3700
|
static get properties() {
|
|
3398
3701
|
return {
|
|
@@ -3406,6 +3709,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3406
3709
|
reflect: true
|
|
3407
3710
|
},
|
|
3408
3711
|
|
|
3712
|
+
/**
|
|
3713
|
+
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
3714
|
+
* @default false
|
|
3715
|
+
*/
|
|
3716
|
+
disableEventShow: {
|
|
3717
|
+
type: Boolean,
|
|
3718
|
+
reflect: true
|
|
3719
|
+
},
|
|
3720
|
+
|
|
3409
3721
|
/**
|
|
3410
3722
|
* If declared, applies a border around the trigger slot.
|
|
3411
3723
|
*/
|
|
@@ -3424,17 +3736,17 @@ class AuroDropdown extends AuroElement {
|
|
|
3424
3736
|
},
|
|
3425
3737
|
|
|
3426
3738
|
/**
|
|
3427
|
-
* If declared, the dropdown
|
|
3739
|
+
* If declared, the dropdown is not interactive.
|
|
3428
3740
|
*/
|
|
3429
|
-
|
|
3741
|
+
disabled: {
|
|
3430
3742
|
type: Boolean,
|
|
3431
3743
|
reflect: true
|
|
3432
3744
|
},
|
|
3433
3745
|
|
|
3434
3746
|
/**
|
|
3435
|
-
* If declared, the
|
|
3747
|
+
* If declared, the focus trap inside of bib will be turned off.
|
|
3436
3748
|
*/
|
|
3437
|
-
|
|
3749
|
+
disableFocusTrap: {
|
|
3438
3750
|
type: Boolean,
|
|
3439
3751
|
reflect: true
|
|
3440
3752
|
},
|
|
@@ -3479,27 +3791,13 @@ class AuroDropdown extends AuroElement {
|
|
|
3479
3791
|
reflect: true
|
|
3480
3792
|
},
|
|
3481
3793
|
|
|
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
3794
|
/**
|
|
3499
3795
|
* If true, the dropdown bib is displayed.
|
|
3500
3796
|
*/
|
|
3501
3797
|
isPopoverVisible: {
|
|
3502
|
-
type: Boolean
|
|
3798
|
+
type: Boolean,
|
|
3799
|
+
reflect: true,
|
|
3800
|
+
attribute: 'open'
|
|
3503
3801
|
},
|
|
3504
3802
|
|
|
3505
3803
|
/**
|
|
@@ -3538,15 +3836,6 @@ class AuroDropdown extends AuroElement {
|
|
|
3538
3836
|
reflect: true
|
|
3539
3837
|
},
|
|
3540
3838
|
|
|
3541
|
-
/**
|
|
3542
|
-
* Defines if there is a label preset.
|
|
3543
|
-
* @private
|
|
3544
|
-
*/
|
|
3545
|
-
labeled: {
|
|
3546
|
-
type: Boolean,
|
|
3547
|
-
reflect: true
|
|
3548
|
-
},
|
|
3549
|
-
|
|
3550
3839
|
/**
|
|
3551
3840
|
* Defines if the trigger should size based on the parent element providing the border UI.
|
|
3552
3841
|
* @private
|
|
@@ -3607,6 +3896,9 @@ class AuroDropdown extends AuroElement {
|
|
|
3607
3896
|
reflect: true
|
|
3608
3897
|
},
|
|
3609
3898
|
|
|
3899
|
+
/**
|
|
3900
|
+
* If declared, and a function is set, that function will execute when the slot content is updated.
|
|
3901
|
+
*/
|
|
3610
3902
|
onSlotChange: {
|
|
3611
3903
|
type: Function,
|
|
3612
3904
|
reflect: false
|
|
@@ -3621,14 +3913,6 @@ class AuroDropdown extends AuroElement {
|
|
|
3621
3913
|
reflect: true
|
|
3622
3914
|
},
|
|
3623
3915
|
|
|
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
3916
|
/**
|
|
3633
3917
|
* @private
|
|
3634
3918
|
*/
|
|
@@ -3643,22 +3927,15 @@ class AuroDropdown extends AuroElement {
|
|
|
3643
3927
|
type: String || undefined,
|
|
3644
3928
|
attribute: false,
|
|
3645
3929
|
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
3930
|
}
|
|
3655
3931
|
};
|
|
3656
3932
|
}
|
|
3657
3933
|
|
|
3658
3934
|
static get styles() {
|
|
3659
3935
|
return [
|
|
3660
|
-
|
|
3936
|
+
styleCss$1,
|
|
3661
3937
|
tokensCss$1,
|
|
3938
|
+
colorCss$1,
|
|
3662
3939
|
|
|
3663
3940
|
// default layout
|
|
3664
3941
|
classicColorCss,
|
|
@@ -3720,13 +3997,27 @@ class AuroDropdown extends AuroElement {
|
|
|
3720
3997
|
if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
|
|
3721
3998
|
this.handleTriggerContentSlotChange();
|
|
3722
3999
|
}
|
|
4000
|
+
}
|
|
3723
4001
|
|
|
4002
|
+
/**
|
|
4003
|
+
* Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
|
|
4004
|
+
* @private
|
|
4005
|
+
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
4006
|
+
*/
|
|
4007
|
+
handleDropdownToggle(event) {
|
|
4008
|
+
this.updateFocusTrap();
|
|
4009
|
+
this.isPopoverVisible = event.detail.expanded;
|
|
4010
|
+
const eventType = event.detail.eventType || "unknown";
|
|
4011
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
4012
|
+
this.trigger.focus();
|
|
4013
|
+
}
|
|
3724
4014
|
}
|
|
3725
4015
|
|
|
3726
4016
|
firstUpdated() {
|
|
3727
4017
|
|
|
3728
4018
|
// Configure the floater to, this will generate the ID for the bib
|
|
3729
4019
|
this.floater.configure(this, 'auroDropdown');
|
|
4020
|
+
this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
|
|
3730
4021
|
|
|
3731
4022
|
/**
|
|
3732
4023
|
* @description Let subscribers know that the dropdown ID ha been generated and added.
|
|
@@ -3744,6 +4035,13 @@ class AuroDropdown extends AuroElement {
|
|
|
3744
4035
|
|
|
3745
4036
|
// Add the tag name as an attribute if it is different than the component name
|
|
3746
4037
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-dropdown');
|
|
4038
|
+
|
|
4039
|
+
this.trigger.addEventListener('click', () => {
|
|
4040
|
+
this.dispatchEvent(new CustomEvent('auroDropdown-triggerClick', {
|
|
4041
|
+
bubbles: true,
|
|
4042
|
+
composed: true
|
|
4043
|
+
}));
|
|
4044
|
+
});
|
|
3747
4045
|
}
|
|
3748
4046
|
|
|
3749
4047
|
/**
|
|
@@ -3787,70 +4085,33 @@ class AuroDropdown extends AuroElement {
|
|
|
3787
4085
|
}
|
|
3788
4086
|
|
|
3789
4087
|
/**
|
|
3790
|
-
* Function to support @focusout event.
|
|
3791
4088
|
* @private
|
|
3792
|
-
* @return {void}
|
|
3793
4089
|
*/
|
|
3794
|
-
|
|
3795
|
-
|
|
4090
|
+
updateFocusTrap() {
|
|
4091
|
+
// If the dropdown is open, create a focus trap and focus the first element
|
|
4092
|
+
if (this.isPopoverVisible && !this.disableFocusTrap) {
|
|
4093
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
4094
|
+
this.focusTrap.focusFirstElement();
|
|
4095
|
+
return;
|
|
4096
|
+
}
|
|
4097
|
+
|
|
4098
|
+
// Guard Clause: Ensure there is a focus trap currently active before continuing
|
|
4099
|
+
if (!this.focusTrap) {
|
|
4100
|
+
return;
|
|
4101
|
+
}
|
|
4102
|
+
|
|
4103
|
+
// If the dropdown is not open, disconnect the focus trap if it exists
|
|
4104
|
+
this.focusTrap.disconnect();
|
|
4105
|
+
this.focusTrap = undefined;
|
|
3796
4106
|
}
|
|
3797
4107
|
|
|
3798
4108
|
/**
|
|
3799
|
-
*
|
|
4109
|
+
* Function to support @focusout event.
|
|
3800
4110
|
* @private
|
|
3801
|
-
* @
|
|
3802
|
-
* @returns {Boolean} - True if the element or any children are focusable.
|
|
4111
|
+
* @return {void}
|
|
3803
4112
|
*/
|
|
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;
|
|
4113
|
+
handleFocusout() {
|
|
4114
|
+
this.hasFocus = false;
|
|
3854
4115
|
}
|
|
3855
4116
|
|
|
3856
4117
|
/**
|
|
@@ -3946,14 +4207,13 @@ class AuroDropdown extends AuroElement {
|
|
|
3946
4207
|
* @returns {void}
|
|
3947
4208
|
*/
|
|
3948
4209
|
handleTriggerContentSlotChange(event) {
|
|
3949
|
-
|
|
3950
4210
|
this.floater.handleTriggerTabIndex();
|
|
3951
4211
|
|
|
3952
4212
|
// Get the trigger
|
|
3953
4213
|
const trigger = this.shadowRoot.querySelector('#trigger');
|
|
3954
4214
|
|
|
3955
4215
|
// Get the trigger slot
|
|
3956
|
-
const triggerSlot = this.shadowRoot.querySelector('.
|
|
4216
|
+
const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
|
|
3957
4217
|
|
|
3958
4218
|
// If there's a trigger slot
|
|
3959
4219
|
if (triggerSlot) {
|
|
@@ -3965,7 +4225,7 @@ class AuroDropdown extends AuroElement {
|
|
|
3965
4225
|
if (triggerContentNodes) {
|
|
3966
4226
|
|
|
3967
4227
|
// See if any of them are focusable elements
|
|
3968
|
-
this.triggerContentFocusable = triggerContentNodes.some((node) =>
|
|
4228
|
+
this.triggerContentFocusable = triggerContentNodes.some((node) => getFocusableElements(node).length > 0);
|
|
3969
4229
|
|
|
3970
4230
|
// If any of them are focusable elements
|
|
3971
4231
|
if (this.triggerContentFocusable) {
|
|
@@ -4025,29 +4285,6 @@ class AuroDropdown extends AuroElement {
|
|
|
4025
4285
|
}
|
|
4026
4286
|
}
|
|
4027
4287
|
|
|
4028
|
-
/**
|
|
4029
|
-
* @private
|
|
4030
|
-
* @method handleLabelSlotChange
|
|
4031
|
-
* @param {event} event - The event object representing the slot change.
|
|
4032
|
-
* @description Handles the slot change event for the label slot.
|
|
4033
|
-
*/
|
|
4034
|
-
handleLabelSlotChange (event) {
|
|
4035
|
-
|
|
4036
|
-
// Get the nodes from the event
|
|
4037
|
-
const nodes = event.target.assignedNodes();
|
|
4038
|
-
|
|
4039
|
-
// Guard clause for no nodes
|
|
4040
|
-
if (!nodes) {
|
|
4041
|
-
return;
|
|
4042
|
-
}
|
|
4043
|
-
|
|
4044
|
-
// Convert the nodes to a measurable array so we can get the length
|
|
4045
|
-
const nodesArr = Array.from(nodes);
|
|
4046
|
-
|
|
4047
|
-
// If the nodes array has a length, the dropdown is labeled
|
|
4048
|
-
this.labeled = nodesArr.length > 0;
|
|
4049
|
-
}
|
|
4050
|
-
|
|
4051
4288
|
/**
|
|
4052
4289
|
* Returns HTML for the common portion of the layouts.
|
|
4053
4290
|
* @private
|
|
@@ -4060,24 +4297,19 @@ class AuroDropdown extends AuroElement {
|
|
|
4060
4297
|
<div
|
|
4061
4298
|
id="trigger"
|
|
4062
4299
|
class="${e$2(this.commonWrapperClasses)}" part="wrapper"
|
|
4063
|
-
tabindex="${this.tabIndex}"
|
|
4300
|
+
tabindex="${o(this.triggerContentFocusable ? undefined : this.tabIndex)}"
|
|
4064
4301
|
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
4065
|
-
aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
4066
|
-
aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
4302
|
+
aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
4303
|
+
aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
4067
4304
|
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
4068
4305
|
@focusin="${this.handleFocusin}"
|
|
4069
4306
|
@blur="${this.handleFocusOut}">
|
|
4070
|
-
<div class="triggerContentWrapper">
|
|
4071
|
-
<
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
<div class="triggerContent">
|
|
4075
|
-
<slot
|
|
4076
|
-
name="trigger"
|
|
4077
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4078
|
-
</div>
|
|
4307
|
+
<div class="triggerContentWrapper" id="triggerLabel">
|
|
4308
|
+
<slot
|
|
4309
|
+
name="trigger"
|
|
4310
|
+
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4079
4311
|
</div>
|
|
4080
|
-
${this.chevron
|
|
4312
|
+
${this.chevron ? u$1`
|
|
4081
4313
|
<div
|
|
4082
4314
|
id="showStateIcon"
|
|
4083
4315
|
class="chevron"
|
|
@@ -4098,11 +4330,9 @@ class AuroDropdown extends AuroElement {
|
|
|
4098
4330
|
<div id="bibSizer" part="size"></div>
|
|
4099
4331
|
<${this.dropdownBibTag}
|
|
4100
4332
|
id="bib"
|
|
4333
|
+
shape="${this.shape}"
|
|
4101
4334
|
?data-show="${this.isPopoverVisible}"
|
|
4102
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
4103
|
-
?common="${this.common}"
|
|
4104
|
-
?rounded="${this.common || this.rounded}"
|
|
4105
|
-
?inset="${this.common || this.inset}">
|
|
4335
|
+
?isfullscreen="${this.isBibFullscreen}">
|
|
4106
4336
|
<div class="slotContent">
|
|
4107
4337
|
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
4108
4338
|
</div>
|
|
@@ -4117,62 +4347,13 @@ class AuroDropdown extends AuroElement {
|
|
|
4117
4347
|
* @returns {html} - Returns HTML for the classic layout.
|
|
4118
4348
|
*/
|
|
4119
4349
|
renderLayoutClassic() {
|
|
4350
|
+
// TODO: check with Doug why this was never used?
|
|
4351
|
+
const helpTextClasses = {
|
|
4352
|
+
'helpText': true
|
|
4353
|
+
};
|
|
4120
4354
|
|
|
4121
4355
|
return u$1`
|
|
4122
|
-
|
|
4123
|
-
<div
|
|
4124
|
-
id="trigger"
|
|
4125
|
-
class="trigger"
|
|
4126
|
-
part="trigger"
|
|
4127
|
-
tabindex="${this.tabIndex}"
|
|
4128
|
-
?showBorder="${this.showTriggerBorders}"
|
|
4129
|
-
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
4130
|
-
aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
4131
|
-
aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
4132
|
-
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
4133
|
-
>
|
|
4134
|
-
<div class="triggerContentWrapper">
|
|
4135
|
-
<label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
|
|
4136
|
-
<slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
|
|
4137
|
-
</label>
|
|
4138
|
-
<div class="triggerContent">
|
|
4139
|
-
<slot
|
|
4140
|
-
name="trigger"
|
|
4141
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4142
|
-
</div>
|
|
4143
|
-
</div>
|
|
4144
|
-
${this.chevron || this.common ? u$1`
|
|
4145
|
-
<div
|
|
4146
|
-
id="showStateIcon"
|
|
4147
|
-
part="chevron">
|
|
4148
|
-
<${this.iconTag}
|
|
4149
|
-
category="interface"
|
|
4150
|
-
name="chevron-down"
|
|
4151
|
-
?onDark="${this.onDark}"
|
|
4152
|
-
variant="${this.disabled ? 'disabled' : 'muted'}">
|
|
4153
|
-
>
|
|
4154
|
-
</${this.iconTag}>
|
|
4155
|
-
</div>
|
|
4156
|
-
` : undefined }
|
|
4157
|
-
</div>
|
|
4158
|
-
<${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
|
|
4159
|
-
<slot name="helpText"></slot>
|
|
4160
|
-
</${this.helpTextTag}>
|
|
4161
|
-
|
|
4162
|
-
<div id="bibSizer" part="size"></div>
|
|
4163
|
-
<${this.dropdownBibTag}
|
|
4164
|
-
id="bib"
|
|
4165
|
-
?data-show="${this.isPopoverVisible}"
|
|
4166
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
4167
|
-
?common="${this.common}"
|
|
4168
|
-
?rounded="${this.common || this.rounded}"
|
|
4169
|
-
?inset="${this.common || this.inset}"
|
|
4170
|
-
>
|
|
4171
|
-
<div class="slotContent">
|
|
4172
|
-
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
4173
|
-
</div>
|
|
4174
|
-
</${this.dropdownBibTag}>
|
|
4175
|
-
</div>
|
|
4356
|
+
${this.renderBasicHtml(helpTextClasses)}
|
|
4176
4357
|
`;
|
|
4177
4358
|
}
|
|
4178
4359
|
|