retro-react
Version:
A React component library for building retro-style websites
2 lines (1 loc) • 1.12 kB
JavaScript
;var e=require("../../_virtual/_tslib.js"),s=require("react"),r=require("../../node_modules/@theme-ui/core/jsx-runtime/dist/theme-ui-core-jsx-runtime.esm.js"),c=require("../../node_modules/lodash/lodash.js"),a=require("../../utils/classNames.js"),l=require("../../constants/commonClassNames.js"),o=require("./Checkbox.styled.js");const t=s.forwardRef(((t,i)=>{var{id:n,className:u,onClick:d,color:m="primary",sx:x,label:b,indeterminate:h}=t,j=e.__rest(t,["id","className","onClick","color","sx","label","indeterminate"]);n=null!=n?n:`retro-checkbox-${c.default.uniqueId()}`;const k=s.useRef(null),f=i||k;s.useEffect((()=>{"current"in f&&f.current&&(f.current.indeterminate=null!=h&&h)}),[f,h]);const C=r.jsx(o.Checkbox,Object.assign({id:n,type:"checkbox",className:a.classNames(l.default,u),onClick:d,$color:m,sx:x,ref:f},j),void 0);return b?r.jsx(o.CheckboxWrapper,Object.assign({className:a.classNames("checkbox-root",u,l.default)},{children:r.jsxs(o.CheckboxLabel,Object.assign({htmlFor:n,$color:m,className:l.default},{children:[C,b]}),void 0)}),void 0):C}));t.displayName="Checkbox",exports.Checkbox=t;