{"version":3,"file":"ComboboxOption.cjs","names":["factory","useProps","useComboboxContext","Box","classes"],"sources":["../../../../src/components/Combobox/ComboboxOption/ComboboxOption.tsx"],"sourcesContent":["import { useId } from 'react';\nimport {\n  Box,\n  BoxProps,\n  CompoundStylesApiProps,\n  ElementProps,\n  factory,\n  Factory,\n  Primitive,\n  useProps,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxOptionStylesNames = 'option';\n\nexport interface ComboboxOptionProps\n  extends BoxProps, CompoundStylesApiProps<ComboboxOptionFactory>, ElementProps<'div'> {\n  /** Option value */\n  value: Primitive;\n\n  /** Current active state */\n  active?: boolean;\n\n  /** Disabled state */\n  disabled?: boolean;\n\n  /** Current selected state */\n  selected?: boolean;\n}\n\nexport type ComboboxOptionFactory = Factory<{\n  props: ComboboxOptionProps;\n  ref: HTMLDivElement;\n  stylesNames: ComboboxOptionStylesNames;\n  compound: true;\n}>;\n\nexport const ComboboxOption = factory<ComboboxOptionFactory>((_props) => {\n  const props = useProps('ComboboxOption', null, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    vars,\n    onClick,\n    id,\n    active,\n    onMouseDown,\n    onMouseOver,\n    disabled,\n    selected,\n    mod,\n    ...others\n  } = props;\n\n  const ctx = useComboboxContext();\n  const uuid = useId();\n  const _id = id || uuid;\n\n  return (\n    <Box\n      {...ctx.getStyles('option', { className, classNames, styles, style })}\n      {...others}\n      id={_id}\n      mod={[\n        'combobox-option',\n        { 'combobox-active': active, 'combobox-disabled': disabled, 'combobox-selected': selected },\n        mod,\n      ]}\n      role=\"option\"\n      onClick={(event) => {\n        if (!disabled) {\n          ctx.onOptionSubmit?.(props.value as any, props);\n          onClick?.(event);\n        } else {\n          event.preventDefault();\n        }\n      }}\n      onMouseDown={(event) => {\n        event.preventDefault();\n        onMouseDown?.(event);\n      }}\n      onMouseOver={(event) => {\n        if (ctx.resetSelectionOnOptionHover) {\n          ctx.store.resetSelectedOption();\n        }\n        onMouseOver?.(event);\n      }}\n    />\n  );\n});\n\nComboboxOption.classes = classes;\nComboboxOption.displayName = '@mantine/core/ComboboxOption';\n"],"mappings":";;;;;;;;;;AAsCA,MAAa,iBAAiBA,gBAAAA,SAAgC,WAAW;CACvE,MAAM,QAAQC,kBAAAA,SAAS,kBAAkB,MAAM,OAAO;CACtD,MAAM,EACJ,YACA,WACA,OACA,QACA,MACA,SACA,IACA,QACA,aACA,aACA,UACA,UACA,KACA,GAAG,WACD;CAEJ,MAAM,MAAMC,yBAAAA,oBAAoB;CAChC,MAAM,QAAA,GAAA,MAAA,QAAc;CACpB,MAAM,MAAM,MAAM;AAElB,QACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EACE,GAAI,IAAI,UAAU,UAAU;GAAE;GAAW;GAAY;GAAQ;GAAO,CAAC;EACrE,GAAI;EACJ,IAAI;EACJ,KAAK;GACH;GACA;IAAE,mBAAmB;IAAQ,qBAAqB;IAAU,qBAAqB;IAAU;GAC3F;GACD;EACD,MAAK;EACL,UAAU,UAAU;AAClB,OAAI,CAAC,UAAU;AACb,QAAI,iBAAiB,MAAM,OAAc,MAAM;AAC/C,cAAU,MAAM;SAEhB,OAAM,gBAAgB;;EAG1B,cAAc,UAAU;AACtB,SAAM,gBAAgB;AACtB,iBAAc,MAAM;;EAEtB,cAAc,UAAU;AACtB,OAAI,IAAI,4BACN,KAAI,MAAM,qBAAqB;AAEjC,iBAAc,MAAM;;EAEtB,CAAA;EAEJ;AAEF,eAAe,UAAUC,wBAAAA;AACzB,eAAe,cAAc"}