function CardContent(props) {
  const { children, className, content, description, extra, header, meta, textAlign } = props

  const classes = cx(useKeyOnly(extra, 'extra'), useTextAlignProp(textAlign), 'content', className)
  const rest = getUnhandledProps(CardContent, props)
  const ElementType = getElementType(CardContent, props)

  if (!childrenUtils.isNil(children)) {
    return (
      <ElementType {...rest} className={classes}>
        {children}
      </ElementType>
    )
  }
  if (!childrenUtils.isNil(content)) {
    return (
      <ElementType {...rest} className={classes}>
        {content}
      </ElementType>
    )
  }

  return (
    <ElementType {...rest} className={classes}>
      {createShorthand(CardHeader, val => ({ content: val }), header, { autoGenerateKey: false })}
      {createShorthand(CardMeta, val => ({ content: val }), meta, { autoGenerateKey: false })}
      {createShorthand(CardDescription, val => ({ content: val }), description, {
        autoGenerateKey: false,
      })}
    </ElementType>
  )
}