diff --git a/exam/dist/assets/index-CCI8Q-vE.js b/exam/dist/assets/index-CCI8Q-vE.js new file mode 100644 index 0000000..1e4e4ed --- /dev/null +++ b/exam/dist/assets/index-CCI8Q-vE.js @@ -0,0 +1,509 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();function Id(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var iu={exports:{}},Ho={},lu={exports:{}},M={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var $r=Symbol.for("react.element"),Od=Symbol.for("react.portal"),Dd=Symbol.for("react.fragment"),Ud=Symbol.for("react.strict_mode"),Bd=Symbol.for("react.profiler"),Ad=Symbol.for("react.provider"),Hd=Symbol.for("react.context"),Vd=Symbol.for("react.forward_ref"),Wd=Symbol.for("react.suspense"),Qd=Symbol.for("react.memo"),Kd=Symbol.for("react.lazy"),Ts=Symbol.iterator;function Gd(e){return e===null||typeof e!="object"?null:(e=Ts&&e[Ts]||e["@@iterator"],typeof e=="function"?e:null)}var su={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},au=Object.assign,uu={};function Dn(e,t,n){this.props=e,this.context=t,this.refs=uu,this.updater=n||su}Dn.prototype.isReactComponent={};Dn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Dn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function cu(){}cu.prototype=Dn.prototype;function Dl(e,t,n){this.props=e,this.context=t,this.refs=uu,this.updater=n||su}var Ul=Dl.prototype=new cu;Ul.constructor=Dl;au(Ul,Dn.prototype);Ul.isPureReactComponent=!0;var Is=Array.isArray,du=Object.prototype.hasOwnProperty,Bl={current:null},fu={key:!0,ref:!0,__self:!0,__source:!0};function pu(e,t,n){var r,o={},i=null,l=null;if(t!=null)for(r in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(i=""+t.key),t)du.call(t,r)&&!fu.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1(e.preventDefault(),e.returnValue=""),of=()=>{removeEventListener(vu,gu,{capture:!0})};function yu(e){let t=e.getLocation();const n=new Set;let r=[];const o=()=>{t=e.getLocation(),n.forEach(l=>l())},i=async(l,s)=>{var a;if(!((s==null?void 0:s.ignoreBlocker)??!1)&&typeof document<"u"&&r.length){for(const f of r)if(!await f()){(a=e.onBlocked)==null||a.call(e,o);return}}l()};return{get location(){return t},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,s,a)=>{s=bn(s),i(()=>{e.pushState(l,s),o()},a)},replace:(l,s,a)=>{s=bn(s),i(()=>{e.replaceState(l,s),o()},a)},go:(l,s)=>{i(()=>{e.go(l),o()},s)},back:l=>{i(()=>{e.back(),o()},l)},forward:l=>{i(()=>{e.forward(),o()},l)},createHref:l=>e.createHref(l),block:l=>(r.push(l),r.length===1&&addEventListener(vu,gu,{capture:!0}),()=>{r=r.filter(s=>s!==l),r.length||of()}),flush:()=>{var l;return(l=e.flush)==null?void 0:l.call(e)},destroy:()=>{var l;return(l=e.destroy)==null?void 0:l.call(e)},notify:o}}function bn(e){return e||(e={}),{...e,key:xu()}}function lf(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState,o=x=>x,i=()=>Ai(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);let l=i(),s;const a=()=>l;let u,f;const d=()=>{if(!u)return;(u.isPush?n:r).call(t.history,u.state,"",u.href),u=void 0,f=void 0,s=void 0},p=(x,k,m)=>{const h=o(k);f||(s=l),l=Ai(k,m),u={href:h,state:m,isPush:(u==null?void 0:u.isPush)||x==="push"},f||(f=Promise.resolve().then(()=>d()))},g=()=>{l=i(),y.notify()},y=yu({getLocation:a,pushState:(x,k)=>p("push",x,k),replaceState:(x,k)=>p("replace",x,k),back:()=>t.history.back(),forward:()=>t.history.forward(),go:x=>t.history.go(x),createHref:x=>o(x),flush:d,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Ds,g),t.removeEventListener(Us,g)},onBlocked:x=>{s&&l!==s&&(l=s,x())}});return t.addEventListener(Ds,g),t.addEventListener(Us,g),t.history.pushState=function(...x){const k=n.apply(t.history,x);return g(),k},t.history.replaceState=function(...x){const k=r.apply(t.history,x);return g(),k},y}function sf(e={initialEntries:["/"]}){const t=e.initialEntries;let n=e.initialIndex??t.length-1,r={key:xu()};return yu({getLocation:()=>Ai(t[n],r),pushState:(i,l)=>{r=l,t.splice,n{r=l,t[n]=i},back:()=>{r=bn(r),n=Math.max(n-1,0)},forward:()=>{r=bn(r),n=Math.min(n+1,t.length-1)},go:i=>{r=bn(r),n=Math.min(Math.max(n+i,0),t.length-1)},createHref:i=>i})}function Ai(e,t){const n=e.indexOf("#"),r=e.indexOf("?");return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{}}}function xu(){return(Math.random()+1).toString(36).substring(7)}var af="Invariant failed";function Se(e,t){if(!e)throw new Error(af)}const di=O.createContext(null);function wu(){return typeof document>"u"?di:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=di,di)}function Tt(e){const t=O.useContext(wu());return e==null||e.warn,t}var Su={exports:{}},ku={},Cu={exports:{}},Eu={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Pn=O;function uf(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var cf=typeof Object.is=="function"?Object.is:uf,df=Pn.useState,ff=Pn.useEffect,pf=Pn.useLayoutEffect,hf=Pn.useDebugValue;function mf(e,t){var n=t(),r=df({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return pf(function(){o.value=n,o.getSnapshot=t,fi(o)&&i({inst:o})},[e,n,t]),ff(function(){return fi(o)&&i({inst:o}),e(function(){fi(o)&&i({inst:o})})},[e]),hf(n),n}function fi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!cf(e,n)}catch{return!0}}function vf(e,t){return t()}var gf=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?vf:mf;Eu.useSyncExternalStore=Pn.useSyncExternalStore!==void 0?Pn.useSyncExternalStore:gf;Cu.exports=Eu;var yf=Cu.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Vo=O,xf=yf;function wf(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Sf=typeof Object.is=="function"?Object.is:wf,kf=xf.useSyncExternalStore,Cf=Vo.useRef,Ef=Vo.useEffect,_f=Vo.useMemo,jf=Vo.useDebugValue;ku.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var i=Cf(null);if(i.current===null){var l={hasValue:!1,value:null};i.current=l}else l=i.current;i=_f(function(){function a(g){if(!u){if(u=!0,f=g,g=r(g),o!==void 0&&l.hasValue){var y=l.value;if(o(y,g))return d=y}return d=g}if(y=d,Sf(f,g))return y;var x=r(g);return o!==void 0&&o(y,x)?y:(f=g,d=x)}var u=!1,f,d,p=n===void 0?null:n;return[function(){return a(t())},p===null?void 0:function(){return a(p())}]},[t,n,r,o]);var s=kf(e,i[0],i[1]);return Ef(function(){l.hasValue=!0,l.value=s},[s]),jf(s),s};Su.exports=ku;var Pf=Su.exports;class $f{constructor(t,n){this.listeners=new Set,this._batching=!1,this._flushing=0,this.subscribe=r=>{var o,i;this.listeners.add(r);const l=(i=(o=this.options)==null?void 0:o.onSubscribe)==null?void 0:i.call(o,r,this);return()=>{this.listeners.delete(r),l==null||l()}},this.setState=r=>{var o,i,l;const s=this.state;this.state=(o=this.options)!=null&&o.updateFn?this.options.updateFn(s)(r):r(s),(l=(i=this.options)==null?void 0:i.onUpdate)==null||l.call(i),this._flush()},this._flush=()=>{if(this._batching)return;const r=++this._flushing;this.listeners.forEach(o=>{this._flushing===r&&o()})},this.batch=r=>{if(this._batching)return r();this._batching=!0,r(),this._batching=!1,this._flush()},this.state=t,this.options=n}}function Rf(e,t=n=>n){return Pf.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,Lf)}function Lf(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r=0;r{t.substring(0,1)==="?"&&(t=t.substring(1));const n=Nf(t);for(const r in n){const o=n[r];if(typeof o=="string")try{n[r]=e(o)}catch{}}return n}}function If(e,t){function n(r){if(typeof r=="object"&&r!==null)try{return e(r)}catch{}else if(typeof r=="string"&&typeof t=="function")try{return t(r),e(r)}catch{}return r}return r=>{r={...r},Object.keys(r).forEach(i=>{const l=r[i];typeof l>"u"||l===void 0?delete r[i]:r[i]=n(l)});const o=zf(r).toString();return o?`?${o}`:""}}function mo(e){return e[e.length-1]}function Of(e){return typeof e=="function"}function Tr(e,t){return Of(e)?e(t):e}function er(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function Je(e,t){if(e===t)return e;const n=t,r=Hs(e)&&Hs(n);if(r||vo(e)&&vo(n)){const o=r?e:Object.keys(e),i=o.length,l=r?n:Object.keys(n),s=l.length,a=r?[]:{};let u=0;for(let f=0;f"u")return!0;const n=t.prototype;return!(!As(n)||!n.hasOwnProperty("isPrototypeOf"))}function As(e){return Object.prototype.toString.call(e)==="[object Object]"}function Hs(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function tr(e,t,n=!1){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(vo(e)&&vo(t)){const r=Object.keys(e).filter(i=>e[i]!==void 0),o=Object.keys(t).filter(i=>t[i]!==void 0);return!n&&r.length!==o.length?!1:!o.some(i=>!(i in e)||!tr(e[i],t[i],n))}return Array.isArray(e)&&Array.isArray(t)?e.length!==t.length?!1:!e.some((r,o)=>!tr(r,t[o],n)):!1}const pi=typeof window<"u"?O.useLayoutEffect:O.useEffect;function sn(e){let t,n;const r=new Promise((o,i)=>{t=o,n=i});return r.status="pending",r.resolve=o=>{r.status="resolved",r.value=o,t(o),e==null||e(o)},r.reject=o=>{r.status="rejected",n(o)},r}function Vs(e){const t=O.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function Et(e){return Wo(e.filter(Boolean).join("/"))}function Wo(e){return e.replace(/\/{2,}/g,"/")}function Hl(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Wt(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function Hi(e){return Wt(Hl(e))}function Df({basepath:e,base:t,to:n,trailingSlash:r="never"}){var o,i;t=t.replace(new RegExp(`^${e}`),"/"),n=n.replace(new RegExp(`^${e}`),"/");let l=$n(t);const s=$n(n);l.length>1&&((o=mo(l))==null?void 0:o.value)==="/"&&l.pop(),s.forEach((u,f)=>{u.value==="/"?f?f===s.length-1&&l.push(u):l=[u]:u.value===".."?l.pop():u.value==="."||l.push(u)}),l.length>1&&(((i=mo(l))==null?void 0:i.value)==="/"?r==="never"&&l.pop():r==="always"&&l.push({type:"pathname",value:"/"}));const a=Et([e,...l.map(u=>u.value)]);return Wo(a)}function $n(e){if(!e)return[];e=Wo(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:"pathname",value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>r==="$"||r==="*"?{type:"wildcard",value:r}:r.charAt(0)==="$"?{type:"param",value:r}:{type:"pathname",value:decodeURIComponent(r)})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:"pathname",value:"/"})),t}function hi({path:e,params:t,leaveWildcards:n,leaveParams:r}){const o=$n(e),i={};for(const[l,s]of Object.entries(t)){const a=typeof s=="string";["*","_splat"].includes(l)?i[l]=a?encodeURI(s):s:i[l]=a?encodeURIComponent(s):s}return Et(o.map(l=>{if(l.type==="wildcard"){const s=i._splat;return n?`${l.value}${s??""}`:s}if(l.type==="param"){if(r){const s=i[l.value];return`${l.value}${s??""}`}return i[l.value.substring(1)]??"undefined"}return l.value}))}function Ir(e,t,n){const r=Uf(e,t,n);if(!(n.to&&!r))return r??{}}function Ws(e,t){switch(!0){case e==="/":return t;case t===e:return"";case t.length{for(let a=0;a=o.length-1,p=a>=i.length-1;if(f){if(f.type==="wildcard"){if(u!=null&&u.value){const g=decodeURI(Et(o.slice(a).map(y=>y.value)));return l["*"]=g,l._splat=g,!0}return!1}if(f.type==="pathname"){if(f.value==="/"&&!(u!=null&&u.value))return!0;if(u){if(n.caseSensitive){if(f.value!==u.value)return!1}else if(f.value.toLowerCase()!==u.value.toLowerCase())return!1}}if(!u)return!1;if(f.type==="param"){if(u.value==="/")return!1;u.value.charAt(0)!=="$"&&(l[f.value.substring(1)]=decodeURIComponent(u.value))}}if(!d&&p)return l["**"]=Et(o.slice(a+1).map(g=>g.value)),!!n.fuzzy&&(f==null?void 0:f.value)!=="/"}return!0})()?l:void 0}function Bt(e){return!!(e!=null&&e.isRedirect)}function Qs(e){return!!(e!=null&&e.isRedirect)&&e.href}function Vl(e){const t=e.errorComponent??Qo;return c.jsx(Bf,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?O.createElement(t,{error:n,reset:r}):e.children})}class Bf extends O.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Qo({error:e}){const[t,n]=O.useState(!1);return c.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[c.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),c.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),c.jsx("div",{style:{height:".25rem"}}),t?c.jsx("div",{children:c.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?c.jsx("code",{children:e.message}):null})}):null]})}function ye(e){const t=Tt({warn:(e==null?void 0:e.router)===void 0});return Rf(((e==null?void 0:e.router)||t).__store,e==null?void 0:e.select)}function be(e){return!!(e!=null&&e.isNotFound)}function Af(e){const t=ye({select:n=>`not-found-${n.location.pathname}-${n.status}`});return c.jsx(Vl,{getResetKey:()=>t,onCatch:(n,r)=>{var o;if(be(n))(o=e.onCatch)==null||o.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;return(r=e.fallback)==null?void 0:r.call(e,n)},children:e.children})}function Hf(){return c.jsx("p",{children:"Not Found"})}const Vf=["component","errorComponent","pendingComponent","notFoundComponent"];function Wf(e){return new Qf(e)}class Qf{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.subscribers=new Set,this.startReactTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options;this.options={...this.options,...n},this.isServer=this.options.isServer??typeof document>"u",(!this.basepath||n.basepath&&n.basepath!==r.basepath)&&(n.basepath===void 0||n.basepath===""||n.basepath==="/"?this.basepath="/":this.basepath=`/${Hi(n.basepath)}`),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history??(this.isServer?sf({initialEntries:[this.basepath||"/"]}):lf()),this.latestLocation=this.parseLocation()),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),this.__store||(this.__store=new $f(Yf(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(o=>!["redirected"].includes(o.status))}}}))},this.buildRouteTree=()=>{this.routesById={},this.routesByPath={};const n=this.options.notFoundRoute;n&&(n.init({originalIndex:99999999999}),this.routesById[n.id]=n);const r=l=>{l.forEach((s,a)=>{s.init({originalIndex:a});const u=this.routesById[s.id];if(Se(!u,`Duplicate routes found with id: ${String(s.id)}`),this.routesById[s.id]=s,!s.isRoot&&s.path){const d=Wt(s.fullPath);(!this.routesByPath[d]||s.fullPath.endsWith("/"))&&(this.routesByPath[d]=s)}const f=s.children;f!=null&&f.length&&r(f)})};r([this.routeTree]);const o=[];Object.values(this.routesById).forEach((l,s)=>{var a;if(l.isRoot||!l.path)return;const u=Hl(l.fullPath),f=$n(u);for(;f.length>1&&((a=f[0])==null?void 0:a.value)==="/";)f.shift();const d=f.map(p=>p.value==="/"?.75:p.type==="param"?.5:p.type==="wildcard"?.25:1);o.push({child:l,trimmed:u,parsed:f,index:s,scores:d})}),this.flatRoutes=o.sort((l,s)=>{const a=Math.min(l.scores.length,s.scores.length);for(let u=0;us.parsed[u].value?1:-1;return l.index-s.index}).map((l,s)=>(l.child.rank=s,l.child))},this.subscribe=(n,r)=>{const o={eventType:n,fn:r};return this.subscribers.add(o),()=>{this.subscribers.delete(o)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=n=>{const r=({pathname:s,search:a,hash:u,state:f})=>{const d=this.options.parseSearch(a),p=this.options.stringifySearch(d);return{pathname:s,searchStr:p,search:Je(n==null?void 0:n.search,d),hash:u.split("#").reverse()[0]??"",href:`${s}${p}${u}`,state:Je(n==null?void 0:n.state,f)}},o=r(this.history.location),{__tempLocation:i,__tempKey:l}=o.state;if(i&&(!l||l===this.tempLocationKey)){const s=r(i);return s.state.key=o.state.key,delete s.state.__tempLocation,{...s,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>Df({basepath:this.basepath,base:n,to:Wo(r),trailingSlash:this.options.trailingSlash}),this.matchRoutes=(n,r,o)=>{let i={};const l=this.flatRoutes.find(g=>{const y=Ir(this.basepath,Wt(n),{to:g.fullPath,caseSensitive:g.options.caseSensitive??this.options.caseSensitive,fuzzy:!0});return y?(i=y,!0):!1});let s=l||this.routesById[ve];const a=[s];let u=!1;for((l?l.path!=="/"&&i["**"]:Wt(n))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):u=!0);s.parentRoute;)s=s.parentRoute,a.unshift(s);const f=(()=>{if(u){if(this.options.notFoundMode!=="root")for(let g=a.length-1;g>=0;g--){const y=a[g];if(y.children)return y.id}return ve}})(),d=a.map(g=>{var y;let x;const k=((y=g.options.params)==null?void 0:y.parse)??g.options.parseParams;if(k)try{const m=k(i);Object.assign(i,m)}catch(m){if(x=new Gf(m.message,{cause:m}),o!=null&&o.throwOnError)throw x;return x}}),p=[];return a.forEach((g,y)=>{var x,k,m,h,v,w,C,P,j,S;const N=p[y-1],[z,B]=(()=>{const R=(N==null?void 0:N.search)??r;try{const L=typeof g.options.validateSearch=="object"?g.options.validateSearch.parse:g.options.validateSearch,F=(L==null?void 0:L(R))??{};return[{...R,...F},void 0]}catch(L){const F=new Kf(L.message,{cause:L});if(o!=null&&o.throwOnError)throw F;return[R,F]}})(),W=((k=(x=g.options).loaderDeps)==null?void 0:k.call(x,{search:z}))??"",I=W?JSON.stringify(W):"",ee=hi({path:g.fullPath,params:i}),le=hi({path:g.id,params:i,leaveWildcards:!0})+I,G=this.getMatch(le),re=this.state.matches.find(R=>R.id===le)?"stay":"enter";let _;if(G)_={...G,cause:re,params:i};else{const R=g.options.loader||g.options.beforeLoad||g.lazyFn?"pending":"success";_={id:le,index:y,routeId:g.id,params:i,pathname:Et([this.basepath,ee]),updatedAt:Date.now(),search:{},searchError:void 0,status:R,isFetching:!1,error:void 0,paramsError:d[y],routeContext:void 0,context:void 0,abortController:new AbortController,fetchCount:0,cause:re,loaderDeps:W,invalid:!1,preload:!1,links:(h=(m=g.options).links)==null?void 0:h.call(m),scripts:(w=(v=g.options).scripts)==null?void 0:w.call(v),staticData:g.options.staticData||{},loadPromise:sn()}}_.status==="success"&&(_.meta=(P=(C=g.options).meta)==null?void 0:P.call(C,{matches:p,match:_,params:_.params,loaderData:_.loaderData}),_.headers=(S=(j=g.options).headers)==null?void 0:S.call(j,{loaderData:_.loaderData})),o!=null&&o.preload||(_.globalNotFound=f===g.id),_.search=Je(_.search,z),_.searchError=B,p.push(_)}),p},this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r.pendingTimeout))},this.cancelMatches=()=>{var n;(n=this.state.pendingMatches)==null||n.forEach(r=>{this.cancelMatch(r.id)})},this.buildLocation=n=>{const r=(i={},l)=>{var s,a,u;const f=i._fromLocation!=null?this.matchRoutes(i._fromLocation.pathname,i.fromSearch||i._fromLocation.search):this.state.matches,d=i.from!=null?f.find(I=>Ir(this.basepath,Wt(I.pathname),{to:i.from,caseSensitive:!1,fuzzy:!1})):void 0,p=(d==null?void 0:d.pathname)||this.latestLocation.pathname;Se(i.from==null||d!=null,"Could not find match for from: "+i.from);const g=((s=mo(f))==null?void 0:s.search)||this.latestLocation.search,y=l==null?void 0:l.filter(I=>f.find(ee=>ee.routeId===I.routeId)),x=this.routesById[(a=y==null?void 0:y.find(I=>I.pathname===p))==null?void 0:a.routeId];let k=i.to?this.resolvePathWithBase(p,`${i.to}`):this.resolvePathWithBase(p,(x==null?void 0:x.to)??p);const m={...(u=mo(f))==null?void 0:u.params};let h=(i.params??!0)===!0?m:{...m,...Tr(i.params,m)};Object.keys(h).length>0&&(l==null||l.map(I=>{var ee;const le=this.looseRoutesById[I.routeId];return((ee=le==null?void 0:le.options.params)==null?void 0:ee.stringify)??le.options.stringifyParams}).filter(Boolean).forEach(I=>{h={...h,...I(h)}})),k=hi({path:k,params:h??{},leaveWildcards:!1,leaveParams:n.leaveParams});const v=(y==null?void 0:y.map(I=>this.looseRoutesById[I.routeId].options.preSearchFilters??[]).flat().filter(Boolean))??[],w=(y==null?void 0:y.map(I=>this.looseRoutesById[I.routeId].options.postSearchFilters??[]).flat().filter(Boolean))??[],C=v.length?v.reduce((I,ee)=>ee(I),g):g,P=i.search===!0?C:i.search?Tr(i.search,C):v.length?C:{},j=w.length?w.reduce((I,ee)=>ee(I),P):P,S=Je(g,j),N=this.options.stringifySearch(S),z=i.hash===!0?this.latestLocation.hash:i.hash?Tr(i.hash,this.latestLocation.hash):void 0,B=z?`#${z}`:"";let W=i.state===!0?this.latestLocation.state:i.state?Tr(i.state,this.latestLocation.state):{};return W=Je(this.latestLocation.state,W),{pathname:k,search:S,searchStr:N,state:W,hash:z??"",href:`${k}${N}${B}`,unmaskOnReload:i.unmaskOnReload}},o=(i={},l)=>{var s;const a=r(i);let u=l?r(l):void 0;if(!u){let y={};const x=(s=this.options.routeMasks)==null?void 0:s.find(k=>{const m=Ir(this.basepath,a.pathname,{to:k.from,caseSensitive:!1,fuzzy:!1});return m?(y=m,!0):!1});if(x){const{from:k,...m}=x;l={...er(n,["from"]),...m,params:y},u=r(l)}}const f=this.matchRoutes(a.pathname,a.search),d=u?this.matchRoutes(u.pathname,u.search):void 0,p=u?r(l,d):void 0,g=r(i,f);return p&&(g.maskedLocation=p),g};return n.mask?o(n,{...er(n,["from"]),...n.mask}):o(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...o})=>{const i=()=>{o.state.key=this.latestLocation.state.key;const a=tr(o.state,this.latestLocation.state);return delete o.state.key,a},l=this.latestLocation.href===o.href,s=this.commitLocationPromise;if(this.commitLocationPromise=sn(()=>{s==null||s.resolve()}),l&&i())this.load();else{let{maskedLocation:a,...u}=o;a&&(u={...a,state:{...a.state,__tempKey:void 0,__tempLocation:{...u,search:u.searchStr,state:{...u.state,__tempKey:void 0,__tempLocation:void 0,key:void 0}}}},(u.unmaskOnReload??this.options.unmaskOnReload??!1)&&(u.state.__tempKey=this.tempLocationKey)),this.shouldViewTransition=n,this.history[o.replace?"replace":"push"](u.href,u.state,{ignoreBlocker:r})}return this.resetNextScroll=o.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,viewTransition:o,ignoreBlocker:i,...l}={})=>{const s=this.buildLocation(l);return this.commitLocation({...s,viewTransition:o,replace:n,resetScroll:r,ignoreBlocker:i})},this.navigate=({from:n,to:r,__isRedirect:o,...i})=>{const l=String(r);let s;try{new URL(`${l}`),s=!0}catch{}return Se(!s),this.buildAndCommitLocation({...i,from:n,to:r})},this.load=async()=>{this.latestLocation=this.parseLocation(this.latestLocation),this.__store.setState(i=>({...i,loadedAt:Date.now()}));let n,r;const o=new Promise(i=>{this.startReactTransition(async()=>{var l;try{const s=this.latestLocation,a=this.state.resolvedLocation,u=a.href!==s.href;this.cancelMatches();let f;this.__store.batch(()=>{f=this.matchRoutes(s.pathname,s.search),this.__store.setState(d=>({...d,status:"pending",isLoading:!0,location:s,pendingMatches:f,cachedMatches:d.cachedMatches.filter(p=>!f.find(g=>g.id===p.id))}))}),this.state.redirect||this.emit({type:"onBeforeNavigate",fromLocation:a,toLocation:s,pathChanged:u}),this.emit({type:"onBeforeLoad",fromLocation:a,toLocation:s,pathChanged:u}),await this.loadMatches({matches:f,location:s,onReady:async()=>{this.startViewTransition(async()=>{let d,p,g;this.__store.batch(()=>{this.__store.setState(y=>{const x=y.matches,k=y.pendingMatches||y.matches;return d=x.filter(m=>!k.find(h=>h.id===m.id)),p=k.filter(m=>!x.find(h=>h.id===m.id)),g=x.filter(m=>k.find(h=>h.id===m.id)),{...y,isLoading:!1,matches:k,pendingMatches:void 0,cachedMatches:[...y.cachedMatches,...d.filter(m=>m.status!=="error")]}}),this.cleanCache()}),[[d,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([y,x])=>{y.forEach(k=>{var m,h;(h=(m=this.looseRoutesById[k.routeId].options)[x])==null||h.call(m,k)})})})}})}catch(s){Qs(s)?(n=s,this.isServer||this.navigate({...s,replace:!0,__isRedirect:!0})):be(s)&&(r=s),this.__store.setState(a=>({...a,statusCode:n?n.statusCode:r?404:a.matches.some(u=>u.status==="error")?500:200,redirect:n}))}this.latestLoadPromise===o&&((l=this.commitLocationPromise)==null||l.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),i()})});for(this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise},this.startViewTransition=n=>{var r,o;const i=this.shouldViewTransition??this.options.defaultViewTransition;delete this.shouldViewTransition,(o=(r=i&&typeof document<"u"?document:void 0)==null?void 0:r.startViewTransition)!=null&&o.call(r,n)||n()},this.updateMatch=(n,r)=>{var o;let i;const l=(o=this.state.pendingMatches)==null?void 0:o.find(u=>u.id===n),s=this.state.matches.find(u=>u.id===n),a=l?"pendingMatches":s?"matches":"cachedMatches";return this.__store.setState(u=>{var f;return{...u,[a]:(f=u[a])==null?void 0:f.map(d=>d.id===n?i=r(d):d)}}),i},this.getMatch=n=>[...this.state.cachedMatches,...this.state.pendingMatches??[],...this.state.matches].find(r=>r.id===n),this.loadMatches=async({location:n,matches:r,preload:o,onReady:i,updateMatch:l=this.updateMatch})=>{let s,a=!1;const u=async()=>{a||(a=!0,await(i==null?void 0:i()))};!this.isServer&&!this.state.matches.length&&u();const f=(d,p)=>{var g,y,x;if(Qs(p))throw p;if(Bt(p)||be(p)){if(l(d.id,k=>({...k,status:Bt(p)?"redirected":be(p)?"notFound":"error",isFetching:!1,error:p,beforeLoadPromise:void 0,loaderPromise:void 0})),p.routeId||(p.routeId=d.routeId),(g=d.beforeLoadPromise)==null||g.resolve(),(y=d.loaderPromise)==null||y.resolve(),(x=d.loadPromise)==null||x.resolve(),Bt(p))throw a=!0,p=this.resolveRedirect({...p,_fromLocation:n}),p;if(be(p))throw this._handleNotFound(r,p,{updateMatch:l}),p}};try{await new Promise((d,p)=>{(async()=>{var g,y,x;try{const k=(v,w,C)=>{var P,j;const{id:S,routeId:N}=r[v],z=this.looseRoutesById[N];if(w instanceof Promise)throw w;w.routerCode=C,s=s??v,f(this.getMatch(S),w);try{(j=(P=z.options).onError)==null||j.call(P,w)}catch(B){w=B,f(this.getMatch(S),w)}l(S,B=>{var W;return(W=B.beforeLoadPromise)==null||W.resolve(),{...B,error:w,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController,beforeLoadPromise:void 0}})};for(const[v,{id:w,routeId:C}]of r.entries()){const P=this.getMatch(w);if(P.beforeLoadPromise||P.loaderPromise)await P.beforeLoadPromise;else{try{l(w,A=>({...A,loadPromise:sn(()=>{var se;(se=A.loadPromise)==null||se.resolve()}),beforeLoadPromise:sn()}));const j=this.looseRoutesById[C],S=new AbortController,N=(g=r[v-1])==null?void 0:g.id,z=()=>N?this.getMatch(N).context??this.options.context??{}:this.options.context??{},B=j.options.pendingMs??this.options.defaultPendingMs,W=!!(i&&!this.isServer&&!o&&(j.options.loader||j.options.beforeLoad)&&typeof B=="number"&&B!==1/0&&(j.options.pendingComponent??this.options.defaultPendingComponent));let I;W&&(I=setTimeout(()=>{try{u()}catch{}},B));const{paramsError:ee,searchError:le}=this.getMatch(w);ee&&k(v,ee,"PARSE_PARAMS"),le&&k(v,le,"VALIDATE_SEARCH");const G=z();l(w,A=>({...A,isFetching:"beforeLoad",fetchCount:A.fetchCount+1,routeContext:Je(A.routeContext,G),context:Je(A.context,G),abortController:S,pendingTimeout:I}));const{search:re,params:_,routeContext:R,cause:L}=this.getMatch(w),F={search:re,abortController:S,params:_,preload:!!o,context:R,location:n,navigate:A=>this.navigate({...A,_fromLocation:n}),buildLocation:this.buildLocation,cause:o?"preload":L},D=await((x=(y=j.options).beforeLoad)==null?void 0:x.call(y,F))??{};(Bt(D)||be(D))&&k(v,D,"BEFORE_LOAD"),l(w,A=>{const se={...A.routeContext,...D};return{...A,routeContext:Je(A.routeContext,se),context:Je(A.context,se),abortController:S}})}catch(j){k(v,j,"BEFORE_LOAD")}l(w,j=>{var S;return(S=j.beforeLoadPromise)==null||S.resolve(),{...j,beforeLoadPromise:void 0,isFetching:!1}})}}const m=r.slice(0,s),h=[];m.forEach(({id:v,routeId:w},C)=>{h.push((async()=>{const{loaderPromise:P}=this.getMatch(v);if(P)await P;else{const j=h[C-1],S=this.looseRoutesById[w],N=()=>{const{params:R,loaderDeps:L,abortController:F,context:D,cause:A}=this.getMatch(v);return{params:R,deps:L,preload:!!o,parentMatchPromise:j,abortController:F,context:D,location:n,navigate:se=>this.navigate({...se,_fromLocation:n}),cause:o?"preload":A,route:S}},z=Date.now()-this.getMatch(v).updatedAt,B=o?S.options.preloadStaleTime??this.options.defaultPreloadStaleTime??3e4:S.options.staleTime??this.options.defaultStaleTime??0,W=S.options.shouldReload,I=typeof W=="function"?W(N()):W;l(v,R=>({...R,loaderPromise:sn(),preload:!!o&&!this.state.matches.find(L=>L.id===v)}));const ee=async()=>{var R,L,F,D,A,se,rn,Xe;try{const rt=async()=>{const vt=this.getMatch(v);vt.minPendingPromise&&await vt.minPendingPromise};try{S._lazyPromise=S._lazyPromise||(S.lazyFn?S.lazyFn().then(Ut=>{Object.assign(S.options,Ut.options)}):Promise.resolve());const vt=this.getMatch(v).componentsPromise||S._lazyPromise.then(()=>Promise.all(Vf.map(async Ut=>{const ui=S.options[Ut];ui!=null&&ui.preload&&await ui.preload()})));l(v,Ut=>({...Ut,isFetching:"loader",componentsPromise:vt})),await S._lazyPromise;let ot=await((L=(R=S.options).loader)==null?void 0:L.call(R,N()));this.serializeLoaderData&&(ot=this.serializeLoaderData(ot,{router:this,match:this.getMatch(v)})),f(this.getMatch(v),ot),await rt();const on=(D=(F=S.options).meta)==null?void 0:D.call(F,{matches:r,match:this.getMatch(v),params:this.getMatch(v).params,loaderData:ot}),Td=(se=(A=S.options).headers)==null?void 0:se.call(A,{loaderData:ot});l(v,Ut=>({...Ut,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),loaderData:ot,meta:on,headers:Td}))}catch(vt){let ot=vt;await rt(),f(this.getMatch(v),vt);try{(Xe=(rn=S.options).onError)==null||Xe.call(rn,vt)}catch(on){ot=on,f(this.getMatch(v),on)}l(v,on=>({...on,error:ot,status:"error",isFetching:!1}))}await this.getMatch(v).componentsPromise}catch(rt){f(this.getMatch(v),rt)}},{status:le,invalid:G}=this.getMatch(v);le==="success"&&(G||(I??z>B))?(async()=>{try{await ee()}catch{}})():le!=="success"&&await ee();const{loaderPromise:re,loadPromise:_}=this.getMatch(v);re==null||re.resolve(),_==null||_.resolve()}l(v,j=>({...j,isFetching:!1,loaderPromise:void 0}))})())}),await Promise.all(h),d()}catch(k){p(k)}})()}),await u()}catch(d){if(Bt(d)||be(d))throw be(d)&&!o&&await u(),d}return r},this.invalidate=()=>{const n=r=>({...r,invalid:!0,...r.status==="error"?{status:"pending",error:void 0}:{}});return this.__store.setState(r=>{var o;return{...r,matches:r.matches.map(n),cachedMatches:r.cachedMatches.map(n),pendingMatches:(o=r.pendingMatches)==null?void 0:o.map(n)}}),this.load()},this.resolveRedirect=n=>{const r=n;return r.href||(r.href=this.buildLocation(r).href),r},this.cleanCache=()=>{this.__store.setState(n=>({...n,cachedMatches:n.cachedMatches.filter(r=>{const o=this.looseRoutesById[r.routeId];if(!o.options.loader)return!1;const i=(r.preload?o.options.preloadGcTime??this.options.defaultPreloadGcTime:o.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status!=="error"&&Date.now()-r.updatedAt{const r=this.buildLocation(n);let o=this.matchRoutes(r.pathname,r.search,{throwOnError:!0,preload:!0});const i=Object.fromEntries([...this.state.matches,...this.state.pendingMatches??[],...this.state.cachedMatches].map(s=>[s.id,!0]));this.__store.batch(()=>{o.forEach(s=>{i[s.id]||this.__store.setState(a=>({...a,cachedMatches:[...a.cachedMatches,s]}))})});const l=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(s=>s.id));try{return o=await this.loadMatches({matches:o,location:r,preload:!0,updateMatch:(s,a)=>{l.has(s)?o=o.map(u=>u.id===s?a(u):u):this.updateMatch(s,a)}}),o}catch(s){if(Bt(s))return await this.preloadRoute({...s,_fromLocation:r});console.error(s);return}},this.matchRoute=(n,r)=>{const o={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},i=this.buildLocation(o);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const s=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation,a=Ir(this.basepath,s.pathname,{...r,to:i.pathname});return!a||n.params&&!tr(a,n.params,!0)?!1:a&&((r==null?void 0:r.includeSearch)??!0)?tr(s.search,i.search,!0)?a:!1:a},this.dehydrate=()=>{var n;const r=((n=this.options.errorSerializer)==null?void 0:n.serialize)??Xf;return{state:{dehydratedMatches:this.state.matches.map(o=>({...er(o,["id","status","updatedAt"]),error:o.error?{data:r(o.error),__isServerError:!0}:void 0}))},manifest:this.manifest}},this.hydrate=()=>{var n,r,o;let i;typeof document<"u"&&(i=this.options.transformer.parse((n=window.__TSR__)==null?void 0:n.dehydrated)),Se(i),this.dehydratedData=i.payload,(o=(r=this.options).hydrate)==null||o.call(r,i.payload);const l=i.router.state,s=this.matchRoutes(this.state.location.pathname,this.state.location.search).map(a=>{const u=l.dehydratedMatches.find(f=>f.id===a.id);return Se(u,`Could not find a client-side match for dehydrated match with id: ${a.id}!`),{...a,...u}});this.__store.setState(a=>({...a,matches:s})),this.manifest=i.router.manifest},this.injectedHtml=[],this.injectHtml=n=>{const r=()=>(this.injectedHtml=this.injectedHtml.filter(o=>o!==r),n);this.injectedHtml.push(r)},this.streamedKeys=new Set,this.getStreamedValue=n=>{var r;if(this.isServer)return;const o=(r=window.__TSR__)==null?void 0:r.streamedValues[n];if(o)return o.parsed||(o.parsed=this.options.transformer.parse(o.value)),o.parsed},this.streamValue=(n,r)=>{var o;this.streamedKeys.has(n),this.streamedKeys.add(n);const i=`__TSR__.streamedValues['${n}'] = { value: ${(o=this.serializer)==null?void 0:o.call(this,this.options.transformer.stringify(r))}}`;this.injectHtml(` - +
diff --git a/exam/react/package.json b/exam/react/package.json index 63c7e26..4b41e7e 100644 --- a/exam/react/package.json +++ b/exam/react/package.json @@ -10,10 +10,16 @@ "preview": "vite preview" }, "dependencies": { + "@emotion/react": "^11.13.0", + "@emotion/styled": "^11.13.0", + "@mui/material": "^5.16.4", + "@tanstack/react-router": "^1.45.8", "react": "^18.3.1", "react-dom": "^18.3.1" }, "devDependencies": { + "@tanstack/router-devtools": "^1.45.8", + "@tanstack/router-plugin": "^1.45.8", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@typescript-eslint/eslint-plugin": "^7.15.0", diff --git a/exam/react/pnpm-lock.yaml b/exam/react/pnpm-lock.yaml index c678990..600f186 100644 --- a/exam/react/pnpm-lock.yaml +++ b/exam/react/pnpm-lock.yaml @@ -8,6 +8,18 @@ importers: .: dependencies: + '@emotion/react': + specifier: ^11.13.0 + version: 11.13.0(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': + specifier: ^11.13.0 + version: 11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/material': + specifier: ^5.16.4 + version: 5.16.4(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-router': + specifier: ^1.45.8 + version: 1.45.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -15,6 +27,12 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) devDependencies: + '@tanstack/router-devtools': + specifier: ^1.45.8 + version: 1.45.8(@tanstack/react-router@1.45.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/router-plugin': + specifier: ^1.45.8 + version: 1.45.8(vite@5.3.4) '@types/react': specifier: ^18.3.3 version: 18.3.3 @@ -137,6 +155,18 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.24.7': + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.24.7': resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} engines: {node: '>=6.9.0'} @@ -149,6 +179,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/runtime@7.24.8': + resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.24.7': resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} @@ -161,6 +195,60 @@ packages: resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} engines: {node: '>=6.9.0'} + '@emotion/babel-plugin@11.12.0': + resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} + + '@emotion/cache@11.13.0': + resolution: {integrity: sha512-hPV345J/tH0Cwk2wnU/3PBzORQ9HeX+kQSbwI+jslzpRCHE6fSGTohswksA/Ensr8znPzwfzKZCmAM9Lmlhp7g==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/is-prop-valid@1.3.0': + resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.13.0': + resolution: {integrity: sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.0': + resolution: {integrity: sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.13.0': + resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/unitless@0.9.0': + resolution: {integrity: sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.0': + resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -348,6 +436,83 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@mui/core-downloads-tracker@5.16.4': + resolution: {integrity: sha512-rNdHXhclwjEZnK+//3SR43YRx0VtjdHnUFhMSGYmAMJve+KiwEja/41EYh8V3pZKqF2geKyfcFUenTfDTYUR4w==} + + '@mui/material@5.16.4': + resolution: {integrity: sha512-dBnh3/zRYgEVIS3OE4oTbujse3gifA0qLMmuUk13ywsDCbngJsdgwW5LuYeiT5pfA8PGPGSqM7mxNytYXgiMCw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/private-theming@5.16.4': + resolution: {integrity: sha512-ZsAm8cq31SJ37SVWLRlu02v9SRthxnfQofaiv14L5Bht51B0dz6yQEoVU/V8UduZDCCIrWkBHuReVfKhE/UuXA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/styled-engine@5.16.4': + resolution: {integrity: sha512-0+mnkf+UiAmTVB8PZFqOhqf729Yh0Cxq29/5cA3VAyDVTRIUUQ8FXQhiAhUIbijFmM72rY80ahFPXIm4WDbzcA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + + '@mui/system@5.16.4': + resolution: {integrity: sha512-ET1Ujl2/8hbsD611/mqUuNArMCGv/fIWO/f8B3ZqF5iyPHM2aS74vhTNyjytncc4i6dYwGxNk+tLa7GwjNS0/w==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/types@7.2.15': + resolution: {integrity: sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/utils@5.16.4': + resolution: {integrity: sha512-nlppYwq10TBIFqp7qxY0SvbACOXeOjeVL3pOcDsK0FT8XjrEXh9/+lkg8AEIzD16z7YfiJDQjaJG2OLkE7BxNg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -360,6 +525,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@rollup/rollup-android-arm-eabi@4.18.1': resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] @@ -440,6 +608,53 @@ packages: cpu: [x64] os: [win32] + '@tanstack/history@1.45.3': + resolution: {integrity: sha512-n4XXInV9irIq0obRvINIkESkGk280Q+xkIIbswmM0z9nAu2wsIRZNvlmPrtYh6bgNWtItOWWoihFUjLTW8g6Jg==} + engines: {node: '>=12'} + + '@tanstack/react-router@1.45.8': + resolution: {integrity: sha512-hLJOKDK5lGHteoMjpF6COQrlhsl4C6GyBCzmSJHFcoh26GBa7tv/94li0H1a3deJpzMNpSvmSXrQDpxj9h9bNA==} + engines: {node: '>=12'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + + '@tanstack/react-store@0.5.5': + resolution: {integrity: sha512-1orYXGatBqXCYKuroFwV8Ll/6aDa5E3pU6RR4h7RvRk7TmxF1+zLCsWALZaeijXkySNMGmvawSbUXRypivg2XA==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + + '@tanstack/router-devtools@1.45.8': + resolution: {integrity: sha512-1Wlhg1NhVBV3g1naDR7kaUAj7PAqnrUUgtd13Fq4o6o8/tKaWi6MIL24fd1urnDfnYYAB5BC9Jh40iZlL+Hzeg==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/react-router': ^1.45.8 + react: '>=18' + react-dom: '>=18' + + '@tanstack/router-generator@1.45.7': + resolution: {integrity: sha512-5B756YXpZO0/yr7ahsxXoBOCpqroLx/D3l6X9qPlZaP0FVHVmTR6ZKGRX6zzuAxns/VO+sxnQso4AYLdDyZ9GA==} + engines: {node: '>=12'} + + '@tanstack/router-plugin@1.45.8': + resolution: {integrity: sha512-mncDu49pBEivRHWVOdCl9fHwtyUT3QLZ0X+gYIsm7o6LhT6i7BzC++BZqOOSrjDcyXy3dx2Nf/FMrB06qlXx9Q==} + engines: {node: '>=12'} + peerDependencies: + '@rsbuild/core': '>=0.7.9' + vite: '>=5.0.13' + webpack: '>=5.92.0' + peerDependenciesMeta: + '@rsbuild/core': + optional: true + vite: + optional: true + webpack: + optional: true + + '@tanstack/store@0.5.5': + resolution: {integrity: sha512-EOSrgdDAJExbvRZEQ/Xhh9iZchXpMN+ga1Bnk8Nmygzs8TfiE6hbzThF+Pr2G19uHL6+DTDTHhJ8VQiOd7l4tA==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -455,12 +670,18 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + '@types/react-transition-group@4.4.10': + resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} + '@types/react@18.3.3': resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} @@ -556,6 +777,10 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -563,9 +788,20 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + babel-dead-code-elimination@1.0.6: + resolution: {integrity: sha512-JxFi9qyRJpN0LjEbbjbN8g0ux71Qppn9R8Qe3k6QzHg2CaKsbUQtbn307LQGiDLGjV6JCtEFqfxzVig9MyDCHQ==} + + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -596,6 +832,14 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -612,9 +856,16 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -642,9 +893,15 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + electron-to-chromium@1.4.830: resolution: {integrity: sha512-TrPKKH20HeN0J1LHzsYLs2qwXrp8TF4nHdu4sq61ozGbzMpWhI7iIOPYPPkxeq1azMT9PZ8enPFcftbs/Npcjg==} + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -730,6 +987,9 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -749,6 +1009,9 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -777,6 +1040,11 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + goober@2.1.14: + resolution: {integrity: sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==} + peerDependencies: + csstype: ^3.0.10 + graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -788,6 +1056,13 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -807,6 +1082,17 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -841,6 +1127,9 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -859,6 +1148,9 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -902,6 +1194,14 @@ packages: node-releases@2.0.17: resolution: {integrity: sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -921,6 +1221,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -933,6 +1237,9 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -970,6 +1277,9 @@ packages: engines: {node: '>=14'} hasBin: true + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -982,18 +1292,41 @@ packages: peerDependencies: react: ^18.3.1 + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -1039,6 +1372,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1047,6 +1384,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -1055,9 +1395,19 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -1085,6 +1435,10 @@ packages: engines: {node: '>=14.17'} hasBin: true + unplugin@1.11.0: + resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} + engines: {node: '>=14.0.0'} + update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -1094,6 +1448,11 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-sync-external-store@1.2.2: + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + vite@5.3.4: resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1122,6 +1481,13 @@ packages: terser: optional: true + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1137,10 +1503,17 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + snapshots: '@ampproject/remapping@2.3.0': @@ -1256,6 +1629,16 @@ snapshots: dependencies: '@babel/types': 7.24.9 + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': + dependencies: + '@babel/core': 7.24.9 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.9)': dependencies: '@babel/core': 7.24.9 @@ -1266,6 +1649,10 @@ snapshots: '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.8 + '@babel/runtime@7.24.8': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 @@ -1293,6 +1680,89 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@emotion/babel-plugin@11.12.0': + dependencies: + '@babel/helper-module-imports': 7.24.7 + '@babel/runtime': 7.24.8 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.0 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.13.0': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.0 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@1.3.0': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@emotion/babel-plugin': 11.12.0 + '@emotion/cache': 11.13.0 + '@emotion/serialize': 1.3.0 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.0 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.0': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.9.0 + '@emotion/utils': 1.4.0 + csstype: 3.1.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@emotion/babel-plugin': 11.12.0 + '@emotion/is-prop-valid': 1.3.0 + '@emotion/react': 11.13.0(@types/react@18.3.3)(react@18.3.1) + '@emotion/serialize': 1.3.0 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color + + '@emotion/unitless@0.9.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.0': {} + + '@emotion/weak-memoize@0.4.0': {} + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -1414,6 +1884,80 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@mui/core-downloads-tracker@5.16.4': {} + + '@mui/material@5.16.4(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@mui/core-downloads-tracker': 5.16.4 + '@mui/system': 5.16.4(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.15(@types/react@18.3.3) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.10 + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.13.0(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + + '@mui/private-theming@5.16.4(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + + '@mui/styled-engine@5.16.4(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@emotion/cache': 11.13.0 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.0(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + + '@mui/system@5.16.4(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@mui/private-theming': 5.16.4(@types/react@18.3.3)(react@18.3.1) + '@mui/styled-engine': 5.16.4(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.15(@types/react@18.3.3) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.0(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + + '@mui/types@7.2.15(@types/react@18.3.3)': + optionalDependencies: + '@types/react': 18.3.3 + + '@mui/utils@5.16.4(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@types/prop-types': 15.7.12 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1426,6 +1970,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@popperjs/core@2.11.8': {} + '@rollup/rollup-android-arm-eabi@4.18.1': optional: true @@ -1474,6 +2020,65 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true + '@tanstack/history@1.45.3': {} + + '@tanstack/react-router@1.45.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/history': 1.45.3 + '@tanstack/react-store': 0.5.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/react-store@0.5.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/store': 0.5.5 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.2.2(react@18.3.1) + + '@tanstack/router-devtools@1.45.8(@tanstack/react-router@1.45.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/react-router': 1.45.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 2.1.1 + goober: 2.1.14(csstype@3.1.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - csstype + + '@tanstack/router-generator@1.45.7': + dependencies: + prettier: 3.3.3 + zod: 3.23.8 + + '@tanstack/router-plugin@1.45.8(vite@5.3.4)': + dependencies: + '@babel/core': 7.24.9 + '@babel/generator': 7.24.10 + '@babel/parser': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + '@tanstack/router-generator': 1.45.7 + '@types/babel__core': 7.20.5 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + babel-dead-code-elimination: 1.0.6 + chokidar: 3.6.0 + unplugin: 1.11.0 + zod: 3.23.8 + optionalDependencies: + vite: 5.3.4 + transitivePeerDependencies: + - supports-color + + '@tanstack/store@0.5.5': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.24.8 @@ -1497,12 +2102,18 @@ snapshots: '@types/estree@1.0.5': {} + '@types/parse-json@4.0.2': {} + '@types/prop-types@15.7.12': {} '@types/react-dom@18.3.0': dependencies: '@types/react': 18.3.3 + '@types/react-transition-group@4.4.10': + dependencies: + '@types/react': 18.3.3 + '@types/react@18.3.3': dependencies: '@types/prop-types': 15.7.12 @@ -1625,12 +2236,34 @@ snapshots: dependencies: color-convert: 2.0.1 + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + argparse@2.0.1: {} array-union@2.1.0: {} + babel-dead-code-elimination@1.0.6: + dependencies: + '@babel/core': 7.24.9 + '@babel/parser': 7.24.8 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 + transitivePeerDependencies: + - supports-color + + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.24.8 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + balanced-match@1.0.2: {} + binary-extensions@2.3.0: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -1666,6 +2299,20 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + clsx@2.1.1: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -1680,8 +2327,18 @@ snapshots: concat-map@0.0.1: {} + convert-source-map@1.9.0: {} + convert-source-map@2.0.0: {} + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -1704,8 +2361,17 @@ snapshots: dependencies: esutils: 2.0.3 + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.24.8 + csstype: 3.1.3 + electron-to-chromium@1.4.830: {} + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -1840,6 +2506,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-root@1.1.0: {} + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -1858,6 +2526,8 @@ snapshots: fsevents@2.3.3: optional: true + function-bind@1.1.2: {} + gensync@1.0.0-beta.2: {} glob-parent@5.1.2: @@ -1892,12 +2562,24 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + goober@2.1.14(csstype@3.1.3): + dependencies: + csstype: 3.1.3 + graphemer@1.4.0: {} has-flag@3.0.0: {} has-flag@4.0.0: {} + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + ignore@5.3.1: {} import-fresh@3.3.0: @@ -1914,6 +2596,16 @@ snapshots: inherits@2.0.4: {} + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.0: + dependencies: + hasown: 2.0.2 + is-extglob@2.1.1: {} is-glob@4.0.3: @@ -1936,6 +2628,8 @@ snapshots: json-buffer@3.0.1: {} + json-parse-even-better-errors@2.3.1: {} + json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -1951,6 +2645,8 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lines-and-columns@1.2.4: {} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -1988,6 +2684,10 @@ snapshots: node-releases@2.0.17: {} + normalize-path@3.0.0: {} + + object-assign@4.1.1: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -2013,12 +2713,21 @@ snapshots: dependencies: callsites: 3.1.0 + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} path-key@3.1.1: {} + path-parse@1.0.7: {} + path-type@4.0.0: {} picocolors@1.0.1: {} @@ -2040,6 +2749,12 @@ snapshots: prettier@3.3.3: {} + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + punycode@2.3.1: {} queue-microtask@1.2.3: {} @@ -2050,14 +2765,39 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-is@16.13.1: {} + + react-is@18.3.1: {} + react-refresh@0.14.2: {} + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.24.8 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react@18.3.1: dependencies: loose-envify: 1.4.0 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + regenerator-runtime@0.14.1: {} + resolve-from@4.0.0: {} + resolve@1.22.8: + dependencies: + is-core-module: 2.15.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + reusify@1.0.4: {} rimraf@3.0.2: @@ -2108,12 +2848,16 @@ snapshots: source-map-js@1.2.0: {} + source-map@0.5.7: {} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 strip-json-comments@3.1.1: {} + stylis@4.2.0: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -2122,8 +2866,14 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-preserve-symlinks-flag@1.0.0: {} + text-table@0.2.0: {} + tiny-invariant@1.3.3: {} + + tiny-warning@1.0.3: {} + to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -2142,6 +2892,13 @@ snapshots: typescript@5.5.3: {} + unplugin@1.11.0: + dependencies: + acorn: 8.12.1 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.2 + update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: browserslist: 4.23.2 @@ -2152,6 +2909,10 @@ snapshots: dependencies: punycode: 2.3.1 + use-sync-external-store@1.2.2(react@18.3.1): + dependencies: + react: 18.3.1 + vite@5.3.4: dependencies: esbuild: 0.21.5 @@ -2160,6 +2921,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.6.2: {} + which@2.0.2: dependencies: isexe: 2.0.0 @@ -2170,4 +2935,8 @@ snapshots: yallist@3.1.1: {} + yaml@1.10.2: {} + yocto-queue@0.1.0: {} + + zod@3.23.8: {} diff --git a/exam/react/src/App.css b/exam/react/src/App.css deleted file mode 100644 index b9d355d..0000000 --- a/exam/react/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} - -.card { - padding: 2em; -} - -.read-the-docs { - color: #888; -} diff --git a/exam/react/src/App.tsx b/exam/react/src/App.tsx deleted file mode 100644 index afe48ac..0000000 --- a/exam/react/src/App.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - -function App() { - const [count, setCount] = useState(0) - - return ( - <> - -

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- - ) -} - -export default App diff --git a/exam/react/src/assets/react.svg b/exam/react/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/exam/react/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/exam/react/src/index.css b/exam/react/src/index.css deleted file mode 100644 index 6119ad9..0000000 --- a/exam/react/src/index.css +++ /dev/null @@ -1,68 +0,0 @@ -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/exam/react/src/main.tsx b/exam/react/src/main.tsx index 3d7150d..a38c8a2 100644 --- a/exam/react/src/main.tsx +++ b/exam/react/src/main.tsx @@ -1,10 +1,27 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App.tsx' -import './index.css' +import { RouterProvider, createRouter } from '@tanstack/react-router'; +import { StrictMode } from 'react'; +import ReactDOM from 'react-dom/client'; -ReactDOM.createRoot(document.getElementById('root')!).render( - - - , -) +// Import the generated route tree +import { routeTree } from './routeTree.gen'; + +// Create a new router instance +const router = createRouter({ routeTree }); + +// Register the router instance for type safety +declare module '@tanstack/react-router' { + interface Register { + router: typeof router; + } +} + +// Render the app +const rootElement = document.getElementById('root')!; +if (!rootElement.innerHTML) { + const root = ReactDOM.createRoot(rootElement); + root.render( + + + + ); +} diff --git a/exam/react/src/routeTree.gen.ts b/exam/react/src/routeTree.gen.ts new file mode 100644 index 0000000..84b8c10 --- /dev/null +++ b/exam/react/src/routeTree.gen.ts @@ -0,0 +1,38 @@ +/* prettier-ignore-start */ + +/* eslint-disable */ + +// @ts-nocheck + +// noinspection JSUnusedGlobalSymbols + +// This file is auto-generated by TanStack Router + +// Import Routes + +import { Route as rootRoute } from './routes/__root' + +// Create/Update Routes + +// Populate the FileRoutesByPath interface + +declare module '@tanstack/react-router' { + interface FileRoutesByPath {} +} + +// Create and export the route tree + +export const routeTree = rootRoute.addChildren({}) + +/* prettier-ignore-end */ + +/* ROUTE_MANIFEST_START +{ + "routes": { + "__root__": { + "filePath": "__root.tsx", + "children": [] + } + } +} +ROUTE_MANIFEST_END */ diff --git a/exam/react/src/routes/__root.tsx b/exam/react/src/routes/__root.tsx new file mode 100644 index 0000000..1a62b76 --- /dev/null +++ b/exam/react/src/routes/__root.tsx @@ -0,0 +1,11 @@ +import { createRootRoute, Outlet } from '@tanstack/react-router'; +import { TanStackRouterDevtools } from '@tanstack/router-devtools'; + +export const Route = createRootRoute({ + component: () => ( + <> + + + + ), +}); diff --git a/exam/react/vite.config.ts b/exam/react/vite.config.ts index c4ac411..c99b5c4 100644 --- a/exam/react/vite.config.ts +++ b/exam/react/vite.config.ts @@ -1,9 +1,10 @@ -import { defineConfig } from 'vite'; +import { TanStackRouterVite } from '@tanstack/router-plugin/vite'; import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [TanStackRouterVite(), react()], build: { outDir: '../dist', },