@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
93 lines (92 loc) • 2.85 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const MuiCheckbox = require("@mui/material/Checkbox");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const BaseCheckBox_styles = require("./BaseCheckBox.styles.cjs");
const CheckBoxIcon = require("./CheckBoxIcon.cjs");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const MuiCheckbox__default = /* @__PURE__ */ _interopDefault(MuiCheckbox);
const HvBaseCheckBox = React.forwardRef(function HvBaseCheckBox2(props, ref) {
const {
classes: classesProp,
className,
inputProps,
onChange,
onFocusVisible,
onBlur,
checked,
indeterminate,
defaultChecked,
value = "on",
required = false,
readOnly = false,
disabled = false,
semantic = false,
color,
style,
...others
} = uikitReactUtils.useDefaultProps("HvBaseCheckBox", props);
const { classes, cx } = BaseCheckBox_styles.useClasses(classesProp);
const [focusVisible, setFocusVisible] = React.useState(false);
const onChangeCallback = React.useCallback(
(event) => {
if (readOnly) {
return;
}
onChange?.(event, event.target.checked, value);
},
[onChange, readOnly, value]
);
const onBlurCallback = React.useCallback(
(event) => {
setFocusVisible(false);
onBlur?.(event);
},
[onBlur]
);
const onFocusVisibleCallback = React.useCallback(
(event) => {
setFocusVisible(true);
onFocusVisible?.(event);
},
[onFocusVisible]
);
const params = { indeterminate, disabled, semantic, color };
return /* @__PURE__ */ jsxRuntime.jsx(
MuiCheckbox__default.default,
{
ref,
value,
className: cx(
classes.root,
{
[classes.focusVisible]: focusVisible,
[classes.checked]: checked,
[classes.indeterminate]: indeterminate,
[classes.semantic]: semantic,
[classes.disabled]: disabled
},
className
),
icon: /* @__PURE__ */ jsxRuntime.jsx(CheckBoxIcon.HvCheckBoxIcon, { ...params }),
indeterminateIcon: /* @__PURE__ */ jsxRuntime.jsx(CheckBoxIcon.HvCheckBoxIcon, { variant: "indeterminate", ...params }),
checkedIcon: /* @__PURE__ */ jsxRuntime.jsx(CheckBoxIcon.HvCheckBoxIcon, { variant: "checked", ...params }),
disabled,
required,
readOnly,
checked,
defaultChecked,
indeterminate,
inputProps,
onChange: onChangeCallback,
onFocusVisible: onFocusVisibleCallback,
onBlur: onBlurCallback,
color: "default",
...others
}
);
});
exports.baseCheckBoxClasses = BaseCheckBox_styles.staticClasses;
exports.HvBaseCheckBox = HvBaseCheckBox;