import { clsx } from "clsx"; import { useId } from "react"; export type StyledRadioProps = { value?: string; options: { id: string; name: string; disabled?: boolean; tooltip?: string; }[]; // do we need other fields, e.g. onBlur? onChange(newValue: string): void; }; export function StyledRadio({ value, options, onChange }: StyledRadioProps) { const id = useId(); return (
{options.map((option) => { const htmlId = `${id}@${option.id}`; return (
onChange(option.id)} checked={option.id === value} className={clsx( "form-radio text-indigo-500 focus:ring-transparent", option.disabled ? "cursor-not-allowed" : "cursor-pointer" )} disabled={option.disabled} />
); })}
); }