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

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

import type { BodyProps } from "./body"

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} />
}
