UNPKG

retro-react

Version:

A React component library for building retro-style websites

2 lines (1 loc) 1.18 kB
"use strict";var e=require("../../_virtual/_tslib.js"),a=require("react"),r=require("../../node_modules/@theme-ui/core/jsx-runtime/dist/theme-ui-core-jsx-runtime.esm.js"),d=require("./Radio.styled.js");const i=a.forwardRef(((i,l)=>{var{id:o,className:t,children:n,defaultValue:c,disabled:u=!1,sx:h,onChange:m}=i,p=e.__rest(i,["id","className","children","defaultValue","disabled","sx","onChange"]);const[v,b]=a.useState(c),j=a.Children.map(n,(e=>a.isValidElement(e)&&e.type===s?a.cloneElement(e,{checked:e.props.value===v,onChange:()=>{return a=e.props.value,b(a),void(m&&m(a));var a},disabled:u}):e));return r.jsx(d.RadioGroup,Object.assign({disabled:u},p,{sx:h,ref:l},{children:j}),void 0)}));i.displayName="RadioGroup";const s=a.forwardRef(((a,i)=>{var{label:s="",checked:l,name:o}=a,t=e.__rest(a,["label","checked","name"]);return r.jsxs(d.RadioWrapper,{children:[r.jsx(d.Radio,Object.assign({id:`${o}-${t.value}`,type:"radio",checked:l,ref:i,role:"radio","aria-checked":l,"aria-disabled":t.disabled},t),void 0),s&&r.jsx(d.RadioLabel,Object.assign({htmlFor:`${o}-${t.value}`},{children:s}),void 0)]},void 0)}));s.displayName="Radio",exports.Radio=s,exports.RadioGroup=i;