UNPKG

@useloops/design-system

Version:

The official React based Loops design system

2 lines (1 loc) 1.78 kB
"use strict";var e=require("react/jsx-runtime"),r=require("@mui/material"),a=require("react"),o=require("../../BrandCore/primitiveVariables.js"),l=require("../FormControlLabel/FormControlLabel.js"),i=require("../Radio/Radio.js");require("../Radio/StyledRadio.js");var t=require("../TextField/TextField.js");module.exports=({options:n,onChange:s,other:u,value:c,internalChange:d,sizing:g="lg",inputRef:h,noneOfTheseOption:p,...m})=>{const x=u?.enabled,f="other-option",b=`${f}-value-`,[j,v]=a.useState(c),[q,y]=a.useState(!1),R=a.useRef(null);a.useEffect(()=>{!q&&j?.includes(b)?y(!0):q&&y(!1)},[j]);return a.useEffect(()=>{R.current&&Array.from(R.current.getElementsByTagName("label")).forEach(e=>{if(e.clientHeight>4*o.base){const r=e.querySelector(".MuiTypography-root");r&&(r.style.marginTop=o.base/2+"px")}})},[R.current]),e.jsxs(e.Fragment,{children:[e.jsxs(r.RadioGroup,{...m,value:j,ref:R,sx:{"& .MuiRadio-root":{alignSelf:"baseline"},"& .MuiTypography-root":{alignSelf:"center"},display:"flex",alignSelf:"baseline",gap:e=>e.custom.margin.sm,label:{"&:last-child":{mb:0},"&:hover":{"& .MuiRadio-root":{backgroundColor:e=>e.custom.palette.interaction.hover,"&.Mui-checked":{backgroundColor:e=>e.custom.palette.purple[500]}}}}},onChange:(e,r)=>{s&&s(r),v(r),d&&d()},children:[n?n.map((r,a)=>e.jsx(l,{sx:{"& .MuiButtonBase-root.MuiRadio-root":{alignSelf:"baseline"}},...r,control:e.jsx(i,{sizing:g})},a)):null,x&&e.jsx(l,{label:u?.label||"Other",value:b,control:e.jsx(i,{sizing:g,checked:j?.includes(b)})},f),p&&e.jsx(l,{...p,control:e.jsx(i,{sizing:g})},p.value)]}),q&&e.jsx(r.Box,{sx:{mt:1},children:e.jsx(t,{fullWidth:!0,autoFocus:!0,placeholder:u?.placeholder,defaultValue:j?.replace(b,""),onChange:e=>{var r;s&&s((r=e.target.value,`${b}${r}`)),d&&d()},required:!0})})]})};