{"version":3,"sources":["../call-control-sdk/lib/pages/common/components/AppButton.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Button, SxProps, Theme, useTheme } from '@mui/material';\r\nimport { alpha } from '@mui/material/styles';\r\n\r\ntype AppButtonVariant = 'primary' | 'danger' | 'cancel' | 'outlined';\r\n\r\ninterface AppButtonProps {\r\n  children: React.ReactNode;\r\n  variant?: AppButtonVariant;\r\n  onClick?: React.MouseEventHandler<HTMLButtonElement>;\r\n  startIcon?: React.ReactNode;\r\n  endIcon?: React.ReactNode;\r\n  disabled?: boolean;\r\n  type?: 'button' | 'submit' | 'reset';\r\n  size?: 'small' | 'medium' | 'large';\r\n  fullWidth?: boolean;\r\n  sx?: SxProps<Theme>;\r\n}\r\n\r\nconst muiVariant: Record<AppButtonVariant, 'contained' | 'outlined' | 'text'> = {\r\n  primary: 'contained',\r\n  danger: 'contained',\r\n  cancel: 'text',\r\n  outlined: 'outlined',\r\n};\r\n\r\nexport default function AppButton({\r\n  children,\r\n  variant = 'primary',\r\n  onClick,\r\n  startIcon,\r\n  endIcon,\r\n  disabled = false,\r\n  type = 'button',\r\n  size = 'medium',\r\n  fullWidth = false,\r\n  sx,\r\n}: AppButtonProps) {\r\n  const theme = useTheme();\r\n  const primary = theme.palette.primary.main;\r\n  const primaryDark = theme.palette.primary.dark;\r\n\r\n  const styles: Record<AppButtonVariant, SxProps<Theme>> = {\r\n    primary: {\r\n      textTransform: 'none',\r\n      fontWeight: 600,\r\n      backgroundColor: primary,\r\n      borderRadius: '30px',\r\n      fontSize: '0.82rem',\r\n      px: 2,\r\n      boxShadow: `0 2px 8px ${alpha(primary, 0.25)}`,\r\n      '&:hover': {\r\n        backgroundColor: primaryDark,\r\n        boxShadow: `0 4px 12px ${alpha(primary, 0.35)}`,\r\n      },\r\n      '&.Mui-disabled': {\r\n        backgroundColor: alpha(primary, 0.4),\r\n        color: '#fff',\r\n      },\r\n    },\r\n    danger: {\r\n      textTransform: 'none',\r\n      fontWeight: 600,\r\n      backgroundColor: '#d32f2f',\r\n      borderRadius: '8px',\r\n      fontSize: '0.82rem',\r\n      px: 2,\r\n      '&:hover': { backgroundColor: '#b71c1c' },\r\n      '&.Mui-disabled': { backgroundColor: '#e57373', color: '#fff' },\r\n    },\r\n    cancel: {\r\n      textTransform: 'none',\r\n      fontWeight: 600,\r\n      color: '#666',\r\n      borderRadius: '30px',\r\n      fontSize: '0.82rem',\r\n      px: 2,\r\n      border: '1px solid #d0d0d0',\r\n      '&:hover': { backgroundColor: '#f5f5f5', borderColor: '#bbb' },\r\n    },\r\n    outlined: {\r\n      textTransform: 'none',\r\n      fontWeight: 600,\r\n      color: primary,\r\n      borderColor: primary,\r\n      borderRadius: '30px',\r\n      fontSize: '0.82rem',\r\n      px: 2,\r\n      '&:hover': { borderColor: primaryDark, backgroundColor: alpha(primary, 0.05) },\r\n    },\r\n  };\r\n\r\n  return (\r\n    <Button\r\n      variant={muiVariant[variant]}\r\n      onClick={onClick}\r\n      startIcon={startIcon}\r\n      endIcon={endIcon}\r\n      disabled={disabled}\r\n      type={type}\r\n      size={size}\r\n      fullWidth={fullWidth}\r\n      sx={[styles[variant], ...(Array.isArray(sx) ? sx : [sx])]}\r\n    >\r\n      {children}\r\n    </Button>\r\n  );\r\n}\r\n"],"mappings":";;;;;;;;;;;;AACA,SAAS,QAAwB,gBAAgB;AACjD,SAAS,aAAa;AA2FlB;AA1EJ,IAAM,aAA0E;AAAA,EAC9E,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AACZ;AAEe,SAAR,UAA2B;AAAA,EAChC;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AAAA,EACZ;AACF,GAAmB;AACjB,QAAM,QAAQ,SAAS;AACvB,QAAM,UAAU,MAAM,QAAQ,QAAQ;AACtC,QAAM,cAAc,MAAM,QAAQ,QAAQ;AAE1C,QAAM,SAAmD;AAAA,IACvD,SAAS;AAAA,MACP,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,UAAU;AAAA,MACV,IAAI;AAAA,MACJ,WAAW,aAAa,MAAM,SAAS,IAAI,CAAC;AAAA,MAC5C,WAAW;AAAA,QACT,iBAAiB;AAAA,QACjB,WAAW,cAAc,MAAM,SAAS,IAAI,CAAC;AAAA,MAC/C;AAAA,MACA,kBAAkB;AAAA,QAChB,iBAAiB,MAAM,SAAS,GAAG;AAAA,QACnC,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,UAAU;AAAA,MACV,IAAI;AAAA,MACJ,WAAW,EAAE,iBAAiB,UAAU;AAAA,MACxC,kBAAkB,EAAE,iBAAiB,WAAW,OAAO,OAAO;AAAA,IAChE;AAAA,IACA,QAAQ;AAAA,MACN,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU;AAAA,MACV,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW,EAAE,iBAAiB,WAAW,aAAa,OAAO;AAAA,IAC/D;AAAA,IACA,UAAU;AAAA,MACR,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,aAAa;AAAA,MACb,cAAc;AAAA,MACd,UAAU;AAAA,MACV,IAAI;AAAA,MACJ,WAAW,EAAE,aAAa,aAAa,iBAAiB,MAAM,SAAS,IAAI,EAAE;AAAA,IAC/E;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,WAAW,OAAO;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAI,CAAC,OAAO,OAAO,GAAG,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,CAAC,EAAE,CAAE;AAAA,MAEvD;AAAA;AAAA,EACH;AAEJ;","names":[]}