import { forwardRef } from 'react';

import { Content } from '@radix-ui/react-hover-card';

import { cn } from '#utils';

export const HoverCardContent = forwardRef<
  React.ElementRef<typeof Content>,
  React.ComponentPropsWithoutRef<typeof Content>
>(function HoverCardContent({ align = 'center', className, sideOffset = 4, ...props }, ref) {
  return (
    <Content
      align={align}
      className={cn(
        'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden',
        className
      )}
      ref={ref}
      sideOffset={sideOffset}
      {...props}
    />
  );
});
