@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) • 24.7 kB
JavaScript
const Bo=require("react"),e=require("./index-kjfz41UI.cjs"),T=require("react/jsx-runtime"),h=require("./generateUtilityClasses-CENS22bI.cjs"),ze=require("./index-D_kvDIOz.cjs"),Eo=require("./useTheme-BrGF2Vm0.cjs"),v=require("./DefaultPropsProvider-C1g4BXET.cjs"),fe=require("./memoTheme-Bi1UNdyO.cjs"),se=require("./useEventCallback-BxpcFap0.cjs"),Le=require("./debounce-DpCj7ugL.cjs"),qe=require("./ownerWindow-DDHucZi0.cjs"),F=require("./useSlot-C-aMxEm0.cjs"),ae=require("./useSlotProps-BVVfeURp.cjs"),Ue=require("./createSvgIcon-CcWpa9Le.cjs"),Ae=require("./ButtonBase-DSJojbNE.cjs"),Io=require("./ownerDocument-4MViGo3k.cjs"),Oo=require("./refType-DJyA--UV.cjs"),Mo=require("./useThemeProps-BWsN0TEk.cjs"),Fe=require("./capitalize-3OjkeP9i.cjs"),Ro=require("./unsupportedProp-Bn6XWqwH.cjs");function No(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(o,n,l.get?l:{enumerable:!0,get:()=>t[n]})}}return o.default=t,Object.freeze(o)}const a=No(Bo),be=a.createContext(null);process.env.NODE_ENV!=="production"&&(be.displayName="TabContext");function jo(){const[t,o]=a.useState(null);return a.useEffect(()=>{o(`mui-p-${Math.round(Math.random()*1e5)}`)},[]),t}function Ve(t){const{children:o,value:n}=t,l=jo(),c=a.useMemo(()=>({idPrefix:l,value:n}),[l,n]);return T.jsx(be.Provider,{value:c,children:o})}process.env.NODE_ENV!=="production"&&(Ve.propTypes={children:e.PropTypes.node,value:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]).isRequired});function Te(){return a.useContext(be)}function Pe(t,o){const{idPrefix:n}=t;return n===null?null:`${t.idPrefix}-P-${o}`}function he(t,o){const{idPrefix:n}=t;return n===null?null:`${t.idPrefix}-T-${o}`}function Do(t){return(1+Math.sin(Math.PI*t-Math.PI/2))/2}function ko(t,o,n,l={},c=()=>{}){const{ease:p=Do,duration:d=300}=l;let y=null;const b=o[t];let S=!1;const g=()=>{S=!0},P=m=>{if(S){c(new Error("Animation cancelled"));return}y===null&&(y=m);const C=Math.min(1,(m-y)/d);if(o[t]=p(C)*(n-b)+b,C>=1){requestAnimationFrame(()=>{c(null)});return}requestAnimationFrame(P)};return b===n?(c(new Error("Element already at target position")),g):(requestAnimationFrame(P),g)}const $o={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function He(t){const{onChange:o,...n}=t,l=a.useRef(),c=a.useRef(null),p=()=>{l.current=c.current.offsetHeight-c.current.clientHeight};return se.useEnhancedEffect(()=>{const d=Le.debounce(()=>{const b=l.current;p(),b!==l.current&&o(l.current)}),y=qe.ownerWindow(c.current);return y.addEventListener("resize",d),()=>{d.clear(),y.removeEventListener("resize",d)}},[o]),a.useEffect(()=>{p(),o(l.current)},[o]),T.jsx("div",{style:$o,...n,ref:c})}process.env.NODE_ENV!=="production"&&(He.propTypes={onChange:e.PropTypes.func.isRequired});const _e=Ue.createSvgIcon(T.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),Ke=Ue.createSvgIcon(T.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function Wo(t){return h.generateUtilityClass("MuiTabScrollButton",t)}const zo=h.generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),Lo=t=>{const{classes:o,orientation:n,disabled:l}=t,c={root:["root",n,l&&"disabled"]};return v.composeClasses(c,Wo,o)},qo=v.styled(Ae.ButtonBase,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(t,o)=>{const{ownerState:n}=t;return[o.root,n.orientation&&o[n.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${zo.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),Xe=a.forwardRef(function(o,n){const l=v.useDefaultProps({props:o,name:"MuiTabScrollButton"}),{className:c,slots:p={},slotProps:d={},direction:y,orientation:b,disabled:S,...g}=l,P=ze.useRtl(),m={isRtl:P,...l},C=Lo(m),W=p.StartScrollButtonIcon??_e,I=p.EndScrollButtonIcon??Ke,w=ae.useSlotProps({elementType:W,externalSlotProps:d.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m}),G=ae.useSlotProps({elementType:I,externalSlotProps:d.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m});return T.jsx(qo,{component:"div",className:h.clsx(C.root,c),ref:n,role:null,ownerState:m,tabIndex:null,...g,style:{...g.style,...b==="vertical"&&{"--TabScrollButton-svgRotate":`rotate(${P?-90:90}deg)`}},children:y==="left"?T.jsx(W,{...w}):T.jsx(I,{...G})})});process.env.NODE_ENV!=="production"&&(Xe.propTypes={children:e.PropTypes.node,classes:e.PropTypes.object,className:e.PropTypes.string,direction:e.PropTypes.oneOf(["left","right"]).isRequired,disabled:e.PropTypes.bool,orientation:e.PropTypes.oneOf(["horizontal","vertical"]).isRequired,slotProps:e.PropTypes.shape({endScrollButtonIcon:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),startScrollButtonIcon:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object])}),slots:e.PropTypes.shape({EndScrollButtonIcon:e.PropTypes.elementType,StartScrollButtonIcon:e.PropTypes.elementType}),style:e.PropTypes.object,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])});function Ye(t){return h.generateUtilityClass("MuiTabs",t)}const le=h.generateUtilityClasses("MuiTabs",["root","vertical","list","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),De=(t,o)=>t===o?t.firstChild:o&&o.nextElementSibling?o.nextElementSibling:t.firstChild,ke=(t,o)=>t===o?t.lastChild:o&&o.previousElementSibling?o.previousElementSibling:t.lastChild,ne=(t,o,n)=>{let l=!1,c=n(t,o);for(;c;){if(c===t.firstChild){if(l)return;l=!0}const p=c.disabled||c.getAttribute("aria-disabled")==="true";if(!c.hasAttribute("tabindex")||p)c=n(t,c);else{c.focus();return}}},Uo=t=>{const{vertical:o,fixed:n,hideScrollbar:l,scrollableX:c,scrollableY:p,centered:d,scrollButtonsHideMobile:y,classes:b}=t,S={root:["root",o&&"vertical"],scroller:["scroller",n&&"fixed",l&&"hideScrollbar",c&&"scrollableX",p&&"scrollableY"],list:["list","flexContainer",o&&"flexContainerVertical",o&&"vertical",d&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",y&&"scrollButtonsHideMobile"],scrollableX:[c&&"scrollableX"],hideScrollbar:[l&&"hideScrollbar"]};return v.composeClasses(S,Ye,b)},Ao=v.styled("div",{name:"MuiTabs",slot:"Root",overridesResolver:(t,o)=>{const{ownerState:n}=t;return[{[`& .${le.scrollButtons}`]:o.scrollButtons},{[`& .${le.scrollButtons}`]:n.scrollButtonsHideMobile&&o.scrollButtonsHideMobile},o.root,n.vertical&&o.vertical]}})(fe.memoTheme(({theme:t})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:o})=>o.vertical,style:{flexDirection:"column"}},{props:({ownerState:o})=>o.scrollButtonsHideMobile,style:{[`& .${le.scrollButtons}`]:{[t.breakpoints.down("sm")]:{display:"none"}}}}]}))),Fo=v.styled("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(t,o)=>{const{ownerState:n}=t;return[o.scroller,n.fixed&&o.fixed,n.hideScrollbar&&o.hideScrollbar,n.scrollableX&&o.scrollableX,n.scrollableY&&o.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:t})=>t.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:t})=>t.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:t})=>t.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:t})=>t.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),Vo=v.styled("div",{name:"MuiTabs",slot:"List",overridesResolver:(t,o)=>{const{ownerState:n}=t;return[o.list,o.flexContainer,n.vertical&&o.flexContainerVertical,n.centered&&o.centered]}})({display:"flex",variants:[{props:({ownerState:t})=>t.vertical,style:{flexDirection:"column"}},{props:({ownerState:t})=>t.centered,style:{justifyContent:"center"}}]}),Ho=v.styled("span",{name:"MuiTabs",slot:"Indicator"})(fe.memoTheme(({theme:t})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:t.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(t.vars||t).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(t.vars||t).palette.secondary.main}},{props:({ownerState:o})=>o.vertical,style:{height:"100%",width:2,right:0}}]}))),_o=v.styled(He)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),$e={};let We=!1;const Se=a.forwardRef(function(o,n){const l=v.useDefaultProps({props:o,name:"MuiTabs"}),c=Eo.useTheme(),p=ze.useRtl(),{"aria-label":d,"aria-labelledby":y,action:b,centered:S=!1,children:g,className:P,component:m="div",allowScrollButtonsMobile:C=!1,indicatorColor:W="primary",onChange:I,orientation:w="horizontal",ScrollButtonComponent:G,scrollButtons:M="auto",selectionFollowsFocus:ce,slots:R={},slotProps:U={},TabIndicatorProps:V={},TabScrollButtonProps:H={},textColor:J="primary",value:k,variant:N="standard",visibleScrollbar:ie=!1,...oo}=l,B=N==="scrollable",E=w==="vertical",_=E?"scrollTop":"scrollLeft",Q=E?"top":"left",Z=E?"bottom":"right",pe=E?"clientHeight":"clientWidth",K=E?"height":"width",j={...l,component:m,allowScrollButtonsMobile:C,indicatorColor:W,orientation:w,vertical:E,scrollButtons:M,textColor:J,variant:N,visibleScrollbar:ie,fixed:!B,hideScrollbar:B&&!ie,scrollableX:B&&!E,scrollableY:B&&E,centered:S&&!B,scrollButtonsHideMobile:!C},$=Uo(j),to=ae.useSlotProps({elementType:R.StartScrollButtonIcon,externalSlotProps:U.startScrollButtonIcon,ownerState:j}),ro=ae.useSlotProps({elementType:R.EndScrollButtonIcon,externalSlotProps:U.endScrollButtonIcon,ownerState:j});process.env.NODE_ENV!=="production"&&S&&B&&console.error('MUI: You can not use the `centered={true}` and `variant="scrollable"` properties at the same time on a `Tabs` component.');const[me,no]=a.useState(!1),[z,ve]=a.useState($e),[ge,so]=a.useState(!1),[xe,lo]=a.useState(!1),[Ce,ao]=a.useState(!1),[we,co]=a.useState({overflow:"hidden",scrollbarWidth:0}),ee=new Map,D=a.useRef(null),L=a.useRef(null),A={slots:R,slotProps:{indicator:V,scrollButton:H,...U}},Be=()=>{const r=D.current;let s;if(r){const u=r.getBoundingClientRect();s={clientWidth:r.clientWidth,scrollLeft:r.scrollLeft,scrollTop:r.scrollTop,scrollWidth:r.scrollWidth,top:u.top,bottom:u.bottom,left:u.left,right:u.right}}let i;if(r&&k!==!1){const u=L.current.children;if(u.length>0){const f=u[ee.get(k)];process.env.NODE_ENV!=="production"&&(f||console.error(["MUI: The `value` provided to the Tabs component is invalid.",`None of the Tabs' children match with "${k}".`,ee.keys?`You can provide one of the following values: ${Array.from(ee.keys()).join(", ")}.`:null].join(`
`))),i=f?f.getBoundingClientRect():null,process.env.NODE_ENV!=="production"&&process.env.NODE_ENV!=="test"&&!We&&i&&i.width===0&&i.height===0&&s.clientWidth!==0&&(s=null,console.error(["MUI: The `value` provided to the Tabs component is invalid.",`The Tab with this \`value\` ("${k}") is not part of the document layout.`,"Make sure the tab item is present in the document or that it's not `display: none`."].join(`
`)),We=!0)}}return{tabsMeta:s,tabMeta:i}},X=se.useEventCallback(()=>{const{tabsMeta:r,tabMeta:s}=Be();let i=0,u;E?(u="top",s&&r&&(i=s.top-r.top+r.scrollTop)):(u=p?"right":"left",s&&r&&(i=(p?-1:1)*(s[u]-r[u]+r.scrollLeft)));const f={[u]:i,[K]:s?s[K]:0};if(typeof z[u]!="number"||typeof z[K]!="number")ve(f);else{const O=Math.abs(z[u]-f[u]),q=Math.abs(z[K]-f[K]);(O>=1||q>=1)&&ve(f)}}),ue=(r,{animation:s=!0}={})=>{s?ko(_,D.current,r,{duration:c.transitions.duration.standard}):D.current[_]=r},Ee=r=>{let s=D.current[_];E?s+=r:s+=r*(p?-1:1),ue(s)},Ie=()=>{const r=D.current[pe];let s=0;const i=Array.from(L.current.children);for(let u=0;u<i.length;u+=1){const f=i[u];if(s+f[pe]>r){u===0&&(s=r);break}s+=f[pe]}return s},io=()=>{Ee(-1*Ie())},po=()=>{Ee(Ie())},[uo,{onChange:oe,...yo}]=F.useSlot("scrollbar",{className:h.clsx($.scrollableX,$.hideScrollbar),elementType:_o,shouldForwardComponentProp:!0,externalForwardedProps:A,ownerState:j}),fo=a.useCallback(r=>{oe==null||oe(r),co({overflow:null,scrollbarWidth:r})},[oe]),[Oe,Me]=F.useSlot("scrollButtons",{className:h.clsx($.scrollButtons,H.className),elementType:Xe,externalForwardedProps:A,ownerState:j,additionalProps:{orientation:w,slots:{StartScrollButtonIcon:R.startScrollButtonIcon||R.StartScrollButtonIcon,EndScrollButtonIcon:R.endScrollButtonIcon||R.EndScrollButtonIcon},slotProps:{startScrollButtonIcon:to,endScrollButtonIcon:ro}}}),bo=()=>{const r={};r.scrollbarSizeListener=B?T.jsx(uo,{...yo,onChange:fo}):null;const i=B&&(M==="auto"&&(ge||xe)||M===!0);return r.scrollButtonStart=i?T.jsx(Oe,{direction:p?"right":"left",onClick:io,disabled:!ge,...Me}):null,r.scrollButtonEnd=i?T.jsx(Oe,{direction:p?"left":"right",onClick:po,disabled:!xe,...Me}):null,r},Re=se.useEventCallback(r=>{const{tabsMeta:s,tabMeta:i}=Be();if(!(!i||!s)){if(i[Q]<s[Q]){const u=s[_]+(i[Q]-s[Q]);ue(u,{animation:r})}else if(i[Z]>s[Z]){const u=s[_]+(i[Z]-s[Z]);ue(u,{animation:r})}}}),te=se.useEventCallback(()=>{B&&M!==!1&&ao(!Ce)});a.useEffect(()=>{const r=Le.debounce(()=>{D.current&&X()});let s;const i=O=>{O.forEach(q=>{q.removedNodes.forEach(Y=>{s==null||s.unobserve(Y)}),q.addedNodes.forEach(Y=>{s==null||s.observe(Y)})}),r(),te()},u=qe.ownerWindow(D.current);u.addEventListener("resize",r);let f;return typeof ResizeObserver<"u"&&(s=new ResizeObserver(r),Array.from(L.current.children).forEach(O=>{s.observe(O)})),typeof MutationObserver<"u"&&(f=new MutationObserver(i),f.observe(L.current,{childList:!0})),()=>{r.clear(),u.removeEventListener("resize",r),f==null||f.disconnect(),s==null||s.disconnect()}},[X,te]),a.useEffect(()=>{const r=Array.from(L.current.children),s=r.length;if(typeof IntersectionObserver<"u"&&s>0&&B&&M!==!1){const i=r[0],u=r[s-1],f={root:D.current,threshold:.99},O=ye=>{so(!ye[0].isIntersecting)},q=new IntersectionObserver(O,f);q.observe(i);const Y=ye=>{lo(!ye[0].isIntersecting)},je=new IntersectionObserver(Y,f);return je.observe(u),()=>{q.disconnect(),je.disconnect()}}},[B,M,Ce,g==null?void 0:g.length]),a.useEffect(()=>{no(!0)},[]),a.useEffect(()=>{X()}),a.useEffect(()=>{Re($e!==z)},[Re,z]),a.useImperativeHandle(b,()=>({updateIndicator:X,updateScrollButtons:te}),[X,te]);const[To,Po]=F.useSlot("indicator",{className:h.clsx($.indicator,V.className),elementType:Ho,externalForwardedProps:A,ownerState:j,additionalProps:{style:z}}),Ne=T.jsx(To,{...Po});let re=0;const ho=a.Children.map(g,r=>{if(!a.isValidElement(r))return null;process.env.NODE_ENV!=="production"&&h.reactIsExports.isFragment(r)&&console.error(["MUI: The Tabs component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(`
`));const s=r.props.value===void 0?re:r.props.value;ee.set(s,re);const i=s===k;return re+=1,a.cloneElement(r,{fullWidth:N==="fullWidth",indicator:i&&!me&&Ne,selected:i,selectionFollowsFocus:ce,onChange:I,textColor:J,value:s,...re===1&&k===!1&&!r.props.tabIndex?{tabIndex:0}:{}})}),So=r=>{if(r.altKey||r.shiftKey||r.ctrlKey||r.metaKey)return;const s=L.current,i=Io.ownerDocument(s).activeElement;if(i.getAttribute("role")!=="tab")return;let f=w==="horizontal"?"ArrowLeft":"ArrowUp",O=w==="horizontal"?"ArrowRight":"ArrowDown";switch(w==="horizontal"&&p&&(f="ArrowRight",O="ArrowLeft"),r.key){case f:r.preventDefault(),ne(s,i,ke);break;case O:r.preventDefault(),ne(s,i,De);break;case"Home":r.preventDefault(),ne(s,null,De);break;case"End":r.preventDefault(),ne(s,null,ke);break}},de=bo(),[mo,vo]=F.useSlot("root",{ref:n,className:h.clsx($.root,P),elementType:Ao,externalForwardedProps:{...A,...oo,component:m},ownerState:j}),[go,xo]=F.useSlot("scroller",{ref:D,className:$.scroller,elementType:Fo,externalForwardedProps:A,ownerState:j,additionalProps:{style:{overflow:we.overflow,[E?`margin${p?"Left":"Right"}`:"marginBottom"]:ie?void 0:-we.scrollbarWidth}}}),[Co,wo]=F.useSlot("list",{ref:L,className:h.clsx($.list,$.flexContainer),elementType:Vo,externalForwardedProps:A,ownerState:j,getSlotProps:r=>({...r,onKeyDown:s=>{var i;So(s),(i=r.onKeyDown)==null||i.call(r,s)}})});return T.jsxs(mo,{...vo,children:[de.scrollButtonStart,de.scrollbarSizeListener,T.jsxs(go,{...xo,children:[T.jsx(Co,{"aria-label":d,"aria-labelledby":y,"aria-orientation":w==="vertical"?"vertical":null,role:"tablist",...wo,children:ho}),me&&Ne]}),de.scrollButtonEnd]})});process.env.NODE_ENV!=="production"&&(Se.propTypes={action:Oo.refType,allowScrollButtonsMobile:e.PropTypes.bool,"aria-label":e.PropTypes.string,"aria-labelledby":e.PropTypes.string,centered:e.PropTypes.bool,children:e.PropTypes.node,classes:e.PropTypes.object,className:e.PropTypes.string,component:e.PropTypes.elementType,indicatorColor:e.PropTypes.oneOfType([e.PropTypes.oneOf(["primary","secondary"]),e.PropTypes.string]),onChange:e.PropTypes.func,orientation:e.PropTypes.oneOf(["horizontal","vertical"]),ScrollButtonComponent:e.PropTypes.elementType,scrollButtons:e.PropTypes.oneOf(["auto",!1,!0]),selectionFollowsFocus:e.PropTypes.bool,slotProps:e.PropTypes.shape({endScrollButtonIcon:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),indicator:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),list:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),root:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),scrollbar:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),scrollButtons:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),scroller:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object]),startScrollButtonIcon:e.PropTypes.oneOfType([e.PropTypes.func,e.PropTypes.object])}),slots:e.PropTypes.shape({endScrollButtonIcon:e.PropTypes.elementType,EndScrollButtonIcon:e.PropTypes.elementType,indicator:e.PropTypes.elementType,list:e.PropTypes.elementType,root:e.PropTypes.elementType,scrollbar:e.PropTypes.elementType,scrollButtons:e.PropTypes.elementType,scroller:e.PropTypes.elementType,startScrollButtonIcon:e.PropTypes.elementType,StartScrollButtonIcon:e.PropTypes.elementType}),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]),TabIndicatorProps:e.PropTypes.object,TabScrollButtonProps:e.PropTypes.object,textColor:e.PropTypes.oneOf(["inherit","primary","secondary"]),value:e.PropTypes.any,variant:e.PropTypes.oneOf(["fullWidth","scrollable","standard"]),visibleScrollbar:e.PropTypes.bool});const Ge=a.forwardRef(function(o,n){const{children:l,...c}=o,p=Te();if(p===null)throw new TypeError("No TabContext provided");const d=a.Children.map(l,y=>a.isValidElement(y)?a.cloneElement(y,{"aria-controls":Pe(p,y.props.value),id:he(p,y.props.value)}):null);return T.jsx(Se,{...c,ref:n,value:p.value,children:d})});process.env.NODE_ENV!=="production"&&(Ge.propTypes={children:e.PropTypes.node});function Je(t){return h.generateUtilityClass("MuiTabPanel",t)}const Ko=h.generateUtilityClasses("MuiTabPanel",["root","hidden"]),Xo=t=>{const{classes:o,hidden:n}=t,l={root:["root",n&&"hidden"]};return v.composeClasses(l,Je,o)},Yo=v.styled("div",{name:"MuiTabPanel",slot:"Root"})(({theme:t})=>({padding:t.spacing(3)})),Qe=a.forwardRef(function(o,n){const l=Mo.useThemeProps({props:o,name:"MuiTabPanel"}),{children:c,className:p,value:d,keepMounted:y=!1,...b}=l,S={...l},g=Xo(S),P=Te();if(P===null)throw new TypeError("No TabContext provided");const m=Pe(P,d),C=he(P,d);return T.jsx(Yo,{"aria-labelledby":C,className:h.clsx(g.root,p),hidden:d!==P.value,id:m,ref:n,role:"tabpanel",ownerState:S,...b,children:(y||d===P.value)&&c})});process.env.NODE_ENV!=="production"&&(Qe.propTypes={children:e.PropTypes.node,classes:e.PropTypes.object,className:e.PropTypes.string,keepMounted:e.PropTypes.bool,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]),value:e.PropTypes.oneOfType([e.PropTypes.number,e.PropTypes.string]).isRequired});function Ze(t){return h.generateUtilityClass("MuiTab",t)}const x=h.generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]),Go=t=>{const{classes:o,textColor:n,fullWidth:l,wrapped:c,icon:p,label:d,selected:y,disabled:b}=t,S={root:["root",p&&d&&"labelIcon",`textColor${Fe.capitalize(n)}`,l&&"fullWidth",c&&"wrapped",y&&"selected",b&&"disabled"],icon:["iconWrapper","icon"]};return v.composeClasses(S,Ze,o)},Jo=v.styled(Ae.ButtonBase,{name:"MuiTab",slot:"Root",overridesResolver:(t,o)=>{const{ownerState:n}=t;return[o.root,n.label&&n.icon&&o.labelIcon,o[`textColor${Fe.capitalize(n.textColor)}`],n.fullWidth&&o.fullWidth,n.wrapped&&o.wrapped,{[`& .${x.iconWrapper}`]:o.iconWrapper},{[`& .${x.icon}`]:o.icon}]}})(fe.memoTheme(({theme:t})=>({...t.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:o})=>o.label&&(o.iconPosition==="top"||o.iconPosition==="bottom"),style:{flexDirection:"column"}},{props:({ownerState:o})=>o.label&&o.iconPosition!=="top"&&o.iconPosition!=="bottom",style:{flexDirection:"row"}},{props:({ownerState:o})=>o.icon&&o.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:o,iconPosition:n})=>o.icon&&o.label&&n==="top",style:{[`& > .${x.icon}`]:{marginBottom:6}}},{props:({ownerState:o,iconPosition:n})=>o.icon&&o.label&&n==="bottom",style:{[`& > .${x.icon}`]:{marginTop:6}}},{props:({ownerState:o,iconPosition:n})=>o.icon&&o.label&&n==="start",style:{[`& > .${x.icon}`]:{marginRight:t.spacing(1)}}},{props:({ownerState:o,iconPosition:n})=>o.icon&&o.label&&n==="end",style:{[`& > .${x.icon}`]:{marginLeft:t.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${x.selected}`]:{opacity:1},[`&.${x.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(t.vars||t).palette.text.secondary,[`&.${x.selected}`]:{color:(t.vars||t).palette.primary.main},[`&.${x.disabled}`]:{color:(t.vars||t).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(t.vars||t).palette.text.secondary,[`&.${x.selected}`]:{color:(t.vars||t).palette.secondary.main},[`&.${x.disabled}`]:{color:(t.vars||t).palette.text.disabled}}},{props:({ownerState:o})=>o.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:o})=>o.wrapped,style:{fontSize:t.typography.pxToRem(12)}}]}))),eo=a.forwardRef(function(o,n){const l=v.useDefaultProps({props:o,name:"MuiTab"}),{className:c,disabled:p=!1,disableFocusRipple:d=!1,fullWidth:y,icon:b,iconPosition:S="top",indicator:g,label:P,onChange:m,onClick:C,onFocus:W,selected:I,selectionFollowsFocus:w,textColor:G="inherit",value:M,wrapped:ce=!1,...R}=l,U={...l,disabled:p,disableFocusRipple:d,selected:I,icon:!!b,iconPosition:S,label:!!P,fullWidth:y,textColor:G,wrapped:ce},V=Go(U),H=b&&P&&a.isValidElement(b)?a.cloneElement(b,{className:h.clsx(V.icon,b.props.className)}):b,J=N=>{!I&&m&&m(N,M),C&&C(N)},k=N=>{w&&!I&&m&&m(N,M),W&&W(N)};return T.jsxs(Jo,{focusRipple:!d,className:h.clsx(V.root,c),ref:n,role:"tab","aria-selected":I,disabled:p,onClick:J,onFocus:k,ownerState:U,tabIndex:I?0:-1,...R,children:[S==="top"||S==="start"?T.jsxs(a.Fragment,{children:[H,P]}):T.jsxs(a.Fragment,{children:[P,H]}),g]})});process.env.NODE_ENV!=="production"&&(eo.propTypes={children:Ro.unsupportedProp,classes:e.PropTypes.object,className:e.PropTypes.string,disabled:e.PropTypes.bool,disableFocusRipple:e.PropTypes.bool,disableRipple:e.PropTypes.bool,icon:e.PropTypes.oneOfType([e.PropTypes.element,e.PropTypes.string]),iconPosition:e.PropTypes.oneOf(["bottom","end","start","top"]),label:e.PropTypes.node,onChange:e.PropTypes.func,onClick:e.PropTypes.func,onFocus:e.PropTypes.func,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]),value:e.PropTypes.any,wrapped:e.PropTypes.bool});exports.KeyboardArrowLeft=_e;exports.KeyboardArrowRight=Ke;exports.Tab=eo;exports.TabContext=Ve;exports.TabList=Ge;exports.TabPanel=Qe;exports.Tabs=Se;exports.getPanelId=Pe;exports.getTabId=he;exports.getTabPanelUtilityClass=Je;exports.getTabUtilityClass=Ze;exports.getTabsUtilityClass=Ye;exports.tabClasses=x;exports.tabPanelClasses=Ko;exports.tabsClasses=le;exports.useTabContext=Te;
;