{"version":3,"file":"ComboboxDropdownTarget.cjs","sources":["../../../../src/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.tsx"],"sourcesContent":["import { factory, Factory, isElement, useProps } from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useComboboxContext } from '../Combobox.context';\n\nexport interface ComboboxDropdownTargetProps {\n  /** Target element */\n  children: React.ReactNode;\n\n  /** Key of the prop that should be used to access element ref */\n  refProp?: string;\n}\n\nconst defaultProps: Partial<ComboboxDropdownTargetProps> = {\n  refProp: 'ref',\n};\n\nexport type ComboboxDropdownTargetFactory = Factory<{\n  props: ComboboxDropdownTargetProps;\n  ref: HTMLElement;\n  compound: true;\n}>;\n\nexport const ComboboxDropdownTarget = factory<ComboboxDropdownTargetFactory>((props, ref) => {\n  const { children, refProp } = useProps('ComboboxDropdownTarget', defaultProps, props);\n  useComboboxContext();\n\n  if (!isElement(children)) {\n    throw new Error(\n      'Combobox.DropdownTarget 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  return (\n    <Popover.Target ref={ref} refProp={refProp}>\n      {children}\n    </Popover.Target>\n  );\n});\n\nComboboxDropdownTarget.displayName = '@raikou/core/ComboboxDropdownTarget';\n"],"names":["factory","useProps","useComboboxContext","isElement","Popover"],"mappings":";;;;;;;;;;;;;;;;;AAYA,MAAM,YAAqD,GAAA;AAAA,EACzD,OAAS,EAAA;AACX,CAAA;AAQO,MAAM,sBAAyB,GAAAA,eAAA,CAAuC,CAAC,KAAA,EAAO,GAAQ,KAAA;AAC3F,EAAA,MAAM,EAAE,QAAU,EAAA,OAAA,KAAYC,iBAAS,CAAA,wBAAA,EAA0B,cAAc,KAAK,CAAA;AACpF,EAAmBC,mCAAA,EAAA;AAEnB,EAAI,IAAA,CAACC,mBAAU,CAAA,QAAQ,CAAG,EAAA;AACxB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA;AAGF,EAAA,sCACGC,eAAQ,CAAA,MAAA,EAAR,EAAe,GAAA,EAAU,SACvB,QACH,EAAA,CAAA;AAEJ,CAAC;AAED,sBAAA,CAAuB,WAAc,GAAA,qCAAA;;;;"}