UNPKG

@unicity/design-system

Version:

A comprehensive React component library built on Material-UI with advanced theming capabilities including neumorphism design support

21 lines 1.67 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { RadioGroup, FormControlLabel, FormLabel, FormHelperText, } from '@mui/material'; import { StyledRadio, StyledFormControl } from './Radio.style'; export const Radio = ({ label, options, value, onChange, disabled = false, error = false, helperText, size = 'medium', color = 'primary', required = false, labelPlacement = 'end', row = false, groupLabel, ...props }) => { const handleChange = (event) => { if (onChange) { onChange(event.target.value, event); } }; const radioElement = (_jsx(StyledRadio, { value: value, onChange: handleChange, disabled: disabled, size: size, color: color, required: required, ...props })); // Single radio usage if (label && !options) { return (_jsx(FormControlLabel, { control: radioElement, label: label, labelPlacement: labelPlacement, disabled: disabled, required: required })); } // Radio group usage if (options) { return (_jsxs(StyledFormControl, { error: error, disabled: disabled, required: required, children: [groupLabel && (_jsx(FormLabel, { component: "legend", children: groupLabel })), _jsx(RadioGroup, { value: value, onChange: handleChange, row: row, children: options.map((option) => (_jsx(FormControlLabel, { value: option.value, control: _jsx(StyledRadio, { size: size, color: color, disabled: option.disabled || disabled }), label: option.label, labelPlacement: labelPlacement, disabled: option.disabled || disabled }, option.value))) }), helperText && (_jsx(FormHelperText, { children: helperText }))] })); } return radioElement; }; //# sourceMappingURL=Radio.js.map