import { __rest } from "tslib";
import { jsx as _jsx } from "react/jsx-runtime";
import MuiCheckbox from '@mui/material/Checkbox';
import clsx from 'clsx';
import { forwardRef } from 'react';
/**
 * The Checkboxes allow the user to select one or more items from a set.
 *
 * Demos:
 *
 * - [Checkbox (Oxygen UI)](https://wso2.github.io/oxygen-ui/react/?path=/docs/inputs-checkbox)
 * - [Checkbox (MUI)](https://mui.com/material-ui/react-checkbox/)
 * - [Transfer List (Oxygen UI)](TODO: Add a link after implementing: Tracker: https://github.com/wso2/oxygen-ui/issues/2)
 * - [Transfer List (MUI)](https://mui.com/material-ui/react-transfer-list/)
 *
 * API:
 *
 * - [Checkbox API](https://mui.com/material-ui/api/checkbox/)
 * - inherits [ButtonBase API](https://mui.com/material-ui/api/button-base/)
 *
 * @remarks
 * - ✔️ Props of the [ButtonBase](https://mui.com/material-ui/api/button-base/) component are also available.
 * - ✅ `component` prop is supported.
 * - ✅ The `ref` is forwarded to the root element.
 *
 * @template C - The type of the component.
 * @param props - The props for the Checkbox component.
 * @param ref - The ref to be forwarded to the MuiCheckbox component.
 * @returns The rendered Checkbox component.
 */
const Checkbox = forwardRef((_a, ref) => {
    var { className } = _a, rest = __rest(_a, ["className"]);
    return (_jsx(MuiCheckbox, Object.assign({ ref: ref, className: clsx(
        /* @deprecated Use the PascalCase classname instead. https://github.com/wso2/oxygen-ui/issues/274 */
        'oxygen-checkbox', 'OxygenCheckbox-root', className) }, rest)));
});
export default Checkbox;
