{"version":3,"file":"HoverCard.cjs","names":["useProps","useHoverCard","HoverCardContext","Popover","HoverCardTarget","HoverCardDropdown","HoverCardGroup"],"sources":["../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import { ExtendComponent, Factory, useProps } from '../../core';\nimport { Popover, PopoverProps, PopoverStylesNames } from '../Popover';\nimport { PopoverCssVariables } from '../Popover/Popover';\nimport { HoverCardContext, HoverCardContextValue } from './HoverCard.context';\nimport { HoverCardDropdown, HoverCardDropdownProps } from './HoverCardDropdown/HoverCardDropdown';\nimport {\n  HoverCardGroup,\n  HoverCardGroupContextValue,\n  HoverCardGroupProps,\n} from './HoverCardGroup/HoverCardGroup';\nimport { HoverCardTarget, HoverCardTargetProps } from './HoverCardTarget/HoverCardTarget';\nimport { useHoverCard } from './use-hover-card';\n\nexport interface HoverCardProps extends Omit<PopoverProps, 'opened' | 'onChange'> {\n  /** Initial opened state */\n  initiallyOpened?: boolean;\n\n  /** Called when the dropdown is opened */\n  onOpen?: () => void;\n\n  /** Called when the dropdown is closed */\n  onClose?: () => void;\n\n  /**\n   * Delay in ms before the dropdown opens after mouse enters the target.\n   * Overridden by HoverCard.Group delay if used within a group.\n   * @default 0\n   */\n  openDelay?: number;\n\n  /**\n   * Delay in ms before the dropdown closes after mouse leaves the target or dropdown.\n   * Overridden by HoverCard.Group delay if used within a group.\n   * @default 150\n   */\n  closeDelay?: number;\n}\n\nexport type HoverCardFactory = Factory<{\n  props: HoverCardProps;\n  stylesNames: PopoverStylesNames;\n  vars: PopoverCssVariables;\n}>;\n\nconst defaultProps = {\n  openDelay: 0,\n  closeDelay: 150,\n  initiallyOpened: false,\n} satisfies Partial<HoverCardProps>;\n\nexport function HoverCard(props: HoverCardProps) {\n  const { children, onOpen, onClose, openDelay, closeDelay, initiallyOpened, ...others } = useProps(\n    'HoverCard',\n    defaultProps,\n    props\n  );\n\n  const hoverCard = useHoverCard({\n    openDelay,\n    closeDelay,\n    defaultOpened: initiallyOpened,\n    onOpen,\n    onClose,\n  });\n\n  return (\n    <HoverCardContext\n      value={{\n        openDropdown: hoverCard.openDropdown,\n        closeDropdown: hoverCard.closeDropdown,\n        getReferenceProps: hoverCard.getReferenceProps,\n        getFloatingProps: hoverCard.getFloatingProps,\n        reference: hoverCard.reference,\n        floating: hoverCard.floating,\n      }}\n    >\n      <Popover {...others} opened={hoverCard.opened} __staticSelector=\"HoverCard\">\n        {children}\n      </Popover>\n    </HoverCardContext>\n  );\n}\n\nHoverCard.displayName = '@mantine/core/HoverCard';\nHoverCard.Target = HoverCardTarget;\nHoverCard.Dropdown = HoverCardDropdown;\nHoverCard.Group = HoverCardGroup;\nHoverCard.extend = (input: ExtendComponent<HoverCardFactory>) => input;\n\nexport namespace HoverCard {\n  export type Props = HoverCardProps;\n  export type DropdownProps = HoverCardDropdownProps;\n  export type TargetProps = HoverCardTargetProps;\n  export type GroupProps = HoverCardGroupProps;\n  export type ContextValue = HoverCardContextValue;\n\n  export namespace Group {\n    export type Props = HoverCardGroupProps;\n    export type ContextValue = HoverCardGroupContextValue;\n  }\n}\n"],"mappings":";;;;;;;;;;;AA4CA,MAAM,eAAe;CACnB,WAAW;CACX,YAAY;CACZ,iBAAiB;CAClB;AAED,SAAgB,UAAU,OAAuB;CAC/C,MAAM,EAAE,UAAU,QAAQ,SAAS,WAAW,YAAY,iBAAiB,GAAG,WAAWA,kBAAAA,SACvF,aACA,cACA,MACD;CAED,MAAM,YAAYC,uBAAAA,aAAa;EAC7B;EACA;EACA,eAAe;EACf;EACA;EACD,CAAC;AAEF,QACE,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,kBAAD;EACE,OAAO;GACL,cAAc,UAAU;GACxB,eAAe,UAAU;GACzB,mBAAmB,UAAU;GAC7B,kBAAkB,UAAU;GAC5B,WAAW,UAAU;GACrB,UAAU,UAAU;GACrB;YAED,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,SAAD;GAAS,GAAI;GAAQ,QAAQ,UAAU;GAAQ,kBAAiB;GAC7D;GACO,CAAA;EACO,CAAA;;AAIvB,UAAU,cAAc;AACxB,UAAU,SAASC,wBAAAA;AACnB,UAAU,WAAWC,0BAAAA;AACrB,UAAU,QAAQC,uBAAAA;AAClB,UAAU,UAAU,UAA6C"}