{"version":3,"file":"index.tsx.cjs","sources":["../../../src/lib/kapwa/button/index.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '@kapwa/utils';\n\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  children: React.ReactNode;\n  variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'link';\n  size?: 'sm' | 'md' | 'lg';\n  fullWidth?: boolean;\n  isLoading?: boolean;\n  leftIcon?: React.ReactNode;\n  rightIcon?: React.ReactNode;\n}\n\nconst Button = ({\n  children,\n  className,\n  variant = 'primary',\n  size = 'md',\n  fullWidth = false,\n  isLoading = false,\n  leftIcon,\n  rightIcon,\n  disabled,\n  ...props\n}: ButtonProps) => {\n  const variants = {\n    primary:\n      'bg-[var(--color-kapwa-bg-brand-default)] text-[var(--color-kapwa-text-inverse)] hover:bg-[var(--color-kapwa-bg-brand-hover)] active:bg-[var(--color-kapwa-bg-brand-active)] focus-visible:ring-[var(--color-kapwa-border-focus)]',\n    secondary:\n      'bg-[var(--color-kapwa-bg-gray-default)] text-[var(--color-kapwa-text-strong)] hover:bg-[var(--color-kapwa-bg-gray-hover)] active:bg-[var(--color-kapwa-bg-gray-active)] focus-visible:ring-[var(--color-kapwa-border-focus)]',\n    outline:\n      'border border-[var(--color-kapwa-border-strong)] bg-transparent text-[var(--color-kapwa-text-support)] hover:bg-[var(--color-kapwa-bg-gray-default)] active:bg-[var(--color-kapwa-bg-gray-hover)] focus-visible:ring-[var(--color-kapwa-border-focus)]',\n    ghost:\n      'bg-transparent text-[var(--color-kapwa-text-support)] hover:bg-[var(--color-kapwa-bg-gray-default)] active:bg-[var(--color-kapwa-bg-gray-hover)] focus-visible:ring-[var(--color-kapwa-border-focus)]',\n    link: 'h-auto bg-transparent p-0 text-[var(--color-kapwa-text-link)] hover:text-[var(--color-kapwa-text-link-hover)] hover:underline focus-visible:ring-0',\n  };\n\n  const sizes = {\n    sm: 'text-sm px-3 py-1.5 h-8',\n    md: 'text-base px-4 py-2 h-10',\n    lg: 'text-lg px-6 py-3 h-12',\n  };\n\n  const isDisabled = disabled || isLoading;\n\n  return (\n    <button\n      className={cn(\n        'inline-flex items-center justify-center rounded-md font-medium transition-colors',\n        'focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2',\n        variants[variant],\n        sizes[size],\n        fullWidth ? 'w-full' : '',\n        isDisabled ? 'opacity-60 cursor-not-allowed' : '',\n        variant !== 'link' && 'shadow-xs',\n        className\n      )}\n      disabled={isDisabled}\n      {...props}\n    >\n      {isLoading && (\n        <svg\n          className='animate-spin -ml-1 mr-2 h-4 w-4 text-current'\n          xmlns='http://www.w3.org/2000/svg'\n          fill='none'\n          viewBox='0 0 24 24'\n        >\n          <circle\n            className='opacity-25'\n            cx='12'\n            cy='12'\n            r='10'\n            stroke='currentColor'\n            strokeWidth='4'\n          ></circle>\n          <path\n            className='opacity-75'\n            fill='currentColor'\n            d='M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z'\n          ></path>\n        </svg>\n      )}\n      {!isLoading && leftIcon && <span className='mr-2'>{leftIcon}</span>}\n      {children}\n      {!isLoading && rightIcon && <span className='ml-2'>{rightIcon}</span>}\n    </button>\n  );\n};\n\nexport { Button };\n"],"names":["Button","children","className","variant","size","fullWidth","isLoading","leftIcon","rightIcon","disabled","props","variants","sizes","isDisabled","jsxs","cn","jsx"],"mappings":"wKAaMA,EAAS,CAAC,CACd,SAAAC,EACA,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,KACP,UAAAC,EAAY,GACZ,UAAAC,EAAY,GACZ,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAmB,CACjB,MAAMC,EAAW,CACf,QACE,mOACF,UACE,+NACF,QACE,yPACF,MACE,wMACF,KAAM,oJAAA,EAGFC,EAAQ,CACZ,GAAI,0BACJ,GAAI,2BACJ,GAAI,wBAAA,EAGAC,EAAaJ,GAAYH,EAE/B,OACEQ,EAAAA,kBAAAA,KAAC,SAAA,CACC,UAAWC,EAAAA,GACT,mFACA,gFACAJ,EAASR,CAAO,EAChBS,EAAMR,CAAI,EACVC,EAAY,SAAW,GACvBQ,EAAa,gCAAkC,GAC/CV,IAAY,QAAU,YACtBD,CAAA,EAEF,SAAUW,EACT,GAAGH,EAEH,SAAA,CAAAJ,GACCQ,EAAAA,kBAAAA,KAAC,MAAA,CACC,UAAU,+CACV,MAAM,6BACN,KAAK,OACL,QAAQ,YAER,SAAA,CAAAE,EAAAA,kBAAAA,IAAC,SAAA,CACC,UAAU,aACV,GAAG,KACH,GAAG,KACH,EAAE,KACF,OAAO,eACP,YAAY,GAAA,CAAA,EAEdA,EAAAA,kBAAAA,IAAC,OAAA,CACC,UAAU,aACV,KAAK,eACL,EAAE,iHAAA,CAAA,CACH,CAAA,CAAA,EAGJ,CAACV,GAAaC,2BAAa,OAAA,CAAK,UAAU,OAAQ,SAAAA,EAAS,EAC3DN,EACA,CAACK,GAAaE,2BAAc,OAAA,CAAK,UAAU,OAAQ,SAAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAGpE"}