{"version":3,"names":["Button","props","children","rippleColor","getRippleColorForButtonStyle","style","className","getClassNameForButtonStyle","attributes","class","part","onClick","title","type","role","ariaLabel","ariaExpanded","ariaPressed","ariaChecked","ariaCurrent","ariaControls","ariaHidden","disabled","ref","buttonEl","form","setAttribute","tabIndex","_a","call","h","onMouseDown","e","createRipple","color","text"],"sources":["src/components/common/button.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\nimport {createRipple} from '../../utils/ripple';\nimport {\n ButtonStyle,\n getRippleColorForButtonStyle,\n getClassNameForButtonStyle,\n} from './button-style';\n\nexport interface ButtonProps {\n style: ButtonStyle;\n onClick?(event?: MouseEvent): void;\n class?: string;\n text?: string;\n part?: string;\n type?: string;\n form?: string;\n role?: string;\n disabled?: boolean;\n ariaLabel?: string;\n ariaExpanded?: string;\n ariaPressed?: string;\n ariaChecked?: string;\n ariaCurrent?: string;\n ariaControls?: string;\n ariaHidden?: string;\n tabIndex?: string;\n title?: string;\n ref?(element?: HTMLButtonElement): void;\n}\n\nexport const Button: FunctionalComponent<ButtonProps> = (props, children) => {\n const rippleColor = getRippleColorForButtonStyle(props.style);\n const className = getClassNameForButtonStyle(props.style);\n\n const attributes = {\n class: props.class ? `${className} ${props.class}` : className,\n part: props.part,\n onClick: props.onClick,\n title: props.title,\n type: props.type,\n role: props.role,\n 'aria-label': props.ariaLabel,\n 'aria-expanded': props.ariaExpanded,\n 'aria-pressed': props.ariaPressed,\n 'aria-checked': props.ariaChecked,\n 'aria-current': props.ariaCurrent,\n 'aria-controls': props.ariaControls,\n 'aria-hidden': props.ariaHidden,\n disabled: props.disabled,\n ref(buttonEl?: HTMLButtonElement) {\n if (props.form) {\n buttonEl?.setAttribute('form', props.form);\n }\n if (props.ariaHidden) {\n buttonEl?.setAttribute('aria-hidden', props.ariaHidden);\n }\n if (props.tabIndex) {\n buttonEl?.setAttribute('tabindex', props.tabIndex);\n }\n props.ref?.(buttonEl);\n },\n };\n\n return (\n <button\n {...attributes}\n onMouseDown={(e) => createRipple(e, {color: rippleColor})}\n >\n {props.text ? <span class=\"truncate\">{props.text}</span> : null}\n {children}\n </button>\n );\n};\n"],"mappings":"yHA8BaA,EAA2C,CAACC,EAAOC,KAC9D,MAAMC,EAAcC,EAA6BH,EAAMI,OACvD,MAAMC,EAAYC,EAA2BN,EAAMI,OAEnD,MAAMG,EAAa,CACjBC,MAAOR,EAAMQ,MAAQ,GAAGH,KAAaL,EAAMQ,QAAUH,EACrDI,KAAMT,EAAMS,KACZC,QAASV,EAAMU,QACfC,MAAOX,EAAMW,MACbC,KAAMZ,EAAMY,KACZC,KAAMb,EAAMa,KACZ,aAAcb,EAAMc,UACpB,gBAAiBd,EAAMe,aACvB,eAAgBf,EAAMgB,YACtB,eAAgBhB,EAAMiB,YACtB,eAAgBjB,EAAMkB,YACtB,gBAAiBlB,EAAMmB,aACvB,cAAenB,EAAMoB,WACrBC,SAAUrB,EAAMqB,SAChB,GAAAC,CAAIC,G,MACF,GAAIvB,EAAMwB,KAAM,CACdD,IAAQ,MAARA,SAAQ,SAARA,EAAUE,aAAa,OAAQzB,EAAMwB,K,CAEvC,GAAIxB,EAAMoB,WAAY,CACpBG,IAAQ,MAARA,SAAQ,SAARA,EAAUE,aAAa,cAAezB,EAAMoB,W,CAE9C,GAAIpB,EAAM0B,SAAU,CAClBH,IAAQ,MAARA,SAAQ,SAARA,EAAUE,aAAa,WAAYzB,EAAM0B,S,EAE3CC,EAAA3B,EAAMsB,OAAG,MAAAK,SAAA,SAAAA,EAAAC,KAAA5B,EAAGuB,E,GAIhB,OACEM,EAAA,aACMtB,EACJuB,YAAcC,GAAMC,EAAaD,EAAG,CAACE,MAAO/B,KAE3CF,EAAMkC,KAAOL,EAAA,QAAMrB,MAAM,YAAYR,EAAMkC,MAAe,KAC1DjC,EACM,S"}