{"version":3,"file":"Token.mjs","names":["React","useMemo","makeStyles","useTheme","Typography","IconButton","PropTypes","Ellipse","UnityFluentIcon","getEllipseColor","getEllipseHintColor","useStyles","theme","root","margin","props","compact","spacing","letter","fontSize","size","color","buttonRoot","width","height","background","variant","border","borderColor","Token","$","_c","type","t0","t1","t2","t3","iconType","icon","t4","IconEllipseProps","onClick","undefined","classes","t5","iconColor","t6","toUpperCase","t7","t8","tokenComponent","t9","t10","t11","t12","t13","propTypes","string","elementType","func"],"sources":["../../../../src/UI/components/dataDisplay/Token.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport {\n  makeStyles,\n  useTheme,\n  Typography,\n  IconButton\n} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { Ellipse } from './Ellipse';\nimport { UnityFluentIcon } from '../../../utilities/iconLibrary/UnityFluentIcon';\nimport {\n  getEllipseColor,\n  getEllipseHintColor\n} from '../../../utilities/style/utils/styleUtils';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {\n    margin: (props) => (props.compact ? theme.spacing(0.5) : theme.spacing(1))\n  },\n  letter: {\n    fontSize: (props) =>\n      props.size === 'small' ? theme.spacing(2.25) : theme.spacing(2.5),\n    color: (props) => getEllipseColor(theme, props.color)\n  },\n  buttonRoot: {\n    margin: theme.spacing(1),\n    width: (props) =>\n      props.size === 'small' ? theme.spacing(4) : theme.spacing(5),\n    height: (props) =>\n      props.size === 'small' ? theme.spacing(4) : theme.spacing(5),\n    background: (props) =>\n      props.variant === 'filled' ? getEllipseHintColor(theme, props.color) : '',\n    border: (props) => (props.variant === 'outlined' ? `1px solid` : 'none'),\n    borderColor: (props) =>\n      props.variant === 'outlined' ? getEllipseColor(theme, props.color) : ''\n  }\n}));\n\nexport const Token = (props) => {\n  const {\n    type = 'default',\n    variant = 'outlined',\n    color = 'default',\n    size = 'large',\n    iconType,\n    icon,\n    letter = 'A',\n    IconEllipseProps,\n    onClick\n  } = props;\n  const classes = useStyles(props);\n  const theme = useTheme();\n\n  const iconColor = useMemo(() => {\n    return getEllipseColor(theme, color);\n  }, [color, theme]);\n\n  const tokenComponent = (\n    <div className={classes.root}>\n      <Ellipse\n        variant={variant}\n        size={size}\n        color={color}\n        {...IconEllipseProps}\n      >\n        {type === 'letter' ? (\n          <Typography variant='body1' className={classes.letter}>\n            {letter.toUpperCase()}\n          </Typography>\n        ) : (\n          <UnityFluentIcon\n            size={size === 'small' ? size : 'medium'}\n            color={iconColor}\n            type={iconType}\n            icon={icon}\n            style={{\n              color: iconColor\n            }}\n          />\n        )}\n      </Ellipse>\n    </div>\n  );\n\n  if (type === 'action') {\n    return (\n      <IconButton\n        classes={{\n          root: classes.buttonRoot\n        }}\n        onClick={onClick}\n      >\n        <UnityFluentIcon\n          size={size === 'small' ? size : 'medium'}\n          color={iconColor}\n          type={iconType}\n          icon={icon}\n          style={{\n            color: iconColor\n          }}\n        />\n      </IconButton>\n    );\n  }\n\n  return tokenComponent;\n};\n\nToken.propTypes = {\n  type: PropTypes.string,\n  variant: PropTypes.string,\n  color: PropTypes.string,\n  size: PropTypes.string,\n  iconType: PropTypes.string,\n  icon: PropTypes.elementType,\n  letter: PropTypes.string,\n  onClick: PropTypes.func\n};\n"],"mappings":"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"}