@cgi-learning-hub/ui
Version:
@cgi-learning-hub/ui is an open-source React component library that implements UI for HUB's features
2 lines (1 loc) • 4.13 kB
JavaScript
"use strict";const W=require("react"),e=require("./index-DLnSn8GT.cjs"),d=require("./DefaultPropsProvider-Cnf49AIv.cjs"),X=require("./useFormControl-haP0iPhl.cjs"),f=require("./identifier-BoZelETM.cjs"),k=require("./useSlot-C2FjoUpF.cjs"),w=require("react/jsx-runtime"),Y=require("./useControlled-QrrYcKxm.cjs"),Z=require("./ButtonBase-Dp6sf_dP.cjs"),ee=require("./refType-B_IEJm4x.cjs");function oe(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const c=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(s,n,c.get?c:{enumerable:!0,get:()=>t[n]})}}return s.default=t,Object.freeze(s)}const te=oe(W);function se(t){return f.generateUtilityClass("PrivateSwitchBase",t)}f.generateUtilityClasses("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const re=t=>{const{classes:s,checked:n,disabled:c,edge:a}=t,y={root:["root",n&&"checked",c&&"disabled",a&&`edge${f.capitalize(a)}`],input:["input"]};return d.composeClasses(y,se,s)},ne=d.styled(Z.ButtonBase)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:t,ownerState:s})=>t==="start"&&s.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:t,ownerState:s})=>t==="end"&&s.size!=="small",style:{marginRight:-12}}]}),pe=d.styled("input",{shouldForwardProp:d.rootShouldForwardProp})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),R=te.forwardRef(function(s,n){const{autoFocus:c,checked:a,checkedIcon:y,defaultChecked:T,disabled:q,disableFocusRipple:g=!1,edge:x=!1,icon:j,id:O,inputProps:I,inputRef:z,name:N,onBlur:b,onChange:h,onFocus:m,readOnly:v,required:D=!1,tabIndex:E,type:u,value:S,slots:U={},slotProps:_={},...L}=s,[B,M]=Y.useControlled({controlled:a,default:!!T,name:"SwitchBase",state:"checked"}),p=X.useFormControl(),V=o=>{m&&m(o),p&&p.onFocus&&p.onFocus(o)},$=o=>{b&&b(o),p&&p.onBlur&&p.onBlur(o)},A=o=>{if(o.nativeEvent.defaultPrevented)return;const r=o.target.checked;M(r),h&&h(o,r)};let l=q;p&&typeof l>"u"&&(l=p.disabled);const G=u==="checkbox"||u==="radio",P={...s,checked:B,disabled:l,disableFocusRipple:g,edge:x},C=re(P),F={slots:U,slotProps:{input:I,..._}},[H,J]=k.useSlot("root",{ref:n,elementType:ne,className:C.root,shouldForwardComponentProp:!0,externalForwardedProps:{...F,component:"span",...L},getSlotProps:o=>({...o,onFocus:r=>{var i;(i=o.onFocus)==null||i.call(o,r),V(r)},onBlur:r=>{var i;(i=o.onBlur)==null||i.call(o,r),$(r)}}),ownerState:P,additionalProps:{centerRipple:!0,focusRipple:!g,disabled:l,role:void 0,tabIndex:null}}),[K,Q]=k.useSlot("input",{ref:z,elementType:pe,className:C.input,externalForwardedProps:F,getSlotProps:o=>({...o,onChange:r=>{var i;(i=o.onChange)==null||i.call(o,r),A(r)}}),ownerState:P,additionalProps:{autoFocus:c,checked:a,defaultChecked:T,disabled:l,id:G?O:void 0,name:N,readOnly:v,required:D,tabIndex:E,type:u,...u==="checkbox"&&S===void 0?{}:{value:S}}});return w.jsxs(H,{...J,children:[w.jsx(K,{...Q}),B?y:j]})});process.env.NODE_ENV!=="production"&&(R.propTypes={autoFocus:e.PropTypes.bool,checked:e.PropTypes.bool,checkedIcon:e.PropTypes.node.isRequired,classes:e.PropTypes.object,className:e.PropTypes.string,defaultChecked:e.PropTypes.bool,disabled:e.PropTypes.bool,disableFocusRipple:e.PropTypes.bool,edge:e.PropTypes.oneOf(["end","start",!1]),icon:e.PropTypes.node.isRequired,id:e.PropTypes.string,inputProps:e.PropTypes.object,inputRef:ee.refType,name:e.PropTypes.string,onBlur:e.PropTypes.func,onChange:e.PropTypes.func,onFocus:e.PropTypes.func,readOnly:e.PropTypes.bool,required:e.PropTypes.bool,slotProps:e.PropTypes.shape({input:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),root:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object])}),slots:e.PropTypes.shape({input:e.PropTypes.elementType,root:e.PropTypes.elementType}),sx:e.PropTypes.object,tabIndex:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]),type:e.PropTypes.string.isRequired,value:e.PropTypes.any});exports.SwitchBase=R;