@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
89 lines (88 loc) • 2.59 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const MuiRadio = require("@mui/material/Radio");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const BaseRadio_styles = require("./BaseRadio.styles.cjs");
const RadioIcon = require("./RadioIcon.cjs");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const MuiRadio__default = /* @__PURE__ */ _interopDefault(MuiRadio);
const HvBaseRadio = React.forwardRef(
function HvBaseRadio2(props, ref) {
const {
classes: classesProp,
className,
value = "on",
required,
readOnly,
disabled,
checked,
defaultChecked,
onChange,
semantic,
inputProps,
color,
onFocusVisible,
onBlur,
...others
} = uikitReactUtils.useDefaultProps("HvBaseRadio", props);
const { classes, cx } = BaseRadio_styles.useClasses(classesProp);
const [focusVisible, setFocusVisible] = React.useState(false);
const onFocusVisibleCallback = React.useCallback(
(evt) => {
setFocusVisible(true);
onFocusVisible?.(evt);
},
[onFocusVisible]
);
const onBlurCallback = React.useCallback(
(evt) => {
setFocusVisible(false);
onBlur?.(evt);
},
[onBlur]
);
const onLocalChange = React.useCallback(
(evt) => {
if (readOnly) {
return;
}
onChange?.(evt, evt.target.checked, value);
},
[onChange, readOnly, value]
);
return /* @__PURE__ */ jsxRuntime.jsx(
MuiRadio__default.default,
{
ref,
className: cx(
classes.root,
{
[classes.disabled]: disabled,
[classes.focusVisible]: focusVisible,
[classes.checked]: checked,
[classes.semantic]: semantic
},
className
),
icon: /* @__PURE__ */ jsxRuntime.jsx(RadioIcon.HvRadioIcon, { disabled }),
checkedIcon: /* @__PURE__ */ jsxRuntime.jsx(RadioIcon.HvRadioIcon, { checked: true, disabled, color }),
color: "default",
disabled,
required,
readOnly,
onChange: onLocalChange,
value,
checked,
defaultChecked,
inputProps,
onFocusVisible: onFocusVisibleCallback,
onBlur: onBlurCallback,
...others
}
);
}
);
exports.baseRadioClasses = BaseRadio_styles.staticClasses;
exports.HvBaseRadio = HvBaseRadio;