UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

79 lines (76 loc) 2.28 kB
'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