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