@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
52 lines (51 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const useOption = require("@mui/base/useOption");
const utils = require("@mui/material/utils");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const generic = require("../types/generic.cjs");
const focusUtils = require("../utils/focusUtils.cjs");
const ListItem = require("../ListContainer/ListItem/ListItem.cjs");
const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvOption", {
root: {},
highlighted: {
...focusUtils.outlineStyles
}
});
const HvOption = generic.fixedForwardRef(function HvOption2(props, ref) {
const {
classes: classesProp,
className,
disabled = false,
label,
value,
children,
...others
} = uikitReactUtils.useDefaultProps("HvOption", props);
const { classes, cx } = useClasses(classesProp);
const optionRef = React.useRef(null);
const rootRef = utils.useForkRef(optionRef, ref);
const computedLabel = label ?? (typeof children === "string" ? children : optionRef.current?.textContent?.trim());
const { getRootProps, selected, highlighted } = useOption.useOption({
disabled,
label: computedLabel,
rootRef,
value
});
return /* @__PURE__ */ jsxRuntime.jsx(
ListItem.HvListItem,
{
ref,
selected,
className: cx(classes.root, className, {
[classes.highlighted]: highlighted
}),
...getRootProps(others),
children
}
);
});
exports.HvOption = HvOption;
exports.optionClasses = staticClasses;