UNPKG

@eviljs/reactx

Version:
20 lines (19 loc) 1.34 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { createElement as _createElement } from "react"; import { classes } from '@eviljs/react/classes'; import { compute } from '@eviljs/std/fn-compute'; import { useId } from 'react'; export function RadioGroup(props) { const { className, items, selected, onChange, ...otherProps } = props; const id = useId(); return (_jsx("div", { ...otherProps, className: classes('RadioGroup-e37b', className), children: items?.map((it, idx) => { const labelProps = compute(it.labelProps, it.value, idx); const inputProps = compute(it.inputProps, it.value, idx); const spanProps = compute(it.spanProps, it.value, idx); return (_createElement("label", { ...labelProps, key: idx, className: classes('item-bf74', labelProps?.className), "data-selected": selected === it.value }, _jsx("input", { ...inputProps, className: classes('radio-1370', inputProps?.className), type: "radio", name: `radio-group-${id}-${idx}`, value: it.value, checked: selected === it.value, // readOnly={true} onChange: event => onChange?.(event.target.value, idx) }), _jsx("span", { ...spanProps, className: classes('label-b0ad', spanProps?.className), children: it.label }))); }) })); }