{"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"}