import * as React from 'react' import { motion } from 'framer-motion' import * as HoverCardPrimitive from '@radix-ui/react-hover-card' import { cn } from '@/lib/utils' import { MOTION_SCALE_IN } from '@/lib/motion' import { getThemeFromDocument } from './theme-from-document' const HoverCard = HoverCardPrimitive.Root const HoverCardTrigger = HoverCardPrimitive.Trigger export interface HoverCardContentProps extends React.ComponentPropsWithoutRef { /** When provided (e.g. from ThemeStyleProvider), used for portal wrapper */ dataStyle?: string dataTheme?: string } const HoverCardContent = React.forwardRef< React.ElementRef, HoverCardContentProps >( ( { className, align = 'center', sideOffset = 4, children, dataStyle, dataTheme, ...props }, ref, ) => { const fromDoc = getThemeFromDocument() const dataProps = dataStyle !== undefined ? { 'data-style': dataStyle, 'data-theme': dataTheme ?? fromDoc['data-theme'] ?? '' } : fromDoc return (
{children}
) }, ) HoverCardContent.displayName = HoverCardPrimitive.Content.displayName export { HoverCard, HoverCardTrigger, HoverCardContent }