@mui-toolpad-extended-tuni/courses 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +320 -0
  2. package/dist/CourseCodeLoader.d.ts +15 -0
  3. package/dist/CourseEventPublisher.d.ts +8 -0
  4. package/dist/CourseInstanceLoader.d.ts +16 -0
  5. package/dist/CourseInstanceSelector.d.ts +15 -0
  6. package/dist/CourseItem/CourseActions.d.ts +6 -0
  7. package/dist/CourseItem/CourseHeader.d.ts +6 -0
  8. package/dist/CourseItem/CourseHeaderActions.d.ts +12 -0
  9. package/dist/CourseItem/CourseIcon.d.ts +8 -0
  10. package/dist/CourseItem/CourseInfo.d.ts +8 -0
  11. package/dist/CourseItem/CourseItem.d.ts +9 -0
  12. package/dist/CourseList.d.ts +6 -0
  13. package/dist/CourseManager.d.ts +2 -0
  14. package/dist/CourseMicroservice.d.ts +42 -0
  15. package/dist/CourseRoutesProvider.d.ts +12 -0
  16. package/dist/CourseTools.d.ts +21 -0
  17. package/dist/Forms/CourseSettings/CourseSettings.d.ts +23 -0
  18. package/dist/Forms/CourseSettings/CourseSettingsTabs.d.ts +9 -0
  19. package/dist/Forms/CourseSettings/tabs/BasicInfoTab.d.ts +7 -0
  20. package/dist/Forms/CourseSettings/tabs/DataProcessingTab.d.ts +24 -0
  21. package/dist/Forms/CourseSettings/tabs/EnrollmentTab.d.ts +28 -0
  22. package/dist/Forms/CourseSettings/tabs/RelationshipsTab.d.ts +25 -0
  23. package/dist/Forms/CourseSettings/tabs/StaffTab.d.ts +26 -0
  24. package/dist/Forms/CourseSettings/tabs/VisibilityTab.d.ts +24 -0
  25. package/dist/LtiLoginUrlForm.d.ts +3 -0
  26. package/dist/Navigation/CourseNavigationbuilder.d.ts +2 -0
  27. package/dist/components/ToolDisplayer/ToolCard.d.ts +8 -0
  28. package/dist/components/ToolDisplayer/ToolDisplayer.d.ts +11 -0
  29. package/dist/config/subjectConfig.d.ts +10 -0
  30. package/dist/context/CourseMicroserviceContext.d.ts +26 -0
  31. package/dist/hooks/useCourseRoutes.d.ts +6 -0
  32. package/dist/index.cjs +127 -0
  33. package/dist/index.d.ts +5 -0
  34. package/dist/index.es.js +5594 -0
  35. package/dist/mocks/commented.d.ts +0 -0
  36. package/dist/mocks/constants.d.ts +9 -0
  37. package/dist/mocks/endpoints.d.ts +8 -0
  38. package/dist/mocks/generators.d.ts +19 -0
  39. package/dist/mocks/types.d.ts +109 -0
  40. package/dist/network/courses.d.ts +37 -0
  41. package/dist/store/useCourseStore.d.ts +146 -0
  42. package/dist/utils/courseFilters.d.ts +21 -0
  43. package/package.json +52 -0
@@ -0,0 +1,24 @@
1
+ import { CourseRaw } from '../../../store/useCourseStore';
2
+ interface VisibilityTabProps {
3
+ formData: CourseRaw;
4
+ setFormData: (data: CourseRaw) => void;
5
+ }
6
+ /**
7
+ * VisibilityTab Component
8
+ *
9
+ * @version 3.0.0
10
+ * @breaking-changes
11
+ * - Standardized string literals for visibility modes
12
+ * - Enhanced type safety for visibility settings
13
+ * - Improved date picker integration
14
+ * - Added helper text explanations for each visibility mode
15
+ * - Updated styling for better visual feedback
16
+ *
17
+ * Provides interface for:
18
+ * - Setting course visibility mode
19
+ * - Configuring visibility periods
20
+ * - Managing access control
21
+ * - Setting visibility schedules
22
+ */
23
+ export default function VisibilityTab({ formData, setFormData, }: VisibilityTabProps): import("react/jsx-runtime").JSX.Element;
24
+ export {};
@@ -0,0 +1,3 @@
1
+ /** @format */
2
+ declare const LtiLoginUrlForm: () => import("react/jsx-runtime").JSX.Element;
3
+ export default LtiLoginUrlForm;
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare const CourseNavigationBuilder: React.FC;
@@ -0,0 +1,8 @@
1
+ import { NavigationPageStoreItem } from 'mui-toolpad-extended-tuni';
2
+ type ToolCardProps = {
3
+ item: NavigationPageStoreItem;
4
+ onToggleService?: (path: string) => void;
5
+ isUsed?: boolean;
6
+ };
7
+ declare const ToolCard: ({ item, onToggleService, isUsed }: ToolCardProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default ToolCard;
@@ -0,0 +1,11 @@
1
+ import { NavigationPageStoreItem } from 'mui-toolpad-extended-tuni';
2
+ interface ToolDisplayerProps {
3
+ show: boolean;
4
+ title: string;
5
+ onToggleService?: (path: string) => void;
6
+ navItems: NavigationPageStoreItem[];
7
+ roleCheck?: boolean;
8
+ isUsed?: boolean;
9
+ }
10
+ declare const ToolDisplayer: ({ show, onToggleService, navItems, roleCheck, isUsed, }: ToolDisplayerProps) => import("react/jsx-runtime").JSX.Element;
11
+ export default ToolDisplayer;
@@ -0,0 +1,10 @@
1
+ import { courseLevel } from '../store/useCourseStore';
2
+ export declare const subjectConfig: {
3
+ [key: string]: {
4
+ icon: string;
5
+ baseColor: string;
6
+ levelShades: {
7
+ [K in courseLevel]: string;
8
+ };
9
+ };
10
+ };
@@ -0,0 +1,26 @@
1
+ import { default as React, ReactNode } from 'react';
2
+ import { NavigationPageStoreItem } from 'mui-toolpad-extended-tuni';
3
+ /**
4
+ * Context for course microservices to register themselves
5
+ */
6
+ export interface CourseMicroserviceContextValue {
7
+ registerCourseMicroservice: (navigation: NavigationPageStoreItem) => void;
8
+ unregisterCourseMicroservice: (segment: string) => void;
9
+ allCourseMicroserviceNavigation: NavigationPageStoreItem[];
10
+ isInsideCourseMicroservice: boolean;
11
+ }
12
+ export declare const CourseMicroserviceContext: React.Context<CourseMicroserviceContextValue>;
13
+ /**
14
+ * Hook for course microservices to register themselves.
15
+ * Returns isInsideCourseMicroservice=false if used outside CourseMicroservice provider.
16
+ */
17
+ export declare const useCourseMicroserviceRegistration: () => CourseMicroserviceContextValue;
18
+ interface CourseMicroserviceProviderProps {
19
+ children: ReactNode;
20
+ }
21
+ /**
22
+ * Provider component for CourseMicroserviceContext.
23
+ * Manages the state of registered course microservices and syncs with the navigation store.
24
+ */
25
+ export declare const CourseMicroserviceProvider: React.FC<CourseMicroserviceProviderProps>;
26
+ export {};
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Hook that generates course routes from registered course microservices
4
+ * @returns Array of Route elements for course routing
5
+ */
6
+ export declare const useCourseRoutes: () => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
package/dist/index.cjs ADDED
@@ -0,0 +1,127 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("react"),H=require("mui-toolpad-extended-tuni"),ie=require("react-router-dom"),P=require("@mui/material"),bn=require("@emotion/styled");require("@emotion/react");function vn(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const ye=vn(U);function Wr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xe={exports:{}},Ve={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var Zt;function Sn(){if(Zt)return Ve;Zt=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,o,s){var i=null;if(s!==void 0&&(i=""+s),o.key!==void 0&&(i=""+o.key),"key"in o){s={};for(var a in o)a!=="key"&&(s[a]=o[a])}else s=o;return o=s.ref,{$$typeof:e,type:n,key:i,ref:o!==void 0?o:null,props:s}}return Ve.Fragment=t,Ve.jsx=r,Ve.jsxs=r,Ve}var Fe={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var er;function Cn(){return er||(er=1,process.env.NODE_ENV!=="production"&&function(){function e(p){if(p==null)return null;if(typeof p=="function")return p.$$typeof===Z?null:p.displayName||p.name||null;if(typeof p=="string")return p;switch(p){case S:return"Fragment";case k:return"Profiler";case T:return"StrictMode";case x:return"Suspense";case N:return"SuspenseList";case fe:return"Activity"}if(typeof p=="object")switch(typeof p.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),p.$$typeof){case l:return"Portal";case O:return p.displayName||"Context";case A:return(p._context.displayName||"Context")+".Consumer";case C:var _=p.render;return p=p.displayName,p||(p=_.displayName||_.name||"",p=p!==""?"ForwardRef("+p+")":"ForwardRef"),p;case W:return _=p.displayName||null,_!==null?_:e(p.type)||"Memo";case q:_=p._payload,p=p._init;try{return e(p(_))}catch{}}return null}function t(p){return""+p}function r(p){try{t(p);var _=!1}catch{_=!0}if(_){_=console;var I=_.error,j=typeof Symbol=="function"&&Symbol.toStringTag&&p[Symbol.toStringTag]||p.constructor.name||"Object";return I.call(_,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",j),t(p)}}function n(p){if(p===S)return"<>";if(typeof p=="object"&&p!==null&&p.$$typeof===q)return"<...>";try{var _=e(p);return _?"<"+_+">":"<...>"}catch{return"<...>"}}function o(){var p=c.A;return p===null?null:p.getOwner()}function s(){return Error("react-stack-top-frame")}function i(p){if($.call(p,"key")){var _=Object.getOwnPropertyDescriptor(p,"key").get;if(_&&_.isReactWarning)return!1}return p.key!==void 0}function a(p,_){function I(){D||(D=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",_))}I.isReactWarning=!0,Object.defineProperty(p,"key",{get:I,configurable:!0})}function u(){var p=e(this.type);return ne[p]||(ne[p]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),p=this.props.ref,p!==void 0?p:null}function f(p,_,I,j,F,B){var M=I.ref;return p={$$typeof:y,type:p,key:_,props:I,_owner:j},(M!==void 0?M:null)!==null?Object.defineProperty(p,"ref",{enumerable:!1,get:u}):Object.defineProperty(p,"ref",{enumerable:!1,value:null}),p._store={},Object.defineProperty(p._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(p,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(p,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:F}),Object.defineProperty(p,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.freeze&&(Object.freeze(p.props),Object.freeze(p)),p}function d(p,_,I,j,F,B){var M=_.children;if(M!==void 0)if(j)if(w(M)){for(j=0;j<M.length;j++)h(M[j]);Object.freeze&&Object.freeze(M)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(M);if($.call(_,"key")){M=e(p);var V=Object.keys(_).filter(function(z){return z!=="key"});j=0<V.length?"{key: someKey, "+V.join(": ..., ")+": ...}":"{key: someKey}",E[M+j]||(V=0<V.length?"{"+V.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ let props = %s;
19
+ <%s {...props} />
20
+ React keys must be passed directly to JSX without using spread:
21
+ let props = %s;
22
+ <%s key={someKey} {...props} />`,j,M,V,M),E[M+j]=!0)}if(M=null,I!==void 0&&(r(I),M=""+I),i(_)&&(r(_.key),M=""+_.key),"key"in _){I={};for(var Y in _)Y!=="key"&&(I[Y]=_[Y])}else I=_;return M&&a(I,typeof p=="function"?p.displayName||p.name||"Unknown":p),f(p,M,I,o(),F,B)}function h(p){m(p)?p._store&&(p._store.validated=1):typeof p=="object"&&p!==null&&p.$$typeof===q&&(p._payload.status==="fulfilled"?m(p._payload.value)&&p._payload.value._store&&(p._payload.value._store.validated=1):p._store&&(p._store.validated=1))}function m(p){return typeof p=="object"&&p!==null&&p.$$typeof===y}var b=U,y=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),T=Symbol.for("react.strict_mode"),k=Symbol.for("react.profiler"),A=Symbol.for("react.consumer"),O=Symbol.for("react.context"),C=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),W=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),fe=Symbol.for("react.activity"),Z=Symbol.for("react.client.reference"),c=b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,w=Array.isArray,L=console.createTask?console.createTask:function(){return null};b={react_stack_bottom_frame:function(p){return p()}};var D,ne={},ce=b.react_stack_bottom_frame.bind(b,s)(),be=L(n(s)),E={};Fe.Fragment=S,Fe.jsx=function(p,_,I){var j=1e4>c.recentlyCreatedOwnerStacks++;return d(p,_,I,!1,j?Error("react-stack-top-frame"):ce,j?L(n(p)):be)},Fe.jsxs=function(p,_,I){var j=1e4>c.recentlyCreatedOwnerStacks++;return d(p,_,I,!0,j?Error("react-stack-top-frame"):ce,j?L(n(p)):be)}}()),Fe}var tr;function xn(){return tr||(tr=1,process.env.NODE_ENV==="production"?Xe.exports=Sn():Xe.exports=Cn()),Xe.exports}var g=xn();const En={registerCourseMicroservice:()=>{},unregisterCourseMicroservice:()=>{},allCourseMicroserviceNavigation:[],isInsideCourseMicroservice:!1},Yr=U.createContext(En),Wt=()=>U.useContext(Yr),Tn=({children:e})=>{const[t,r]=U.useState([]);U.useEffect(()=>{H.useNavigationStore.getState().setExternalMicroservices(t)},[t]);const n=U.useCallback(i=>{r(a=>a.find(f=>f.segment===i.segment)?a:[...a,i])},[]),o=U.useCallback(i=>{r(a=>a.filter(f=>f.segment!==i))},[]),s=U.useMemo(()=>({registerCourseMicroservice:n,unregisterCourseMicroservice:o,allCourseMicroserviceNavigation:t,isInsideCourseMicroservice:!0}),[n,o,t]);return g.jsx(Yr.Provider,{value:s,children:e})};var Qe={exports:{}},Tt={},Ze={exports:{}},Ot={};/**
23
+ * @license React
24
+ * use-sync-external-store-shim.production.js
25
+ *
26
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
27
+ *
28
+ * This source code is licensed under the MIT license found in the
29
+ * LICENSE file in the root directory of this source tree.
30
+ */var rr;function On(){if(rr)return Ot;rr=1;var e=U;function t(h,m){return h===m&&(h!==0||1/h===1/m)||h!==h&&m!==m}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,o=e.useEffect,s=e.useLayoutEffect,i=e.useDebugValue;function a(h,m){var b=m(),y=n({inst:{value:b,getSnapshot:m}}),l=y[0].inst,S=y[1];return s(function(){l.value=b,l.getSnapshot=m,u(l)&&S({inst:l})},[h,b,m]),o(function(){return u(l)&&S({inst:l}),h(function(){u(l)&&S({inst:l})})},[h]),i(b),b}function u(h){var m=h.getSnapshot;h=h.value;try{var b=m();return!r(h,b)}catch{return!0}}function f(h,m){return m()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:a;return Ot.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:d,Ot}var wt={};/**
31
+ * @license React
32
+ * use-sync-external-store-shim.development.js
33
+ *
34
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
35
+ *
36
+ * This source code is licensed under the MIT license found in the
37
+ * LICENSE file in the root directory of this source tree.
38
+ */var nr;function wn(){return nr||(nr=1,process.env.NODE_ENV!=="production"&&function(){function e(b,y){return b===y&&(b!==0||1/b===1/y)||b!==b&&y!==y}function t(b,y){d||o.startTransition===void 0||(d=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var l=y();if(!h){var S=y();s(l,S)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),h=!0)}S=i({inst:{value:l,getSnapshot:y}});var T=S[0].inst,k=S[1];return u(function(){T.value=l,T.getSnapshot=y,r(T)&&k({inst:T})},[b,l,y]),a(function(){return r(T)&&k({inst:T}),b(function(){r(T)&&k({inst:T})})},[b]),f(l),l}function r(b){var y=b.getSnapshot;b=b.value;try{var l=y();return!s(b,l)}catch{return!0}}function n(b,y){return y()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=U,s=typeof Object.is=="function"?Object.is:e,i=o.useState,a=o.useEffect,u=o.useLayoutEffect,f=o.useDebugValue,d=!1,h=!1,m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:t;wt.useSyncExternalStore=o.useSyncExternalStore!==void 0?o.useSyncExternalStore:m,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),wt}var or;function Gr(){return or||(or=1,process.env.NODE_ENV==="production"?Ze.exports=On():Ze.exports=wn()),Ze.exports}/**
39
+ * @license React
40
+ * use-sync-external-store-shim/with-selector.production.js
41
+ *
42
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
43
+ *
44
+ * This source code is licensed under the MIT license found in the
45
+ * LICENSE file in the root directory of this source tree.
46
+ */var sr;function _n(){if(sr)return Tt;sr=1;var e=U,t=Gr();function r(f,d){return f===d&&(f!==0||1/f===1/d)||f!==f&&d!==d}var n=typeof Object.is=="function"?Object.is:r,o=t.useSyncExternalStore,s=e.useRef,i=e.useEffect,a=e.useMemo,u=e.useDebugValue;return Tt.useSyncExternalStoreWithSelector=function(f,d,h,m,b){var y=s(null);if(y.current===null){var l={hasValue:!1,value:null};y.current=l}else l=y.current;y=a(function(){function T(x){if(!k){if(k=!0,A=x,x=m(x),b!==void 0&&l.hasValue){var N=l.value;if(b(N,x))return O=N}return O=x}if(N=O,n(A,x))return N;var W=m(x);return b!==void 0&&b(N,W)?(A=x,N):(A=x,O=W)}var k=!1,A,O,C=h===void 0?null:h;return[function(){return T(d())},C===null?void 0:function(){return T(C())}]},[d,h,m,b]);var S=o(f,y[0],y[1]);return i(function(){l.hasValue=!0,l.value=S},[S]),u(S),S},Tt}var _t={};/**
47
+ * @license React
48
+ * use-sync-external-store-shim/with-selector.development.js
49
+ *
50
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
51
+ *
52
+ * This source code is licensed under the MIT license found in the
53
+ * LICENSE file in the root directory of this source tree.
54
+ */var ir;function Rn(){return ir||(ir=1,process.env.NODE_ENV!=="production"&&function(){function e(f,d){return f===d&&(f!==0||1/f===1/d)||f!==f&&d!==d}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var t=U,r=Gr(),n=typeof Object.is=="function"?Object.is:e,o=r.useSyncExternalStore,s=t.useRef,i=t.useEffect,a=t.useMemo,u=t.useDebugValue;_t.useSyncExternalStoreWithSelector=function(f,d,h,m,b){var y=s(null);if(y.current===null){var l={hasValue:!1,value:null};y.current=l}else l=y.current;y=a(function(){function T(x){if(!k){if(k=!0,A=x,x=m(x),b!==void 0&&l.hasValue){var N=l.value;if(b(N,x))return O=N}return O=x}if(N=O,n(A,x))return N;var W=m(x);return b!==void 0&&b(N,W)?(A=x,N):(A=x,O=W)}var k=!1,A,O,C=h===void 0?null:h;return[function(){return T(d())},C===null?void 0:function(){return T(C())}]},[d,h,m,b]);var S=o(f,y[0],y[1]);return i(function(){l.hasValue=!0,l.value=S},[S]),u(S),S},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),_t}var ar;function $n(){return ar||(ar=1,process.env.NODE_ENV==="production"?Qe.exports=_n():Qe.exports=Rn()),Qe.exports}var An=$n();const jn=Wr(An),Pn={},cr=e=>{let t;const r=new Set,n=(d,h)=>{const m=typeof d=="function"?d(t):d;if(!Object.is(m,t)){const b=t;t=h??(typeof m!="object"||m===null)?m:Object.assign({},t,m),r.forEach(y=>y(t,b))}},o=()=>t,u={setState:n,getState:o,getInitialState:()=>f,subscribe:d=>(r.add(d),()=>r.delete(d)),destroy:()=>{(Pn?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},f=t=e(n,o,u);return u},In=e=>e?cr(e):cr,{useDebugValue:kn}=U,{useSyncExternalStoreWithSelector:Mn}=jn,Nn=e=>e;function Ln(e,t=Nn,r){const n=Mn(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return kn(n),n}const lr=(e,t)=>{const r=In(e),n=(o,s=t)=>Ln(r,o,s);return Object.assign(n,r),n},Dn=(e,t)=>e?lr(e,t):lr,ur=new Map,Bn=3e5;async function Hr(e,t){const r=ur.get(e);if(r&&Date.now()-r.timestamp<Bn)return r.data;const n=await t();return ur.set(e,{timestamp:Date.now(),data:n}),n}async function Vn(){return Hr("getCourses",async()=>{try{const e=await H.axios.get("api/courses/");return Array.isArray(e.data)?H.convertObjectKeysToCamelCase(e.data):(console.error("Expected array but got:",e.data),[])}catch(e){throw new Error("Failed to retrieve courses: "+e)}})}async function Fn(e){const t=btoa(e),r=`getCourseByUrl_${t}`;return Hr(r,async()=>{try{const n=await H.axios.get(`api/courses/?encoded_url=${t}`);if(!Array.isArray(n.data)||n.data.length===0)throw new Error("Course not found");return H.convertObjectKeysToCamelCase(n.data[0])}catch(n){throw new Error("Failed to retrieve course by URL: "+n)}})}const Un=async e=>{const t={...e,dataProcessing:e.dataProcessing||{purposes:["course_delivery","assessment"],retention:365,thirdPartyProcessors:[],specialCategories:!1,legalBasis:"consent"}};try{const r=await H.axios.put(`api/courses/${t.id}/`,H.convertObjectKeysToUnderscore(t));return H.convertObjectKeysToCamelCase(r.data)}catch(r){throw new Error(`Failed to update the course: ${r}`)}},zn=e=>{const t=new Date;return e.reduce((r,n)=>{var f,d,h,m;const o=n.endDate?new Date(n.endDate)<t:!1,s=(d=(f=n.data)==null?void 0:f.myData)==null?void 0:d.role,i=(m=(h=n.data)==null?void 0:h.myData)==null?void 0:m.status,a=i==="enrolled";let u=!1;return s==="student"&&a&&(o?r.isStudentOld.push(n):r.isStudent.push(n),u=!0),s==="teacher"&&a&&(o?r.isTeacherOld.push(n):r.isTeacher.push(n),u=!0),!u&&!o&&(n.visibility.mode==="public"||s==="student"&&(i==="pending"||i==="rejected"))&&r.available.push(n),r},{isStudent:[],isStudentOld:[],isTeacher:[],isTeacherOld:[],available:[]})},pe=Dn((e,t)=>({fetchState:"loading",currentCourseUrl:"",currentCourse:null,courses:[],currentCourseCode:null,courseToUpdate:null,learningCourses:[],learningCoursesOld:[],teachingCourses:[],teachingCoursesOld:[],availableCourses:[],getCourseByUrl:async r=>{try{const n=await Fn(r);e({currentCourse:n})}catch(n){console.error("Failed to fetch course by URL:",n)}},setCourseToUpdate:r=>e({courseToUpdate:r}),setCurrentCourseUrl:r=>e({currentCourseUrl:r}),setCurrentCourse:r=>e({currentCourse:r}),setCurrentCourseCode:r=>e({currentCourseCode:r}),updateStateCourse:async r=>{try{const n=await Un(r),{currentCourse:o}=t();return n&&n.id===(o==null?void 0:o.id)&&e({currentCourse:n}),e(s=>({courses:s.courses.map(i=>i.id===n.id?n:i)})),n}catch(n){throw console.error("Failed to update the course:",n),n}},getCourses:async()=>{try{e({fetchState:"loading"});const r=await Vn(),{isStudent:n,isStudentOld:o,isTeacher:s,isTeacherOld:i,available:a}=zn(r);e({fetchState:"idle",learningCourses:n,learningCoursesOld:o,teachingCourses:s,teachingCoursesOld:i,availableCourses:a,courses:r})}catch(r){e({fetchState:"error"}),console.error("Failed to fetch courses:",r)}}})),Wn=()=>{const{code:e}=ie.useParams(),{fetchState:t,courses:r,setCurrentCourseCode:n}=pe(),{addNotificationData:o}=H.useNotificationStore(),s=ie.useNavigate();return U.useEffect(()=>{if(!e)return;n(e),r.filter(a=>a.code===e).length===0&&t==="success"&&(o({type:"error",message:"Course not found"}),s("/"))},[e,r,t,o,s,n]),t==="loading"?g.jsx(H.LoadingScreen,{}):g.jsx(ie.Outlet,{})},st={"COMP.CS":{icon:"/static/images/icons/code.svg",baseColor:"#2196f3",levelShades:{basic:"#90caf9",intermediate:"#2196f3",advanced:"#1565c0"}},MATH:{icon:"/static/images/icons/line.svg",baseColor:"#4caf50",levelShades:{basic:"#a5d6a7",intermediate:"#4caf50",advanced:"#2e7d32"}},PHYS:{icon:"/static/images/icons/weight.svg",baseColor:"#f44336",levelShades:{basic:"#ef9a9a",intermediate:"#f44336",advanced:"#c62828"}},BIO:{icon:"/static/images/icons/dna.svg",baseColor:"#9c27b0",levelShades:{basic:"#ce93d8",intermediate:"#9c27b0",advanced:"#6a1b9a"}},CHEM:{icon:"/static/images/icons/atom.svg",baseColor:"#ff9800",levelShades:{basic:"#ffb74d",intermediate:"#ff9800",advanced:"#ef6c00"}},LANG:{icon:"/static/images/icons/lang.svg",baseColor:"#795548",levelShades:{basic:"#a1887f",intermediate:"#795548",advanced:"#4e342e"}}},Yn=({course:e})=>g.jsx(P.Box,{sx:{mb:1},children:g.jsxs(P.Typography,{variant:"subtitle1",sx:{fontWeight:500,width:"100%"},children:[e.title," (",e.code,")"]})}),fr=e=>e,Gn=()=>{let e=fr;return{configure(t){e=t},generate(t){return e(t)},reset(){e=fr}}},Hn=Gn();function Ge(e,...t){const r=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${e}; visit ${r} for the full message.`}function it(e){if(typeof e!="string")throw new Error(process.env.NODE_ENV!=="production"?"MUI: `capitalize(string)` expects a string argument.":Ge(7));return e.charAt(0).toUpperCase()+e.slice(1)}var et={exports:{}},tt={exports:{}},K={};/** @license React v16.13.1
55
+ * react-is.production.min.js
56
+ *
57
+ * Copyright (c) Facebook, Inc. and its affiliates.
58
+ *
59
+ * This source code is licensed under the MIT license found in the
60
+ * LICENSE file in the root directory of this source tree.
61
+ */var dr;function qn(){if(dr)return K;dr=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,i=e?Symbol.for("react.provider"):60109,a=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,f=e?Symbol.for("react.concurrent_mode"):60111,d=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,m=e?Symbol.for("react.suspense_list"):60120,b=e?Symbol.for("react.memo"):60115,y=e?Symbol.for("react.lazy"):60116,l=e?Symbol.for("react.block"):60121,S=e?Symbol.for("react.fundamental"):60117,T=e?Symbol.for("react.responder"):60118,k=e?Symbol.for("react.scope"):60119;function A(C){if(typeof C=="object"&&C!==null){var x=C.$$typeof;switch(x){case t:switch(C=C.type,C){case u:case f:case n:case s:case o:case h:return C;default:switch(C=C&&C.$$typeof,C){case a:case d:case y:case b:case i:return C;default:return x}}case r:return x}}}function O(C){return A(C)===f}return K.AsyncMode=u,K.ConcurrentMode=f,K.ContextConsumer=a,K.ContextProvider=i,K.Element=t,K.ForwardRef=d,K.Fragment=n,K.Lazy=y,K.Memo=b,K.Portal=r,K.Profiler=s,K.StrictMode=o,K.Suspense=h,K.isAsyncMode=function(C){return O(C)||A(C)===u},K.isConcurrentMode=O,K.isContextConsumer=function(C){return A(C)===a},K.isContextProvider=function(C){return A(C)===i},K.isElement=function(C){return typeof C=="object"&&C!==null&&C.$$typeof===t},K.isForwardRef=function(C){return A(C)===d},K.isFragment=function(C){return A(C)===n},K.isLazy=function(C){return A(C)===y},K.isMemo=function(C){return A(C)===b},K.isPortal=function(C){return A(C)===r},K.isProfiler=function(C){return A(C)===s},K.isStrictMode=function(C){return A(C)===o},K.isSuspense=function(C){return A(C)===h},K.isValidElementType=function(C){return typeof C=="string"||typeof C=="function"||C===n||C===f||C===s||C===o||C===h||C===m||typeof C=="object"&&C!==null&&(C.$$typeof===y||C.$$typeof===b||C.$$typeof===i||C.$$typeof===a||C.$$typeof===d||C.$$typeof===S||C.$$typeof===T||C.$$typeof===k||C.$$typeof===l)},K.typeOf=A,K}var J={};/** @license React v16.13.1
62
+ * react-is.development.js
63
+ *
64
+ * Copyright (c) Facebook, Inc. and its affiliates.
65
+ *
66
+ * This source code is licensed under the MIT license found in the
67
+ * LICENSE file in the root directory of this source tree.
68
+ */var pr;function Kn(){return pr||(pr=1,process.env.NODE_ENV!=="production"&&function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,i=e?Symbol.for("react.provider"):60109,a=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,f=e?Symbol.for("react.concurrent_mode"):60111,d=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,m=e?Symbol.for("react.suspense_list"):60120,b=e?Symbol.for("react.memo"):60115,y=e?Symbol.for("react.lazy"):60116,l=e?Symbol.for("react.block"):60121,S=e?Symbol.for("react.fundamental"):60117,T=e?Symbol.for("react.responder"):60118,k=e?Symbol.for("react.scope"):60119;function A(R){return typeof R=="string"||typeof R=="function"||R===n||R===f||R===s||R===o||R===h||R===m||typeof R=="object"&&R!==null&&(R.$$typeof===y||R.$$typeof===b||R.$$typeof===i||R.$$typeof===a||R.$$typeof===d||R.$$typeof===S||R.$$typeof===T||R.$$typeof===k||R.$$typeof===l)}function O(R){if(typeof R=="object"&&R!==null){var he=R.$$typeof;switch(he){case t:var Je=R.type;switch(Je){case u:case f:case n:case s:case o:case h:return Je;default:var Qt=Je&&Je.$$typeof;switch(Qt){case a:case d:case y:case b:case i:return Qt;default:return he}}case r:return he}}}var C=u,x=f,N=a,W=i,q=t,fe=d,Z=n,c=y,$=b,w=r,L=s,D=o,ne=h,ce=!1;function be(R){return ce||(ce=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),E(R)||O(R)===u}function E(R){return O(R)===f}function p(R){return O(R)===a}function _(R){return O(R)===i}function I(R){return typeof R=="object"&&R!==null&&R.$$typeof===t}function j(R){return O(R)===d}function F(R){return O(R)===n}function B(R){return O(R)===y}function M(R){return O(R)===b}function V(R){return O(R)===r}function Y(R){return O(R)===s}function z(R){return O(R)===o}function le(R){return O(R)===h}J.AsyncMode=C,J.ConcurrentMode=x,J.ContextConsumer=N,J.ContextProvider=W,J.Element=q,J.ForwardRef=fe,J.Fragment=Z,J.Lazy=c,J.Memo=$,J.Portal=w,J.Profiler=L,J.StrictMode=D,J.Suspense=ne,J.isAsyncMode=be,J.isConcurrentMode=E,J.isContextConsumer=p,J.isContextProvider=_,J.isElement=I,J.isForwardRef=j,J.isFragment=F,J.isLazy=B,J.isMemo=M,J.isPortal=V,J.isProfiler=Y,J.isStrictMode=z,J.isSuspense=le,J.isValidElementType=A,J.typeOf=O}()),J}var mr;function qr(){return mr||(mr=1,process.env.NODE_ENV==="production"?tt.exports=qn():tt.exports=Kn()),tt.exports}/*
69
+ object-assign
70
+ (c) Sindre Sorhus
71
+ @license MIT
72
+ */var Rt,hr;function Jn(){if(hr)return Rt;hr=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function n(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function o(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var i={},a=0;a<10;a++)i["_"+String.fromCharCode(a)]=a;var u=Object.getOwnPropertyNames(i).map(function(d){return i[d]});if(u.join("")!=="0123456789")return!1;var f={};return"abcdefghijklmnopqrst".split("").forEach(function(d){f[d]=d}),Object.keys(Object.assign({},f)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Rt=o()?Object.assign:function(s,i){for(var a,u=n(s),f,d=1;d<arguments.length;d++){a=Object(arguments[d]);for(var h in a)t.call(a,h)&&(u[h]=a[h]);if(e){f=e(a);for(var m=0;m<f.length;m++)r.call(a,f[m])&&(u[f[m]]=a[f[m]])}}return u},Rt}var $t,gr;function Yt(){if(gr)return $t;gr=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return $t=e,$t}var At,yr;function Kr(){return yr||(yr=1,At=Function.call.bind(Object.prototype.hasOwnProperty)),At}var jt,br;function Xn(){if(br)return jt;br=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=Yt(),r={},n=Kr();e=function(s){var i="Warning: "+s;typeof console<"u"&&console.error(i);try{throw new Error(i)}catch{}}}function o(s,i,a,u,f){if(process.env.NODE_ENV!=="production"){for(var d in s)if(n(s,d)){var h;try{if(typeof s[d]!="function"){var m=Error((u||"React class")+": "+a+" type `"+d+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[d]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw m.name="Invariant Violation",m}h=s[d](i,d,u,a,null,t)}catch(y){h=y}if(h&&!(h instanceof Error)&&e((u||"React class")+": type specification of "+a+" `"+d+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof h+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),h instanceof Error&&!(h.message in r)){r[h.message]=!0;var b=f?f():"";e("Failed "+a+" type: "+h.message+(b??""))}}}}return o.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},jt=o,jt}var Pt,vr;function Qn(){if(vr)return Pt;vr=1;var e=qr(),t=Jn(),r=Yt(),n=Kr(),o=Xn(),s=function(){};process.env.NODE_ENV!=="production"&&(s=function(a){var u="Warning: "+a;typeof console<"u"&&console.error(u);try{throw new Error(u)}catch{}});function i(){return null}return Pt=function(a,u){var f=typeof Symbol=="function"&&Symbol.iterator,d="@@iterator";function h(E){var p=E&&(f&&E[f]||E[d]);if(typeof p=="function")return p}var m="<<anonymous>>",b={array:T("array"),bigint:T("bigint"),bool:T("boolean"),func:T("function"),number:T("number"),object:T("object"),string:T("string"),symbol:T("symbol"),any:k(),arrayOf:A,element:O(),elementType:C(),instanceOf:x,node:fe(),objectOf:W,oneOf:N,oneOfType:q,shape:c,exact:$};function y(E,p){return E===p?E!==0||1/E===1/p:E!==E&&p!==p}function l(E,p){this.message=E,this.data=p&&typeof p=="object"?p:{},this.stack=""}l.prototype=Error.prototype;function S(E){if(process.env.NODE_ENV!=="production")var p={},_=0;function I(F,B,M,V,Y,z,le){if(V=V||m,z=z||M,le!==r){if(u){var R=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw R.name="Invariant Violation",R}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var he=V+":"+M;!p[he]&&_<3&&(s("You are manually calling a React.PropTypes validation function for the `"+z+"` prop on `"+V+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),p[he]=!0,_++)}}return B[M]==null?F?B[M]===null?new l("The "+Y+" `"+z+"` is marked as required "+("in `"+V+"`, but its value is `null`.")):new l("The "+Y+" `"+z+"` is marked as required in "+("`"+V+"`, but its value is `undefined`.")):null:E(B,M,V,Y,z)}var j=I.bind(null,!1);return j.isRequired=I.bind(null,!0),j}function T(E){function p(_,I,j,F,B,M){var V=_[I],Y=D(V);if(Y!==E){var z=ne(V);return new l("Invalid "+F+" `"+B+"` of type "+("`"+z+"` supplied to `"+j+"`, expected ")+("`"+E+"`."),{expectedType:E})}return null}return S(p)}function k(){return S(i)}function A(E){function p(_,I,j,F,B){if(typeof E!="function")return new l("Property `"+B+"` of component `"+j+"` has invalid PropType notation inside arrayOf.");var M=_[I];if(!Array.isArray(M)){var V=D(M);return new l("Invalid "+F+" `"+B+"` of type "+("`"+V+"` supplied to `"+j+"`, expected an array."))}for(var Y=0;Y<M.length;Y++){var z=E(M,Y,j,F,B+"["+Y+"]",r);if(z instanceof Error)return z}return null}return S(p)}function O(){function E(p,_,I,j,F){var B=p[_];if(!a(B)){var M=D(B);return new l("Invalid "+j+" `"+F+"` of type "+("`"+M+"` supplied to `"+I+"`, expected a single ReactElement."))}return null}return S(E)}function C(){function E(p,_,I,j,F){var B=p[_];if(!e.isValidElementType(B)){var M=D(B);return new l("Invalid "+j+" `"+F+"` of type "+("`"+M+"` supplied to `"+I+"`, expected a single ReactElement type."))}return null}return S(E)}function x(E){function p(_,I,j,F,B){if(!(_[I]instanceof E)){var M=E.name||m,V=be(_[I]);return new l("Invalid "+F+" `"+B+"` of type "+("`"+V+"` supplied to `"+j+"`, expected ")+("instance of `"+M+"`."))}return null}return S(p)}function N(E){if(!Array.isArray(E))return process.env.NODE_ENV!=="production"&&(arguments.length>1?s("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):s("Invalid argument supplied to oneOf, expected an array.")),i;function p(_,I,j,F,B){for(var M=_[I],V=0;V<E.length;V++)if(y(M,E[V]))return null;var Y=JSON.stringify(E,function(le,R){var he=ne(R);return he==="symbol"?String(R):R});return new l("Invalid "+F+" `"+B+"` of value `"+String(M)+"` "+("supplied to `"+j+"`, expected one of "+Y+"."))}return S(p)}function W(E){function p(_,I,j,F,B){if(typeof E!="function")return new l("Property `"+B+"` of component `"+j+"` has invalid PropType notation inside objectOf.");var M=_[I],V=D(M);if(V!=="object")return new l("Invalid "+F+" `"+B+"` of type "+("`"+V+"` supplied to `"+j+"`, expected an object."));for(var Y in M)if(n(M,Y)){var z=E(M,Y,j,F,B+"."+Y,r);if(z instanceof Error)return z}return null}return S(p)}function q(E){if(!Array.isArray(E))return process.env.NODE_ENV!=="production"&&s("Invalid argument supplied to oneOfType, expected an instance of array."),i;for(var p=0;p<E.length;p++){var _=E[p];if(typeof _!="function")return s("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+ce(_)+" at index "+p+"."),i}function I(j,F,B,M,V){for(var Y=[],z=0;z<E.length;z++){var le=E[z],R=le(j,F,B,M,V,r);if(R==null)return null;R.data&&n(R.data,"expectedType")&&Y.push(R.data.expectedType)}var he=Y.length>0?", expected one of type ["+Y.join(", ")+"]":"";return new l("Invalid "+M+" `"+V+"` supplied to "+("`"+B+"`"+he+"."))}return S(I)}function fe(){function E(p,_,I,j,F){return w(p[_])?null:new l("Invalid "+j+" `"+F+"` supplied to "+("`"+I+"`, expected a ReactNode."))}return S(E)}function Z(E,p,_,I,j){return new l((E||"React class")+": "+p+" type `"+_+"."+I+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+j+"`.")}function c(E){function p(_,I,j,F,B){var M=_[I],V=D(M);if(V!=="object")return new l("Invalid "+F+" `"+B+"` of type `"+V+"` "+("supplied to `"+j+"`, expected `object`."));for(var Y in E){var z=E[Y];if(typeof z!="function")return Z(j,F,B,Y,ne(z));var le=z(M,Y,j,F,B+"."+Y,r);if(le)return le}return null}return S(p)}function $(E){function p(_,I,j,F,B){var M=_[I],V=D(M);if(V!=="object")return new l("Invalid "+F+" `"+B+"` of type `"+V+"` "+("supplied to `"+j+"`, expected `object`."));var Y=t({},_[I],E);for(var z in Y){var le=E[z];if(n(E,z)&&typeof le!="function")return Z(j,F,B,z,ne(le));if(!le)return new l("Invalid "+F+" `"+B+"` key `"+z+"` supplied to `"+j+"`.\nBad object: "+JSON.stringify(_[I],null," ")+`
73
+ Valid keys: `+JSON.stringify(Object.keys(E),null," "));var R=le(M,z,j,F,B+"."+z,r);if(R)return R}return null}return S(p)}function w(E){switch(typeof E){case"number":case"string":case"undefined":return!0;case"boolean":return!E;case"object":if(Array.isArray(E))return E.every(w);if(E===null||a(E))return!0;var p=h(E);if(p){var _=p.call(E),I;if(p!==E.entries){for(;!(I=_.next()).done;)if(!w(I.value))return!1}else for(;!(I=_.next()).done;){var j=I.value;if(j&&!w(j[1]))return!1}}else return!1;return!0;default:return!1}}function L(E,p){return E==="symbol"?!0:p?p["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&p instanceof Symbol:!1}function D(E){var p=typeof E;return Array.isArray(E)?"array":E instanceof RegExp?"object":L(p,E)?"symbol":p}function ne(E){if(typeof E>"u"||E===null)return""+E;var p=D(E);if(p==="object"){if(E instanceof Date)return"date";if(E instanceof RegExp)return"regexp"}return p}function ce(E){var p=ne(E);switch(p){case"array":case"object":return"an "+p;case"boolean":case"date":case"regexp":return"a "+p;default:return p}}function be(E){return!E.constructor||!E.constructor.name?m:E.constructor.name}return b.checkPropTypes=o,b.resetWarningCache=o.resetWarningCache,b.PropTypes=b,b},Pt}var It,Sr;function Zn(){if(Sr)return It;Sr=1;var e=Yt();function t(){}function r(){}return r.resetWarningCache=t,It=function(){function n(i,a,u,f,d,h){if(h!==e){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}}n.isRequired=n;function o(){return n}var s={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:o,element:n,elementType:n,instanceOf:o,node:n,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:t};return s.PropTypes=s,s},It}var Cr;function eo(){if(Cr)return et.exports;if(Cr=1,process.env.NODE_ENV!=="production"){var e=qr(),t=!0;et.exports=Qn()(e.isElement,t)}else et.exports=Zn()();return et.exports}var to=eo();const G=Wr(to);function Jr(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(r=Jr(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function Xr(){for(var e,t,r=0,n="",o=arguments.length;r<o;r++)(e=arguments[r])&&(t=Jr(e))&&(n&&(n+=" "),n+=t);return n}function ro(e,t,r=void 0){const n={};for(const o in e){const s=e[o];let i="",a=!0;for(let u=0;u<s.length;u+=1){const f=s[u];f&&(i+=(a===!0?"":" ")+t(f),a=!1,r&&r[f]&&(i+=" "+r[f]))}n[o]=i}return n}function at(e,...t){const r=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${e}; visit ${r} for the full message.`}function Gt(e){if(typeof e!="string")throw new Error(process.env.NODE_ENV!=="production"?"MUI: `capitalize(string)` expects a string argument.":at(7));return e.charAt(0).toUpperCase()+e.slice(1)}var rt={exports:{}},ee={};/**
74
+ * @license React
75
+ * react-is.production.js
76
+ *
77
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
78
+ *
79
+ * This source code is licensed under the MIT license found in the
80
+ * LICENSE file in the root directory of this source tree.
81
+ */var xr;function no(){if(xr)return ee;xr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),i=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.for("react.view_transition"),b=Symbol.for("react.client.reference");function y(l){if(typeof l=="object"&&l!==null){var S=l.$$typeof;switch(S){case e:switch(l=l.type,l){case r:case o:case n:case u:case f:case m:return l;default:switch(l=l&&l.$$typeof,l){case i:case a:case h:case d:return l;case s:return l;default:return S}}case t:return S}}}return ee.ContextConsumer=s,ee.ContextProvider=i,ee.Element=e,ee.ForwardRef=a,ee.Fragment=r,ee.Lazy=h,ee.Memo=d,ee.Portal=t,ee.Profiler=o,ee.StrictMode=n,ee.Suspense=u,ee.SuspenseList=f,ee.isContextConsumer=function(l){return y(l)===s},ee.isContextProvider=function(l){return y(l)===i},ee.isElement=function(l){return typeof l=="object"&&l!==null&&l.$$typeof===e},ee.isForwardRef=function(l){return y(l)===a},ee.isFragment=function(l){return y(l)===r},ee.isLazy=function(l){return y(l)===h},ee.isMemo=function(l){return y(l)===d},ee.isPortal=function(l){return y(l)===t},ee.isProfiler=function(l){return y(l)===o},ee.isStrictMode=function(l){return y(l)===n},ee.isSuspense=function(l){return y(l)===u},ee.isSuspenseList=function(l){return y(l)===f},ee.isValidElementType=function(l){return typeof l=="string"||typeof l=="function"||l===r||l===o||l===n||l===u||l===f||typeof l=="object"&&l!==null&&(l.$$typeof===h||l.$$typeof===d||l.$$typeof===i||l.$$typeof===s||l.$$typeof===a||l.$$typeof===b||l.getModuleId!==void 0)},ee.typeOf=y,ee}var te={};/**
82
+ * @license React
83
+ * react-is.development.js
84
+ *
85
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
86
+ *
87
+ * This source code is licensed under the MIT license found in the
88
+ * LICENSE file in the root directory of this source tree.
89
+ */var Er;function oo(){return Er||(Er=1,process.env.NODE_ENV!=="production"&&function(){function e(l){if(typeof l=="object"&&l!==null){var S=l.$$typeof;switch(S){case t:switch(l=l.type,l){case n:case s:case o:case f:case d:case b:return l;default:switch(l=l&&l.$$typeof,l){case a:case u:case m:case h:return l;case i:return l;default:return S}}case r:return S}}}var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),a=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),b=Symbol.for("react.view_transition"),y=Symbol.for("react.client.reference");te.ContextConsumer=i,te.ContextProvider=a,te.Element=t,te.ForwardRef=u,te.Fragment=n,te.Lazy=m,te.Memo=h,te.Portal=r,te.Profiler=s,te.StrictMode=o,te.Suspense=f,te.SuspenseList=d,te.isContextConsumer=function(l){return e(l)===i},te.isContextProvider=function(l){return e(l)===a},te.isElement=function(l){return typeof l=="object"&&l!==null&&l.$$typeof===t},te.isForwardRef=function(l){return e(l)===u},te.isFragment=function(l){return e(l)===n},te.isLazy=function(l){return e(l)===m},te.isMemo=function(l){return e(l)===h},te.isPortal=function(l){return e(l)===r},te.isProfiler=function(l){return e(l)===s},te.isStrictMode=function(l){return e(l)===o},te.isSuspense=function(l){return e(l)===f},te.isSuspenseList=function(l){return e(l)===d},te.isValidElementType=function(l){return typeof l=="string"||typeof l=="function"||l===n||l===s||l===o||l===f||l===d||typeof l=="object"&&l!==null&&(l.$$typeof===m||l.$$typeof===h||l.$$typeof===a||l.$$typeof===i||l.$$typeof===u||l.$$typeof===y||l.getModuleId!==void 0)},te.typeOf=e}()),te}var Tr;function so(){return Tr||(Tr=1,process.env.NODE_ENV==="production"?rt.exports=no():rt.exports=oo()),rt.exports}var De=so();function _e(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Qr(e){if(ye.isValidElement(e)||De.isValidElementType(e)||!_e(e))return e;const t={};return Object.keys(e).forEach(r=>{t[r]=Qr(e[r])}),t}function $e(e,t,r={clone:!0}){const n=r.clone?{...e}:e;return _e(e)&&_e(t)&&Object.keys(t).forEach(o=>{ye.isValidElement(t[o])||De.isValidElementType(t[o])?n[o]=t[o]:_e(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&_e(e[o])?n[o]=$e(e[o],t[o],r):r.clone?n[o]=_e(t[o])?Qr(t[o]):t[o]:n[o]=t[o]}),n}function Ye(e,t){return t?$e(e,t,{clone:!1}):e}const Oe=process.env.NODE_ENV!=="production"?G.oneOfType([G.number,G.string,G.object,G.array]):{};function Or(e,t){if(!e.containerQueries)return t;const r=Object.keys(t).filter(n=>n.startsWith("@container")).sort((n,o)=>{var i,a;const s=/min-width:\s*([0-9.]+)/;return+(((i=n.match(s))==null?void 0:i[1])||0)-+(((a=o.match(s))==null?void 0:a[1])||0)});return r.length?r.reduce((n,o)=>{const s=t[o];return delete n[o],n[o]=s,n},{...t}):t}function io(e,t){return t==="@"||t.startsWith("@")&&(e.some(r=>t.startsWith(`@${r}`))||!!t.match(/^@\d/))}function ao(e,t){const r=t.match(/^@([^/]+)?\/?(.+)?$/);if(!r){if(process.env.NODE_ENV!=="production")throw new Error(process.env.NODE_ENV!=="production"?`MUI: The provided shorthand ${`(${t})`} is invalid. The format should be \`@<breakpoint | number>\` or \`@<breakpoint | number>/<container>\`.
90
+ For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.`:at(18,`(${t})`));return null}const[,n,o]=r,s=Number.isNaN(+n)?n||0:+n;return e.containerQueries(o).up(s)}function co(e){const t=(s,i)=>s.replace("@media",i?`@container ${i}`:"@container");function r(s,i){s.up=(...a)=>t(e.breakpoints.up(...a),i),s.down=(...a)=>t(e.breakpoints.down(...a),i),s.between=(...a)=>t(e.breakpoints.between(...a),i),s.only=(...a)=>t(e.breakpoints.only(...a),i),s.not=(...a)=>{const u=t(e.breakpoints.not(...a),i);return u.includes("not all and")?u.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):u}}const n={},o=s=>(r(n,s),n);return r(o),{...e,containerQueries:o}}const ft={xs:0,sm:600,md:900,lg:1200,xl:1536},wr={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${ft[e]}px)`},lo={containerQueries:e=>({up:t=>{let r=typeof t=="number"?t:ft[t]||t;return typeof r=="number"&&(r=`${r}px`),e?`@container ${e} (min-width:${r})`:`@container (min-width:${r})`}})};function Se(e,t,r){const n=e.theme||{};if(Array.isArray(t)){const s=n.breakpoints||wr;return t.reduce((i,a,u)=>(i[s.up(s.keys[u])]=r(t[u]),i),{})}if(typeof t=="object"){const s=n.breakpoints||wr;return Object.keys(t).reduce((i,a)=>{if(io(s.keys,a)){const u=ao(n.containerQueries?n:lo,a);u&&(i[u]=r(t[a],a))}else if(Object.keys(s.values||ft).includes(a)){const u=s.up(a);i[u]=r(t[a],a)}else{const u=a;i[u]=t[u]}return i},{})}return r(t)}function uo(e={}){var r;return((r=e.keys)==null?void 0:r.reduce((n,o)=>{const s=e.up(o);return n[s]={},n},{}))||{}}function _r(e,t){return e.reduce((r,n)=>{const o=r[n];return(!o||Object.keys(o).length===0)&&delete r[n],r},t)}function dt(e,t,r=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&r){const n=`vars.${t}`.split(".").reduce((o,s)=>o&&o[s]?o[s]:null,e);if(n!=null)return n}return t.split(".").reduce((n,o)=>n&&n[o]!=null?n[o]:null,e)}function ct(e,t,r,n=r){let o;return typeof e=="function"?o=e(r):Array.isArray(e)?o=e[r]||n:o=dt(e,r)||n,t&&(o=t(o,n,e)),o}function ae(e){const{prop:t,cssProperty:r=e.prop,themeKey:n,transform:o}=e,s=i=>{if(i[t]==null)return null;const a=i[t],u=i.theme,f=dt(u,n)||{};return Se(i,a,h=>{let m=ct(f,o,h);return h===m&&typeof h=="string"&&(m=ct(f,o,`${t}${h==="default"?"":Gt(h)}`,h)),r===!1?m:{[r]:m}})};return s.propTypes=process.env.NODE_ENV!=="production"?{[t]:Oe}:{},s.filterProps=[t],s}function fo(e){const t={};return r=>(t[r]===void 0&&(t[r]=e(r)),t[r])}const po={m:"margin",p:"padding"},mo={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Rr={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},ho=fo(e=>{if(e.length>2)if(Rr[e])e=Rr[e];else return[e];const[t,r]=e.split(""),n=po[t],o=mo[r]||"";return Array.isArray(o)?o.map(s=>n+s):[n+o]}),pt=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],mt=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],go=[...pt,...mt];function qe(e,t,r,n){const o=dt(e,t,!0)??r;return typeof o=="number"||typeof o=="string"?s=>typeof s=="string"?s:(process.env.NODE_ENV!=="production"&&typeof s!="number"&&console.error(`MUI: Expected ${n} argument to be a number or a string, got ${s}.`),typeof o=="string"?o.startsWith("var(")&&s===0?0:o.startsWith("var(")&&s===1?o:`calc(${s} * ${o})`:o*s):Array.isArray(o)?s=>{if(typeof s=="string")return s;const i=Math.abs(s);process.env.NODE_ENV!=="production"&&(Number.isInteger(i)?i>o.length-1&&console.error([`MUI: The value provided (${i}) overflows.`,`The supported values are: ${JSON.stringify(o)}.`,`${i} > ${o.length-1}, you need to add the missing values.`].join(`
91
+ `)):console.error([`MUI: The \`theme.${t}\` array type cannot be combined with non integer values.You should either use an integer value that can be used as index, or define the \`theme.${t}\` as a number.`].join(`
92
+ `)));const a=o[i];return s>=0?a:typeof a=="number"?-a:typeof a=="string"&&a.startsWith("var(")?`calc(-1 * ${a})`:`-${a}`}:typeof o=="function"?o:(process.env.NODE_ENV!=="production"&&console.error([`MUI: The \`theme.${t}\` value (${o}) is invalid.`,"It should be a number, an array or a function."].join(`
93
+ `)),()=>{})}function Ht(e){return qe(e,"spacing",8,"spacing")}function Ke(e,t){return typeof t=="string"||t==null?t:e(t)}function yo(e,t){return r=>e.reduce((n,o)=>(n[o]=Ke(t,r),n),{})}function bo(e,t,r,n){if(!t.includes(r))return null;const o=ho(r),s=yo(o,n),i=e[r];return Se(e,i,s)}function Zr(e,t){const r=Ht(e.theme);return Object.keys(e).map(n=>bo(e,t,n,r)).reduce(Ye,{})}function oe(e){return Zr(e,pt)}oe.propTypes=process.env.NODE_ENV!=="production"?pt.reduce((e,t)=>(e[t]=Oe,e),{}):{};oe.filterProps=pt;function se(e){return Zr(e,mt)}se.propTypes=process.env.NODE_ENV!=="production"?mt.reduce((e,t)=>(e[t]=Oe,e),{}):{};se.filterProps=mt;process.env.NODE_ENV!=="production"&&go.reduce((e,t)=>(e[t]=Oe,e),{});function ht(...e){const t=e.reduce((n,o)=>(o.filterProps.forEach(s=>{n[s]=o}),n),{}),r=n=>Object.keys(n).reduce((o,s)=>t[s]?Ye(o,t[s](n)):o,{});return r.propTypes=process.env.NODE_ENV!=="production"?e.reduce((n,o)=>Object.assign(n,o.propTypes),{}):{},r.filterProps=e.reduce((n,o)=>n.concat(o.filterProps),[]),r}function de(e){return typeof e!="number"?e:`${e}px solid`}function me(e,t){return ae({prop:e,themeKey:"borders",transform:t})}const vo=me("border",de),So=me("borderTop",de),Co=me("borderRight",de),xo=me("borderBottom",de),Eo=me("borderLeft",de),To=me("borderColor"),Oo=me("borderTopColor"),wo=me("borderRightColor"),_o=me("borderBottomColor"),Ro=me("borderLeftColor"),$o=me("outline",de),Ao=me("outlineColor"),gt=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=qe(e.theme,"shape.borderRadius",4,"borderRadius"),r=n=>({borderRadius:Ke(t,n)});return Se(e,e.borderRadius,r)}return null};gt.propTypes=process.env.NODE_ENV!=="production"?{borderRadius:Oe}:{};gt.filterProps=["borderRadius"];ht(vo,So,Co,xo,Eo,To,Oo,wo,_o,Ro,gt,$o,Ao);const yt=e=>{if(e.gap!==void 0&&e.gap!==null){const t=qe(e.theme,"spacing",8,"gap"),r=n=>({gap:Ke(t,n)});return Se(e,e.gap,r)}return null};yt.propTypes=process.env.NODE_ENV!=="production"?{gap:Oe}:{};yt.filterProps=["gap"];const bt=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=qe(e.theme,"spacing",8,"columnGap"),r=n=>({columnGap:Ke(t,n)});return Se(e,e.columnGap,r)}return null};bt.propTypes=process.env.NODE_ENV!=="production"?{columnGap:Oe}:{};bt.filterProps=["columnGap"];const vt=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=qe(e.theme,"spacing",8,"rowGap"),r=n=>({rowGap:Ke(t,n)});return Se(e,e.rowGap,r)}return null};vt.propTypes=process.env.NODE_ENV!=="production"?{rowGap:Oe}:{};vt.filterProps=["rowGap"];const jo=ae({prop:"gridColumn"}),Po=ae({prop:"gridRow"}),Io=ae({prop:"gridAutoFlow"}),ko=ae({prop:"gridAutoColumns"}),Mo=ae({prop:"gridAutoRows"}),No=ae({prop:"gridTemplateColumns"}),Lo=ae({prop:"gridTemplateRows"}),Do=ae({prop:"gridTemplateAreas"}),Bo=ae({prop:"gridArea"});ht(yt,bt,vt,jo,Po,Io,ko,Mo,No,Lo,Do,Bo);function Le(e,t){return t==="grey"?t:e}const Vo=ae({prop:"color",themeKey:"palette",transform:Le}),Fo=ae({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Le}),Uo=ae({prop:"backgroundColor",themeKey:"palette",transform:Le});ht(Vo,Fo,Uo);function ue(e){return e<=1&&e!==0?`${e*100}%`:e}const zo=ae({prop:"width",transform:ue}),qt=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=r=>{var o,s,i,a,u;const n=((i=(s=(o=e.theme)==null?void 0:o.breakpoints)==null?void 0:s.values)==null?void 0:i[r])||ft[r];return n?((u=(a=e.theme)==null?void 0:a.breakpoints)==null?void 0:u.unit)!=="px"?{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:ue(r)}};return Se(e,e.maxWidth,t)}return null};qt.filterProps=["maxWidth"];const Wo=ae({prop:"minWidth",transform:ue}),Yo=ae({prop:"height",transform:ue}),Go=ae({prop:"maxHeight",transform:ue}),Ho=ae({prop:"minHeight",transform:ue});ae({prop:"size",cssProperty:"width",transform:ue});ae({prop:"size",cssProperty:"height",transform:ue});const qo=ae({prop:"boxSizing"});ht(zo,qt,Wo,Yo,Go,Ho,qo);const St={border:{themeKey:"borders",transform:de},borderTop:{themeKey:"borders",transform:de},borderRight:{themeKey:"borders",transform:de},borderBottom:{themeKey:"borders",transform:de},borderLeft:{themeKey:"borders",transform:de},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:de},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:gt},color:{themeKey:"palette",transform:Le},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Le},backgroundColor:{themeKey:"palette",transform:Le},p:{style:se},pt:{style:se},pr:{style:se},pb:{style:se},pl:{style:se},px:{style:se},py:{style:se},padding:{style:se},paddingTop:{style:se},paddingRight:{style:se},paddingBottom:{style:se},paddingLeft:{style:se},paddingX:{style:se},paddingY:{style:se},paddingInline:{style:se},paddingInlineStart:{style:se},paddingInlineEnd:{style:se},paddingBlock:{style:se},paddingBlockStart:{style:se},paddingBlockEnd:{style:se},m:{style:oe},mt:{style:oe},mr:{style:oe},mb:{style:oe},ml:{style:oe},mx:{style:oe},my:{style:oe},margin:{style:oe},marginTop:{style:oe},marginRight:{style:oe},marginBottom:{style:oe},marginLeft:{style:oe},marginX:{style:oe},marginY:{style:oe},marginInline:{style:oe},marginInlineStart:{style:oe},marginInlineEnd:{style:oe},marginBlock:{style:oe},marginBlockStart:{style:oe},marginBlockEnd:{style:oe},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:yt},rowGap:{style:vt},columnGap:{style:bt},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:ue},maxWidth:{style:qt},minWidth:{transform:ue},height:{transform:ue},maxHeight:{transform:ue},minHeight:{transform:ue},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function Ko(...e){const t=e.reduce((n,o)=>n.concat(Object.keys(o)),[]),r=new Set(t);return e.every(n=>r.size===Object.keys(n).length)}function Jo(e,t){return typeof e=="function"?e(t):e}function Xo(){function e(r,n,o,s){const i={[r]:n,theme:o},a=s[r];if(!a)return{[r]:n};const{cssProperty:u=r,themeKey:f,transform:d,style:h}=a;if(n==null)return null;if(f==="typography"&&n==="inherit")return{[r]:n};const m=dt(o,f)||{};return h?h(i):Se(i,n,y=>{let l=ct(m,d,y);return y===l&&typeof y=="string"&&(l=ct(m,d,`${r}${y==="default"?"":Gt(y)}`,y)),u===!1?l:{[u]:l}})}function t(r){const{sx:n,theme:o={},nested:s}=r||{};if(!n)return null;const i=o.unstable_sxConfig??St;function a(u){let f=u;if(typeof u=="function")f=u(o);else if(typeof u!="object")return u;if(!f)return null;const d=uo(o.breakpoints),h=Object.keys(d);let m=d;return Object.keys(f).forEach(b=>{const y=Jo(f[b],o);if(y!=null)if(typeof y=="object")if(i[b])m=Ye(m,e(b,y,o,i));else{const l=Se({theme:o},y,S=>({[b]:S}));Ko(l,y)?m[b]=t({sx:y,theme:o,nested:!0}):m=Ye(m,l)}else m=Ye(m,e(b,y,o,i))}),!s&&o.modularCssLayers?{"@layer sx":Or(o,_r(h,m))}:Or(o,_r(h,m))}return Array.isArray(n)?n.map(a):a(n)}return t}const Be=Xo();Be.filterProps=["sx"];function Qo(e){for(var t=0,r,n=0,o=e.length;o>=4;++n,o-=4)r=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Zo={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function es(e){var t=Object.create(null);return function(r){return t[r]===void 0&&(t[r]=e(r)),t[r]}}var ts=/[A-Z]|^ms/g,rs=/_EMO_([^_]+?)_([^]*?)_EMO_/g,en=function(t){return t.charCodeAt(1)===45},$r=function(t){return t!=null&&typeof t!="boolean"},kt=es(function(e){return en(e)?e:e.replace(ts,"-$&").toLowerCase()}),Ar=function(t,r){switch(t){case"animation":case"animationName":if(typeof r=="string")return r.replace(rs,function(n,o,s){return Ee={name:o,styles:s,next:Ee},o})}return Zo[t]!==1&&!en(t)&&typeof r=="number"&&r!==0?r+"px":r};function lt(e,t,r){if(r==null)return"";var n=r;if(n.__emotion_styles!==void 0)return n;switch(typeof r){case"boolean":return"";case"object":{var o=r;if(o.anim===1)return Ee={name:o.name,styles:o.styles,next:Ee},o.name;var s=r;if(s.styles!==void 0){var i=s.next;if(i!==void 0)for(;i!==void 0;)Ee={name:i.name,styles:i.styles,next:Ee},i=i.next;var a=s.styles+";";return a}return ns(e,t,r)}}var u=r;return u}function ns(e,t,r){var n="";if(Array.isArray(r))for(var o=0;o<r.length;o++)n+=lt(e,t,r[o])+";";else for(var s in r){var i=r[s];if(typeof i!="object"){var a=i;$r(a)&&(n+=kt(s)+":"+Ar(s,a)+";")}else if(Array.isArray(i)&&typeof i[0]=="string"&&t==null)for(var u=0;u<i.length;u++)$r(i[u])&&(n+=kt(s)+":"+Ar(s,i[u])+";");else{var f=lt(e,t,i);switch(s){case"animation":case"animationName":{n+=kt(s)+":"+f+";";break}default:n+=s+"{"+f+"}"}}}return n}var jr=/label:\s*([^\s;{]+)\s*(;|$)/g,Ee;function os(e,t,r){if(e.length===1&&typeof e[0]=="object"&&e[0]!==null&&e[0].styles!==void 0)return e[0];var n=!0,o="";Ee=void 0;var s=e[0];if(s==null||s.raw===void 0)n=!1,o+=lt(r,t,s);else{var i=s;o+=i[0]}for(var a=1;a<e.length;a++)if(o+=lt(r,t,e[a]),n){var u=s;o+=u[a]}jr.lastIndex=0;for(var f="",d;(d=jr.exec(o))!==null;)f+="-"+d[1];var h=Qo(o)+f;return{name:h,styles:o,next:Ee}}/**
94
+ * @mui/styled-engine v7.3.3
95
+ *
96
+ * @license MIT
97
+ * This source code is licensed under the MIT license found in the
98
+ * LICENSE file in the root directory of this source tree.
99
+ */function ss(e,t){const r=bn(e,t);return process.env.NODE_ENV!=="production"?(...n)=>{const o=typeof e=="string"?`"${e}"`:"component";return n.length===0?console.error([`MUI: Seems like you called \`styled(${o})()\` without a \`style\` argument.`,'You must provide a `styles` argument: `styled("div")(styleYouForgotToPass)`.'].join(`
100
+ `)):n.some(s=>s===void 0)&&console.error(`MUI: the styled(${o})(...args) API requires all its args to be defined.`),r(...n)}:r}function is(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}const Pr=[];function Ae(e){return Pr[0]=e,os(Pr)}const as=e=>{const t=Object.keys(e).map(r=>({key:r,val:e[r]}))||[];return t.sort((r,n)=>r.val-n.val),t.reduce((r,n)=>({...r,[n.key]:n.val}),{})};function cs(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:n=5,...o}=e,s=as(t),i=Object.keys(s);function a(m){return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${r})`}function u(m){return`@media (max-width:${(typeof t[m]=="number"?t[m]:m)-n/100}${r})`}function f(m,b){const y=i.indexOf(b);return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${r}) and (max-width:${(y!==-1&&typeof t[i[y]]=="number"?t[i[y]]:b)-n/100}${r})`}function d(m){return i.indexOf(m)+1<i.length?f(m,i[i.indexOf(m)+1]):a(m)}function h(m){const b=i.indexOf(m);return b===0?a(i[1]):b===i.length-1?u(i[b]):f(m,i[i.indexOf(m)+1]).replace("@media","@media not all and")}return{keys:i,values:s,up:a,down:u,between:f,only:d,not:h,unit:r,...o}}const ls={borderRadius:4};function tn(e=8,t=Ht({spacing:e})){if(e.mui)return e;const r=(...n)=>(process.env.NODE_ENV!=="production"&&(n.length<=4||console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${n.length}`)),(n.length===0?[1]:n).map(s=>{const i=t(s);return typeof i=="number"?`${i}px`:i}).join(" "));return r.mui=!0,r}function us(e,t){var n;const r=this;if(r.vars){if(!((n=r.colorSchemes)!=null&&n[e])||typeof r.getColorSchemeSelector!="function")return{};let o=r.getColorSchemeSelector(e);return o==="&"?t:((o.includes("data-")||o.includes("."))&&(o=`*:where(${o.replace(/\s*&$/,"")}) &`),{[o]:t})}return r.palette.mode===e?t:{}}function rn(e={},...t){const{breakpoints:r={},palette:n={},spacing:o,shape:s={},...i}=e,a=cs(r),u=tn(o);let f=$e({breakpoints:a,direction:"ltr",components:{},palette:{mode:"light",...n},spacing:u,shape:{...ls,...s}},i);return f=co(f),f.applyStyles=us,f=t.reduce((d,h)=>$e(d,h),f),f.unstable_sxConfig={...St,...i==null?void 0:i.unstable_sxConfig},f.unstable_sx=function(h){return Be({sx:h,theme:this})},f}function nn(e,t=""){return e.displayName||e.name||t}function Ir(e,t,r){const n=nn(t);return e.displayName||(n!==""?`${r}(${n})`:r)}function fs(e){if(e!=null){if(typeof e=="string")return e;if(typeof e=="function")return nn(e,"Component");if(typeof e=="object")switch(e.$$typeof){case De.ForwardRef:return Ir(e,e.render,"ForwardRef");case De.Memo:return Ir(e,e.type,"memo");default:return}}}function on(e){const{variants:t,...r}=e,n={variants:t,style:Ae(r),isProcessed:!0};return n.style===r||t&&t.forEach(o=>{typeof o.style!="function"&&(o.style=Ae(o.style))}),n}const ds=rn();function Mt(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}function Re(e,t){return t&&e&&typeof e=="object"&&e.styles&&!e.styles.startsWith("@layer")&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}function ps(e){return e?(t,r)=>r[e]:null}function ms(e,t,r){e.theme=bs(e.theme)?r:e.theme[t]||e.theme}function ot(e,t,r){const n=typeof t=="function"?t(e):t;if(Array.isArray(n))return n.flatMap(o=>ot(e,o,r));if(Array.isArray(n==null?void 0:n.variants)){let o;if(n.isProcessed)o=r?Re(n.style,r):n.style;else{const{variants:s,...i}=n;o=r?Re(Ae(i),r):i}return sn(e,n.variants,[o],r)}return n!=null&&n.isProcessed?r?Re(Ae(n.style),r):n.style:r?Re(Ae(n),r):n}function sn(e,t,r=[],n=void 0){var s;let o;e:for(let i=0;i<t.length;i+=1){const a=t[i];if(typeof a.props=="function"){if(o??(o={...e,...e.ownerState,ownerState:e.ownerState}),!a.props(o))continue}else for(const u in a.props)if(e[u]!==a.props[u]&&((s=e.ownerState)==null?void 0:s[u])!==a.props[u])continue e;typeof a.style=="function"?(o??(o={...e,...e.ownerState,ownerState:e.ownerState}),r.push(n?Re(Ae(a.style(o)),n):a.style(o))):r.push(n?Re(Ae(a.style),n):a.style)}return r}function hs(e={}){const{themeId:t,defaultTheme:r=ds,rootShouldForwardProp:n=Mt,slotShouldForwardProp:o=Mt}=e;function s(a){ms(a,t,r)}return(a,u={})=>{is(a,x=>x.filter(N=>N!==Be));const{name:f,slot:d,skipVariantsResolver:h,skipSx:m,overridesResolver:b=ps(an(d)),...y}=u,l=f&&f.startsWith("Mui")||d?"components":"custom",S=h!==void 0?h:d&&d!=="Root"&&d!=="root"||!1,T=m||!1;let k=Mt;d==="Root"||d==="root"?k=n:d?k=o:vs(a)&&(k=void 0);const A=ss(a,{shouldForwardProp:k,label:ys(f,d),...y}),O=x=>{if(x.__emotion_real===x)return x;if(typeof x=="function")return function(W){return ot(W,x,W.theme.modularCssLayers?l:void 0)};if(_e(x)){const N=on(x);return function(q){return N.variants?ot(q,N,q.theme.modularCssLayers?l:void 0):q.theme.modularCssLayers?Re(N.style,l):N.style}}return x},C=(...x)=>{const N=[],W=x.map(O),q=[];if(N.push(s),f&&b&&q.push(function($){var ne,ce;const L=(ce=(ne=$.theme.components)==null?void 0:ne[f])==null?void 0:ce.styleOverrides;if(!L)return null;const D={};for(const be in L)D[be]=ot($,L[be],$.theme.modularCssLayers?"theme":void 0);return b($,D)}),f&&!S&&q.push(function($){var D,ne;const w=$.theme,L=(ne=(D=w==null?void 0:w.components)==null?void 0:D[f])==null?void 0:ne.variants;return L?sn($,L,[],$.theme.modularCssLayers?"theme":void 0):null}),T||q.push(Be),Array.isArray(W[0])){const c=W.shift(),$=new Array(N.length).fill(""),w=new Array(q.length).fill("");let L;L=[...$,...c,...w],L.raw=[...$,...c.raw,...w],N.unshift(L)}const fe=[...N,...W,...q],Z=A(...fe);return a.muiName&&(Z.muiName=a.muiName),process.env.NODE_ENV!=="production"&&(Z.displayName=gs(f,d,a)),Z};return A.withConfig&&(C.withConfig=A.withConfig),C}}function gs(e,t,r){return e?`${e}${Gt(t||"")}`:`Styled(${fs(r)})`}function ys(e,t){let r;return process.env.NODE_ENV!=="production"&&e&&(r=`${e}-${an(t||"Root")}`),r}function bs(e){for(const t in e)return!1;return!0}function vs(e){return typeof e=="string"&&e.charCodeAt(0)>96}function an(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}function Vt(e,t,r=!1){const n={...t};for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const s=o;if(s==="components"||s==="slots")n[s]={...e[s],...n[s]};else if(s==="componentsProps"||s==="slotProps"){const i=e[s],a=t[s];if(!a)n[s]=i||{};else if(!i)n[s]=a;else{n[s]={...a};for(const u in i)if(Object.prototype.hasOwnProperty.call(i,u)){const f=u;n[s][f]=Vt(i[f],a[f],r)}}}else s==="className"&&r&&t.className?n.className=Xr(e==null?void 0:e.className,t==null?void 0:t.className):s==="style"&&r&&t.style?n.style={...e==null?void 0:e.style,...t==null?void 0:t.style}:n[s]===void 0&&(n[s]=e[s])}return n}function Ss(e,t=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,r))}function Kt(e,t=0,r=1){return process.env.NODE_ENV!=="production"&&(e<t||e>r)&&console.error(`MUI: The value provided ${e} is out of range [${t}, ${r}].`),Ss(e,t,r)}function Cs(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let r=e.match(t);return r&&r[0].length===1&&(r=r.map(n=>n+n)),process.env.NODE_ENV!=="production"&&e.length!==e.trim().length&&console.error(`MUI: The color: "${e}" is invalid. Make sure the color input doesn't contain leading/trailing space.`),r?`rgb${r.length===4?"a":""}(${r.map((n,o)=>o<3?parseInt(n,16):Math.round(parseInt(n,16)/255*1e3)/1e3).join(", ")})`:""}function Te(e){if(e.type)return e;if(e.charAt(0)==="#")return Te(Cs(e));const t=e.indexOf("("),r=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(r))throw new Error(process.env.NODE_ENV!=="production"?`MUI: Unsupported \`${e}\` color.
101
+ The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().`:at(9,e));let n=e.substring(t+1,e.length-1),o;if(r==="color"){if(n=n.split(" "),o=n.shift(),n.length===4&&n[3].charAt(0)==="/"&&(n[3]=n[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(o))throw new Error(process.env.NODE_ENV!=="production"?`MUI: unsupported \`${o}\` color space.
102
+ The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.`:at(10,o))}else n=n.split(",");return n=n.map(s=>parseFloat(s)),{type:r,values:n,colorSpace:o}}const xs=e=>{const t=Te(e);return t.values.slice(0,3).map((r,n)=>t.type.includes("hsl")&&n!==0?`${r}%`:r).join(" ")},ze=(e,t)=>{try{return xs(e)}catch{return t&&process.env.NODE_ENV!=="production"&&console.warn(t),e}};function Ct(e){const{type:t,colorSpace:r}=e;let{values:n}=e;return t.includes("rgb")?n=n.map((o,s)=>s<3?parseInt(o,10):o):t.includes("hsl")&&(n[1]=`${n[1]}%`,n[2]=`${n[2]}%`),t.includes("color")?n=`${r} ${n.join(" ")}`:n=`${n.join(", ")}`,`${t}(${n})`}function cn(e){e=Te(e);const{values:t}=e,r=t[0],n=t[1]/100,o=t[2]/100,s=n*Math.min(o,1-o),i=(f,d=(f+r/30)%12)=>o-s*Math.max(Math.min(d-3,9-d,1),-1);let a="rgb";const u=[Math.round(i(0)*255),Math.round(i(8)*255),Math.round(i(4)*255)];return e.type==="hsla"&&(a+="a",u.push(t[3])),Ct({type:a,values:u})}function Ft(e){e=Te(e);let t=e.type==="hsl"||e.type==="hsla"?Te(cn(e)).values:e.values;return t=t.map(r=>(e.type!=="color"&&(r/=255),r<=.03928?r/12.92:((r+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function kr(e,t){const r=Ft(e),n=Ft(t);return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)}function ln(e,t){return e=Te(e),t=Kt(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,Ct(e)}function we(e,t,r){try{return ln(e,t)}catch{return r&&process.env.NODE_ENV!=="production"&&console.warn(r),e}}function xt(e,t){if(e=Te(e),t=Kt(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let r=0;r<3;r+=1)e.values[r]*=1-t;return Ct(e)}function X(e,t,r){try{return xt(e,t)}catch{return r&&process.env.NODE_ENV!=="production"&&console.warn(r),e}}function Et(e,t){if(e=Te(e),t=Kt(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let r=0;r<3;r+=1)e.values[r]+=(255-e.values[r])*t;else if(e.type.includes("color"))for(let r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return Ct(e)}function Q(e,t,r){try{return Et(e,t)}catch{return r&&process.env.NODE_ENV!=="production"&&console.warn(r),e}}function Es(e,t=.15){return Ft(e)>.5?xt(e,t):Et(e,t)}function nt(e,t,r){try{return Es(e,t)}catch{return e}}const Ts=ye.createContext(void 0);process.env.NODE_ENV!=="production"&&(G.node,G.object);function Os(e){const{theme:t,name:r,props:n}=e;if(!t||!t.components||!t.components[r])return n;const o=t.components[r];return o.defaultProps?Vt(o.defaultProps,n,t.components.mergeClassNameAndStyle):!o.styleOverrides&&!o.variants?Vt(o,n,t.components.mergeClassNameAndStyle):n}function ws({props:e,name:t}){const r=ye.useContext(Ts);return Os({props:e,name:t,theme:{components:r}})}const Mr={theme:void 0};function _s(e){let t,r;return function(o){let s=t;return(s===void 0||o.theme!==r)&&(Mr.theme=o.theme,s=on(e(Mr)),t=s,r=o.theme),s}}function Rs(e=""){function t(...n){if(!n.length)return"";const o=n[0];return typeof o=="string"&&!o.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:""}${o}${t(...n.slice(1))})`:`, ${o}`}return(n,...o)=>`var(--${e?`${e}-`:""}${n}${t(...o)})`}const Nr=(e,t,r,n=[])=>{let o=e;t.forEach((s,i)=>{i===t.length-1?Array.isArray(o)?o[Number(s)]=r:o&&typeof o=="object"&&(o[s]=r):o&&typeof o=="object"&&(o[s]||(o[s]=n.includes(s)?[]:{}),o=o[s])})},$s=(e,t,r)=>{function n(o,s=[],i=[]){Object.entries(o).forEach(([a,u])=>{(!r||r&&!r([...s,a]))&&u!=null&&(typeof u=="object"&&Object.keys(u).length>0?n(u,[...s,a],Array.isArray(u)?[...i,a]:i):t([...s,a],u,i))})}n(e)},As=(e,t)=>typeof t=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(n=>e.includes(n))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function Nt(e,t){const{prefix:r,shouldSkipGeneratingVar:n}=t||{},o={},s={},i={};return $s(e,(a,u,f)=>{if((typeof u=="string"||typeof u=="number")&&(!n||!n(a,u))){const d=`--${r?`${r}-`:""}${a.join("-")}`,h=As(a,u);Object.assign(o,{[d]:h}),Nr(s,a,`var(${d})`,f),Nr(i,a,`var(${d}, ${h})`,f)}},a=>a[0]==="vars"),{css:o,vars:s,varsWithDefaults:i}}function js(e,t={}){const{getSelector:r=T,disableCssColorScheme:n,colorSchemeSelector:o,enableContrastVars:s}=t,{colorSchemes:i={},components:a,defaultColorScheme:u="light",...f}=e,{vars:d,css:h,varsWithDefaults:m}=Nt(f,t);let b=m;const y={},{[u]:l,...S}=i;if(Object.entries(S||{}).forEach(([O,C])=>{const{vars:x,css:N,varsWithDefaults:W}=Nt(C,t);b=$e(b,W),y[O]={css:N,vars:x}}),l){const{css:O,vars:C,varsWithDefaults:x}=Nt(l,t);b=$e(b,x),y[u]={css:O,vars:C}}function T(O,C){var N,W;let x=o;if(o==="class"&&(x=".%s"),o==="data"&&(x="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(x=`[${o}="%s"]`),O){if(x==="media")return e.defaultColorScheme===O?":root":{[`@media (prefers-color-scheme: ${((W=(N=i[O])==null?void 0:N.palette)==null?void 0:W.mode)||O})`]:{":root":C}};if(x)return e.defaultColorScheme===O?`:root, ${x.replace("%s",String(O))}`:x.replace("%s",String(O))}return":root"}return{vars:b,generateThemeVars:()=>{let O={...d};return Object.entries(y).forEach(([,{vars:C}])=>{O=$e(O,C)}),O},generateStyleSheets:()=>{var q,fe;const O=[],C=e.defaultColorScheme||"light";function x(Z,c){Object.keys(c).length&&O.push(typeof Z=="string"?{[Z]:{...c}}:Z)}x(r(void 0,{...h}),h);const{[C]:N,...W}=y;if(N){const{css:Z}=N,c=(fe=(q=i[C])==null?void 0:q.palette)==null?void 0:fe.mode,$=!n&&c?{colorScheme:c,...Z}:{...Z};x(r(C,{...$}),$)}return Object.entries(W).forEach(([Z,{css:c}])=>{var L,D;const $=(D=(L=i[Z])==null?void 0:L.palette)==null?void 0:D.mode,w=!n&&$?{colorScheme:$,...c}:{...c};x(r(Z,{...w}),w)}),s&&O.push({":root":{"--__l-threshold":"0.7","--__l":"clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)","--__a":"clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)"}}),O}}}function Ps(e){return function(r){return e==="media"?(process.env.NODE_ENV!=="production"&&r!=="light"&&r!=="dark"&&console.error(`MUI: @media (prefers-color-scheme) supports only 'light' or 'dark', but receive '${r}'.`),`@media (prefers-color-scheme: ${r})`):e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${r}"] &`:e==="class"?`.${r} &`:e==="data"?`[data-${r}] &`:`${e.replace("%s",r)} &`:"&"}}function xe(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function un(e){if(ye.isValidElement(e)||De.isValidElementType(e)||!xe(e))return e;const t={};return Object.keys(e).forEach(r=>{t[r]=un(e[r])}),t}function je(e,t,r={clone:!0}){const n=r.clone?{...e}:e;return xe(e)&&xe(t)&&Object.keys(t).forEach(o=>{ye.isValidElement(t[o])||De.isValidElementType(t[o])?n[o]=t[o]:xe(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&xe(e[o])?n[o]=je(e[o],t[o],r):r.clone?n[o]=xe(t[o])?un(t[o]):t[o]:n[o]=t[o]}),n}const He={black:"#000",white:"#fff"},Is={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},Pe={50:"#f3e5f5",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",700:"#7b1fa2"},Ie={300:"#e57373",400:"#ef5350",500:"#f44336",700:"#d32f2f",800:"#c62828"},Ue={300:"#ffb74d",400:"#ffa726",500:"#ff9800",700:"#f57c00",900:"#e65100"},ke={50:"#e3f2fd",200:"#90caf9",400:"#42a5f5",700:"#1976d2",800:"#1565c0"},Me={300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",700:"#0288d1",900:"#01579b"},Ne={300:"#81c784",400:"#66bb6a",500:"#4caf50",700:"#388e3c",800:"#2e7d32",900:"#1b5e20"};function fn(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:He.white,default:He.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const dn=fn();function pn(){return{text:{primary:He.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:He.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const Ut=pn();function Lr(e,t,r,n){const o=n.light||n,s=n.dark||n*1.5;e[t]||(e.hasOwnProperty(r)?e[t]=e[r]:t==="light"?e.light=Et(e.main,o):t==="dark"&&(e.dark=xt(e.main,s)))}function Dr(e,t,r,n,o){const s=o.light||o,i=o.dark||o*1.5;t[r]||(t.hasOwnProperty(n)?t[r]=t[n]:r==="light"?t.light=`color-mix(in ${e}, ${t.main}, #fff ${(s*100).toFixed(0)}%)`:r==="dark"&&(t.dark=`color-mix(in ${e}, ${t.main}, #000 ${(i*100).toFixed(0)}%)`))}function ks(e="light"){return e==="dark"?{main:ke[200],light:ke[50],dark:ke[400]}:{main:ke[700],light:ke[400],dark:ke[800]}}function Ms(e="light"){return e==="dark"?{main:Pe[200],light:Pe[50],dark:Pe[400]}:{main:Pe[500],light:Pe[300],dark:Pe[700]}}function Ns(e="light"){return e==="dark"?{main:Ie[500],light:Ie[300],dark:Ie[700]}:{main:Ie[700],light:Ie[400],dark:Ie[800]}}function Ls(e="light"){return e==="dark"?{main:Me[400],light:Me[300],dark:Me[700]}:{main:Me[700],light:Me[500],dark:Me[900]}}function Ds(e="light"){return e==="dark"?{main:Ne[400],light:Ne[300],dark:Ne[700]}:{main:Ne[800],light:Ne[500],dark:Ne[900]}}function Bs(e="light"){return e==="dark"?{main:Ue[400],light:Ue[300],dark:Ue[700]}:{main:"#ed6c02",light:Ue[500],dark:Ue[900]}}function Vs(e){return`oklch(from ${e} var(--__l) 0 h / var(--__a))`}function Jt(e){const{mode:t="light",contrastThreshold:r=3,tonalOffset:n=.2,colorSpace:o,...s}=e,i=e.primary||ks(t),a=e.secondary||Ms(t),u=e.error||Ns(t),f=e.info||Ls(t),d=e.success||Ds(t),h=e.warning||Bs(t);function m(S){if(o)return Vs(S);const T=kr(S,Ut.text.primary)>=r?Ut.text.primary:dn.text.primary;if(process.env.NODE_ENV!=="production"){const k=kr(S,T);k<3&&console.error([`MUI: The contrast ratio of ${k}:1 for ${T} on ${S}`,"falls below the WCAG recommended absolute minimum contrast ratio of 3:1.","https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast"].join(`
103
+ `))}return T}const b=({color:S,name:T,mainShade:k=500,lightShade:A=300,darkShade:O=700})=>{if(S={...S},!S.main&&S[k]&&(S.main=S[k]),!S.hasOwnProperty("main"))throw new Error(process.env.NODE_ENV!=="production"?`MUI: The color${T?` (${T})`:""} provided to augmentColor(color) is invalid.
104
+ The color object needs to have a \`main\` property or a \`${k}\` property.`:Ge(11,T?` (${T})`:"",k));if(typeof S.main!="string")throw new Error(process.env.NODE_ENV!=="production"?`MUI: The color${T?` (${T})`:""} provided to augmentColor(color) is invalid.
105
+ \`color.main\` should be a string, but \`${JSON.stringify(S.main)}\` was provided instead.
106
+
107
+ Did you intend to use one of the following approaches?
108
+
109
+ import { green } from "@mui/material/colors";
110
+
111
+ const theme1 = createTheme({ palette: {
112
+ primary: green,
113
+ } });
114
+
115
+ const theme2 = createTheme({ palette: {
116
+ primary: { main: green[500] },
117
+ } });`:Ge(12,T?` (${T})`:"",JSON.stringify(S.main)));return o?(Dr(o,S,"light",A,n),Dr(o,S,"dark",O,n)):(Lr(S,"light",A,n),Lr(S,"dark",O,n)),S.contrastText||(S.contrastText=m(S.main)),S};let y;return t==="light"?y=fn():t==="dark"&&(y=pn()),process.env.NODE_ENV!=="production"&&(y||console.error(`MUI: The palette mode \`${t}\` is not supported.`)),je({common:{...He},mode:t,primary:b({color:i,name:"primary"}),secondary:b({color:a,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:b({color:u,name:"error"}),warning:b({color:h,name:"warning"}),info:b({color:f,name:"info"}),success:b({color:d,name:"success"}),grey:Is,contrastThreshold:r,getContrastText:m,augmentColor:b,tonalOffset:n,...y},s)}function Fs(e){const t={};return Object.entries(e).forEach(n=>{const[o,s]=n;typeof s=="object"&&(t[o]=`${s.fontStyle?`${s.fontStyle} `:""}${s.fontVariant?`${s.fontVariant} `:""}${s.fontWeight?`${s.fontWeight} `:""}${s.fontStretch?`${s.fontStretch} `:""}${s.fontSize||""}${s.lineHeight?`/${s.lineHeight} `:""}${s.fontFamily||""}`)}),t}const Us={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Xt(e,t,r="Mui"){const n=Us[t];return n?`${r}-${n}`:`${Hn.generate(e)}-${t}`}function zs(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function Ws(e){return Math.round(e*1e5)/1e5}const Br={textTransform:"uppercase"},Vr='"Roboto", "Helvetica", "Arial", sans-serif';function Ys(e,t){const{fontFamily:r=Vr,fontSize:n=14,fontWeightLight:o=300,fontWeightRegular:s=400,fontWeightMedium:i=500,fontWeightBold:a=700,htmlFontSize:u=16,allVariants:f,pxToRem:d,...h}=typeof t=="function"?t(e):t;process.env.NODE_ENV!=="production"&&(typeof n!="number"&&console.error("MUI: `fontSize` is required to be a number."),typeof u!="number"&&console.error("MUI: `htmlFontSize` is required to be a number."));const m=n/14,b=d||(S=>`${S/u*m}rem`),y=(S,T,k,A,O)=>({fontFamily:r,fontWeight:S,fontSize:b(T),lineHeight:k,...r===Vr?{letterSpacing:`${Ws(A/T)}em`}:{},...O,...f}),l={h1:y(o,96,1.167,-1.5),h2:y(o,60,1.2,-.5),h3:y(s,48,1.167,0),h4:y(s,34,1.235,.25),h5:y(s,24,1.334,0),h6:y(i,20,1.6,.15),subtitle1:y(s,16,1.75,.15),subtitle2:y(i,14,1.57,.1),body1:y(s,16,1.5,.15),body2:y(s,14,1.43,.15),button:y(i,14,1.75,.4,Br),caption:y(s,12,1.66,.4),overline:y(s,12,2.66,1,Br),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return je({htmlFontSize:u,pxToRem:b,fontFamily:r,fontSize:n,fontWeightLight:o,fontWeightRegular:s,fontWeightMedium:i,fontWeightBold:a,...l},h,{clone:!1})}const Gs=.2,Hs=.14,qs=.12;function re(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${Gs})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${Hs})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${qs})`].join(",")}const Ks=["none",re(0,2,1,-1,0,1,1,0,0,1,3,0),re(0,3,1,-2,0,2,2,0,0,1,5,0),re(0,3,3,-2,0,3,4,0,0,1,8,0),re(0,2,4,-1,0,4,5,0,0,1,10,0),re(0,3,5,-1,0,5,8,0,0,1,14,0),re(0,3,5,-1,0,6,10,0,0,1,18,0),re(0,4,5,-2,0,7,10,1,0,2,16,1),re(0,5,5,-3,0,8,10,1,0,3,14,2),re(0,5,6,-3,0,9,12,1,0,3,16,2),re(0,6,6,-3,0,10,14,1,0,4,18,3),re(0,6,7,-4,0,11,15,1,0,4,20,3),re(0,7,8,-4,0,12,17,2,0,5,22,4),re(0,7,8,-4,0,13,19,2,0,5,24,4),re(0,7,9,-4,0,14,21,2,0,5,26,4),re(0,8,9,-5,0,15,22,2,0,6,28,5),re(0,8,10,-5,0,16,24,2,0,6,30,5),re(0,8,11,-5,0,17,26,2,0,6,32,5),re(0,9,11,-5,0,18,28,2,0,7,34,6),re(0,9,12,-6,0,19,29,2,0,7,36,6),re(0,10,13,-6,0,20,31,3,0,8,38,7),re(0,10,13,-6,0,21,33,3,0,8,40,7),re(0,10,14,-6,0,22,35,3,0,8,42,7),re(0,11,14,-7,0,23,36,3,0,9,44,8),re(0,11,15,-7,0,24,38,3,0,9,46,8)],Js={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Xs={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Fr(e){return`${Math.round(e)}ms`}function Qs(e){if(!e)return 0;const t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function Zs(e){const t={...Js,...e.easing},r={...Xs,...e.duration};return{getAutoHeightDuration:Qs,create:(o=["all"],s={})=>{const{duration:i=r.standard,easing:a=t.easeInOut,delay:u=0,...f}=s;if(process.env.NODE_ENV!=="production"){const d=m=>typeof m=="string",h=m=>!Number.isNaN(parseFloat(m));!d(o)&&!Array.isArray(o)&&console.error('MUI: Argument "props" must be a string or Array.'),!h(i)&&!d(i)&&console.error(`MUI: Argument "duration" must be a number or a string but found ${i}.`),d(a)||console.error('MUI: Argument "easing" must be a string.'),!h(u)&&!d(u)&&console.error('MUI: Argument "delay" must be a number or a string.'),typeof s!="object"&&console.error(["MUI: Secong argument of transition.create must be an object.","Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`"].join(`
118
+ `)),Object.keys(f).length!==0&&console.error(`MUI: Unrecognized argument(s) [${Object.keys(f).join(",")}].`)}return(Array.isArray(o)?o:[o]).map(d=>`${d} ${typeof i=="string"?i:Fr(i)} ${a} ${typeof u=="string"?u:Fr(u)}`).join(",")},...e,easing:t,duration:r}}const ei={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function ti(e){return xe(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function mn(e={}){const t={...e};function r(n){const o=Object.entries(n);for(let s=0;s<o.length;s++){const[i,a]=o[s];!ti(a)||i.startsWith("unstable_")?delete n[i]:xe(a)&&(n[i]={...a},r(n[i]))}}return r(t),`import { unstable_createBreakpoints as createBreakpoints, createTransitions } from '@mui/material/styles';
119
+
120
+ const theme = ${JSON.stringify(t,null,2)};
121
+
122
+ theme.breakpoints = createBreakpoints(theme.breakpoints || {});
123
+ theme.transitions = createTransitions(theme.transitions || {});
124
+
125
+ export default theme;`}function Ur(e){return typeof e=="number"?`${(e*100).toFixed(0)}%`:`calc((${e}) * 100%)`}const ri=e=>{if(!Number.isNaN(+e))return+e;const t=e.match(/\d*\.?\d+/g);if(!t)return 0;let r=0;for(let n=0;n<t.length;n+=1)r+=+t[n];return r};function ni(e){Object.assign(e,{alpha(t,r){const n=this||e;return n.colorSpace?`oklch(from ${t} l c h / ${typeof r=="string"?`calc(${r})`:r})`:n.vars?`rgba(${t.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${typeof r=="string"?`calc(${r})`:r})`:ln(t,ri(r))},lighten(t,r){const n=this||e;return n.colorSpace?`color-mix(in ${n.colorSpace}, ${t}, #fff ${Ur(r)})`:Et(t,r)},darken(t,r){const n=this||e;return n.colorSpace?`color-mix(in ${n.colorSpace}, ${t}, #000 ${Ur(r)})`:xt(t,r)}})}function zt(e={},...t){const{breakpoints:r,mixins:n={},spacing:o,palette:s={},transitions:i={},typography:a={},shape:u,colorSpace:f,...d}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(process.env.NODE_ENV!=="production"?"MUI: `vars` is a private field used for CSS variables support.\nPlease use another name or follow the [docs](https://mui.com/material-ui/customization/css-theme-variables/usage/) to enable the feature.":Ge(20));const h=Jt({...s,colorSpace:f}),m=rn(e);let b=je(m,{mixins:zs(m.breakpoints,n),palette:h,shadows:Ks.slice(),typography:Ys(h,a),transitions:Zs(i),zIndex:{...ei}});if(b=je(b,d),b=t.reduce((y,l)=>je(y,l),b),process.env.NODE_ENV!=="production"){const y=["active","checked","completed","disabled","error","expanded","focused","focusVisible","required","selected"],l=(S,T)=>{let k;for(k in S){const A=S[k];if(y.includes(k)&&Object.keys(A).length>0){if(process.env.NODE_ENV!=="production"){const O=Xt("",k);console.error([`MUI: The \`${T}\` component increases the CSS specificity of the \`${k}\` internal state.`,"You can not override it like this: ",JSON.stringify(S,null,2),"",`Instead, you need to use the '&.${O}' syntax:`,JSON.stringify({root:{[`&.${O}`]:A}},null,2),"","https://mui.com/r/state-classes-guide"].join(`
126
+ `))}S[k]={}}}};Object.keys(b.components).forEach(S=>{const T=b.components[S].styleOverrides;T&&S.startsWith("Mui")&&l(T,S)})}return b.unstable_sxConfig={...St,...d==null?void 0:d.unstable_sxConfig},b.unstable_sx=function(l){return Be({sx:l,theme:this})},b.toRuntimeSource=mn,ni(b),b}function oi(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const si=[...Array(25)].map((e,t)=>{if(t===0)return"none";const r=oi(t);return`linear-gradient(rgba(255 255 255 / ${r}), rgba(255 255 255 / ${r}))`});function hn(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function gn(e){return e==="dark"?si:[]}function ii(e){const{palette:t={mode:"light"},opacity:r,overlays:n,colorSpace:o,...s}=e,i=Jt({...t,colorSpace:o});return{palette:i,opacity:{...hn(i.mode),...r},overlays:n||gn(i.mode),...s}}function ai(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const ci=e=>[...[...Array(25)].map((t,r)=>`--${e?`${e}-`:""}overlays-${r}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],li=e=>(t,r)=>{const n=e.rootSelector||":root",o=e.colorSchemeSelector;let s=o;if(o==="class"&&(s=".%s"),o==="data"&&(s="[data-%s]"),o!=null&&o.startsWith("data-")&&!o.includes("%s")&&(s=`[${o}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const i={};return ci(e.cssVarPrefix).forEach(a=>{i[a]=r[a],delete r[a]}),s==="media"?{[n]:r,"@media (prefers-color-scheme: dark)":{[n]:i}}:s?{[s.replace("%s",t)]:i,[`${n}, ${s.replace("%s",t)}`]:r}:{[n]:{...r,...i}}}if(s&&s!=="media")return`${n}, ${s.replace("%s",String(t))}`}else if(t){if(s==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[n]:r}};if(s)return s.replace("%s",String(t))}return n};function ui(e,t){t.forEach(r=>{e[r]||(e[r]={})})}function v(e,t,r){!e[t]&&r&&(e[t]=r)}function We(e){return typeof e!="string"||!e.startsWith("hsl")?e:cn(e)}function ve(e,t){`${t}Channel`in e||(e[`${t}Channel`]=ze(We(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().
127
+ To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function fi(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const ge=e=>{try{return e()}catch{}},di=(e="mui")=>Rs(e);function Lt(e,t,r,n,o){if(!r)return;r=r===!0?{}:r;const s=o==="dark"?"dark":"light";if(!n){t[o]=ii({...r,palette:{mode:s,...r==null?void 0:r.palette},colorSpace:e});return}const{palette:i,...a}=zt({...n,palette:{mode:s,...r==null?void 0:r.palette},colorSpace:e});return t[o]={...r,palette:i,opacity:{...hn(s),...r==null?void 0:r.opacity},overlays:(r==null?void 0:r.overlays)||gn(s)},a}function pi(e={},...t){const{colorSchemes:r={light:!0},defaultColorScheme:n,disableCssColorScheme:o=!1,cssVarPrefix:s="mui",nativeColor:i=!1,shouldSkipGeneratingVar:a=ai,colorSchemeSelector:u=r.light&&r.dark?"media":void 0,rootSelector:f=":root",...d}=e,h=Object.keys(r)[0],m=n||(r.light&&h!=="light"?"light":h),b=di(s),{[m]:y,light:l,dark:S,...T}=r,k={...T};let A=y;if((m==="dark"&&!("dark"in r)||m==="light"&&!("light"in r))&&(A=!0),!A)throw new Error(process.env.NODE_ENV!=="production"?`MUI: The \`colorSchemes.${m}\` option is either missing or invalid.`:Ge(21,m));let O;i&&(O="oklch");const C=Lt(O,k,A,d,m);l&&!k.light&&Lt(O,k,l,void 0,"light"),S&&!k.dark&&Lt(O,k,S,void 0,"dark");let x={defaultColorScheme:m,...C,cssVarPrefix:s,colorSchemeSelector:u,rootSelector:f,getCssVar:b,colorSchemes:k,font:{...Fs(C.typography),...C.font},spacing:fi(d.spacing)};Object.keys(x.colorSchemes).forEach(Z=>{const c=x.colorSchemes[Z].palette,$=L=>{const D=L.split("-"),ne=D[1],ce=D[2];return b(L,c[ne][ce])};c.mode==="light"&&(v(c.common,"background","#fff"),v(c.common,"onBackground","#000")),c.mode==="dark"&&(v(c.common,"background","#000"),v(c.common,"onBackground","#fff"));function w(L,D,ne){if(O){let ce;return L===we&&(ce=`transparent ${((1-ne)*100).toFixed(0)}%`),L===X&&(ce=`#000 ${(ne*100).toFixed(0)}%`),L===Q&&(ce=`#fff ${(ne*100).toFixed(0)}%`),`color-mix(in ${O}, ${D}, ${ce})`}return L(D,ne)}if(ui(c,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),c.mode==="light"){v(c.Alert,"errorColor",w(X,c.error.light,.6)),v(c.Alert,"infoColor",w(X,c.info.light,.6)),v(c.Alert,"successColor",w(X,c.success.light,.6)),v(c.Alert,"warningColor",w(X,c.warning.light,.6)),v(c.Alert,"errorFilledBg",$("palette-error-main")),v(c.Alert,"infoFilledBg",$("palette-info-main")),v(c.Alert,"successFilledBg",$("palette-success-main")),v(c.Alert,"warningFilledBg",$("palette-warning-main")),v(c.Alert,"errorFilledColor",ge(()=>c.getContrastText(c.error.main))),v(c.Alert,"infoFilledColor",ge(()=>c.getContrastText(c.info.main))),v(c.Alert,"successFilledColor",ge(()=>c.getContrastText(c.success.main))),v(c.Alert,"warningFilledColor",ge(()=>c.getContrastText(c.warning.main))),v(c.Alert,"errorStandardBg",w(Q,c.error.light,.9)),v(c.Alert,"infoStandardBg",w(Q,c.info.light,.9)),v(c.Alert,"successStandardBg",w(Q,c.success.light,.9)),v(c.Alert,"warningStandardBg",w(Q,c.warning.light,.9)),v(c.Alert,"errorIconColor",$("palette-error-main")),v(c.Alert,"infoIconColor",$("palette-info-main")),v(c.Alert,"successIconColor",$("palette-success-main")),v(c.Alert,"warningIconColor",$("palette-warning-main")),v(c.AppBar,"defaultBg",$("palette-grey-100")),v(c.Avatar,"defaultBg",$("palette-grey-400")),v(c.Button,"inheritContainedBg",$("palette-grey-300")),v(c.Button,"inheritContainedHoverBg",$("palette-grey-A100")),v(c.Chip,"defaultBorder",$("palette-grey-400")),v(c.Chip,"defaultAvatarColor",$("palette-grey-700")),v(c.Chip,"defaultIconColor",$("palette-grey-700")),v(c.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),v(c.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),v(c.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),v(c.LinearProgress,"primaryBg",w(Q,c.primary.main,.62)),v(c.LinearProgress,"secondaryBg",w(Q,c.secondary.main,.62)),v(c.LinearProgress,"errorBg",w(Q,c.error.main,.62)),v(c.LinearProgress,"infoBg",w(Q,c.info.main,.62)),v(c.LinearProgress,"successBg",w(Q,c.success.main,.62)),v(c.LinearProgress,"warningBg",w(Q,c.warning.main,.62)),v(c.Skeleton,"bg",O?w(we,c.text.primary,.11):`rgba(${$("palette-text-primaryChannel")} / 0.11)`),v(c.Slider,"primaryTrack",w(Q,c.primary.main,.62)),v(c.Slider,"secondaryTrack",w(Q,c.secondary.main,.62)),v(c.Slider,"errorTrack",w(Q,c.error.main,.62)),v(c.Slider,"infoTrack",w(Q,c.info.main,.62)),v(c.Slider,"successTrack",w(Q,c.success.main,.62)),v(c.Slider,"warningTrack",w(Q,c.warning.main,.62));const L=O?w(X,c.background.default,.6825):nt(c.background.default,.8);v(c.SnackbarContent,"bg",L),v(c.SnackbarContent,"color",ge(()=>O?Ut.text.primary:c.getContrastText(L))),v(c.SpeedDialAction,"fabHoverBg",nt(c.background.paper,.15)),v(c.StepConnector,"border",$("palette-grey-400")),v(c.StepContent,"border",$("palette-grey-400")),v(c.Switch,"defaultColor",$("palette-common-white")),v(c.Switch,"defaultDisabledColor",$("palette-grey-100")),v(c.Switch,"primaryDisabledColor",w(Q,c.primary.main,.62)),v(c.Switch,"secondaryDisabledColor",w(Q,c.secondary.main,.62)),v(c.Switch,"errorDisabledColor",w(Q,c.error.main,.62)),v(c.Switch,"infoDisabledColor",w(Q,c.info.main,.62)),v(c.Switch,"successDisabledColor",w(Q,c.success.main,.62)),v(c.Switch,"warningDisabledColor",w(Q,c.warning.main,.62)),v(c.TableCell,"border",w(Q,w(we,c.divider,1),.88)),v(c.Tooltip,"bg",w(we,c.grey[700],.92))}if(c.mode==="dark"){v(c.Alert,"errorColor",w(Q,c.error.light,.6)),v(c.Alert,"infoColor",w(Q,c.info.light,.6)),v(c.Alert,"successColor",w(Q,c.success.light,.6)),v(c.Alert,"warningColor",w(Q,c.warning.light,.6)),v(c.Alert,"errorFilledBg",$("palette-error-dark")),v(c.Alert,"infoFilledBg",$("palette-info-dark")),v(c.Alert,"successFilledBg",$("palette-success-dark")),v(c.Alert,"warningFilledBg",$("palette-warning-dark")),v(c.Alert,"errorFilledColor",ge(()=>c.getContrastText(c.error.dark))),v(c.Alert,"infoFilledColor",ge(()=>c.getContrastText(c.info.dark))),v(c.Alert,"successFilledColor",ge(()=>c.getContrastText(c.success.dark))),v(c.Alert,"warningFilledColor",ge(()=>c.getContrastText(c.warning.dark))),v(c.Alert,"errorStandardBg",w(X,c.error.light,.9)),v(c.Alert,"infoStandardBg",w(X,c.info.light,.9)),v(c.Alert,"successStandardBg",w(X,c.success.light,.9)),v(c.Alert,"warningStandardBg",w(X,c.warning.light,.9)),v(c.Alert,"errorIconColor",$("palette-error-main")),v(c.Alert,"infoIconColor",$("palette-info-main")),v(c.Alert,"successIconColor",$("palette-success-main")),v(c.Alert,"warningIconColor",$("palette-warning-main")),v(c.AppBar,"defaultBg",$("palette-grey-900")),v(c.AppBar,"darkBg",$("palette-background-paper")),v(c.AppBar,"darkColor",$("palette-text-primary")),v(c.Avatar,"defaultBg",$("palette-grey-600")),v(c.Button,"inheritContainedBg",$("palette-grey-800")),v(c.Button,"inheritContainedHoverBg",$("palette-grey-700")),v(c.Chip,"defaultBorder",$("palette-grey-700")),v(c.Chip,"defaultAvatarColor",$("palette-grey-300")),v(c.Chip,"defaultIconColor",$("palette-grey-300")),v(c.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),v(c.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),v(c.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),v(c.LinearProgress,"primaryBg",w(X,c.primary.main,.5)),v(c.LinearProgress,"secondaryBg",w(X,c.secondary.main,.5)),v(c.LinearProgress,"errorBg",w(X,c.error.main,.5)),v(c.LinearProgress,"infoBg",w(X,c.info.main,.5)),v(c.LinearProgress,"successBg",w(X,c.success.main,.5)),v(c.LinearProgress,"warningBg",w(X,c.warning.main,.5)),v(c.Skeleton,"bg",O?w(we,c.text.primary,.13):`rgba(${$("palette-text-primaryChannel")} / 0.13)`),v(c.Slider,"primaryTrack",w(X,c.primary.main,.5)),v(c.Slider,"secondaryTrack",w(X,c.secondary.main,.5)),v(c.Slider,"errorTrack",w(X,c.error.main,.5)),v(c.Slider,"infoTrack",w(X,c.info.main,.5)),v(c.Slider,"successTrack",w(X,c.success.main,.5)),v(c.Slider,"warningTrack",w(X,c.warning.main,.5));const L=O?w(Q,c.background.default,.985):nt(c.background.default,.98);v(c.SnackbarContent,"bg",L),v(c.SnackbarContent,"color",ge(()=>O?dn.text.primary:c.getContrastText(L))),v(c.SpeedDialAction,"fabHoverBg",nt(c.background.paper,.15)),v(c.StepConnector,"border",$("palette-grey-600")),v(c.StepContent,"border",$("palette-grey-600")),v(c.Switch,"defaultColor",$("palette-grey-300")),v(c.Switch,"defaultDisabledColor",$("palette-grey-600")),v(c.Switch,"primaryDisabledColor",w(X,c.primary.main,.55)),v(c.Switch,"secondaryDisabledColor",w(X,c.secondary.main,.55)),v(c.Switch,"errorDisabledColor",w(X,c.error.main,.55)),v(c.Switch,"infoDisabledColor",w(X,c.info.main,.55)),v(c.Switch,"successDisabledColor",w(X,c.success.main,.55)),v(c.Switch,"warningDisabledColor",w(X,c.warning.main,.55)),v(c.TableCell,"border",w(X,w(we,c.divider,1),.68)),v(c.Tooltip,"bg",w(we,c.grey[700],.92))}ve(c.background,"default"),ve(c.background,"paper"),ve(c.common,"background"),ve(c.common,"onBackground"),ve(c,"divider"),Object.keys(c).forEach(L=>{const D=c[L];L!=="tonalOffset"&&D&&typeof D=="object"&&(D.main&&v(c[L],"mainChannel",ze(We(D.main))),D.light&&v(c[L],"lightChannel",ze(We(D.light))),D.dark&&v(c[L],"darkChannel",ze(We(D.dark))),D.contrastText&&v(c[L],"contrastTextChannel",ze(We(D.contrastText))),L==="text"&&(ve(c[L],"primary"),ve(c[L],"secondary")),L==="action"&&(D.active&&ve(c[L],"active"),D.selected&&ve(c[L],"selected")))})}),x=t.reduce((Z,c)=>je(Z,c),x);const N={prefix:s,disableCssColorScheme:o,shouldSkipGeneratingVar:a,getSelector:li(x),enableContrastVars:i},{vars:W,generateThemeVars:q,generateStyleSheets:fe}=js(x,N);return x.vars=W,Object.entries(x.colorSchemes[x.defaultColorScheme]).forEach(([Z,c])=>{x[Z]=c}),x.generateThemeVars=q,x.generateStyleSheets=fe,x.generateSpacing=function(){return tn(d.spacing,Ht(this))},x.getColorSchemeSelector=Ps(u),x.spacing=x.generateSpacing(),x.shouldSkipGeneratingVar=a,x.unstable_sxConfig={...St,...d==null?void 0:d.unstable_sxConfig},x.unstable_sx=function(c){return Be({sx:c,theme:this})},x.toRuntimeSource=mn,x}function zr(e,t,r){e.colorSchemes&&r&&(e.colorSchemes[t]={...r!==!0&&r,palette:Jt({...r===!0?{}:r.palette,mode:t})})}function mi(e={},...t){const{palette:r,cssVariables:n=!1,colorSchemes:o=r?void 0:{light:!0},defaultColorScheme:s=r==null?void 0:r.mode,...i}=e,a=s||"light",u=o==null?void 0:o[a],f={...o,...r?{[a]:{...typeof u!="boolean"&&u,palette:r}}:void 0};if(n===!1){if(!("colorSchemes"in e))return zt(e,...t);let d=r;"palette"in e||f[a]&&(f[a]!==!0?d=f[a].palette:a==="dark"&&(d={mode:"dark"}));const h=zt({...e,palette:d},...t);return h.defaultColorScheme=a,h.colorSchemes=f,h.palette.mode==="light"&&(h.colorSchemes.light={...f.light!==!0&&f.light,palette:h.palette},zr(h,"dark",f.dark)),h.palette.mode==="dark"&&(h.colorSchemes.dark={...f.dark!==!0&&f.dark,palette:h.palette},zr(h,"light",f.light)),h}return!r&&!("light"in f)&&a==="light"&&(f.light=!0),pi({...i,colorSchemes:f,defaultColorScheme:a,...typeof n!="boolean"&&n},...t)}const hi=mi(),gi="$$material";function yi(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const bi=e=>yi(e)&&e!=="classes",vi=hs({themeId:gi,defaultTheme:hi,rootShouldForwardProp:bi}),Si=_s;process.env.NODE_ENV!=="production"&&(G.node,G.object.isRequired);function Ci(e){return ws(e)}function xi(e,t,r="Mui"){const n={};return t.forEach(o=>{n[o]=Xt(e,o,r)}),n}function Ei(e){return Xt("MuiSvgIcon",e)}xi("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const Ti=e=>{const{color:t,fontSize:r,classes:n}=e,o={root:["root",t!=="inherit"&&`color${it(t)}`,`fontSize${it(r)}`]};return ro(o,Ei,n)},Oi=vi("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,r.color!=="inherit"&&t[`color${it(r.color)}`],t[`fontSize${it(r.fontSize)}`]]}})(Si(({theme:e})=>{var t,r,n,o,s,i,a,u,f,d,h,m,b,y;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(o=(t=e.transitions)==null?void 0:t.create)==null?void 0:o.call(t,"fill",{duration:(n=(r=(e.vars??e).transitions)==null?void 0:r.duration)==null?void 0:n.shorter}),variants:[{props:l=>!l.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((i=(s=e.typography)==null?void 0:s.pxToRem)==null?void 0:i.call(s,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((u=(a=e.typography)==null?void 0:a.pxToRem)==null?void 0:u.call(a,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((d=(f=e.typography)==null?void 0:f.pxToRem)==null?void 0:d.call(f,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,l])=>l&&l.main).map(([l])=>{var S,T;return{props:{color:l},style:{color:(T=(S=(e.vars??e).palette)==null?void 0:S[l])==null?void 0:T.main}}}),{props:{color:"action"},style:{color:(m=(h=(e.vars??e).palette)==null?void 0:h.action)==null?void 0:m.active}},{props:{color:"disabled"},style:{color:(y=(b=(e.vars??e).palette)==null?void 0:b.action)==null?void 0:y.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),ut=ye.forwardRef(function(t,r){const n=Ci({props:t,name:"MuiSvgIcon"}),{children:o,className:s,color:i="inherit",component:a="svg",fontSize:u="medium",htmlColor:f,inheritViewBox:d=!1,titleAccess:h,viewBox:m="0 0 24 24",...b}=n,y=ye.isValidElement(o)&&o.type==="svg",l={...n,color:i,component:a,fontSize:u,instanceFontSize:t.fontSize,inheritViewBox:d,viewBox:m,hasSvgAsChild:y},S={};d||(S.viewBox=m);const T=Ti(l);return g.jsxs(Oi,{as:a,className:Xr(T.root,s),focusable:"false",color:f,"aria-hidden":h?void 0:!0,role:h?"img":void 0,ref:r,...S,...b,...y&&o.props,ownerState:l,children:[y?o.props.children:o,h?g.jsx("title",{children:h}):null]})});process.env.NODE_ENV!=="production"&&(ut.propTypes={children:G.node,classes:G.object,className:G.string,color:G.oneOfType([G.oneOf(["inherit","action","disabled","primary","secondary","error","info","success","warning"]),G.string]),component:G.elementType,fontSize:G.oneOfType([G.oneOf(["inherit","large","medium","small"]),G.string]),htmlColor:G.string,inheritViewBox:G.bool,shapeRendering:G.string,sx:G.oneOfType([G.arrayOf(G.oneOfType([G.func,G.object,G.bool])),G.func,G.object]),titleAccess:G.string,viewBox:G.string});ut.muiName="SvgIcon";function Ce(e,t){function r(n,o){return g.jsx(ut,{"data-testid":process.env.NODE_ENV!=="production"?`${t}Icon`:void 0,ref:o,...n,children:e})}return process.env.NODE_ENV!=="production"&&(r.displayName=`${t}Icon`),r.muiName=ut.muiName,ye.memo(ye.forwardRef(r))}const wi=Ce(g.jsx("path",{d:"M17 12h-5v5h5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1zm3 18H5V8h14z"}),"Event"),_i=({course:e,displayMode:t,hasUpcomingEvents:r})=>g.jsxs(P.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center",mb:"auto",width:"100%"},children:[t!=="course"&&g.jsx(P.Typography,{variant:"caption",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",mr:1},children:e.instance}),r&&g.jsx(P.Tooltip,{title:"Upcoming Events",children:g.jsx(P.IconButton,{size:"small",color:"info",sx:{width:28,height:28,padding:0},children:g.jsx(wi,{sx:{fontSize:18}})})})]}),Ri=Ce(g.jsx("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings"),$i=Ce(g.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),Ai=Ce(g.jsx("path",{d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m-9-2V7H4v3H1v2h3v3h2v-3h3v-2zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonAdd"),ji=Ce(g.jsx("path",{d:"M5 13.18v4L12 21l7-3.82v-4L12 17zM12 3 1 9l11 6 9-4.91V17h2V9z"}),"School"),Pi=Ce(g.jsx("path",{d:"m12.87 15.07-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"}),"Translate"),Ii=Ce(g.jsx("path",{d:"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5"}),"Group"),ki=Ce(g.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23z"}),"Stars"),Mi=Ce(g.jsx("path",{d:"M22 9V7h-2v2h-2v2h2v2h2v-2h2V9zM8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4m4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95m4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17"}),"GroupAdd"),Ni=({course:e,courseColor:t,isTeacher:r,showEnrollmentOpen:n,onSettingsClick:o,onEnroll:s,onTeacherEnroll:i})=>{var m,b,y,l,S;const[a,u]=U.useState(null),[f,d]=U.useState(null),h=T=>{T.stopPropagation(),d(null),r?i==null||i(T):s==null||s(T)};return g.jsxs(P.Box,{sx:{display:"flex",gap:1},children:[n&&g.jsxs(g.Fragment,{children:[g.jsx(P.Tooltip,{title:r?"Manage enrollments":"Enroll in course",children:g.jsx(P.IconButton,{size:"small",color:"success",onClick:T=>{T.stopPropagation(),d(T.currentTarget)},sx:{width:28,height:28,padding:0},children:r?g.jsx(Mi,{sx:{fontSize:18}}):g.jsx(Ai,{sx:{fontSize:18}})})}),g.jsxs(P.Menu,{anchorEl:f,open:!!f,onClose:T=>{T.stopPropagation(),d(null)},anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"},children:[g.jsxs(P.MenuItem,{dense:!0,disabled:!0,children:[g.jsx(P.ListItemIcon,{children:g.jsx(Ii,{fontSize:"small"})}),g.jsx(P.ListItemText,{primary:`${((b=(m=e.data)==null?void 0:m.enrollmentData)==null?void 0:b.length)||0}/${(y=e.enrollment)==null?void 0:y.status.maxStudents} enrolled`,primaryTypographyProps:{variant:"body2"}})]}),g.jsx(P.Divider,{}),g.jsx(P.MenuItem,{dense:!0,onClick:h,children:r?"Manage Student Enrollments":"Enroll Now"})]})]}),r&&g.jsx(P.Tooltip,{title:"Course settings",children:g.jsx(P.IconButton,{size:"small",onClick:o,sx:{color:t,width:28,height:28,padding:0},children:g.jsx(Ri,{sx:{fontSize:18}})})}),g.jsxs(g.Fragment,{children:[g.jsx(P.Tooltip,{title:"Course details",children:g.jsx(P.IconButton,{size:"small",onClick:T=>{T.stopPropagation(),u(T.currentTarget)},sx:{color:t,width:28,height:28,padding:0},children:g.jsx($i,{sx:{fontSize:18}})})}),g.jsxs(P.Menu,{anchorEl:a,open:!!a,onClose:T=>{T.stopPropagation(),u(null)},anchorOrigin:{vertical:"top",horizontal:"center"},transformOrigin:{vertical:"bottom",horizontal:"center"},children:[g.jsxs(P.MenuItem,{dense:!0,disabled:!0,children:[g.jsx(P.ListItemIcon,{children:g.jsx(ji,{fontSize:"small"})}),g.jsx(P.ListItemText,{primary:(l=e.studyModule)==null?void 0:l.level,primaryTypographyProps:{variant:"body2"}})]}),g.jsxs(P.MenuItem,{dense:!0,disabled:!0,children:[g.jsx(P.ListItemIcon,{children:g.jsx(ki,{fontSize:"small"})}),g.jsx(P.ListItemText,{primary:`${(S=e.studyModule)==null?void 0:S.credits} credits`,primaryTypographyProps:{variant:"body2"}})]}),g.jsxs(P.MenuItem,{dense:!0,disabled:!0,children:[g.jsx(P.ListItemIcon,{children:g.jsx(Pi,{fontSize:"small"})}),g.jsx(P.ListItemText,{primary:e.language,primaryTypographyProps:{variant:"body2"}})]})]})]})]})},yn=({course:e,displayMode:t="course",onClick:r})=>{var A,O,C,x,N,W;const{setOpenDialog:n}=H.useDialogStore(),{setCourseToUpdate:o,setCurrentCourse:s}=pe(),i=e.code.split(".")[0],a=st[i]||st["COMP.CS"],u=((A=e.studyModule)==null?void 0:A.level)||"basic",f=a.levelShades[u],d=((C=(O=e.data)==null?void 0:O.myData)==null?void 0:C.role)==="teacher",m=!!(!(((N=(x=e.data)==null?void 0:x.myData)==null?void 0:N.status)==="enrolled")&&((W=e.enrollment)!=null&&W.status.open)),b=!!e.events.lecture.some(q=>new Date(q.startTime)>new Date),[y,l]=U.useState(!1),S=q=>{q.stopPropagation(),o(e),n("CourseSettings")},T=q=>{q.stopPropagation(),n("ManageEnrollments")},k=()=>{s(e),r(e)};return g.jsxs(P.Card,{elevation:0,sx:{marginLeft:2,marginRight:2,boxSizing:"border-box",position:"relative",cursor:"pointer",flex:"1",backgroundColor:`${f}08`,borderLeft:`4px solid ${f}`,transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden",height:"100%","&:hover":{backgroundColor:`${f}15`,"& .subject-icon":{opacity:.15,transform:"scale(1.1)"}}},onClick:k,children:[!y&&g.jsx(P.Skeleton,{variant:"rectangular",sx:{position:"absolute",right:-10,bottom:-10,width:"80px",height:"80px",opacity:.08,transition:"all 0.3s ease-in-out"},animation:"wave"}),g.jsx(P.Box,{component:"img",className:"subject-icon",src:a.icon,alt:i,loading:"lazy",onLoad:()=>l(!0),sx:{position:"absolute",right:-10,bottom:-10,width:"80px",height:"80px",transition:"opacity 0.3s ease-in-out",filter:`drop-shadow(0 0 1px ${f})`,opacity:.08}}),g.jsx(P.Box,{sx:{p:1,height:"100%",display:"flex",flexDirection:"column"},children:g.jsxs(P.Box,{sx:{display:"flex",flexDirection:"column",justifyContent:"space-between",height:"100%"},children:[g.jsx(Yn,{course:e}),g.jsxs(P.Box,{sx:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",mt:"auto"},children:[g.jsx(_i,{course:e,displayMode:t,hasUpcomingEvents:b}),g.jsx(Ni,{course:e,courseColor:f,isTeacher:d,showEnrollmentOpen:m,onSettingsClick:S,onEnroll:q=>{q.stopPropagation(),n("EnrollInCourse")},onTeacherEnroll:T})]})]})})]})},Li=()=>{const{code:e}=ie.useParams(),t=ie.useNavigate(),{courses:r,currentCourse:n}=pe(),o=r.filter(i=>i.code===e),s=i=>{t(`${i.instance}`)};return g.jsxs(P.Box,{sx:{p:3,display:"flex",flexDirection:"column",gap:2},children:[g.jsx(H.CenteredHeading,{heading:"Course Instances",subheading:"Below are all the instances of the selected course. Select an instance to view its content."}),o.map(i=>g.jsx(yn,{course:i,isSelected:(n==null?void 0:n.id)===i.id,displayMode:"course",onClick:s},i.id))," "]})},Di=()=>{const{instance:e,code:t}=ie.useParams(),{fetchState:r,courses:n,setCurrentCourse:o}=pe(),{addNotificationData:s}=H.useNotificationStore(),i=ie.useNavigate();return U.useEffect(()=>{if(r==="loading"||!n.length)return;const a=n.find(u=>u.code===t&&u.instance===e);a?o(a):(s({type:"error",message:"Course Instance not found"}),i("/"+t))},[e,t,n,r,o,s,i]),r==="loading"?g.jsx(H.LoadingScreen,{}):g.jsx(ie.Outlet,{})},Bi=({item:e,onToggleService:t,isUsed:r})=>{var a;const n=P.useTheme(),o=ie.useNavigate(),s=e.iconFC,i=e.icon?e.icon:s?g.jsx(s,{fontSize:"large"}):null;return g.jsxs(P.Card,{"data-testid":"tool-card",sx:{position:"relative",height:"auto",cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"stretch",transition:"all 0.2s ease-in-out",transform:"scale(1)",bgcolor:"background.paper","&:hover":{transform:"scale(1.02)",boxShadow:n.shadows[8],bgcolor:u=>u.palette.primary.main+"20",color:"primary.main"},"&:hover .toggle-button":{display:"inline-flex"}},children:[g.jsx(P.CardActionArea,{sx:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"top"},onClick:()=>o(e.segment),children:g.jsxs(P.CardContent,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:2,p:3,maxWidth:300,flex:1},children:[g.jsx(P.Box,{sx:{color:"inherit"},children:i}),g.jsx(P.Typography,{variant:"h6",children:e.title}),g.jsx(P.Typography,{variant:"body2",color:"text.secondary",align:"center",children:(a=e.metadata)==null?void 0:a.description})]})}),t&&g.jsx(P.Tooltip,{title:r?"Remove":"Add",arrow:!0,children:g.jsx(P.Button,{className:"toggle-button",sx:{display:"none",position:"absolute",top:8,right:8,minWidth:32,padding:0,fontSize:"1.25rem"},onClick:()=>t(e.segment),children:r?"-":"+"})})]})},Dt=({show:e,onToggleService:t,navItems:r,roleCheck:n,isUsed:o})=>{var i,a;const{currentCourse:s}=pe();return g.jsx(P.Box,{sx:{p:3},"data-testid":"tool-selector",children:g.jsx(P.Fade,{in:e,timeout:500,children:g.jsx(P.Box,{children:g.jsxs(P.Box,{sx:{display:"flex",flexDirection:"row",flexWrap:"wrap",alignItems:"stretch",justifyContent:"center",height:"fit-content",width:"100%",gap:4},children:[r.length===0&&g.jsxs(P.Box,{sx:{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",width:"100%",height:"100%",color:"text.secondary"},children:[g.jsxs(P.Typography,{variant:"h5",sx:{mb:4},children:["No tools available ",n?"for your role":""]}),n&&((a=(i=s==null?void 0:s.data)==null?void 0:i.myData)==null?void 0:a.role)==="student"&&g.jsx(P.Typography,{variant:"body1",sx:{mb:4},children:"Please let your teacher know if you need access to any tools."})]}),r.map(u=>{var f,d,h,m;return!n||n&&((m=(f=u.metadata)==null?void 0:f.forRoles)!=null&&m.includes(((h=(d=s==null?void 0:s.data)==null?void 0:d.myData)==null?void 0:h.role)||""))?g.jsx(Bi,{item:u,onToggleService:t,isUsed:o},u.segment):null})]})})})})},Vi=()=>{const{currentCourse:e,updateStateCourse:t}=pe(),{addNotificationData:r}=H.useNotificationStore(),[n,o]=U.useState((e==null?void 0:e.ltiLoginUrl)||""),[s,i]=U.useState(!1),a=async u=>{if(u.preventDefault(),!e)return;const f=n.trim();if(!f){r({type:"error",message:"Please provide a valid URL"});return}i(!0);try{if((await t({...e,ltiLoginUrl:f})).ltiLoginUrl===f)r({type:"success",message:"LTI Login URL updated successfully."});else throw new Error("Failed to verify update")}catch(d){console.error("Failed to update LTI Login URL:",d),r({type:"error",message:"Failed to update LTI Login URL. Please try again."})}finally{i(!1)}};return g.jsxs(P.Paper,{elevation:3,sx:{p:3,mt:4,mx:"auto",maxWidth:600,borderRadius:2,backgroundColor:"background.paper"},children:[g.jsx(P.Typography,{variant:"h6",color:"primary",gutterBottom:!0,sx:{mb:2},children:"Update LTI Login URL"}),g.jsx(P.Typography,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"Please provide the LTI Login URL for this course. Students will be redirected to this URL when they need to authenticate."}),g.jsxs("form",{onSubmit:a,children:[g.jsx(P.TextField,{label:"LTI Login URL",variant:"outlined",fullWidth:!0,required:!0,value:n,onChange:u=>o(u.target.value),sx:{mb:3,"& .MuiOutlinedInput-root":{"&:hover fieldset":{borderColor:"primary.main"}}},helperText:"The URL where students will be redirected for LTI authentication"}),g.jsx(P.Box,{sx:{display:"flex",justifyContent:"flex-end"},children:g.jsx(P.Button,{type:"submit",variant:"contained",color:"primary",disabled:s,sx:{px:4,py:1,textTransform:"none",fontWeight:500},children:s?"Updating...":"Update URL"})})]})]})},Fi=({microservices:e})=>{var T,k;const{instance:t,code:r}=ie.useParams(),{updateStateCourse:n,currentCourse:o}=pe(),{addNotificationData:s}=H.useNotificationStore(),[i,a]=U.useState(!0),{allCourseMicroserviceNavigation:u}=Wt(),[f,d]=U.useState(e);U.useEffect(()=>{!e&&r&&u?d(u):e&&d(e)},[e,r,t,u]);const[h,m]=U.useState([]),[b,y]=U.useState([]);U.useEffect(()=>{if(r&&t&&f){const A=f.filter(C=>{var x;return(x=o==null?void 0:o.services)==null?void 0:x.includes(C.segment)});m(A);const O=f.filter(C=>{var x;return!((x=o==null?void 0:o.services)!=null&&x.includes(C.segment))});y(O)}},[r,t,f,o]),U.useEffect(()=>{a(!1);const A=setTimeout(()=>a(!0),300);return()=>clearTimeout(A)},[o]);const l=((k=(T=o==null?void 0:o.data)==null?void 0:T.myData)==null?void 0:k.role)==="teacher";U.useEffect(()=>{o&&l&&!o.ltiLoginUrl&&s({type:"info",message:"The LTI Login URL is missing for this course."})},[o,l,s]);const S=async(A,O)=>{var N;if(!o)return;const C=O?((N=o.services)==null?void 0:N.filter(W=>W!==A))||[]:[...o.services||[],A],x={...o,services:C};await n(x)};return r?g.jsxs(g.Fragment,{children:[l&&!(o!=null&&o.ltiLoginUrl)&&g.jsx(Vi,{}),l?g.jsxs(g.Fragment,{children:[g.jsx(H.CenteredHeading,{heading:"Enabled Tools",subheading:"These tools are currently enabled for this course. Click on a tool to visit its page."}),g.jsx(Dt,{show:i,title:"Enabled Tools",navItems:h,roleCheck:!0,onToggleService:A=>S(A,!0),isUsed:!0}),g.jsx(H.CenteredHeading,{heading:"Available Tools",subheading:"These tools are available for this course. Click on a tool to enable it."}),g.jsx(Dt,{show:i,title:"Available Tools",navItems:b,roleCheck:!0,onToggleService:A=>S(A,!1),isUsed:!1})]}):g.jsxs(g.Fragment,{children:[g.jsx(H.CenteredHeading,{heading:"Course Tools",subheading:"These tools are available for this course. Click on a tool to visit its page."}),g.jsx(Dt,{show:i,title:o!=null&&o.title?`${o.title} - Tools`:"Course Tools",navItems:h,roleCheck:!0})]})]}):g.jsx("h1",{children:"No course selected!"})},Bt=({children:e})=>g.jsx(g.Fragment,{children:e}),Ui=()=>{const{allCourseMicroserviceNavigation:e}=Wt();return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:29",message:"useCourseRoutes called",data:{navCount:e.length,navSegments:e.map(t=>t.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"A"})}).catch(()=>{}),U.useMemo(()=>{var r,n;const t=[];return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:33",message:"Building routes",data:{navCount:e.length,hasChildren:e.some(o=>{var s;return(s=o.children)==null?void 0:s.length})},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"B"})}).catch(()=>{}),t.push(g.jsxs(ie.Route,{path:":code",element:g.jsx(Wn,{}),children:[g.jsx(ie.Route,{index:!0,element:g.jsx(Li,{})}),g.jsxs(ie.Route,{path:":instance",element:g.jsx(Di,{}),children:[g.jsx(ie.Route,{index:!0,element:g.jsx(Fi,{microservices:e})}),e.map(o=>{var s,i,a;return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:45",message:"Mapping nav route",data:{segment:o.segment,hasChildren:!!o.children,childrenCount:(s=o.children)==null?void 0:s.length,childSegments:(i=o.children)==null?void 0:i.map(u=>u.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"C"})}).catch(()=>{}),g.jsxs(ie.Route,{path:o.segment,children:[g.jsx(ie.Route,{index:!0,element:g.jsxs(Bt,{title:o.title,showTitle:o.showTitle,children:[o.children&&o.children.length>0&&g.jsx(H.MicroserviceSubsections,{children:o.children}),o.view&&g.jsx(o.view,{})]})}),(a=o.children)==null?void 0:a.map(u=>{var f,d,h;return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:60",message:"Mapping child route",data:{parentSegment:o.segment,childSegment:u.segment,hasSubChildren:!!u.children,subChildrenCount:(f=u.children)==null?void 0:f.length,subChildSegments:(d=u.children)==null?void 0:d.map(m=>m.segment)},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"D"})}).catch(()=>{}),g.jsxs(ie.Route,{path:u.segment,children:[g.jsx(ie.Route,{index:!0,element:g.jsxs(Bt,{title:u.title,showTitle:u.showTitle,children:[u.children&&u.children.length>0&&g.jsx(H.MicroserviceSubsections,{children:u.children}),u.view&&g.jsx(u.view,{})]})}),(h=u.children)==null?void 0:h.map(m=>g.jsx(ie.Route,{path:m.segment,element:g.jsx(Bt,{title:m.title,showTitle:m.showTitle,children:m.view?g.jsx(m.view,{}):null})},m.segment))]},u.segment)})]},o.segment)})]})]},"course-routes")),fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"useCourseRoutes.tsx:102",message:"Routes built",data:{routeCount:t.length,firstRoutePath:(n=(r=t[0])==null?void 0:r.props)==null?void 0:n.path},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"E"})}).catch(()=>{}),t},[e])},zi=()=>{const e=Ui();return fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseRoutesProvider.tsx:17",message:"CourseRoutesProvider render",data:{routeCount:e.length},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"F"})}).catch(()=>{}),U.useEffect(()=>(fetch("http://127.0.0.1:7244/ingest/c66c732d-3054-49ac-a9c8-4251e2d751a6",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({location:"CourseRoutesProvider.tsx:20",message:"Registering route provider",data:{routeCount:e.length},timestamp:Date.now(),sessionId:"debug-session",runId:"run1",hypothesisId:"G"})}).catch(()=>{}),H.registerRouteProvider("course-routes",()=>e),()=>{H.unregisterRouteProvider("course-routes")}),[e]),null},Wi=(e,t)=>{const r=n=>g.jsx(P.SvgIcon,{...n,sx:{backgroundColor:e,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center","& image":{transform:"scale(1)"}},viewBox:"0 0 24 24",children:g.jsx("image",{href:t.icon,width:"20",height:"20",x:"2",y:"2",preserveAspectRatio:"xMidYMid meet"})});return r.muiName="SvgIcon",r},Yi=e=>{var i;const t=e.code.split(".")[0],r=st[t]||st["COMP.CS"],n=((i=e.studyModule)==null?void 0:i.level)||"basic",o=r.levelShades[n],s=Wi(o,r);return{segment:e.code,title:e.code.toUpperCase(),Icon:s,instances:[e.instance],description:e.description,microservices:e.services}},Gi=()=>{const{learningCourses:e,learningCoursesOld:t,teachingCourses:r,teachingCoursesOld:n,availableCourses:o}=pe(),s=U.useMemo(()=>[{courses:e,header:"Courses"},{courses:t,header:"Courses (Old)"},{courses:r,header:"Teaching Courses"},{courses:n,header:"Teaching Courses (Old)"},{courses:o,header:"Available Courses"}].filter(({courses:a})=>a&&a.length>0).map(({courses:a,header:u})=>({underHeader:u,pages:a.map(Yi)})),[e,t,r,n,o]);return g.jsx(H.NavigationSectionBuilder,{sections:s})},Hi=()=>{const{learningCourses:e}=pe();return U.useEffect(()=>{if(e&&e.length>0){const t=[];e.forEach(r=>{Object.entries(r.events||{}).forEach(([n,o])=>{o.forEach(s=>{var i,a;t.push({id:s.id||`${r.code}-${n}-${Math.random()}`,title:s.title||`${r.title} - ${n}`,start:s.startTime,end:s.endTime||s.startTime,metadata:{source:"courses",courseCode:r.code,courseTitle:r.title,subject:((i=r.code)==null?void 0:i.split(".")[0])||"UNKNOWN",courseLevel:((a=r.studyModule)==null?void 0:a.level)||"basic",type:n,description:s.description,location:s.location}})})})}),H.eventBus.publish("courses",t)}else H.eventBus.removeSource("courses")},[e]),null},qi=({displayMode:e="instance",containerHeight:t="100%"})=>{const{currentCourse:r,learningCourses:n,learningCoursesOld:o,teachingCourses:s,teachingCoursesOld:i,availableCourses:a}=pe(),u=ie.useNavigate(),{visibleSections:f}=H.useNavigationStore(),d=200,h=300,m=f.Courses===!0,b=f["Courses (Old)"]===!0,y=f["Teaching Courses"]===!0,l=f["Teaching Courses (Old)"]===!0,S=f["Available Courses"]===!0,T=A=>{u(`/${A.code}/${A.instance}`)},k=(A,O,C)=>g.jsx(H.Scroller,{direction:"horizontal",itemSize:h,containerSize:d,title:A,priority:C,children:O.map(x=>g.jsx(yn,{onClick:T,course:x,isSelected:(r==null?void 0:r.id)===x.id,displayMode:e},x.id))});return g.jsx(P.Box,{sx:{width:"100%",height:t},children:g.jsxs(H.Scroller,{direction:"vertical",itemSize:d,containerSize:t,children:[m&&n.length>0&&k("My Enrolled Courses",n,"high"),b&&o.length>0&&k("My Completed Courses",o,"low"),y&&s.length>0&&k("My Teaching Courses",s,"low"),l&&i.length>0&&k("My Past Teaching",i,"low"),S&&a.length>0&&k("Available Courses",a,"low")]})})},Ki=()=>{const e=ie.useLocation(),{getCourses:t,setCurrentCourseUrl:r,getCourseByUrl:n,courses:o,currentCourse:s,currentCourseCode:i,setCurrentCourse:a,setCurrentCourseCode:u,setCurrentCourseUrl:f}=pe(),{registerGridItem:d,unregisterGridItem:h}=H.useGridItemContext();return H.useRetry({action:t,condition:o.length<1,successMessage:"Courses fetched successfully",errorMessage:"Failed to fetch courses, retrying..."}),U.useEffect(()=>{const m=async b=>{const{url:y}=b.data;if(y){r(y);try{await n(y)}catch(l){console.error("Failed to fetch course by URL:",l)}}};return window.addEventListener("message",m),()=>window.removeEventListener("message",m)},[n,r]),U.useEffect(()=>{e.pathname==="/"&&(s||i)&&(a(null),u(null),f(""))},[e.pathname,s,i,a,u,f]),U.useEffect(()=>{const m=H.createGridItem({id:"course-list",x:0,y:0,w:15,h:1,minW:1,minH:1,maxW:15,maxH:15});return d("course-list",g.jsx(qi,{displayMode:"instance",containerHeight:"100%"}),m),()=>{h("course-list")}},[d,h]),g.jsxs(g.Fragment,{children:[g.jsx(Gi,{}),g.jsx(Hi,{})]})},Ji=({children:e})=>g.jsxs(Tn,{children:[g.jsx(Ki,{}),e,g.jsx(zi,{})]});exports.CourseMicroservice=Ji;exports.useCourseMicroserviceRegistration=Wt;exports.useCourseStore=pe;
@@ -0,0 +1,5 @@
1
+ /** @format */
2
+ export { default as CourseMicroservice } from './CourseMicroservice';
3
+ export { useCourseMicroserviceRegistration } from './context/CourseMicroserviceContext';
4
+ export { default as useCourseStore } from './store/useCourseStore';
5
+ export type { Course, CourseRaw, courseRole, courseLevel, courseEventType, enrollmentStatus } from './store/useCourseStore';