@penaprieto/design-system
Version:
Multi-brand React design system with design tokens from Figma
19 lines (18 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Radio = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
require("./Radio.css");
const Radio = ({ label, description, error = false, disabled, className = '', onChange, checked, defaultChecked, id, name, ...rest }) => {
const rootClassName = [
'ds-radio',
error && 'ds-radio--error',
disabled && 'ds-radio--disabled',
className,
]
.filter(Boolean)
.join(' ');
const hasLabelContent = label !== null && label !== void 0 ? label : rest.children;
return ((0, jsx_runtime_1.jsxs)("label", { className: rootClassName, children: [(0, jsx_runtime_1.jsx)("input", { id: id, type: "radio", className: "ds-radio__input", name: name, disabled: disabled, checked: checked, defaultChecked: defaultChecked, onChange: onChange, ...rest }), (0, jsx_runtime_1.jsx)("span", { className: "ds-radio__circle", "aria-hidden": "true" }), (hasLabelContent || description) && ((0, jsx_runtime_1.jsxs)("span", { className: "ds-radio__label-wrapper", children: [hasLabelContent && ((0, jsx_runtime_1.jsx)("span", { className: "ds-radio__label", children: hasLabelContent })), description && ((0, jsx_runtime_1.jsx)("span", { className: "ds-radio__description", children: description }))] }))] }));
};
exports.Radio = Radio;