{"version":3,"file":"Button.mjs","sources":["../../../packages/button/Button.tsx"],"sourcesContent":["import { ForwardedRef, forwardRef } from 'react'\nimport {\n  ButtonStyle,\n  ButtonContentStyle,\n  ButtonLoaderStyle,\n} from './ButtonStyles.js'\nimport { ButtonProps } from './types.js'\nimport { useRipple } from './useRipple.js'\n\nconst loaderSizes = {\n  xxs: 'small',\n  xs: 'small',\n  sm: 'small',\n  md: 'medium',\n  lg: 'medium',\n} as const\n\nexport const Button = forwardRef(\n  (\n    {\n      size = 'md',\n      variant = 'filled',\n      color = 'primary',\n      square = false,\n      fullwidth = false,\n      loading = false,\n      active = false,\n      onClick,\n      disabled,\n      children,\n      ...rest\n    }: ButtonProps,\n    ref?: ForwardedRef<HTMLButtonElement>,\n  ) => {\n    const { handleClick, ripple } = useRipple({ onClick })\n    const loaderSize = loaderSizes[size]\n\n    return (\n      <ButtonStyle\n        $size={size}\n        $variant={variant}\n        $fullwidth={fullwidth}\n        $color={color}\n        $square={square}\n        $loading={loading}\n        $active={active}\n        onClick={handleClick}\n        disabled={disabled || loading}\n        type='button'\n        ref={ref}\n        {...rest}\n      >\n        <ButtonContentStyle $hidden={loading}>{children}</ButtonContentStyle>\n        {loading && <ButtonLoaderStyle size={loaderSize} />}\n        {!active && ripple}\n      </ButtonStyle>\n    )\n  },\n)\nButton.displayName = 'Button'\n"],"names":["loaderSizes","xxs","xs","sm","md","lg","Button","forwardRef","_ref","ref","size","variant","color","square","fullwidth","loading","active","onClick","disabled","children","rest","handleClick","ripple","useRipple","loaderSize","_jsxs","ButtonStyle","$size","$variant","$fullwidth","$color","$square","$loading","$active","type","_jsx","ButtonContentStyle","$hidden","ButtonLoaderStyle","displayName"],"mappings":";;;;;AASA,MAAMA,WAAW,GAAG;AAClBC,EAAAA,GAAG,EAAE,OAAO;AACZC,EAAAA,EAAE,EAAE,OAAO;AACXC,EAAAA,EAAE,EAAE,OAAO;AACXC,EAAAA,EAAE,EAAE,QAAQ;AACZC,EAAAA,EAAE,EAAE,QAAA;AACN,CAAU,CAAA;AAEH,MAAMC,MAAM,gBAAGC,UAAU,CAC9B,CAAAC,IAAA,EAcEC,GAAqC,KAClC;EAAA,IAdH;AACEC,IAAAA,IAAI,GAAG,IAAI;AACXC,IAAAA,OAAO,GAAG,QAAQ;AAClBC,IAAAA,KAAK,GAAG,SAAS;AACjBC,IAAAA,MAAM,GAAG,KAAK;AACdC,IAAAA,SAAS,GAAG,KAAK;AACjBC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,MAAM,GAAG,KAAK;IACdC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACR,GAAGC,IAAAA;AACQ,GAAC,GAAAZ,IAAA,CAAA;EAGd,MAAM;IAAEa,WAAW;AAAEC,IAAAA,MAAAA;GAAQ,GAAGC,SAAS,CAAC;AAAEN,IAAAA,OAAAA;AAAQ,GAAC,CAAC,CAAA;AACtD,EAAA,MAAMO,UAAU,GAAGxB,WAAW,CAACU,IAAI,CAAC,CAAA;EAEpC,oBACEe,IAAA,CAACC,WAAW,EAAA;AACVC,IAAAA,KAAK,EAAEjB,IAAK;AACZkB,IAAAA,QAAQ,EAAEjB,OAAQ;AAClBkB,IAAAA,UAAU,EAAEf,SAAU;AACtBgB,IAAAA,MAAM,EAAElB,KAAM;AACdmB,IAAAA,OAAO,EAAElB,MAAO;AAChBmB,IAAAA,QAAQ,EAAEjB,OAAQ;AAClBkB,IAAAA,OAAO,EAAEjB,MAAO;AAChBC,IAAAA,OAAO,EAAEI,WAAY;IACrBH,QAAQ,EAAEA,QAAQ,IAAIH,OAAQ;AAC9BmB,IAAAA,IAAI,EAAC,QAAQ;AACbzB,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GACLW,IAAI;IAAAD,QAAA,EAAA,cAERgB,GAAA,CAACC,kBAAkB,EAAA;AAACC,MAAAA,OAAO,EAAEtB,OAAQ;AAAAI,MAAAA,QAAA,EAAEA,QAAAA;AAAQ,KAAqB,CAAC,EACpEJ,OAAO,iBAAIoB,GAAA,CAACG,iBAAiB,EAAA;AAAC5B,MAAAA,IAAI,EAAEc,UAAAA;AAAW,KAAE,CAAC,EAClD,CAACR,MAAM,IAAIM,MAAM,CAAA;AAAA,GACP,CAAC,CAAA;AAElB,CACF,EAAC;AACDhB,MAAM,CAACiC,WAAW,GAAG,QAAQ;;;;"}