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 He=require("react"),e=require("./index-DLnSn8GT.cjs"),w=require("./identifier-BoZelETM.cjs"),de=require("./isHostComponent-PydJW4A4.cjs"),Me=require("./formControlState-CuX6WjAX.cjs"),fe=require("./useFormControl-haP0iPhl.cjs"),qe=require("./index-D3lMWU76.cjs"),be=require("./memoTheme-BKfsJx_F.cjs"),We=require("./utils-BWx1W_q1.cjs"),v=require("react/jsx-runtime"),V=require("./DefaultPropsProvider-Cnf49AIv.cjs"),ge=require("./useForkRef-CFhhTu-Q.cjs"),L=require("./useEventCallback-BxpcFap0.cjs"),ye=require("./ownerWindow-DDHucZi0.cjs"),De=require("./debounce-DpCj7ugL.cjs"),Le=require("./refType-B_IEJm4x.cjs"),Ue=require("./elementTypeAcceptingRef-BwZv9xBI.cjs");function Ve(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=Ve(He);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 $e(t){for(const o in t)return!1;return!0}function me(t){return $e(t)||t.outerHeightStyle===0&&!t.overflowing}const Pe=l.forwardRef(function(o,n){const{onChange:u,maxRows:m,minRows:d=1,style:R,value:O,...j}=o,{current:x}=l.useRef(O!=null),f=l.useRef(null),E=ge.useForkRef(n,f),y=l.useRef(null),C=l.useRef(null),b=l.useCallback(()=>{const s=f.current,r=C.current;if(!s||!r)return;const p=ye.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 I=p.boxSizing,H=D(p.paddingBottom)+D(p.paddingTop),$=D(p.borderBottomWidth)+D(p.borderTopWidth),P=r.scrollHeight;r.value="x";const z=r.scrollHeight;let h=P;d&&(h=Math.max(Number(d)*z,h)),m&&(h=Math.min(Number(m)*z,h)),h=Math.max(h,z);const M=h+(I==="border-box"?H+$:0),K=Math.abs(h-P)<=1;return{outerHeightStyle:M,overflowing:K}},[m,d,o.placeholder]),N=L.useEventCallback(()=>{const s=f.current,r=b();if(!s||!r||me(r))return!1;const c=r.outerHeightStyle;return y.current!=null&&y.current!==c}),S=l.useCallback(()=>{const s=f.current,r=b();if(!s||!r||me(r))return;const c=r.outerHeightStyle;y.current!==c&&(y.current=c,s.style.height=`${c}px`),s.style.overflow=r.overflowing?"hidden":""},[b]),B=l.useRef(-1);L.useEnhancedEffect(()=>{const s=De.debounce(S),r=f==null?void 0:f.current;if(!r)return;const c=ye.ownerWindow(r);c.addEventListener("resize",s);let p;return typeof ResizeObserver<"u"&&(p=new ResizeObserver(()=>{N()&&(p.unobserve(r),cancelAnimationFrame(B.current),S(),B.current=requestAnimationFrame(()=>{p.observe(r)}))}),p.observe(r)),()=>{s.clear(),cancelAnimationFrame(B.current),c.removeEventListener("resize",s),p&&p.disconnect()}},[b,S,N]),L.useEnhancedEffect(()=>{S()});const _=s=>{x||S();const r=s.target,c=r.value.length,p=r.value.endsWith(` `),I=r.selectionStart===c;p&&I&&r.setSelectionRange(c,c),u&&u(s)};return v.jsxs(l.Fragment,{children:[v.jsx("textarea",{value:O,onChange:_,ref:E,rows:d,style:R,...j}),v.jsx("textarea",{"aria-hidden":!0,className:o.className,readOnly:!0,ref:C,tabIndex:-1,style:{..._e.shadow,...R,paddingTop:0,paddingBottom:0}})]})});process.env.NODE_ENV!=="production"&&(Pe.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 Ke(t){return w.generateUtilityClass("MuiInputBase",t)}const U=w.generateUtilityClasses("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var he;const ve=(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${w.capitalize(n.color)}`],n.fullWidth&&o.fullWidth,n.hiddenLabel&&o.hiddenLabel]},we=(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]},Ge=t=>{const{classes:o,color:n,disabled:u,error:m,endAdornment:d,focused:R,formControl:O,fullWidth:j,hiddenLabel:x,multiline:f,readOnly:E,size:y,startAdornment:C,type:b}=t,N={root:["root",`color${w.capitalize(n)}`,u&&"disabled",m&&"error",j&&"fullWidth",R&&"focused",O&&"formControl",y&&y!=="medium"&&`size${w.capitalize(y)}`,f&&"multiline",C&&"adornedStart",d&&"adornedEnd",x&&"hiddenLabel",E&&"readOnly"],input:["input",u&&"disabled",b==="search"&&"inputTypeSearch",f&&"inputMultiline",y==="small"&&"inputSizeSmall",x&&"inputHiddenLabel",C&&"inputAdornedStart",d&&"inputAdornedEnd",E&&"readOnly"]};return V.composeClasses(N,Ke,o)},xe=V.styled("div",{name:"MuiInputBase",slot:"Root",overridesResolver:ve})(be.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%"}}]}))),Ce=V.styled("input",{name:"MuiInputBase",slot:"Input",overridesResolver:we})(be.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"}}]}})),Te=qe.globalCss({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),Se=l.forwardRef(function(o,n){const u=V.useDefaultProps({props:o,name:"MuiInputBase"}),{"aria-describedby":m,autoComplete:d,autoFocus:R,className:O,color:j,components:x={},componentsProps:f={},defaultValue:E,disabled:y,disableInjectingGlobalStyles:C,endAdornment:b,error:N,fullWidth:S=!1,id:B,inputComponent:_="input",inputProps:s={},inputRef:r,margin:c,maxRows:p,minRows:I,multiline:H=!1,name:$,onBlur:P,onChange:z,onClick:h,onFocus:M,onKeyDown:K,onKeyUp:Re,placeholder:Oe,readOnly:G,renderSuffix:ne,rows:q,size:Ye,slotProps:re={},slots:se={},startAdornment:F,type:ie="text",value:Ee,...Ie}=u,W=s.value!=null?s.value:Ee,{current:Y}=l.useRef(W!=null),k=l.useRef(),ze=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(` `))},[]),ke=ge.useForkRef(k,r,s.ref,ze),[Z,J]=l.useState(!1),a=fe.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,A=l.useCallback(i=>{We.isFilled(i)?Q&&Q():X&&X()},[Q,X]);L.useEnhancedEffect(()=>{Y&&A({value:W})},[W,A,Y]);const Ne=i=>{M&&M(i),s.onFocus&&s.onFocus(i),a&&a.onFocus?a.onFocus(i):J(!0)},Be=i=>{P&&P(i),s.onBlur&&s.onBlur(i),a&&a.onBlur?a.onBlur(i):J(!1)},Fe=(i,...ue)=>{if(!Y){const ce=i.target||k.current;if(ce==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.":w.formatMuiErrorMessage(1));A({value:ce.value})}s.onChange&&s.onChange(i,...ue),z&&z(i,...ue)};l.useEffect(()=>{A(k.current)},[]);const Ae=i=>{k.current&&i.currentTarget===i.target&&k.current.focus(),h&&h(i)};let ee=_,g=s;H&&ee==="input"&&(q?(process.env.NODE_ENV!=="production"&&(I||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:q,maxRows:q,...g}):g={type:void 0,maxRows:p,minRows:I,...g},ee=Pe);const je=i=>{A(i.animationName==="mui-auto-fill-cancel"?k.current:{value:"x"})};l.useEffect(()=>{a&&a.setAdornedStart(!!F)},[a,F]);const oe={...u,color:T.color||"primary",disabled:T.disabled,endAdornment:b,error:T.error,focused:T.focused,formControl:a,fullWidth:S,hiddenLabel:T.hiddenLabel,multiline:H,size:T.size,startAdornment:F,type:ie},ae=Ge(oe),le=se.root||x.Root||xe,te=re.root||f.root||{},pe=se.input||x.Input||Ce;return g={...g,...re.input??f.input},v.jsxs(l.Fragment,{children:[!C&&typeof Te=="function"&&(he||(he=v.jsx(Te,{}))),v.jsxs(le,{...te,ref:n,onClick:Ae,...Ie,...!de.isHostComponent(le)&&{ownerState:{...oe,...te.ownerState}},className:w.clsx(ae.root,te.className,O,G&&"MuiInputBase-readOnly"),children:[F,v.jsx(fe.FormControlContext.Provider,{value:null,children:v.jsx(pe,{"aria-invalid":T.error,"aria-describedby":m,autoComplete:d,autoFocus:R,defaultValue:E,disabled:T.disabled,id:B,onAnimationStart:je,name:$,placeholder:Oe,readOnly:G,required:T.required,rows:q,value:W,onKeyDown:K,onKeyUp:Re,type:ie,...g,...!de.isHostComponent(pe)&&{as:ee,ownerState:{...oe,...g.ownerState}},ref:ke,className:w.clsx(ae.input,g.className,G&&"MuiInputBase-readOnly"),onBlur:Be,onChange:Fe,onFocus:Ne})}),b,ne?ne({...T,startAdornment:F}):null]})]})});process.env.NODE_ENV!=="production"&&(Se.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:Ue.elementTypeAcceptingRef,inputProps:e.PropTypes.object,inputRef:Le.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=Se;exports.InputBaseInput=Ce;exports.InputBaseRoot=xe;exports.inputBaseClasses=U;exports.inputOverridesResolver=we;exports.rootOverridesResolver=ve;