@spectrum-web-components/base
Version:
The `SpectrumElement` base class as created by mixing `SpectrumMixin` onto `LitElement` provides text direction support via the CSS `:dir()` pseudo-class, which automatically inherits directionality from the DOM hierarchy. In a TypeScript context, it also
3 lines (2 loc) • 1.05 kB
JavaScript
;var m=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var S=(r,s,i,t)=>{for(var e=t>1?void 0:t?p(s,i):s,o=r.length-1,l;o>=0;o--)(l=r[o])&&(e=(t?l(s,i,e):l(e))||e);return t&&e&&m(s,i,e),e};import{property as x}from"lit/decorators.js";export const ELEMENT_SIZES=["xxs","xs","s","m","l","xl","xxl"],DEFAULT_ELEMENT_SIZES=["s","m","l","xl"];export function SizedMixin(r,{validSizes:s=[...DEFAULT_ELEMENT_SIZES],noDefaultSize:i,defaultSize:t="m"}={}){class e extends r{constructor(){super(...arguments);this._size=t}get size(){return this._size||t}set size(n){const a=i?null:t,z=n&&n.toLocaleLowerCase(),E=s.includes(z)?z:a;if(E&&this.setAttribute("size",E),this._size===E)return;const c=this._size;this._size=E,this.requestUpdate("size",c)}update(n){!this.hasAttribute("size")&&!i&&this.setAttribute("size",this.size),super.update(n)}}return e.VALID_SIZES=s,S([x({type:String})],e.prototype,"size",1),e}export const ElementSizes={xxs:"xxs",xs:"xs",s:"s",m:"m",l:"l",xl:"xl",xxl:"xxl"};
//# sourceMappingURL=sizedMixin.js.map