{"version":3,"file":"HoverCard.cjs","sources":["../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import { useDisclosure } from '@raikou/hooks';\nimport { ExtendComponent, Factory, useProps } from '../../core';\nimport { useDelayedHover } from '../Floating';\nimport { Popover, PopoverProps, PopoverStylesNames } from '../Popover';\nimport { PopoverCssVariables } from '../Popover/Popover';\nimport { HoverCardContextProvider } from './HoverCard.context';\nimport { HoverCardDropdown } from './HoverCardDropdown/HoverCardDropdown';\nimport { HoverCardTarget } from './HoverCardTarget/HoverCardTarget';\n\nexport interface HoverCardProps extends Omit<PopoverProps, 'opened' | 'onChange'> {\n  variant?: string;\n\n  /** Initial opened state */\n  initiallyOpened?: boolean;\n\n  /** Called when dropdown is opened */\n  onOpen?: () => void;\n\n  /** Called when dropdown is closed */\n  onClose?: () => void;\n\n  /** Open delay in ms */\n  openDelay?: number;\n\n  /** Close delay in ms */\n  closeDelay?: number;\n}\n\nexport type HoverCardFactory = Factory<{\n  props: HoverCardProps;\n  stylesNames: PopoverStylesNames;\n  vars: PopoverCssVariables;\n}>;\n\nconst defaultProps: Partial<HoverCardProps> = {\n  openDelay: 0,\n  closeDelay: 150,\n  initiallyOpened: false,\n};\n\nexport function HoverCard(props: HoverCardProps) {\n  const { children, onOpen, onClose, openDelay, closeDelay, initiallyOpened, ...others } = useProps(\n    'HoverCard',\n    defaultProps,\n    props\n  );\n  const [opened, { open, close }] = useDisclosure(initiallyOpened, { onClose, onOpen });\n  const { openDropdown, closeDropdown } = useDelayedHover({ open, close, openDelay, closeDelay });\n\n  return (\n    <HoverCardContextProvider value={{ openDropdown, closeDropdown }}>\n      <Popover {...others} opened={opened} __staticSelector=\"HoverCard\">\n        {children}\n      </Popover>\n    </HoverCardContextProvider>\n  );\n}\n\nHoverCard.displayName = '@raikou/core/HoverCard';\nHoverCard.Target = HoverCardTarget;\nHoverCard.Dropdown = HoverCardDropdown;\nHoverCard.extend = (input: ExtendComponent<HoverCardFactory>) => input;\n"],"names":["useProps","useDisclosure","useDelayedHover","jsx","HoverCardContextProvider","Popover","HoverCardTarget","HoverCardDropdown"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,YAAwC,GAAA;AAAA,EAC5C,SAAW,EAAA,CAAA;AAAA,EACX,UAAY,EAAA,GAAA;AAAA,EACZ,eAAiB,EAAA;AACnB,CAAA;AAEO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAM,MAAA,EAAE,UAAU,MAAQ,EAAA,OAAA,EAAS,WAAW,UAAY,EAAA,eAAA,EAAiB,GAAG,MAAA,EAAW,GAAAA,iBAAA;AAAA,IACvF,WAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,CAAC,MAAA,EAAQ,EAAE,IAAA,EAAM,KAAM,EAAC,CAAI,GAAAC,mBAAA,CAAc,eAAiB,EAAA,EAAE,OAAS,EAAA,MAAA,EAAQ,CAAA;AACpF,EAAM,MAAA,EAAE,YAAc,EAAA,aAAA,EAAkB,GAAAC,+BAAA,CAAgB,EAAE,IAAM,EAAA,KAAA,EAAO,SAAW,EAAA,UAAA,EAAY,CAAA;AAE9F,EAAA,uBACGC,cAAA,CAAAC,0CAAA,EAAA,EAAyB,KAAO,EAAA,EAAE,cAAc,aAAc,EAAA,EAC7D,QAAC,kBAAAD,cAAA,CAAAE,eAAA,EAAA,EAAS,GAAG,MAAQ,EAAA,MAAA,EAAgB,gBAAiB,EAAA,WAAA,EACnD,UACH,CACF,EAAA,CAAA;AAEJ;AAEA,SAAA,CAAU,WAAc,GAAA,wBAAA;AACxB,SAAA,CAAU,MAAS,GAAAC,+BAAA;AACnB,SAAA,CAAU,QAAW,GAAAC,mCAAA;AACrB,SAAU,CAAA,MAAA,GAAS,CAAC,KAA6C,KAAA,KAAA;;;;"}