import"./preload-helper-DEPslLRF.js";import{ax as Y,ay as C,az as V,aA as G,aB as K,aC as Q,ap as Z,aD as q,aE as ee,aF as te}from"./index-BVE0rL7V.js";import{r as s}from"./provider-jGJDpSsD.js";import{R as re}from"./index-DTLMCL9z.js";import{b as ne,S as oe,i as A,l as ie,p as I,R as ae}from"./components-CQc0Wz3g.js";/**
 * @remix-run/react v2.8.1
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */class le extends s.Component{constructor(r){super(r),this.state={error:r.error||null,location:r.location}}static getDerivedStateFromError(r){return{error:r}}static getDerivedStateFromProps(r,t){return t.location!==r.location?{error:r.error||null,location:r.location}:{error:r.error||t.error,location:t.location}}render(){return this.state.error?s.createElement(X,{error:this.state.error}):this.props.children}}function X({error:e}){console.error(e);let r=s.createElement("script",{dangerouslySetInnerHTML:{__html:`
        console.log(
          "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information."
        );
      `}});if(Y(e))return s.createElement(D,{title:"Unhandled Thrown Response!"},s.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let t;if(e instanceof Error)t=e;else{let n=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);t=new Error(n)}return s.createElement(D,{title:"Application Error!"},s.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),s.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},t.stack),r)}function D({title:e,renderScripts:r,children:t}){var n;let{routeModules:o}=ne();return(n=o.root)!==null&&n!==void 0&&n.Layout?t:s.createElement("html",{lang:"en"},s.createElement("head",null,s.createElement("meta",{charSet:"utf-8"}),s.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),s.createElement("title",null,e)),s.createElement("body",null,s.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},t,r?s.createElement(oe,null):null)))}/**
 * @remix-run/react v2.8.1
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */function se(e){if(!e)return null;let r=Object.entries(e),t={};for(let[n,o]of r)if(o&&o.__type==="RouteErrorResponse")t[n]=new C(o.status,o.statusText,o.data,o.internal===!0);else if(o&&o.__type==="Error"){if(o.__subType){let l=window[o.__subType];if(typeof l=="function")try{let d=new l(o.message);d.stack=o.stack,t[n]=d}catch{}}if(t[n]==null){let l=new Error(o.message);l.stack=o.stack,t[n]=l}}else t[n]=o;return t}/**
 * @remix-run/react v2.8.1
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */function de(e){return e.headers.get("X-Remix-Catch")!=null}function ue(e){return e.headers.get("X-Remix-Error")!=null}function ce(e){return z(e)&&e.status>=400&&e.headers.get("X-Remix-Error")==null&&e.headers.get("X-Remix-Catch")==null&&e.headers.get("X-Remix-Response")==null}function fe(e){return e.headers.get("X-Remix-Redirect")!=null}function me(e){var r;return!!((r=e.headers.get("Content-Type"))!==null&&r!==void 0&&r.match(/text\/remix-deferred/))}function z(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function we(e){let r=e;return r&&typeof r=="object"&&typeof r.data=="object"&&typeof r.subscribe=="function"&&typeof r.cancel=="function"&&typeof r.resolveData=="function"}async function U(e,r,t=0){let n=new URL(e.url);n.searchParams.set("_data",r);let o={signal:e.signal};if(e.method!=="GET"){o.method=e.method;let a=e.headers.get("Content-Type");a&&/\bapplication\/json\b/.test(a)?(o.headers={"Content-Type":a},o.body=JSON.stringify(await e.json())):a&&/\btext\/plain\b/.test(a)?(o.headers={"Content-Type":a},o.body=await e.text()):a&&/\bapplication\/x-www-form-urlencoded\b/.test(a)?o.body=new URLSearchParams(await e.text()):o.body=await e.formData()}t>0&&await new Promise(a=>setTimeout(a,5**t*10));let l=window.__remixRevalidation,d=await fetch(n.href,o).catch(a=>{if(typeof l=="number"&&l===window.__remixRevalidation&&(a==null?void 0:a.name)==="TypeError"&&t<3)return U(e,r,t+1);throw a});if(ue(d)){let a=await d.json(),i=new Error(a.message);return i.stack=a.stack,i}if(ce(d)){let a=await d.text(),i=new Error(a);return i.stack=void 0,i}return d}const he="__deferred_promise:";async function _e(e){if(!e)throw new Error("parseDeferredReadableStream requires stream argument");let r,t={};try{let n=pe(e),l=(await n.next()).value;if(!l)throw new Error("no critical data");let d=JSON.parse(l);if(typeof d=="object"&&d!==null)for(let[a,i]of Object.entries(d))typeof i!="string"||!i.startsWith(he)||(r=r||{},r[a]=new Promise((u,h)=>{t[a]={resolve:c=>{u(c),delete t[a]},reject:c=>{h(c),delete t[a]}}}));return(async()=>{try{for await(let a of n){let[i,...u]=a.split(":"),h=u.join(":"),c=JSON.parse(h);if(i==="data")for(let[_,f]of Object.entries(c))t[_]&&t[_].resolve(f);else if(i==="error")for(let[_,f]of Object.entries(c)){let x=new Error(f.message);x.stack=f.stack,t[_]&&t[_].reject(x)}}for(let[a,i]of Object.entries(t))i.reject(new V(`Deferred ${a} will never be resolved`))}catch(a){for(let i of Object.values(t))i.reject(a)}})(),new G({...d,...r})}catch(n){for(let o of Object.values(t))o.reject(n);throw n}}async function*pe(e){let r=e.getReader(),t=[],n=[],o=!1,l=new TextEncoder,d=new TextDecoder,a=async()=>{if(n.length>0)return n.shift();for(;!o&&n.length===0;){let u=await r.read();if(u.done){o=!0;break}t.push(u.value);try{let c=d.decode(B(...t)).split(`

`);if(c.length>=2&&(n.push(...c.slice(0,-1)),t=[l.encode(c.slice(-1).join(`

`))]),n.length>0)break}catch{continue}}return n.length>0||t.length>0&&(n=d.decode(B(...t)).split(`

`).filter(h=>h),t=[]),n.shift()},i=await a();for(;i;)yield i,i=await a()}function B(...e){let r=new Uint8Array(e.reduce((n,o)=>n+o.length,0)),t=0;for(let n of e)r.set(n,t),t+=n.length;return r}/**
 * @remix-run/react v2.8.1
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */function ye(){return s.createElement(D,{title:"Loading...",renderScripts:!0},s.createElement("script",{dangerouslySetInnerHTML:{__html:`
              console.log(
                "💿 Hey developer 👋. You can provide a way better UX than this " +
                "when your app is running \`clientLoader\` functions on hydration. " +
                "Check out https://remix.run/route/hydrate-fallback for more information."
              );
            `}}))}/**
 * @remix-run/react v2.8.1
 *
 * Copyright (c) Remix Software Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE.md file in the root directory of this source tree.
 *
 * @license MIT
 */function $(e){let r={};return Object.values(e).forEach(t=>{let n=t.parentId||"";r[n]||(r[n]=[]),r[n].push(t)}),r}function N(e,r,t){let n=J(r),o=r.HydrateFallback&&(!t||e.id==="root")?r.HydrateFallback:e.id==="root"?ye:void 0,l=r.ErrorBoundary?r.ErrorBoundary:e.id==="root"?()=>s.createElement(X,{error:K()}):void 0;return e.id==="root"&&r.Layout?{...n?{element:s.createElement(r.Layout,null,s.createElement(n,null))}:{Component:n},...l?{errorElement:s.createElement(r.Layout,null,s.createElement(l,null))}:{ErrorBoundary:l},...o?{hydrateFallbackElement:s.createElement(r.Layout,null,s.createElement(o,null))}:{HydrateFallback:o}}:{Component:n,ErrorBoundary:l,HydrateFallback:o}}function Re(e,r,t,n,o="",l=$(e),d=Promise.resolve({Component:()=>null})){return(l[o]||[]).map(a=>{let i=r[a.id];A(i,"No `routeModule` available to create server routes");let u={...N(a,i,n),caseSensitive:a.caseSensitive,id:a.id,index:a.index,path:a.path,handle:i.handle,lazy:n?()=>d:void 0,loader:a.hasLoader||a.hasClientLoader?()=>null:void 0},h=Re(e,r,t,n,a.id,l,d);return h.length>0&&(u.children=h),u})}function ve(e,r,t,n,o,l){return P(r,t,n,o,l,"",$(r),e)}function b(e,r,t){if(t){let d=`You cannot call ${e==="action"?"serverAction()":"serverLoader()"} in SPA Mode (routeId: "${r.id}")`;throw console.error(d),new C(400,"Bad Request",new Error(d),!0)}let o=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${r.id}")`;if(e==="loader"&&!r.hasLoader||e==="action"&&!r.hasAction)throw console.error(o),new C(400,"Bad Request",new Error(o),!0)}function S(e,r){let t=e==="clientAction"?"a":"an",n=`Route "${r}" does not have ${t} ${e}, but you are trying to submit to it. To fix this, please add ${t} \`${e}\` function to the route`;throw console.error(n),new C(405,"Method Not Allowed",new Error(n),!0)}function P(e,r,t,n,o,l="",d=$(e),a){return(d[l]||[]).map(i=>{let u=r[i.id];async function h(m){return i.hasLoader?F(m,i):null}async function c(m){if(!i.hasAction)throw S("action",i.id);return F(m,i)}async function _(m){let w=r[i.id],R=w?I(i,w):Promise.resolve();try{return m()}finally{await R}}let f={id:i.id,index:i.index,path:i.path};if(u){var x,L,k;Object.assign(f,{...f,...N(i,u,o),handle:u.handle,shouldRevalidate:a?T(i.id,u.shouldRevalidate,a):u.shouldRevalidate});let m=t==null||(x=t.loaderData)===null||x===void 0?void 0:x[i.id],w=t==null||(L=t.errors)===null||L===void 0?void 0:L[i.id],R=a==null&&(((k=u.clientLoader)===null||k===void 0?void 0:k.hydrate)===!0||!i.hasLoader);f.loader=async({request:p,params:v})=>{try{return await _(async()=>(A(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:p,params:v,async serverLoader(){if(b("loader",i,o),R){if(w!==void 0)throw w;return m}let O=await h(p);return await g(O)}}):o?null:h(p)))}finally{R=!1}},f.loader.hydrate=W(i,u,o),f.action=({request:p,params:v})=>_(async()=>{if(A(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(o)throw S("clientAction",i.id);return c(p)}return u.clientAction({request:p,params:v,async serverAction(){b("action",i,o);let E=await c(p);return await g(E)}})})}else i.hasClientLoader||(f.loader=({request:m})=>_(()=>o?Promise.resolve(null):h(m))),i.hasClientAction||(f.action=({request:m})=>_(()=>{if(o)throw S("clientAction",i.id);return c(m)})),f.lazy=async()=>{let m=await xe(i,r),w={...m};if(m.clientLoader){let R=m.clientLoader;w.loader=p=>R({...p,async serverLoader(){b("loader",i,o);let v=await h(p.request);return await g(v)}})}if(m.clientAction){let R=m.clientAction;w.action=p=>R({...p,async serverAction(){b("action",i,o);let v=await c(p.request);return await g(v)}})}return a&&(w.shouldRevalidate=T(i.id,m.shouldRevalidate,a)),{...w.loader?{loader:w.loader}:{},...w.action?{action:w.action}:{},hasErrorBoundary:w.hasErrorBoundary,shouldRevalidate:w.shouldRevalidate,handle:w.handle,Component:w.Component,ErrorBoundary:w.ErrorBoundary}};let H=P(e,r,t,n,o,i.id,d,a);return H.length>0&&(f.children=H),f})}function T(e,r,t){let n=!1;return o=>n?r?r(o):o.defaultShouldRevalidate:(n=!0,t.has(e))}async function xe(e,r){let t=await ie(e,r);return await I(e,t),{Component:J(t),ErrorBoundary:t.ErrorBoundary,clientAction:t.clientAction,clientLoader:t.clientLoader,handle:t.handle,links:t.links,meta:t.meta,shouldRevalidate:t.shouldRevalidate}}async function F(e,r){let t=await U(e,r.id);if(t instanceof Error)throw t;if(fe(t))throw Ee(t);if(de(t))throw t;return me(t)&&t.body?await _e(t.body):t}function g(e){if(we(e))return e.data;if(z(e)){let r=e.headers.get("Content-Type");return r&&/\bapplication\/json\b/.test(r)?e.json():e.text()}return e}function Ee(e){let r=parseInt(e.headers.get("X-Remix-Status"),10)||302,t=e.headers.get("X-Remix-Redirect"),n={},o=e.headers.get("X-Remix-Revalidate");o&&(n["X-Remix-Revalidate"]=o);let l=e.headers.get("X-Remix-Reload-Document");return l&&(n["X-Remix-Reload-Document"]=l),Q(t,{status:r,headers:n})}function J(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function W(e,r,t){return t&&e.id!=="root"||r.clientLoader!=null&&(r.clientLoader.hydrate===!0||e.hasLoader!==!0)}let y,M=!1;let j,Ae=new Promise(e=>{j=e}).catch(()=>{});function De(e){if(!y){let l=window.__remixContext.url,d=window.location.pathname;if(l!==d&&!window.__remixContext.isSpaMode){let u=`Initial URL (${l}) does not match URL at time of hydration (${d}), reloading page...`;return console.error(u),window.location.reload(),s.createElement(s.Fragment,null)}let a=P(window.__remixManifest.routes,window.__remixRouteModules,window.__remixContext.state,window.__remixContext.future,window.__remixContext.isSpaMode),i;if(!window.__remixContext.isSpaMode){i={...window.__remixContext.state,loaderData:{...window.__remixContext.state.loaderData}};let u=Z(a,window.location);if(u)for(let h of u){let c=h.route.id,_=window.__remixRouteModules[c],f=window.__remixManifest.routes[c];_&&W(f,_,window.__remixContext.isSpaMode)&&(_.HydrateFallback||!f.hasLoader)?i.loaderData[c]=void 0:f&&!f.hasLoader&&(i.loaderData[c]=null)}i&&i.errors&&(i.errors=se(i.errors))}y=q({routes:a,history:ee(),basename:window.__remixContext.basename,future:{v7_normalizeFormMethod:!0,v7_fetcherPersist:window.__remixContext.future.v3_fetcherPersist,v7_partialHydration:!0,v7_prependBasename:!0,v7_relativeSplatPath:window.__remixContext.future.v3_relativeSplatPath},hydrationData:i,mapRouteProperties:te}),y.state.initialized&&(M=!0,y.initialize()),y.createRoutesForHMR=ve,window.__remixRouter=y,j&&j(y)}let[r,t]=s.useState(void 0),[n,o]=s.useState(y.state.location);return s.useLayoutEffect(()=>{M||(M=!0,y.initialize())},[]),s.useLayoutEffect(()=>y.subscribe(l=>{l.location!==n&&o(l.location)}),[n]),s.createElement(ae.Provider,{value:{manifest:window.__remixManifest,routeModules:window.__remixRouteModules,future:window.__remixContext.future,criticalCss:r,isSpaMode:window.__remixContext.isSpaMode}},s.createElement(le,{location:n},s.createElement(re,{router:y,fallbackElement:null,future:{v7_startTransition:!0}})))}const je=s.createContext({reset:()=>{throw new Error("reset() not implemented")}});export{je as C,le as R,De as a,Re as c,W as s};
