UNPKG

@cgi-learning-hub/ui

Version:

@cgi-learning-hub/ui is an open-source React component library that implements UI for HUB's features

5 lines (4 loc) 13.4 kB
"use strict";const qe=require("react"),e=require("./index-kjfz41UI.cjs"),A=require("./generateUtilityClasses-CENS22bI.cjs"),fe=require("./isHostComponent-PydJW4A4.cjs"),Me=require("./formControlState-CuX6WjAX.cjs"),ye=require("./useFormControl-haP0iPhl.cjs"),We=require("./index-BPpGXp0s.cjs"),ge=require("./memoTheme-Bi1UNdyO.cjs"),De=require("./utils-BWx1W_q1.cjs"),v=require("react/jsx-runtime"),V=require("./DefaultPropsProvider-C1g4BXET.cjs"),Pe=require("./useForkRef-CFhhTu-Q.cjs"),L=require("./useEventCallback-BxpcFap0.cjs"),me=require("./ownerWindow-DDHucZi0.cjs"),Le=require("./debounce-DpCj7ugL.cjs"),ne=require("./capitalize-3OjkeP9i.cjs"),Ue=require("./refType-DJyA--UV.cjs"),Ve=require("./elementTypeAcceptingRef-vjR5jGLx.cjs");function _e(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const u=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(o,n,u.get?u:{enumerable:!0,get:()=>t[n]})}}return o.default=t,Object.freeze(o)}const l=_e(qe);function D(t){return parseInt(t,10)||0}const $e={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function Ke(t){for(const o in t)return!1;return!0}function he(t){return Ke(t)||t.outerHeightStyle===0&&!t.overflowing}const ve=l.forwardRef(function(o,n){const{onChange:u,maxRows:m,minRows:d=1,style:S,value:R,...j}=o,{current:w}=l.useRef(R!=null),f=l.useRef(null),O=Pe.useForkRef(n,f),y=l.useRef(null),x=l.useRef(null),b=l.useCallback(()=>{const s=f.current,r=x.current;if(!s||!r)return;const p=me.ownerWindow(s).getComputedStyle(s);if(p.width==="0px")return{outerHeightStyle:0,overflowing:!1};r.style.width=p.width,r.value=s.value||o.placeholder||"x",r.value.slice(-1)===` `&&(r.value+=" ");const E=p.boxSizing,H=D(p.paddingBottom)+D(p.paddingTop),$=D(p.borderBottomWidth)+D(p.borderTopWidth),P=r.scrollHeight;r.value="x";const I=r.scrollHeight;let h=P;d&&(h=Math.max(Number(d)*I,h)),m&&(h=Math.min(Number(m)*I,h)),h=Math.max(h,I);const q=h+(E==="border-box"?H+$:0),K=Math.abs(h-P)<=1;return{outerHeightStyle:q,overflowing:K}},[m,d,o.placeholder]),k=L.useEventCallback(()=>{const s=f.current,r=b();if(!s||!r||he(r))return!1;const c=r.outerHeightStyle;return y.current!=null&&y.current!==c}),C=l.useCallback(()=>{const s=f.current,r=b();if(!s||!r||he(r))return;const c=r.outerHeightStyle;y.current!==c&&(y.current=c,s.style.height=`${c}px`),s.style.overflow=r.overflowing?"hidden":""},[b]),N=l.useRef(-1);L.useEnhancedEffect(()=>{const s=Le.debounce(C),r=f==null?void 0:f.current;if(!r)return;const c=me.ownerWindow(r);c.addEventListener("resize",s);let p;return typeof ResizeObserver<"u"&&(p=new ResizeObserver(()=>{k()&&(p.unobserve(r),cancelAnimationFrame(N.current),C(),N.current=requestAnimationFrame(()=>{p.observe(r)}))}),p.observe(r)),()=>{s.clear(),cancelAnimationFrame(N.current),c.removeEventListener("resize",s),p&&p.disconnect()}},[b,C,k]),L.useEnhancedEffect(()=>{C()});const _=s=>{w||C();const r=s.target,c=r.value.length,p=r.value.endsWith(` `),E=r.selectionStart===c;p&&E&&r.setSelectionRange(c,c),u&&u(s)};return v.jsxs(l.Fragment,{children:[v.jsx("textarea",{value:R,onChange:_,ref:O,rows:d,style:S,...j}),v.jsx("textarea",{"aria-hidden":!0,className:o.className,readOnly:!0,ref:x,tabIndex:-1,style:{...$e.shadow,...S,paddingTop:0,paddingBottom:0}})]})});process.env.NODE_ENV!=="production"&&(ve.propTypes={className:e.PropTypes.string,maxRows:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]),minRows:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]),onChange:e.PropTypes.func,placeholder:e.PropTypes.string,style:e.PropTypes.object,value:e.PropTypes.oneOfType([e.PropTypes.arrayOf(e.PropTypes.string),e.PropTypes.number,e.PropTypes.string])});function Ge(t){return A.generateUtilityClass("MuiInputBase",t)}const U=A.generateUtilityClasses("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var Te;const we=(t,o)=>{const{ownerState:n}=t;return[o.root,n.formControl&&o.formControl,n.startAdornment&&o.adornedStart,n.endAdornment&&o.adornedEnd,n.error&&o.error,n.size==="small"&&o.sizeSmall,n.multiline&&o.multiline,n.color&&o[`color${ne.capitalize(n.color)}`],n.fullWidth&&o.fullWidth,n.hiddenLabel&&o.hiddenLabel]},xe=(t,o)=>{const{ownerState:n}=t;return[o.input,n.size==="small"&&o.inputSizeSmall,n.multiline&&o.inputMultiline,n.type==="search"&&o.inputTypeSearch,n.startAdornment&&o.inputAdornedStart,n.endAdornment&&o.inputAdornedEnd,n.hiddenLabel&&o.inputHiddenLabel]},Ye=t=>{const{classes:o,color:n,disabled:u,error:m,endAdornment:d,focused:S,formControl:R,fullWidth:j,hiddenLabel:w,multiline:f,readOnly:O,size:y,startAdornment:x,type:b}=t,k={root:["root",`color${ne.capitalize(n)}`,u&&"disabled",m&&"error",j&&"fullWidth",S&&"focused",R&&"formControl",y&&y!=="medium"&&`size${ne.capitalize(y)}`,f&&"multiline",x&&"adornedStart",d&&"adornedEnd",w&&"hiddenLabel",O&&"readOnly"],input:["input",u&&"disabled",b==="search"&&"inputTypeSearch",f&&"inputMultiline",y==="small"&&"inputSizeSmall",w&&"inputHiddenLabel",x&&"inputAdornedStart",d&&"inputAdornedEnd",O&&"readOnly"]};return V.composeClasses(k,Ge,o)},Ce=V.styled("div",{name:"MuiInputBase",slot:"Root",overridesResolver:we})(ge.memoTheme(({theme:t})=>({...t.typography.body1,color:(t.vars||t).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${U.disabled}`]:{color:(t.vars||t).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:o})=>o.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:o,size:n})=>o.multiline&&n==="small",style:{paddingTop:1}},{props:({ownerState:o})=>o.fullWidth,style:{width:"100%"}}]}))),Se=V.styled("input",{name:"MuiInputBase",slot:"Input",overridesResolver:xe})(ge.memoTheme(({theme:t})=>{const o=t.palette.mode==="light",n={color:"currentColor",...t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:o?.42:.5},transition:t.transitions.create("opacity",{duration:t.transitions.duration.shorter})},u={opacity:"0 !important"},m=t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:o?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${U.formControl} &`]:{"&::-webkit-input-placeholder":u,"&::-moz-placeholder":u,"&::-ms-input-placeholder":u,"&:focus::-webkit-input-placeholder":m,"&:focus::-moz-placeholder":m,"&:focus::-ms-input-placeholder":m},[`&.${U.disabled}`]:{opacity:1,WebkitTextFillColor:(t.vars||t).palette.text.disabled},variants:[{props:({ownerState:d})=>!d.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:d})=>d.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),be=We.globalCss({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),Re=l.forwardRef(function(o,n){const u=V.useDefaultProps({props:o,name:"MuiInputBase"}),{"aria-describedby":m,autoComplete:d,autoFocus:S,className:R,color:j,components:w={},componentsProps:f={},defaultValue:O,disabled:y,disableInjectingGlobalStyles:x,endAdornment:b,error:k,fullWidth:C=!1,id:N,inputComponent:_="input",inputProps:s={},inputRef:r,margin:c,maxRows:p,minRows:E,multiline:H=!1,name:$,onBlur:P,onChange:I,onClick:h,onFocus:q,onKeyDown:K,onKeyUp:Oe,placeholder:Ee,readOnly:G,renderSuffix:re,rows:M,size:Ze,slotProps:se={},slots:ie={},startAdornment:B,type:ae="text",value:Ie,...ze}=u,W=s.value!=null?s.value:Ie,{current:Y}=l.useRef(W!=null),z=l.useRef(),ke=l.useCallback(i=>{process.env.NODE_ENV!=="production"&&i&&i.nodeName!=="INPUT"&&!i.focus&&console.error(["MUI: You have provided a `inputComponent` to the input component","that does not correctly handle the `ref` prop.","Make sure the `ref` prop is called with a HTMLInputElement."].join(` `))},[]),Ne=Pe.useForkRef(z,r,s.ref,ke),[Z,J]=l.useState(!1),a=ye.useFormControl();process.env.NODE_ENV!=="production"&&l.useEffect(()=>{if(a)return a.registerEffect()},[a]);const T=Me.formControlState({props:u,muiFormControl:a,states:["color","disabled","error","hiddenLabel","size","required","filled"]});T.focused=a?a.focused:Z,l.useEffect(()=>{!a&&y&&Z&&(J(!1),P&&P())},[a,y,Z,P]);const Q=a&&a.onFilled,X=a&&a.onEmpty,F=l.useCallback(i=>{De.isFilled(i)?Q&&Q():X&&X()},[Q,X]);L.useEnhancedEffect(()=>{Y&&F({value:W})},[W,F,Y]);const Be=i=>{q&&q(i),s.onFocus&&s.onFocus(i),a&&a.onFocus?a.onFocus(i):J(!0)},Fe=i=>{P&&P(i),s.onBlur&&s.onBlur(i),a&&a.onBlur?a.onBlur(i):J(!1)},Ae=(i,...ce)=>{if(!Y){const de=i.target||z.current;if(de==null)throw new Error(process.env.NODE_ENV!=="production"?"MUI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.":A.formatMuiErrorMessage(1));F({value:de.value})}s.onChange&&s.onChange(i,...ce),I&&I(i,...ce)};l.useEffect(()=>{F(z.current)},[]);const je=i=>{z.current&&i.currentTarget===i.target&&z.current.focus(),h&&h(i)};let ee=_,g=s;H&&ee==="input"&&(M?(process.env.NODE_ENV!=="production"&&(E||p)&&console.warn("MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set."),g={type:void 0,minRows:M,maxRows:M,...g}):g={type:void 0,maxRows:p,minRows:E,...g},ee=ve);const He=i=>{F(i.animationName==="mui-auto-fill-cancel"?z.current:{value:"x"})};l.useEffect(()=>{a&&a.setAdornedStart(!!B)},[a,B]);const oe={...u,color:T.color||"primary",disabled:T.disabled,endAdornment:b,error:T.error,focused:T.focused,formControl:a,fullWidth:C,hiddenLabel:T.hiddenLabel,multiline:H,size:T.size,startAdornment:B,type:ae},le=Ye(oe),pe=ie.root||w.Root||Ce,te=se.root||f.root||{},ue=ie.input||w.Input||Se;return g={...g,...se.input??f.input},v.jsxs(l.Fragment,{children:[!x&&typeof be=="function"&&(Te||(Te=v.jsx(be,{}))),v.jsxs(pe,{...te,ref:n,onClick:je,...ze,...!fe.isHostComponent(pe)&&{ownerState:{...oe,...te.ownerState}},className:A.clsx(le.root,te.className,R,G&&"MuiInputBase-readOnly"),children:[B,v.jsx(ye.FormControlContext.Provider,{value:null,children:v.jsx(ue,{"aria-invalid":T.error,"aria-describedby":m,autoComplete:d,autoFocus:S,defaultValue:O,disabled:T.disabled,id:N,onAnimationStart:He,name:$,placeholder:Ee,readOnly:G,required:T.required,rows:M,value:W,onKeyDown:K,onKeyUp:Oe,type:ae,...g,...!fe.isHostComponent(ue)&&{as:ee,ownerState:{...oe,...g.ownerState}},ref:Ne,className:A.clsx(le.input,g.className,G&&"MuiInputBase-readOnly"),onBlur:Fe,onChange:Ae,onFocus:Be})}),b,re?re({...T,startAdornment:B}):null]})]})});process.env.NODE_ENV!=="production"&&(Re.propTypes={"aria-describedby":e.PropTypes.string,autoComplete:e.PropTypes.string,autoFocus:e.PropTypes.bool,classes:e.PropTypes.object,className:e.PropTypes.string,color:e.PropTypes.oneOfType([e.PropTypes.oneOf(["primary","secondary","error","info","success","warning"]),e.PropTypes.string]),components:e.PropTypes.shape({Input:e.PropTypes.elementType,Root:e.PropTypes.elementType}),componentsProps:e.PropTypes.shape({input:e.PropTypes.object,root:e.PropTypes.object}),defaultValue:e.PropTypes.any,disabled:e.PropTypes.bool,disableInjectingGlobalStyles:e.PropTypes.bool,endAdornment:e.PropTypes.node,error:e.PropTypes.bool,fullWidth:e.PropTypes.bool,id:e.PropTypes.string,inputComponent:Ve.elementTypeAcceptingRef,inputProps:e.PropTypes.object,inputRef:Ue.refType,margin:e.PropTypes.oneOf(["dense","none"]),maxRows:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]),minRows:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]),multiline:e.PropTypes.bool,name:e.PropTypes.string,onBlur:e.PropTypes.func,onChange:e.PropTypes.func,onClick:e.PropTypes.func,onFocus:e.PropTypes.func,onInvalid:e.PropTypes.func,onKeyDown:e.PropTypes.func,onKeyUp:e.PropTypes.func,placeholder:e.PropTypes.string,readOnly:e.PropTypes.bool,renderSuffix:e.PropTypes.func,required:e.PropTypes.bool,rows:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]),size:e.PropTypes.oneOfType([e.PropTypes.oneOf(["medium","small"]),e.PropTypes.string]),slotProps:e.PropTypes.shape({input:e.PropTypes.object,root:e.PropTypes.object}),slots:e.PropTypes.shape({input:e.PropTypes.elementType,root:e.PropTypes.elementType}),startAdornment:e.PropTypes.node,sx:e.PropTypes.oneOfType([e.PropTypes.arrayOf(e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object,e.PropTypes.bool])),e.PropTypes.func,e.PropTypes.object]),type:e.PropTypes.string,value:e.PropTypes.any});exports.InputBase=Re;exports.InputBaseInput=Se;exports.InputBaseRoot=Ce;exports.inputBaseClasses=U;exports.inputOverridesResolver=xe;exports.rootOverridesResolver=we;