@sandlada/mdc
Version:
@sandlada/mdc is an open source component library that follows the Material Design 3 design specifications.
2 lines (1 loc) • 1.38 kB
JavaScript
import{_ as t}from"../../tslib.es6-CmLYFWVC.js";import{i as e,x as s}from"../../lit-element-Ho-VPzO1.js";import{n}from"../../property-Ck1wIidx.js";import{r as o}from"../../state--U2hSgGK.js";import{e as i}from"../../query-DifSdHBD.js";import{e as r}from"../../class-map-DlMb2KKL.js";import{isActivationClick as a,dispatchActivationClick as l}from"../../utils/event/form-label-activation.js";class c extends e{getRenderClasses(){return{[this.variant]:!0,[this.size]:!0,"has-icon":this.hasIcon}}constructor(){super(),this.variant="tonal-secondary",this.size="small",this.hasIcon=!1,this.addEventListener("click",this.handleClick.bind(this))}render(){return s`<button class="${r(this.getRenderClasses())}"><mdc-ripple part="ripple"></mdc-ripple><mdc-focus-ring part="focus-ring"></mdc-focus-ring><mdc-elevation part="elevation"></mdc-elevation>${this.renderIcon()}</button>`}renderIcon(){return s`<span class="icon"><slot name="icon" .aria-hidden="${this.ariaLabel}" ="${this.handleIconSlotChange}"></slot></span>`}handleClick(t){a(t)&&this.buttonElement&&l(this.buttonElement)}handleIconSlotChange(t){this.hasIcon=t.target.assignedElements().length>0}}t([i(".button")],c.prototype,"buttonElement",void 0),t([n({type:String,reflect:!0})],c.prototype,"variant",void 0),t([n({type:String})],c.prototype,"size",void 0),t([o()],c.prototype,"hasIcon",void 0);export{c as BaseFab};