import { Slot } from '@radix-ui/react-slot'

import { bodyFontOnlyVariants, bodyVariants } from './variants'

import type { VariantProps } from 'class-variance-authority'

interface BodyProps
  extends Omit<React.HTMLAttributes<HTMLHeadingElement>, 'color'>,
    VariantProps<typeof bodyVariants> {
  asChild?: boolean
  fontOnly?: boolean
}

/**
 * @deprecated Use `@scandic-hotels/design-system/Typography` instead.
 */
export default function Body({
  asChild = false,
  className = '',
  color,
  fontOnly = false,
  textAlign,
  textTransform,
  ...props
}: BodyProps) {
  const Comp = asChild ? Slot : 'p'
  const classNames = fontOnly
    ? bodyFontOnlyVariants({
        className,
        textAlign,
        textTransform,
      })
    : bodyVariants({
        className,
        color,
        textAlign,
        textTransform,
      })
  return <Comp className={classNames} {...props} />
}
