import type { Field } from '@prisma/client'; import { TooltipArrow } from '@radix-ui/react-tooltip'; import type { VariantProps } from 'class-variance-authority'; import { cva } from 'class-variance-authority'; import { createPortal } from 'react-dom'; import { useFieldPageCoords } from '@documenso/lib/client-only/hooks/use-field-page-coords'; import { cn } from '../..//lib/utils'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from '../..//primitives/tooltip'; const tooltipVariants = cva('font-semibold', { variants: { color: { default: 'border-2 fill-white', warning: 'border-0 bg-orange-300 fill-orange-300 text-orange-900', }, }, defaultVariants: { color: 'default', }, }); interface FieldToolTipProps extends VariantProps { children: React.ReactNode; className?: string; field: Field; } /** * Renders a tooltip for a given field. */ export function FieldToolTip({ children, color, className = '', field }: FieldToolTipProps) { const coords = useFieldPageCoords(field); const onTooltipContentClick = () => { const $fieldEl = document.querySelector(`#field-${field.id} > button`); if ($fieldEl) { $fieldEl.click(); } }; return createPortal(
{children}
, document.body, ); }