import { PopperPlacementType, PopperProps } from '@mui/material/Popper'; import { SxProps, Theme } from '@mui/material/styles'; import { ReactNode } from '../../../node_modules/react'; import { BoxProps } from '../Box'; import { PaperProps } from '../Paper'; import { HoverCardData, HoverCardVariant } from './types'; /** @deprecated Use `ProfileCardSlotProps` instead. */ export interface HoverCardSlotProps { trigger?: BoxProps; paper?: PaperProps; popper?: Partial; } /** @deprecated Use `ProfileCardProps` instead. */ export interface HoverCardProps { /** Trigger element. Any node can be wrapped. */ children: ReactNode; /** * Card data supplied by the parent. HoverCard renders it; when there is * nothing visible to show, hover does nothing and only the child renders. */ data?: HoverCardData; /** * Card kind. `customer` uses a circular avatar and the customer banner; * `user` uses a rounded-square avatar and the user banner. * Overrides the deprecated `data.variant` when both are set. * @default 'user' */ variant?: HoverCardVariant; /** Escape hatch for a fully custom card body. Replaces `data` rendering. */ content?: ReactNode; /** Card width in px. @default 346 */ width?: number; /** Width of the detail label column in px. @default 88 */ labelWidth?: number; /** * Caps the card height in px — taller content scrolls inside the card. * Defaults to the variant preset (382 for `customer`, 412 for `user`). * Pass `'none'` to drop the fixed cap; the card still stays in the viewport. */ maxHeight?: number | string; /** * Preferred popper placement relative to the child. The card flips to the * opposite side when the preferred one does not fit — see `flip`. * @default 'bottom-start' */ placement?: PopperPlacementType; /** * Lets the card open on the opposite side when the preferred `placement` * would overflow the viewport, e.g. a trigger near the bottom of the page * opens `top-start` instead of `bottom-start`. * @default true */ flip?: boolean; /** * Placements tried, in order, when `placement` does not fit. * @default the opposite side with the same alignment */ fallbackPlacements?: PopperPlacementType[]; /** * Delay in ms before the card opens on hover. * @default 200 */ enterDelay?: number; /** * Delay in ms before the card closes after hover leaves the child or card. * @default 200 */ leaveDelay?: number; /** When true, hover is ignored and only the child is rendered. */ disabled?: boolean; /** Controlled open state. Omit for hover-driven open. */ open?: boolean; /** Called when the card opens or closes. */ onOpenChange?: (open: boolean) => void; /** Popper offset `[skidding, distance]`. @default [0, 8] */ offset?: [number, number]; slotProps?: HoverCardSlotProps; sx?: SxProps; } /** @deprecated Use `ProfileCard` instead. */ export declare const HoverCard: { ({ children, data, variant, content, width, labelWidth, maxHeight, placement, flip, fallbackPlacements, enterDelay, leaveDelay, disabled, open: openProp, onOpenChange, offset, slotProps, sx, }: HoverCardProps): import("react/jsx-runtime").JSX.Element; displayName: string; };