{"version":3,"file":"HoverCardTarget.mjs","sources":["../../../../src/components/HoverCard/HoverCardTarget/HoverCardTarget.tsx"],"sourcesContent":["import { cloneElement, forwardRef } from 'react';\nimport { createEventHandler, isElement, useProps } from '../../../core';\nimport { Popover, PopoverTargetProps } from '../../Popover';\nimport { useHoverCardContext } from '../HoverCard.context';\n\nexport interface HoverCardTargetProps extends PopoverTargetProps {\n  /** Key of the prop that is used to pass event listeners, by default event listeners are passed directly to component */\n  eventPropsWrapperName?: string;\n}\n\nconst defaultProps: Partial<HoverCardTargetProps> = {\n  refProp: 'ref',\n};\n\nexport const HoverCardTarget = forwardRef<HTMLElement, HoverCardTargetProps>((props, ref) => {\n  const { children, refProp, eventPropsWrapperName, ...others } = useProps(\n    'HoverCardTarget',\n    defaultProps,\n    props\n  );\n\n  if (!isElement(children)) {\n    throw new Error(\n      'HoverCard.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n    );\n  }\n\n  const ctx = useHoverCardContext();\n  const onMouseEnter = createEventHandler(children.props.onMouseEnter, ctx.openDropdown);\n  const onMouseLeave = createEventHandler(children.props.onMouseLeave, ctx.closeDropdown);\n\n  const eventListeners = { onMouseEnter, onMouseLeave };\n\n  return (\n    <Popover.Target refProp={refProp} ref={ref} {...others}>\n      {cloneElement(\n        children as React.ReactElement,\n        eventPropsWrapperName ? { [eventPropsWrapperName]: eventListeners } : eventListeners\n      )}\n    </Popover.Target>\n  );\n});\n\nHoverCardTarget.displayName = '@raikou/core/HoverCardTarget';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAUA,MAAM,YAA8C,GAAA;AAAA,EAClD,OAAS,EAAA;AACX,CAAA;AAEO,MAAM,eAAkB,GAAA,UAAA,CAA8C,CAAC,KAAA,EAAO,GAAQ,KAAA;AAC3F,EAAA,MAAM,EAAE,QAAU,EAAA,OAAA,EAAS,qBAAuB,EAAA,GAAG,QAAW,GAAA,QAAA;AAAA,IAC9D,iBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAI,IAAA,CAAC,SAAU,CAAA,QAAQ,CAAG,EAAA;AACxB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA;AAGF,EAAA,MAAM,MAAM,mBAAoB,EAAA;AAChC,EAAA,MAAM,eAAe,kBAAmB,CAAA,QAAA,CAAS,KAAM,CAAA,YAAA,EAAc,IAAI,YAAY,CAAA;AACrF,EAAA,MAAM,eAAe,kBAAmB,CAAA,QAAA,CAAS,KAAM,CAAA,YAAA,EAAc,IAAI,aAAa,CAAA;AAEtF,EAAM,MAAA,cAAA,GAAiB,EAAE,YAAA,EAAc,YAAa,EAAA;AAEpD,EAAA,2BACG,OAAQ,CAAA,MAAA,EAAR,EAAe,OAAkB,EAAA,GAAA,EAAW,GAAG,MAC7C,EAAA,QAAA,EAAA,YAAA;AAAA,IACC,QAAA;AAAA,IACA,wBAAwB,EAAE,CAAC,qBAAqB,GAAG,gBAAmB,GAAA;AAAA,GAE1E,EAAA,CAAA;AAEJ,CAAC;AAED,eAAA,CAAgB,WAAc,GAAA,8BAAA;;;;"}