{"version":3,"file":"Button.mjs","sources":["../../../../../../../../../web/src/adminPortal/shared/components/Button.tsx"],"sourcesContent":["import {\n  Button as MUIButton,\n  buttonClasses,\n  ButtonProps as InternalButtonProps,\n  ButtonProps as MUIButtonProps,\n  styled,\n} from '@mui/material';\nimport React, { FC, MouseEventHandler, ReactNode } from 'react';\n\nexport type Variant = 'ghost' | 'primary' | 'text';\n\nconst variantToMUIVariant: Record<Variant, MUIButtonProps['variant']> = {\n  ghost: 'outlined',\n  primary: 'contained',\n  text: 'text',\n};\n\nconst StyledButton = styled(MUIButton)<{\n  isCompact?: boolean;\n  iconOnly: boolean;\n}>(({ theme, isCompact, iconOnly }) => [\n  {\n    borderRadius: 3,\n    boxShadow: 'none',\n    fontSize: theme.typography.body1.fontSize,\n    minHeight: 40,\n    whiteSpace: 'nowrap',\n    width: 'fit-content',\n    [`&.${buttonClasses.fullWidth}`]: {\n      width: '100%',\n    },\n    '&, &:active, &:hover': {\n      boxShadow: 'none',\n    },\n    [theme.breakpoints.down('sm')]: {\n      whiteSpace: 'unset',\n      minHeight: 'fit-content',\n    },\n  },\n  isCompact && {\n    [`& .${buttonClasses.startIcon}`]: {\n      marginRight: theme.spacing(0.5),\n    },\n    [`& .${buttonClasses.endIcon}`]: {\n      marginLeft: theme.spacing(0.5),\n    },\n    fontSize: theme.typography.body1.fontSize,\n    minHeight: 30,\n    padding: '0 10px',\n    minWidth: 'fit-content',\n  },\n  iconOnly && {\n    [`& .${buttonClasses.startIcon}, & .${buttonClasses.endIcon}`]: {\n      margin: 0,\n    },\n  },\n]);\n\nexport type ButtonCoreProps = {\n  autoFocus?: boolean;\n  children?: ReactNode;\n  compact?: boolean;\n  component?: 'span' | 'button' | 'div' | 'label';\n  disabled?: boolean;\n  endIcon?: ReactNode;\n  fullWidth?: boolean;\n  onClick?: MouseEventHandler<HTMLButtonElement>;\n  startIcon?: ReactNode;\n  type?: InternalButtonProps['type'];\n  variant?: Variant;\n  warning?: boolean;\n\n  /**\n   * Should not be used directly! This is required for styled(Button) to work.\n   */\n  className?: string;\n};\n\nexport const ButtonCore: FC<ButtonCoreProps> = ({ children, compact, variant, ...props }): JSX.Element => {\n  const buttonVariant = variant ?? 'primary';\n  return (\n    <StyledButton {...props} iconOnly={!children} isCompact={compact} variant={variantToMUIVariant[buttonVariant]}>\n      {children}\n    </StyledButton>\n  );\n};\n"],"names":["variantToMUIVariant","ghost","primary","text","StyledButton","styled","MUIButton","theme","isCompact","iconOnly","borderRadius","boxShadow","fontSize","typography","body1","minHeight","whiteSpace","width","buttonClasses","fullWidth","breakpoints","down","startIcon","marginRight","spacing","endIcon","marginLeft","padding","minWidth","margin","ButtonCore","children","compact","variant","props","buttonVariant","React"],"mappings":";;;;;AAWA,MAAMA,mBAAAA,GAAkE;IACtEC,KAAAA,EAAO,UAAA;IACPC,OAAAA,EAAS,WAAA;IACTC,IAAAA,EAAM;AACR,CAAA;AAEA,MAAMC,cAAAA,GAAeC,MAAAA,CAAOC,MAAAA,CAAAA,CAGzB,CAAC,EAAEC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAK;AACrC,QAAA;YACEC,YAAAA,EAAc,CAAA;YACdC,SAAAA,EAAW,MAAA;AACXC,YAAAA,QAAAA,EAAUL,KAAAA,CAAMM,UAAU,CAACC,KAAK,CAACF,QAAQ;YACzCG,SAAAA,EAAW,EAAA;YACXC,UAAAA,EAAY,QAAA;YACZC,KAAAA,EAAO,aAAA;AACP,YAAA,CAAC,CAAC,EAAE,EAAEC,cAAcC,SAAS,CAAA,CAAE,GAAG;gBAChCF,KAAAA,EAAO;AACT,aAAA;YACA,sBAAA,EAAwB;gBACtBN,SAAAA,EAAW;AACb,aAAA;AACA,YAAA,CAACJ,MAAMa,WAAW,CAACC,IAAI,CAAC,QAAQ;gBAC9BL,UAAAA,EAAY,OAAA;gBACZD,SAAAA,EAAW;AACb;AACF,SAAA;QACAP,SAAAA,IAAa;AACX,YAAA,CAAC,CAAC,GAAG,EAAEU,cAAcI,SAAS,CAAA,CAAE,GAAG;gBACjCC,WAAAA,EAAahB,KAAAA,CAAMiB,OAAO,CAAC,GAAA;AAC7B,aAAA;AACA,YAAA,CAAC,CAAC,GAAG,EAAEN,cAAcO,OAAO,CAAA,CAAE,GAAG;gBAC/BC,UAAAA,EAAYnB,KAAAA,CAAMiB,OAAO,CAAC,GAAA;AAC5B,aAAA;AACAZ,YAAAA,QAAAA,EAAUL,KAAAA,CAAMM,UAAU,CAACC,KAAK,CAACF,QAAQ;YACzCG,SAAAA,EAAW,EAAA;YACXY,OAAAA,EAAS,QAAA;YACTC,QAAAA,EAAU;AACZ,SAAA;QACAnB,QAAAA,IAAY;AACV,YAAA,CAAC,CAAC,GAAG,EAAES,aAAAA,CAAcI,SAAS,CAAC,KAAK,EAAEJ,aAAAA,CAAcO,OAAO,CAAA,CAAE,GAAG;gBAC9DI,MAAAA,EAAQ;AACV;AACF;AACD,KAAA,CAAA;AAsBM,MAAMC,UAAAA,GAAkC,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAGC,KAAAA,EAAO,GAAA;AACtF,IAAA,MAAMC,gBAAgBF,OAAAA,IAAW,SAAA;AACjC,IAAA,qBACEG,EAAA,CAAA,aAAA,CAAChC,cAAAA,EAAAA;AAAc,QAAA,GAAG8B,KAAK;AAAEzB,QAAAA,QAAAA,EAAU,CAACsB,QAAAA;QAAUvB,SAAAA,EAAWwB,OAAAA;QAASC,OAAAA,EAASjC,mBAAmB,CAACmC,aAAAA;AAC5FJ,KAAAA,EAAAA,QAAAA,CAAAA;AAGP;;;;"}