@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
79 lines (76 loc) • 2.28 kB
JavaScript
'use client';
import { jsx } from 'react/jsx-runtime';
import { useId } from 'react';
import '@mantine/hooks';
import 'clsx';
import '../../../core/MantineProvider/Mantine.context.mjs';
import '../../../core/MantineProvider/default-theme.mjs';
import '../../../core/MantineProvider/MantineProvider.mjs';
import '../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';
import { useProps } from '../../../core/MantineProvider/use-props/use-props.mjs';
import '../../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';
import { Box } from '../../../core/Box/Box.mjs';
import { factory } from '../../../core/factory/factory.mjs';
import '../../../core/DirectionProvider/DirectionProvider.mjs';
import { useComboboxContext } from '../Combobox.context.mjs';
import classes from '../Combobox.module.css.mjs';
const defaultProps = {};
const ComboboxOption = factory((_props, ref) => {
const props = useProps("ComboboxOption", defaultProps, _props);
const {
classNames,
className,
style,
styles,
vars,
onClick,
id,
active,
onMouseDown,
onMouseOver,
disabled,
selected,
mod,
...others
} = props;
const ctx = useComboboxContext();
const uuid = useId();
const _id = id || uuid;
return /* @__PURE__ */ jsx(
Box,
{
...ctx.getStyles("option", { className, classNames, styles, style }),
...others,
ref,
id: _id,
mod: [
"combobox-option",
{ "combobox-active": active, "combobox-disabled": disabled, "combobox-selected": selected },
mod
],
role: "option",
onClick: (event) => {
if (!disabled) {
ctx.onOptionSubmit?.(props.value, props);
onClick?.(event);
} else {
event.preventDefault();
}
},
onMouseDown: (event) => {
event.preventDefault();
onMouseDown?.(event);
},
onMouseOver: (event) => {
if (ctx.resetSelectionOnOptionHover) {
ctx.store.resetSelectedOption();
}
onMouseOver?.(event);
}
}
);
});
ComboboxOption.classes = classes;
ComboboxOption.displayName = "@mantine/core/ComboboxOption";
export { ComboboxOption };
//# sourceMappingURL=ComboboxOption.mjs.map