(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerPolicy&&(l.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?l.credentials="include":s.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function n(s){if(s.ep)return;s.ep=!0;const l=r(s);fetch(s.href,l)}})();const Rt=!1,Ot=(e,t)=>e===t,nt=Symbol("solid-proxy"),Dt=typeof Proxy=="function",Mt=Symbol("solid-track"),qe={equals:Ot};let $t=Et;const ue=1,Be=2,wt={owned:null,cleanups:null,context:null,owner:null};var m=null;let et=null,Nt=null,C=null,q=null,le=null,He=0;function Fe(e,t){const r=C,n=m,s=e.length===0,l=t===void 0?n:t,o=s?wt:{owned:null,cleanups:null,context:l?l.context:null,owner:l},i=s?e:()=>e(()=>ee(()=>Ee(o)));m=o,C=null;try{return ye(i,!0)}finally{C=r,m=n}}function k(e,t){t=t?Object.assign({},qe,t):qe;const r={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},n=s=>(typeof s=="function"&&(s=s(r.value)),kt(r,s));return[St.bind(r),n]}function P(e,t,r){const n=at(e,t,!1,ue);Ae(n)}function Ut(e,t,r){$t=Ht;const n=at(e,t,!1,ue);n.user=!0,le?le.push(n):Ae(n)}function J(e,t,r){r=r?Object.assign({},qe,r):qe;const n=at(e,t,!0,0);return n.observers=null,n.observerSlots=null,n.comparator=r.equals||void 0,Ae(n),St.bind(n)}function ee(e){if(C===null)return e();const t=C;C=null;try{return e()}finally{C=t}}function Ft(e,t,r){const n=Array.isArray(e);let s;return l=>{let o;if(n){o=Array(e.length);for(let a=0;at(o,s,l));return s=o,i}}function lt(e){Ut(()=>ee(e))}function ot(e){return m===null||(m.cleanups===null?m.cleanups=[e]:m.cleanups.push(e)),e}function qt(){return m}function Bt(e,t){const r=m,n=C;m=e,C=null;try{return ye(t,!0)}catch(s){ct(s)}finally{m=r,C=n}}function Kt(e){const t=C,r=m;return Promise.resolve().then(()=>{C=t,m=r;let n;return ye(e,!1),C=m=null,n?n.done:void 0})}const[Wr,Yr]=k(!1);function _t(e,t){const r=Symbol("context");return{id:r,Provider:Jt(r),defaultValue:e}}function Vt(e){let t;return m&&m.context&&(t=m.context[e.id])!==void 0?t:e.defaultValue}function Ct(e){const t=J(e),r=J(()=>st(t()));return r.toArray=()=>{const n=r();return Array.isArray(n)?n:n!=null?[n]:[]},r}function St(){if(this.sources&&this.state)if(this.state===ue)Ae(this);else{const e=q;q=null,ye(()=>Ve(this),!1),q=e}if(C){const e=this.observers?this.observers.length:0;C.sources?(C.sources.push(this),C.sourceSlots.push(e)):(C.sources=[this],C.sourceSlots=[e]),this.observers?(this.observers.push(C),this.observerSlots.push(C.sources.length-1)):(this.observers=[C],this.observerSlots=[C.sources.length-1])}return this.value}function kt(e,t,r){let n=e.value;return(!e.comparator||!e.comparator(n,t))&&(e.value=t,e.observers&&e.observers.length&&ye(()=>{for(let s=0;s1e6)throw q=[],new Error},!1)),t}function Ae(e){if(!e.fn)return;Ee(e);const t=He;zt(e,e.value,t)}function zt(e,t,r){let n;const s=m,l=C;C=m=e;try{n=e.fn(t)}catch(o){return e.pure&&(e.state=ue,e.owned&&e.owned.forEach(Ee),e.owned=null),e.updatedAt=r+1,ct(o)}finally{C=l,m=s}(!e.updatedAt||e.updatedAt<=r)&&(e.updatedAt!=null&&"observers"in e?kt(e,n):e.value=n,e.updatedAt=r)}function at(e,t,r,n=ue,s){const l={fn:e,state:n,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:m,context:m?m.context:null,pure:r};return m===null||m!==wt&&(m.owned?m.owned.push(l):m.owned=[l]),l}function Ke(e){if(e.state===0)return;if(e.state===Be)return Ve(e);if(e.suspense&&ee(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;r--)if(e=t[r],e.state===ue)Ae(e);else if(e.state===Be){const n=q;q=null,ye(()=>Ve(e,t[0]),!1),q=n}}function ye(e,t){if(q)return e();let r=!1;t||(q=[]),le?r=!0:le=[],He++;try{const n=e();return Gt(r),n}catch(n){r||(le=null),q=null,ct(n)}}function Gt(e){if(q&&(Et(q),q=null),e)return;const t=le;le=null,t.length&&ye(()=>$t(t),!1)}function Et(e){for(let t=0;t=0;t--)Ee(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)Ee(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function Xt(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function ct(e,t=m){throw Xt(e)}function st(e){if(typeof e=="function"&&!e.length)return st(e());if(Array.isArray(e)){const t=[];for(let r=0;rs=ee(()=>(m.context={...m.context,[e]:n.value},Ct(()=>n.children))),void 0),s}}const Wt=Symbol("fallback");function gt(e){for(let t=0;t1?[]:null;return ot(()=>gt(l)),()=>{let a=e()||[],f=a.length,u,c;return a[Mt],ee(()=>{let _,M,O,E,L,j,p,x,y;if(f===0)o!==0&&(gt(l),l=[],n=[],s=[],o=0,i&&(i=[])),r.fallback&&(n=[Wt],s[0]=Fe(N=>(l[0]=N,r.fallback())),o=1);else if(o===0){for(s=new Array(f),c=0;c=j&&x>=j&&n[p]===a[x];p--,x--)O[x]=s[p],E[x]=l[p],i&&(L[x]=i[p]);for(_=new Map,M=new Array(x+1),c=x;c>=j;c--)y=a[c],u=_.get(y),M[c]=u===void 0?-1:u,_.set(y,c);for(u=j;u<=p;u++)y=n[u],c=_.get(y),c!==void 0&&c!==-1?(O[c]=s[u],E[c]=l[u],i&&(L[c]=i[u]),c=M[c],_.set(y,c)):l[u]();for(c=j;ce(t||{}))}function Ne(){return!0}const Qt={get(e,t,r){return t===nt?r:e.get(t)},has(e,t){return t===nt?!0:e.has(t)},set:Ne,deleteProperty:Ne,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Ne,deleteProperty:Ne}},ownKeys(e){return e.keys()}};function tt(e){return(e=typeof e=="function"?e():e)?e:{}}function Zt(){for(let e=0,t=this.length;e=0;i--){const a=tt(e[i])[o];if(a!==void 0)return a}},has(o){for(let i=e.length-1;i>=0;i--)if(o in tt(e[i]))return!0;return!1},keys(){const o=[];for(let i=0;i=0;o--){const i=e[o];if(!i)continue;const a=Object.getOwnPropertyNames(i);for(let f=a.length-1;f>=0;f--){const u=a[f];if(u==="__proto__"||u==="constructor")continue;const c=Object.getOwnPropertyDescriptor(i,u);if(!n[u])n[u]=c.get?{enumerable:!0,configurable:!0,get:Zt.bind(r[u]=[c.get.bind(i)])}:c.value!==void 0?c:void 0;else{const w=r[u];w&&(c.get?w.push(c.get.bind(i)):c.value!==void 0&&w.push(()=>c.value))}}}const s={},l=Object.keys(n);for(let o=l.length-1;o>=0;o--){const i=l[o],a=n[i];a&&a.get?Object.defineProperty(s,i,a):s[i]=a?a.value:void 0}return s}const tr=e=>`Stale read from <${e}>.`;function de(e){const t="fallback"in e&&{fallback:()=>e.fallback};return J(Yt(()=>e.each,e.children,t||void 0))}function re(e){const t=e.keyed,r=J(()=>e.when,void 0,void 0),n=t?r:J(r,void 0,{equals:(s,l)=>!s==!l});return J(()=>{const s=n();if(s){const l=e.children;return typeof l=="function"&&l.length>0?ee(()=>l(t?s:()=>{if(!ee(n))throw tr("Show");return r()})):l}return e.fallback},void 0,void 0)}function rr(e,t,r){let n=r.length,s=t.length,l=n,o=0,i=0,a=t[s-1].nextSibling,f=null;for(;ou-i){const M=t[o];for(;i{s=l,t===document?e():h(t,e(),t.firstChild?null:void 0,r)},n.owner),()=>{s(),t.textContent=""}}function T(e,t,r,n){let s;const l=()=>{const i=document.createElement("template");return i.innerHTML=e,i.content.firstChild},o=()=>(s||(s=l())).cloneNode(!0);return o.cloneNode=o,o}function Xe(e,t=window.document){const r=t[ht]||(t[ht]=new Set);for(let n=0,s=e.length;nGe(e,t(),s,r),n)}function ir(e){let t=e.target;const r=`$$${e.type}`,n=e.target,s=e.currentTarget,l=a=>Object.defineProperty(e,"target",{configurable:!0,value:a}),o=()=>{const a=t[r];if(a&&!t.disabled){const f=t[`${r}Data`];if(f!==void 0?a.call(t,f,e):a.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&l(t.host),!0},i=()=>{for(;o()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const a=e.composedPath();l(a[0]);for(let f=0;f{let i=t();for(;typeof i=="function";)i=i();r=Ge(e,i,r,n)}),()=>r;if(Array.isArray(t)){const i=[],a=r&&Array.isArray(r);if(it(i,t,r,s))return P(()=>r=Ge(e,i,r,n,!0)),()=>r;if(i.length===0){if(r=Se(e,r,n),o)return r}else a?r.length===0?pt(e,i,n):rr(e,r,i):(r&&Se(e),pt(e,i));r=i}else if(t.nodeType){if(Array.isArray(r)){if(o)return r=Se(e,r,n,t);Se(e,r,null,t)}else r==null||r===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);r=t}}return r}function it(e,t,r,n){let s=!1;for(let l=0,o=t.length;l=0;o--){const i=t[o];if(s!==i){const a=i.parentNode===e;!l&&!o?a?e.replaceChild(s,i):e.insertBefore(s,r):a&&i.remove()}else l=!0}}else e.insertBefore(s,r);return[s]}const lr=!1;function or(e,t,r){return e.addEventListener(t,r),()=>e.removeEventListener(t,r)}function ar([e,t],r,n){return[e,n?s=>t(n(s)):t]}function cr(e){if(e==="#")return null;try{return document.querySelector(e)}catch{return null}}function dr(e,t){const r=cr(`#${e}`);r?r.scrollIntoView():t&&window.scrollTo(0,0)}function ur(e,t,r,n){let s=!1;const l=i=>typeof i=="string"?{value:i}:i,o=ar(k(l(e()),{equals:(i,a)=>i.value===a.value}),void 0,i=>(!s&&t(i),i));return r&&ot(r((i=e())=>{s=!0,o[1](l(i)),s=!1})),{signal:o,utils:n}}function fr(e){if(e){if(Array.isArray(e))return{signal:e}}else return{signal:k({value:""})};return e}function gr(){return ur(()=>({value:window.location.pathname+window.location.search+window.location.hash,state:history.state}),({value:e,replace:t,scroll:r,state:n})=>{t?window.history.replaceState(n,"",e):window.history.pushState(n,"",e),dr(window.location.hash.slice(1),r)},e=>or(window,"popstate",()=>e()),{go:e=>window.history.go(e)})}function hr(){let e=new Set;function t(s){return e.add(s),()=>e.delete(s)}let r=!1;function n(s,l){if(r)return!(r=!1);const o={to:s,options:l,defaultPrevented:!1,preventDefault:()=>o.defaultPrevented=!0};for(const i of e)i.listener({...o,from:i.location,retry:a=>{a&&(r=!0),i.navigate(s,l)}});return!o.defaultPrevented}return{subscribe:t,confirm:n}}const pr=/^(?:[a-z0-9]+:)?\/\//i,br=/^\/+|(\/)\/+$/g;function bt(e,t=!1){const r=e.replace(br,"$1");return r?t||/^[?#]/.test(r)?r:"/"+r:""}function rt(e,t,r){if(pr.test(t))return;const n=bt(e);let s="";return s=n,(s||"/")+bt(t,!s)}function xr(e){const t={};return e.searchParams.forEach((r,n)=>{t[n]=r}),t}function vr(e){const t=new Map,r=qt();return new Proxy({},{get(n,s){return t.has(s)||Bt(r,()=>t.set(s,J(()=>e()[s]))),t.get(s)()},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}},ownKeys(){return Reflect.ownKeys(e())}})}const yr=100,mr=_t(),$r=_t();let xt;function wr(e,t){const r=new URL("http://sar"),n=J(a=>{const f=e();try{return new URL(f,r)}catch{return console.error(`Invalid path ${f}`),a}},r,{equals:(a,f)=>a.href===f.href}),s=J(()=>n().pathname),l=J(()=>n().search,!0),o=J(()=>n().hash),i=J(()=>"");return{get pathname(){return s()},get search(){return l()},get hash(){return o()},get state(){return t()},get key(){return i()},query:vr(Ft(l,()=>xr(n())))}}function _r(e,t="",r,n){const{signal:[s,l],utils:o={}}=fr(e),i=o.parsePath||(v=>v),a=o.renderPath||(v=>v),f=o.beforeLeave||hr(),u=rt("",t),c=void 0;if(u===void 0)throw new Error(`${u} is not a valid base path`);u&&!s().value&&l({value:u,replace:!0,scroll:!1});const[w,_]=k(!1),M=async v=>{_(!0);try{await Kt(v)}finally{_(!1)}},[O,E]=k(s().value),[L,j]=k(s().state),p=wr(O,L),x=[],y={pattern:u,params:{},path:()=>u,outlet:()=>null,resolvePath(v){return rt(u,v)}};if(r)try{xt=y,y.data=r({data:void 0,params:{},location:p,navigate:oe(y)})}finally{xt=void 0}function N(v,g,$){ee(()=>{if(typeof g=="number"){g&&(o.go?f.confirm(g,$)&&o.go(g):console.warn("Router integration does not support relative routing"));return}const{replace:B,resolve:W,scroll:D,state:U}={replace:!1,resolve:!0,scroll:!0,...$},d=W?v.resolvePath(g):rt("",g);if(d===void 0)throw new Error(`Path '${g}' is not a routable path`);if(x.length>=yr)throw new Error("Too many redirects");const b=O();if((d!==b||U!==L())&&!lr){if(f.confirm(d,$)){const I=x.push({value:b,replace:B,scroll:D,state:L()});M(()=>{E(d),j(U)}).then(()=>{x.length===I&&ne({value:d,state:U})})}}})}function oe(v){return v=v||Vt($r)||y,(g,$)=>N(v,g,$)}function ne(v){const g=x[0];g&&((v.value!==g.value||v.state!==g.state)&&l({...v,replace:g.replace,scroll:g.scroll}),x.length=0)}P(()=>{const{value:v,state:g}=s();ee(()=>{v!==O()&&M(()=>{E(v),j(g)})})});{let v=function(g){if(g.defaultPrevented||g.button!==0||g.metaKey||g.altKey||g.ctrlKey||g.shiftKey)return;const $=g.composedPath().find(b=>b instanceof Node&&b.nodeName.toUpperCase()==="A");if(!$||!$.hasAttribute("link"))return;const B=$.href;if($.target||!B&&!$.hasAttribute("state"))return;const W=($.getAttribute("rel")||"").split(/\s+/);if($.hasAttribute("download")||W&&W.includes("external"))return;const D=new URL(B);if(D.origin!==window.location.origin||u&&D.pathname&&!D.pathname.toLowerCase().startsWith(u.toLowerCase()))return;const U=i(D.pathname+D.search+D.hash),d=$.getAttribute("state");g.preventDefault(),N(y,U,{resolve:!1,replace:$.hasAttribute("replace"),scroll:!$.hasAttribute("noscroll"),state:d&&JSON.parse(d)})};var me=v;Xe(["click"]),document.addEventListener("click",v),ot(()=>document.removeEventListener("click",v))}return{base:y,out:c,location:p,isRouting:w,renderPath:a,parsePath:i,navigatorFactory:oe,beforeLeave:f}}const Tt=e=>{const{source:t,url:r,base:n,data:s,out:l}=e,o=t||gr(),i=_r(o,n,s);return S(mr.Provider,{value:i,get children(){return e.children}})},Ue=e=>{const t=Ct(()=>e.children);return er(e,{get children(){return t()}})};var Cr=T('
Loading courses...'),Sr=T('
Loading instances...'),kr=T('
👥
Total Users
📚
Active Courses
🖥️
Connected Instances
📈
Learning Progress

Recent Courses

Manage Courses

Active Instances

View All'),Er=T("
"),Ar=T('
📚
No courses yet

Create your first course to get started!'),Tr=T('

h

Course Resources

Users
Courses
API Calls