react-router 7.0.0-pre.2 → 7.0.0-pre.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/chunk-FT3T2DDR.mjs +9617 -0
- package/dist/dom-export.d.mts +13 -0
- package/dist/dom-export.d.ts +13 -3
- package/dist/dom-export.js +5502 -0
- package/dist/dom-export.mjs +112 -126
- package/dist/{lib/dom/lib.d.ts → fog-of-war-BijhfqFM.d.ts} +699 -45
- package/dist/fog-of-war-Bz_EDtxF.d.mts +1595 -0
- package/dist/index.d.mts +839 -0
- package/dist/index.d.ts +839 -73
- package/dist/index.js +9763 -0
- package/dist/index.mjs +225 -12689
- package/dist/lib/types.d.mts +2 -0
- package/dist/lib/types.d.ts +2 -83
- package/dist/lib/types.js +28 -0
- package/dist/lib/types.mjs +1 -1
- package/dist/types-BlYP8xpH.d.mts +1620 -0
- package/dist/types-BlYP8xpH.d.ts +1620 -0
- package/package.json +52 -12
- package/dist/dom-export.mjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/lib/components.d.ts +0 -372
- package/dist/lib/context.d.ts +0 -115
- package/dist/lib/dom/dom.d.ts +0 -123
- package/dist/lib/dom/global.d.ts +0 -40
- package/dist/lib/dom/server.d.ts +0 -41
- package/dist/lib/dom/ssr/components.d.ts +0 -122
- package/dist/lib/dom/ssr/data.d.ts +0 -2
- package/dist/lib/dom/ssr/entry.d.ts +0 -48
- package/dist/lib/dom/ssr/errorBoundaries.d.ts +0 -36
- package/dist/lib/dom/ssr/errors.d.ts +0 -2
- package/dist/lib/dom/ssr/fallback.d.ts +0 -2
- package/dist/lib/dom/ssr/fog-of-war.d.ts +0 -28
- package/dist/lib/dom/ssr/invariant.d.ts +0 -2
- package/dist/lib/dom/ssr/links.d.ts +0 -25
- package/dist/lib/dom/ssr/markup.d.ts +0 -5
- package/dist/lib/dom/ssr/routeModules.d.ts +0 -183
- package/dist/lib/dom/ssr/routes-test-stub.d.ts +0 -59
- package/dist/lib/dom/ssr/routes.d.ts +0 -29
- package/dist/lib/dom/ssr/server.d.ts +0 -16
- package/dist/lib/dom/ssr/single-fetch.d.ts +0 -37
- package/dist/lib/dom-export/dom-router-provider.d.ts +0 -5
- package/dist/lib/dom-export/hydrated-router.d.ts +0 -5
- package/dist/lib/dom-export.d.ts +0 -3
- package/dist/lib/hooks.d.ts +0 -411
- package/dist/lib/router/history.d.ts +0 -253
- package/dist/lib/router/links.d.ts +0 -104
- package/dist/lib/router/router.d.ts +0 -544
- package/dist/lib/router/utils.d.ts +0 -497
- package/dist/lib/server-runtime/build.d.ts +0 -38
- package/dist/lib/server-runtime/cookies.d.ts +0 -62
- package/dist/lib/server-runtime/crypto.d.ts +0 -2
- package/dist/lib/server-runtime/data.d.ts +0 -11
- package/dist/lib/server-runtime/dev.d.ts +0 -8
- package/dist/lib/server-runtime/entry.d.ts +0 -3
- package/dist/lib/server-runtime/errors.d.ts +0 -51
- package/dist/lib/server-runtime/headers.d.ts +0 -3
- package/dist/lib/server-runtime/invariant.d.ts +0 -2
- package/dist/lib/server-runtime/markup.d.ts +0 -1
- package/dist/lib/server-runtime/mode.d.ts +0 -9
- package/dist/lib/server-runtime/routeMatching.d.ts +0 -8
- package/dist/lib/server-runtime/routeModules.d.ts +0 -40
- package/dist/lib/server-runtime/routes.d.ts +0 -11
- package/dist/lib/server-runtime/server.d.ts +0 -5
- package/dist/lib/server-runtime/serverHandoff.d.ts +0 -11
- package/dist/lib/server-runtime/sessions/cookieStorage.d.ts +0 -19
- package/dist/lib/server-runtime/sessions/memoryStorage.d.ts +0 -17
- package/dist/lib/server-runtime/sessions.d.ts +0 -140
- package/dist/lib/server-runtime/single-fetch.d.ts +0 -30
- package/dist/lib/server-runtime/typecheck.d.ts +0 -4
- package/dist/lib/server-runtime/warnings.d.ts +0 -1
- package/dist/main-dom-export.js +0 -19
- package/dist/main.js +0 -19
- package/dist/react-router-dom.development.js +0 -199
- package/dist/react-router-dom.development.js.map +0 -1
- package/dist/react-router-dom.production.min.js +0 -12
- package/dist/react-router-dom.production.min.js.map +0 -1
- package/dist/react-router.development.js +0 -12528
- package/dist/react-router.development.js.map +0 -1
- package/dist/react-router.production.min.js +0 -12
- package/dist/react-router.production.min.js.map +0 -1
- package/dist/umd/react-router-dom.development.js +0 -241
- package/dist/umd/react-router-dom.development.js.map +0 -1
- package/dist/umd/react-router-dom.production.min.js +0 -12
- package/dist/umd/react-router-dom.production.min.js.map +0 -1
- package/dist/umd/react-router.development.js +0 -12834
- package/dist/umd/react-router.development.js.map +0 -1
- package/dist/umd/react-router.production.min.js +0 -12
- package/dist/umd/react-router.production.min.js.map +0 -1
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* React Router v7.0.0-pre.2
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) Remix Software Inc.
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/
|
|
11
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("turbo-stream"),require("cookie"),require("set-cookie-parser")):"function"==typeof define&&define.amd?define(["exports","react","turbo-stream","cookie","set-cookie-parser"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouter={},e.React,e.turboStream,e.cookie,e.setCookieParser)}(this,(function(e,t,r,n,a){"use strict";function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=o(t);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}function l(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}let u=function(e){return e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE",e}({});const c="popstate";function d(e){void 0===e&&(e={});let t,{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map(((e,t)=>d(e,"string"==typeof e?null:e.state,0===t?"default":void 0)));let o=l(null==n?t.length-1:n),i=u.Pop,s=null;function l(e){return Math.min(Math.max(e,0),t.length-1)}function c(){return t[o]}function d(e,r,n){return void 0===r&&(r=null),y(t?c().pathname:"/",e,r,n)}function h(e){return"string"==typeof e?e:v(e)}return{get index(){return o},get action(){return i},get location(){return c()},createHref:h,createURL:e=>new URL(h(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?g(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i=u.Push;let n=d(e,r);o+=1,t.splice(o,t.length,n),a&&s&&s({action:i,location:n,delta:1})},replace(e,r){i=u.Replace;let n=d(e,r);t[o]=n,a&&s&&s({action:i,location:n,delta:0})},go(e){i=u.Pop;let r=l(o+e),n=t[r];o=r,s&&s({action:i,location:n,delta:e})},listen:e=>(s=e,()=>{s=null})}}function h(e){return void 0===e&&(e={}),w((function(e,t){let{pathname:r,search:n,hash:a}=e.location;return y("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"==typeof t?t:v(t)}),null,e)}function f(e){return void 0===e&&(e={}),w((function(e,t){let{pathname:r="/",search:n="",hash:a=""}=g(e.location.hash.substring(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),y("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:v(t))}),(function(e,t){}),e)}function m(e,t){if(!1===e||null==e)throw new Error(t)}function p(e,t){return{usr:e.state,key:e.key,idx:t}}function y(e,t,r,n){return void 0===r&&(r=null),s({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?g(t):t,{state:r,key:t&&t.key||n||Math.random().toString(36).substring(2,10)})}function v(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&"?"!==r&&(t+="?"===r.charAt(0)?r:"?"+r),n&&"#"!==n&&(t+="#"===n.charAt(0)?n:"#"+n),t}function g(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function w(e,t,r,n){void 0===n&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l=u.Pop,d=null,h=f();function f(){return(i.state||{idx:null}).idx}function g(){l=u.Pop;let e=f(),t=null==e?null:e-h;h=e,d&&d({action:l,location:b.location,delta:t})}function w(e){let t="null"!==a.location.origin?a.location.origin:a.location.href,r="string"==typeof e?e:v(e);return r=r.replace(/ $/,"%20"),t||m(!1),new URL(r,t)}null==h&&(h=0,i.replaceState(s({},i.state,{idx:h}),""));let b={get action(){return l},get location(){return e(a,i)},listen(e){if(d)throw new Error("A history only accepts one active listener");return a.addEventListener(c,g),d=e,()=>{a.removeEventListener(c,g),d=null}},createHref:e=>t(a,e),createURL:w,encodeLocation(e){let t=w(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l=u.Push;let n=y(b.location,e,t);r&&r(n,e),h=f()+1;let s=p(n,h),c=b.createHref(n);try{i.pushState(s,"",c)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(c)}o&&d&&d({action:l,location:b.location,delta:1})},replace:function(e,t){l=u.Replace;let n=y(b.location,e,t);r&&r(n,e),h=f();let a=p(n,h),s=b.createHref(n);i.replaceState(a,"",s),o&&d&&d({action:l,location:b.location,delta:0})},go:e=>i.go(e)};return b}let b=function(e){return e.data="data",e.redirect="redirect",e.error="error",e}({});const E=new Set(["lazy","caseSensitive","path","id","index","children"]);function S(e,t,r,n){return void 0===r&&(r=[]),void 0===n&&(n={}),e.map(((e,a)=>{let o=[...r,String(a)],i="string"==typeof e.id?e.id:o.join("-");if(!0===e.index&&e.children&&m(!1),n[i]&&m(!1),function(e){return!0===e.index}(e)){let r=s({},e,t(e),{id:i});return n[i]=r,r}{let r=s({},e,t(e),{id:i,children:void 0});return n[i]=r,e.children&&(r.children=S(e.children,t,o,n)),r}}))}function R(e,t,r){return void 0===r&&(r="/"),x(e,t,r,!1)}function x(e,t,r,n){let a=_(("string"==typeof t?g(t):t).pathname||"/",r);if(null==a)return null;let o=k(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){return e.length===t.length&&e.slice(0,-1).every(((e,r)=>e===t[r]))?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let e=0;null==i&&e<o.length;++e){let t=O(a);i=M(o[e],t,n)}return i}function C(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function k(e,t,r,n){void 0===t&&(t=[]),void 0===r&&(r=[]),void 0===n&&(n="");let a=(e,a,o)=>{let i={relativePath:void 0===o?e.path||"":o,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};i.relativePath.startsWith("/")&&(i.relativePath.startsWith(n)||m(!1),i.relativePath=i.relativePath.slice(n.length));let s=H([n,i.relativePath]),l=r.concat(i);e.children&&e.children.length>0&&(!0===e.index&&m(!1),k(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:A(s,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var r;if(""!==e.path&&null!=(r=e.path)&&r.includes("?"))for(let r of D(e.path))a(e,t,r);else a(e,t)})),t}function D(e){let t=e.split("/");if(0===t.length)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(0===n.length)return a?[o,""]:[o];let i=D(n.join("/")),s=[];return s.push(...i.map((e=>""===e?o:[o,e].join("/")))),a&&s.push(...i),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const L=/^:[\w-]+$/,T=e=>"*"===e;function A(e,t){let r=e.split("/"),n=r.length;return r.some(T)&&(n+=-2),t&&(n+=2),r.filter((e=>!T(e))).reduce(((e,t)=>e+(L.test(t)?3:""===t?1:10)),n)}function M(e,t,r){void 0===r&&(r=!1);let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let s=n[e],l=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c=P({path:s.relativePath,caseSensitive:s.caseSensitive,end:l},u),d=s.route;if(!c&&l&&r&&!n[n.length-1].route.index&&(c=P({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:H([o,c.pathname]),pathnameBase:I(H([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=H([o,c.pathnameBase]))}return i}function P(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=function(e,t,r){void 0===t&&(t=!1);void 0===r&&(r=!0);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,r)=>(n.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))");return[new RegExp(a,t?void 0:"i"),n]}(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce(((e,t,r)=>{let{paramName:n,isOptional:a}=t;if("*"===n){let e=s[r]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}const l=s[r];return e[n]=a&&!l?void 0:(l||"").replace(/%2F/g,"/"),e}),{}),pathname:o,pathnameBase:i,pattern:e}}function O(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return e}}function _(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}function U(e,t){void 0===t&&(t="/");let{pathname:r,search:n="",hash:a=""}="string"==typeof e?g(e):e,o=r?r.startsWith("/")?r:function(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)})),r.length>1?r.join("/"):"/"}(r,t):t;return{pathname:o,search:B(n),hash:z(a)}}function j(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function F(e){let t=j(e);return t.map(((e,r)=>r===t.length-1?e.pathname:e.pathnameBase))}function N(e,t,r,n){let a;void 0===n&&(n=!1),"string"==typeof e?a=g(e):(a=s({},e),a.pathname&&a.pathname.includes("?")&&m(!1),a.pathname&&a.pathname.includes("#")&&m(!1),a.search&&a.search.includes("#")&&m(!1));let o,i=""===e||""===a.pathname,l=i?"/":a.pathname;if(null==l)o=r;else{let e=t.length-1;if(!n&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let u=U(a,o),c=l&&"/"!==l&&l.endsWith("/"),d=(i||"."===l)&&r.endsWith("/");return u.pathname.endsWith("/")||!c&&!d||(u.pathname+="/"),u}const H=e=>e.join("/").replace(/\/\/+/g,"/"),I=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),B=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",z=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";class q{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}}function J(e,t){return new q(e,"number"==typeof t?{status:t}:t)}const W=function(e,t){void 0===t&&(t=302);let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,s({},r,{headers:n}))};class ${constructor(e,t,r,n){void 0===n&&(n=!1),this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function K(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}const V=["POST","PUT","PATCH","DELETE"],X=new Set(V),Y=["GET",...V],G=new Set(Y),Q=new Set([301,302,303,307,308]),Z=new Set([307,308]),ee={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},te={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},re={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ne=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ae=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),oe="remix-router-transitions",ie=Symbol("ResetLoaderData");function se(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,r=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement;e.routes.length>0||m(!1);let n,a,o,i=e.mapRouteProperties||ae,l={},c=S(e.routes,i,void 0,l),d=e.basename||"/",h=e.dataStrategy||we,f=e.patchRoutesOnNavigation,p=s({},e.future),v=null,g=new Set,w=null,E=null,k=null,D=null!=e.hydrationData,L=R(c,e.history.location,d),T=null;if(null==L&&!f){let t=Oe(404,{pathname:e.history.location.pathname}),{matches:r,route:n}=Pe(c);L=r,T={[n.id]:t}}if(L&&!e.hydrationData){rt(L,c,e.history.location.pathname).active&&(L=null)}if(L)if(L.some((e=>e.route.lazy)))a=!1;else if(L.some((e=>e.route.loader))){let t=e.hydrationData?e.hydrationData.loaderData:null,r=e.hydrationData?e.hydrationData.errors:null;if(r){let e=L.findIndex((e=>void 0!==r[e.route.id]));a=L.slice(0,e+1).every((e=>!me(e.route,t,r)))}else a=L.every((e=>!me(e.route,t,r)))}else a=!0;else{a=!1,L=[];let t=rt(null,c,e.history.location.pathname);t.active&&t.matches&&(L=t.matches)}let A,M,P={historyAction:e.history.action,location:e.history.location,matches:L,initialized:a,navigation:ee,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||T,fetchers:new Map,blockers:new Map},O=u.Pop,U=!1,j=!1,F=new Map,N=null,H=!1,I=!1,B=new Set,z=new Map,q=0,J=-1,W=new Map,$=new Set,V=new Map,X=new Map,Y=new Set,G=new Map,Q=null;function ie(e,t){void 0===t&&(t={}),P=s({},P,e);let r=[],n=[];P.fetchers.forEach(((e,t)=>{"idle"===e.state&&(Y.has(t)?r.push(t):n.push(t))})),[...g].forEach((e=>e(P,{deletedFetchers:r,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync}))),r.forEach((e=>Ue(e))),n.forEach((e=>P.fetchers.delete(e)))}function se(t,r,a){var o,i,l;let d,{flushSync:h}=void 0===a?{}:a,f=null!=P.actionData&&null!=P.navigation.formMethod&&Je(P.navigation.formMethod)&&"loading"===P.navigation.state&&!0!==(null==(o=t.state)?void 0:o._isRedirect);d=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:f?P.actionData:null;let m=r.loaderData?Te(P.loaderData,r.loaderData,r.matches||[],r.errors):P.loaderData,p=P.blockers;p.size>0&&(p=new Map(p),p.forEach(((e,t)=>p.set(t,re))));let y,v=!0===U||null!=P.navigation.formMethod&&Je(P.navigation.formMethod)&&!0!==(null==(i=t.state)?void 0:i._isRedirect);if(n&&(c=n,n=void 0),H||O===u.Pop||(O===u.Push?e.history.push(t,t.state):O===u.Replace&&e.history.replace(t,t.state)),O===u.Pop){let e=F.get(P.location.pathname);e&&e.has(t.pathname)?y={currentLocation:P.location,nextLocation:t}:F.has(t.pathname)&&(y={currentLocation:t,nextLocation:P.location})}else if(j){let e=F.get(P.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),F.set(P.location.pathname,e)),y={currentLocation:P.location,nextLocation:t}}ie(s({},r,{actionData:d,loaderData:m,historyAction:O,location:t,initialized:!0,navigation:ee,revalidation:"idle",restoreScrollPosition:tt(t,r.matches||P.matches),preventScrollReset:v,blockers:p}),{viewTransitionOpts:y,flushSync:!0===h}),O=u.Pop,U=!1,j=!1,H=!1,I=!1,null==(l=Q)||l.resolve(),Q=null}async function le(t,r,a){A&&A.abort(),A=null,O=t,H=!0===(a&&a.startUninterruptedRevalidation),function(e,t){if(w&&k){let r=et(e,t);w[r]=k()}}(P.location,P.matches),U=!0===(a&&a.preventScrollReset),j=!0===(a&&a.enableViewTransition);let o=n||c,i=a&&a.overrideNavigation,l=R(o,r,d),h=!0===(a&&a.flushSync),f=rt(l,o,r.pathname);if(f.active&&f.matches&&(l=f.matches),!l){let{error:e,notFoundMatches:t,route:n}=Ze(r.pathname);return void se(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:h})}if(P.initialized&&!I&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(P.location,r)&&!(a&&a.submission&&Je(a.submission.formMethod)))return void se(r,{matches:l},{flushSync:h});A=new AbortController;let m,p=xe(e.history,r,A.signal,a&&a.submission);if(a&&a.pendingError)m=[Me(l).route.id,{type:b.error,error:a.pendingError}];else if(a&&a.submission&&Je(a.submission.formMethod)){let t=await async function(e,t,r,n,a,o){void 0===o&&(o={});let i;if(ge(),ie({navigation:Xe(t,r)},{flushSync:!0===o.flushSync}),a){let r=await nt(n,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){let e=Me(r.partialMatches).route.id;return{matches:r.partialMatches,pendingActionResult:[e,{type:b.error,error:r.error}]}}if(!r.matches){let{notFoundMatches:e,error:r,route:n}=Ze(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:b.error,error:r}]}}n=r.matches}let s=$e(n,t);if(s.route.action||s.route.lazy){if(i=(await pe("action",P,e,[s],n,null))[s.route.id],e.signal.aborted)return{shortCircuited:!0}}else i={type:b.error,error:Oe(405,{method:e.method,pathname:t.pathname,routeId:s.route.id})};if(Ne(i)){let t;if(o&&null!=o.replace)t=o.replace;else{t=Re(i.response.headers.get("Location"),new URL(e.url),d)===P.location.pathname+P.location.search}return await he(e,i,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(Fe(i)){let e=Me(n,s.route.id);return!0!==(o&&o.replace)&&(O=u.Push),{matches:n,pendingActionResult:[e.route.id,i]}}return{matches:n,pendingActionResult:[s.route.id,i]}}(p,r,a.submission,l,f.active,{replace:a.replace,flushSync:h});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,n]=t.pendingActionResult;if(Fe(n)&&K(n.error)&&404===n.error.status)return A=null,void se(r,{matches:t.matches,loaderData:{},errors:{[e]:n.error}})}l=t.matches||l,m=t.pendingActionResult,i=Ve(r,a.submission),h=!1,f.active=!1,p=xe(e.history,p.url,p.signal)}let{shortCircuited:y,matches:v,loaderData:g,errors:E}=await async function(t,r,a,o,i,l,u,h,f,m,p){let y=i||Ve(r,l),v=l||u||Ke(y),g=!H&&!f;if(o){if(g){let e=ue(p);ie(s({navigation:y},void 0!==e?{actionData:e}:{}),{flushSync:m})}let e=await nt(a,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=Me(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(!e.matches){let{error:e,notFoundMatches:t,route:n}=Ze(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}a=e.matches}let w=n||c,[b,E]=fe(e.history,P,a,v,r,!0===f,I,B,Y,V,$,w,d,p);if(J=++q,0===b.length&&0===E.length){let e=Be();return se(r,s({matches:a,loaderData:{},errors:p&&Fe(p[1])?{[p[0]]:p[1].error}:null},Ae(p),e?{fetchers:new Map(P.fetchers)}:{}),{flushSync:m}),{shortCircuited:!0}}if(g){let e={};if(!o){e.navigation=y;let t=ue(p);void 0!==t&&(e.actionData=t)}E.length>0&&(e.fetchers=function(e){return e.forEach((e=>{let t=P.fetchers.get(e.key),r=Ye(void 0,t?t.data:void 0);P.fetchers.set(e.key,r)})),new Map(P.fetchers)}(E)),ie(e,{flushSync:m})}E.forEach((e=>{He(e.key),e.controller&&z.set(e.key,e.controller)}));let S=()=>E.forEach((e=>He(e.key)));A&&A.signal.addEventListener("abort",S);let{loaderResults:R,fetcherResults:x}=await ye(P,a,b,E,t);if(t.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",S);E.forEach((e=>z.delete(e.key)));let C=_e(R);if(C)return await he(t,C.result,!0,{replace:h}),{shortCircuited:!0};if(C=_e(x),C)return $.add(C.key),await he(t,C.result,!0,{replace:h}),{shortCircuited:!0};let{loaderData:k,errors:D}=Le(P,a,R,p,E,x);f&&P.errors&&(D=s({},P.errors,D));let L=Be(),T=ze(J),M=L||T||E.length>0;return s({matches:a,loaderData:k,errors:D},M?{fetchers:new Map(P.fetchers)}:{})}(p,r,l,f.active,i,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,h,m);y||(A=null,se(r,s({matches:v||l},Ae(m),{loaderData:g,errors:E})))}function ue(e){return e&&!Fe(e[1])?{[e[0]]:e[1].data}:P.actionData?0===Object.keys(P.actionData).length?null:P.actionData:void 0}async function he(n,a,o,i){let{submission:l,fetcherSubmission:c,preventScrollReset:h,replace:f}=void 0===i?{}:i;a.response.headers.has("X-Remix-Revalidate")&&(I=!0);let p=a.response.headers.get("Location");p||m(!1),p=Re(p,new URL(n.url),d);let v=y(P.location,p,{_isRedirect:!0});if(r){let r=!1;if(a.response.headers.has("X-Remix-Reload-Document"))r=!0;else if(ne.test(p)){const n=e.history.createURL(p);r=n.origin!==t.location.origin||null==_(n.pathname,d)}if(r)return void(f?t.location.replace(p):t.location.assign(p))}A=null;let g=!0===f||a.response.headers.has("X-Remix-Replace")?u.Replace:u.Push,{formMethod:w,formAction:b,formEncType:E}=P.navigation;!l&&!c&&w&&b&&E&&(l=Ke(P.navigation));let S=l||c;if(Z.has(a.response.status)&&S&&Je(S.formMethod))await le(g,v,{submission:s({},S,{formAction:p}),preventScrollReset:h||U,enableViewTransition:o?j:void 0});else{let e=Ve(v,l);await le(g,v,{overrideNavigation:e,fetcherSubmission:c,preventScrollReset:h||U,enableViewTransition:o?j:void 0})}}async function pe(e,t,r,n,a,o){let s,u={};try{s=await be(h,e,t,r,n,a,o,l,i)}catch(e){return n.forEach((t=>{u[t.route.id]={type:b.error,error:e}})),u}for(let[e,t]of Object.entries(s))if(je(t)){let n=t.result;u[e]={type:b.redirect,response:Se(n,r,e,a,d)}}else u[e]=await Ee(t);return u}async function ye(t,r,n,a,o){let i=pe("loader",t,o,n,r,null),s=Promise.all(a.map((async r=>{if(r.matches&&r.match&&r.controller){let n=(await pe("loader",t,xe(e.history,r.path,r.controller.signal),[r.match],r.matches,r.key))[r.match.route.id];return{[r.key]:n}}return Promise.resolve({[r.key]:{type:b.error,error:Oe(404,{pathname:r.path})}})})));return{loaderResults:await i,fetcherResults:(await s).reduce(((e,t)=>Object.assign(e,t)),{})}}function ge(){I=!0,V.forEach(((e,t)=>{z.has(t)&&B.add(t),He(t)}))}function Ce(e,t,r){void 0===r&&(r={}),P.fetchers.set(e,t),ie({fetchers:new Map(P.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function ke(e,t,r,n){void 0===n&&(n={});let a=Me(P.matches,t);Ue(e),ie({errors:{[a.route.id]:r},fetchers:new Map(P.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function De(e){return X.set(e,(X.get(e)||0)+1),Y.has(e)&&Y.delete(e),P.fetchers.get(e)||te}function Ue(e){let t=P.fetchers.get(e);!z.has(e)||t&&"loading"===t.state&&W.has(e)||He(e),V.delete(e),W.delete(e),$.delete(e),Y.delete(e),B.delete(e),P.fetchers.delete(e)}function He(e){let t=z.get(e);t&&(t.abort(),z.delete(e))}function Ie(e){for(let t of e){let e=Ge(De(t).data);P.fetchers.set(t,e)}}function Be(){let e=[],t=!1;for(let r of $){let n=P.fetchers.get(r);n||m(!1),"loading"===n.state&&($.delete(r),e.push(r),t=!0)}return Ie(e),t}function ze(e){let t=[];for(let[r,n]of W)if(n<e){let e=P.fetchers.get(r);e||m(!1),"loading"===e.state&&(He(r),W.delete(r),t.push(r))}return Ie(t),t.length>0}function qe(e){P.blockers.delete(e),G.delete(e)}function We(e,t){let r=P.blockers.get(e)||re;"unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state||m(!1);let n=new Map(P.blockers);n.set(e,t),ie({blockers:n})}function Qe(e){let{currentLocation:t,nextLocation:r,historyAction:n}=e;if(0===G.size)return;G.size;let a=Array.from(G.entries()),[o,i]=a[a.length-1],s=P.blockers.get(o);return s&&"proceeding"===s.state?void 0:i({currentLocation:t,nextLocation:r,historyAction:n})?o:void 0}function Ze(e){let t=Oe(404,{pathname:e}),r=n||c,{matches:a,route:o}=Pe(r);return{notFoundMatches:a,route:o,error:t}}function et(e,t){if(E){return E(e,t.map((e=>C(e,P.loaderData))))||e.key}return e.key}function tt(e,t){if(w){let r=et(e,t),n=w[r];if("number"==typeof n)return n}return null}function rt(e,t,r){if(f){if(!e){return{active:!0,matches:x(t,r,d,!0)||[]}}if(Object.keys(e[0].params).length>0){return{active:!0,matches:x(t,r,d,!0)}}}return{active:!1,matches:null}}async function nt(e,t,r){if(!f)return{type:"success",matches:e};let a=e;for(;;){let e=null==n,o=n||c,s=l;try{await f({path:t,matches:a,patch:(e,t)=>{r.aborted||ve(e,t,o,s,i)}})}catch(e){return{type:"error",error:e,partialMatches:a}}finally{e&&!r.aborted&&(c=[...c])}if(r.aborted)return{type:"aborted"};let u=R(o,t,d);if(u)return{type:"success",matches:u};let h=x(o,t,d,!0);if(!h||a.length===h.length&&a.every(((e,t)=>e.route.id===h[t].route.id)))return{type:"success",matches:null};a=h}}return o={get basename(){return d},get future(){return p},get state(){return P},get routes(){return c},get window(){return t},initialize:function(){if(v=e.history.listen((t=>{let{action:r,location:n,delta:a}=t;if(M)return M(),void(M=void 0);let o=Qe({currentLocation:P.location,nextLocation:n,historyAction:r});if(o&&null!=a){let t=new Promise((e=>{M=e}));return e.history.go(-1*a),void We(o,{state:"blocked",location:n,proceed(){We(o,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),t.then((()=>e.history.go(a)))},reset(){let e=new Map(P.blockers);e.set(o,re),ie({blockers:e})}})}return le(r,n)})),r){!function(e,t){try{let r=e.sessionStorage.getItem(oe);if(r){let e=JSON.parse(r);for(let[r,n]of Object.entries(e||{}))n&&Array.isArray(n)&&t.set(r,new Set(n||[]))}}catch(e){}}(t,F);let e=()=>function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(oe,JSON.stringify(r))}catch(e){}}}(t,F);t.addEventListener("pagehide",e),N=()=>t.removeEventListener("pagehide",e)}return P.initialized||le(u.Pop,P.location,{initialHydration:!0}),o},subscribe:function(e){return g.add(e),()=>g.delete(e)},enableScrollRestoration:function(e,t,r){if(w=e,k=t,E=r||null,!D&&P.navigation===ee){D=!0;let e=tt(P.location,P.matches);null!=e&&ie({restoreScrollPosition:e})}return()=>{w=null,k=null,E=null}},navigate:async function t(r,n){if("number"==typeof r)return void e.history.go(r);let a=ce(P.location,P.matches,d,r,null==n?void 0:n.fromRouteId,null==n?void 0:n.relative),{path:o,submission:i,error:l}=de(!1,a,n),c=P.location,h=y(P.location,o,n&&n.state);h=s({},h,e.history.encodeLocation(h));let f=n&&null!=n.replace?n.replace:void 0,m=u.Push;!0===f?m=u.Replace:!1===f||null!=i&&Je(i.formMethod)&&i.formAction===P.location.pathname+P.location.search&&(m=u.Replace);let p=n&&"preventScrollReset"in n?!0===n.preventScrollReset:void 0,v=!0===(n&&n.flushSync),g=Qe({currentLocation:c,nextLocation:h,historyAction:m});g?We(g,{state:"blocked",location:h,proceed(){We(g,{state:"proceeding",proceed:void 0,reset:void 0,location:h}),t(r,n)},reset(){let e=new Map(P.blockers);e.set(g,re),ie({blockers:e})}}):await le(m,h,{submission:i,pendingError:l,preventScrollReset:p,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:v})},fetch:async function(t,r,a,o){He(t);let i=!0===(o&&o.flushSync),s=n||c,l=ce(P.location,P.matches,d,a,r,null==o?void 0:o.relative),u=R(s,l,d),h=rt(u,s,l);if(h.active&&h.matches&&(u=h.matches),!u)return void ke(t,r,Oe(404,{pathname:l}),{flushSync:i});let{path:f,submission:p,error:y}=de(!0,l,o);if(y)return void ke(t,r,y,{flushSync:i});let v=$e(u,f),g=!0===(o&&o.preventScrollReset);p&&Je(p.formMethod)?await async function(t,r,a,o,i,s,l,u,h){function f(e){if(!e.route.action&&!e.route.lazy){let e=Oe(405,{method:h.formMethod,pathname:a,routeId:r});return ke(t,r,e,{flushSync:l}),!0}return!1}if(ge(),V.delete(t),!s&&f(o))return;let p=P.fetchers.get(t);Ce(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(h,p),{flushSync:l});let y=new AbortController,v=xe(e.history,a,y.signal,h);if(s){let e=await nt(i,a,v.signal);if("aborted"===e.type)return;if("error"===e.type)return void ke(t,r,e.error,{flushSync:l});if(!e.matches)return void ke(t,r,Oe(404,{pathname:a}),{flushSync:l});if(f(o=$e(i=e.matches,a)))return}z.set(t,y);let g=q,w=(await pe("action",P,v,[o],i,t))[o.route.id];if(v.signal.aborted)return void(z.get(t)===y&&z.delete(t));if(Y.has(t)){if(Ne(w)||Fe(w))return void Ce(t,Ge(void 0))}else{if(Ne(w))return z.delete(t),J>g?void Ce(t,Ge(void 0)):($.add(t),Ce(t,Ye(h)),he(v,w,!1,{fetcherSubmission:h,preventScrollReset:u}));if(Fe(w))return void ke(t,r,w.error)}let b=P.navigation.location||P.location,E=xe(e.history,b,y.signal),S=n||c,x="idle"!==P.navigation.state?R(S,P.navigation.location,d):P.matches;x||m(!1);let C=++q;W.set(t,C);let k=Ye(h,w.data);P.fetchers.set(t,k);let[D,L]=fe(e.history,P,x,h,b,!1,I,B,Y,V,$,S,d,[o.route.id,w]);L.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,r=P.fetchers.get(t),n=Ye(void 0,r?r.data:void 0);P.fetchers.set(t,n),He(t),e.controller&&z.set(t,e.controller)})),ie({fetchers:new Map(P.fetchers)});let T=()=>L.forEach((e=>He(e.key)));y.signal.addEventListener("abort",T);let{loaderResults:M,fetcherResults:_}=await ye(P,x,D,L,E);if(y.signal.aborted)return;y.signal.removeEventListener("abort",T),W.delete(t),z.delete(t),L.forEach((e=>z.delete(e.key)));let U=_e(M);if(U)return he(E,U.result,!1,{preventScrollReset:u});if(U=_e(_),U)return $.add(U.key),he(E,U.result,!1,{preventScrollReset:u});let{loaderData:j,errors:F}=Le(P,x,M,void 0,L,_);if(P.fetchers.has(t)){let e=Ge(w.data);P.fetchers.set(t,e)}ze(C),"loading"===P.navigation.state&&C>J?(O||m(!1),A&&A.abort(),se(P.navigation.location,{matches:x,loaderData:j,errors:F,fetchers:new Map(P.fetchers)})):(ie({errors:F,loaderData:Te(P.loaderData,j,x,F),fetchers:new Map(P.fetchers)}),I=!1)}(t,r,f,v,u,h.active,i,g,p):(V.set(t,{routeId:r,path:f}),await async function(t,r,n,a,o,i,s,l,u){let c=P.fetchers.get(t);Ce(t,Ye(u,c?c.data:void 0),{flushSync:s});let d=new AbortController,h=xe(e.history,n,d.signal);if(i){let e=await nt(o,n,h.signal);if("aborted"===e.type)return;if("error"===e.type)return void ke(t,r,e.error,{flushSync:s});if(!e.matches)return void ke(t,r,Oe(404,{pathname:n}),{flushSync:s});a=$e(o=e.matches,n)}z.set(t,d);let f=q,m=(await pe("loader",P,h,[a],o,t))[a.route.id];z.get(t)===d&&z.delete(t);if(h.signal.aborted)return;if(Y.has(t))return void Ce(t,Ge(void 0));if(Ne(m))return J>f?void Ce(t,Ge(void 0)):($.add(t),void await he(h,m,!1,{preventScrollReset:l}));if(Fe(m))return void ke(t,r,m.error);Ce(t,Ge(m.data))}(t,r,f,v,u,h.active,i,g,p))},revalidate:function(){Q||(Q=function(){let e,t,r=new Promise(((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}}));return{promise:r,resolve:e,reject:t}}()),ge(),ie({revalidation:"loading"});let e=Q.promise;return"submitting"===P.navigation.state?e:"idle"===P.navigation.state?(le(P.historyAction,P.location,{startUninterruptedRevalidation:!0}),e):(le(O||P.historyAction,P.navigation.location,{overrideNavigation:P.navigation,enableViewTransition:!0===j}),e)},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:De,deleteFetcher:function(e){let t=(X.get(e)||0)-1;t<=0?(X.delete(e),Y.add(e)):X.set(e,t),ie({fetchers:new Map(P.fetchers)})},dispose:function(){v&&v(),N&&N(),g.clear(),A&&A.abort(),P.fetchers.forEach(((e,t)=>Ue(t))),P.blockers.forEach(((e,t)=>qe(t)))},getBlocker:function(e,t){let r=P.blockers.get(e)||re;return G.get(e)!==t&&G.set(e,t),r},deleteBlocker:qe,patchRoutes:function(e,t){let r=null==n;ve(e,t,n||c,l,i),r&&(c=[...c],ie({}))},_internalFetchControllers:z,_internalSetRoutes:function(e){l={},n=S(e,i,void 0,l)}},o}function le(e,t){e.length>0||m(!1);let r={},n=(t?t.basename:null)||"/",a=(null==t?void 0:t.mapRouteProperties)||ae,o=S(e,a,void 0,r);async function i(e,t,r,n,a,o,i){e.signal||m(!1);try{if(Je(e.method)){let c=await async function(e,t,r,n,a,o,i){let c;if(r.route.action||r.route.lazy){c=(await u("action",e,[r],t,i,n,a))[r.route.id],e.signal.aborted&&ue(e,i)}else{let t=Oe(405,{method:e.method,pathname:new URL(e.url).pathname,routeId:r.route.id});if(i)throw t;c={type:b.error,error:t}}if(Ne(c))throw new Response(null,{status:c.response.status,headers:{Location:c.response.headers.get("Location")}});if(i){if(Fe(c))throw c.error;return{matches:[r],loaderData:{},actionData:{[r.route.id]:c.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}let d=new Request(e.url,{headers:e.headers,redirect:e.redirect,signal:e.signal});if(Fe(c)){let e=o?r:Me(t,r.route.id);return s({},await l(d,t,n,a,o,null,[e.route.id,c]),{statusCode:K(c.error)?c.error.status:null!=c.statusCode?c.statusCode:500,actionData:null,actionHeaders:s({},c.headers?{[r.route.id]:c.headers}:{})})}return s({},await l(d,t,n,a,o,null),{actionData:{[r.route.id]:c.data}},c.statusCode?{statusCode:c.statusCode}:{},{actionHeaders:c.headers?{[r.route.id]:c.headers}:{}})}(e,r,i||$e(r,t),n,a,o,null!=i);return c}let c=await l(e,r,n,a,o,i);return Ie(c)?c:s({},c,{actionData:null,actionHeaders:{}})}catch(e){if(function(e){return null!=e&&"object"==typeof e&&"type"in e&&"result"in e&&(e.type===b.data||e.type===b.error)}(e)&&Ie(e.result)){if(e.type===b.error)throw e.result;return e.result}if(ze(e))return e;throw e}}async function l(e,t,r,n,a,o,i){let l=null!=o;if(l&&(null==o||!o.route.loader)&&(null==o||!o.route.lazy))throw Oe(400,{method:e.method,pathname:new URL(e.url).pathname,routeId:null==o?void 0:o.route.id});let c=(o?[o]:i&&Fe(i[1])?he(t,i[0]):t).filter((e=>e.route.loader||e.route.lazy));if(0===c.length)return{matches:t,loaderData:t.reduce(((e,t)=>Object.assign(e,{[t.route.id]:null})),{}),errors:i&&Fe(i[1])?{[i[0]]:i[1].error}:null,statusCode:200,loaderHeaders:{}};let d=await u("loader",e,c,t,l,r,n);e.signal.aborted&&ue(e,l);let h=De(t,d,i,!0,a),f=new Set(c.map((e=>e.route.id)));return t.forEach((e=>{f.has(e.route.id)||(h.loaderData[e.route.id]=null)})),s({},h,{matches:t})}async function u(e,t,o,i,s,l,u){let c=await be(u||we,e,null,t,o,i,null,r,a,l),d={};return await Promise.all(i.map((async e=>{if(!(e.route.id in c))return;let r=c[e.route.id];if(je(r)){throw Se(r.result,t,e.route.id,i,n)}if(Ie(r.result)&&s)throw r;d[e.route.id]=await Ee(r)}))),d}return{dataRoutes:o,query:async function(e,t){let{requestContext:r,skipLoaderErrorBubbling:a,dataStrategy:l}=void 0===t?{}:t,u=new URL(e.url),c=e.method,d=y("",v(u),null,"default"),h=R(o,d,n);if(!qe(c)&&"HEAD"!==c){let e=Oe(405,{method:c}),{matches:t,route:r}=Pe(o);return{basename:n,location:d,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}}}if(!h){let e=Oe(404,{pathname:d.pathname}),{matches:t,route:r}=Pe(o);return{basename:n,location:d,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}}}let f=await i(e,d,h,r,l||null,!0===a,null);return Ie(f)?f:s({location:d,basename:n},f)},queryRoute:async function(e,t){let{routeId:r,requestContext:a,dataStrategy:s}=void 0===t?{}:t,l=new URL(e.url),u=e.method,c=y("",v(l),null,"default"),d=R(o,c,n);if(!qe(u)&&"HEAD"!==u&&"OPTIONS"!==u)throw Oe(405,{method:u});if(!d)throw Oe(404,{pathname:c.pathname});let h=r?d.find((e=>e.route.id===r)):$e(d,c);if(r&&!h)throw Oe(403,{pathname:c.pathname,routeId:r});if(!h)throw Oe(404,{pathname:c.pathname});let f=await i(e,c,d,a,s||null,!1,h);if(Ie(f))return f;let m=f.errors?Object.values(f.errors)[0]:void 0;if(void 0!==m)throw m;return f.actionData?Object.values(f.actionData)[0]:f.loaderData?Object.values(f.loaderData)[0]:void 0}}}function ue(e,t){if(void 0!==e.signal.reason)throw e.signal.reason;throw new Error((t?"queryRoute":"query")+"() call aborted without an `AbortSignal.reason`: "+e.method+" "+e.url)}function ce(e,t,r,n,a,o){let i,s;if(a){i=[];for(let e of t)if(i.push(e),e.route.id===a){s=e;break}}else i=t,s=t[t.length-1];let l=N(n||".",F(i),_(e.pathname,r)||e.pathname,"path"===o);if(null==n&&(l.search=e.search,l.hash=e.hash),(null==n||""===n||"."===n)&&s){let e=We(l.search);if(s.route.index&&!e)l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&e){let e=new URLSearchParams(l.search),t=e.getAll("index");e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let r=e.toString();l.search=r?"?"+r:""}}return"/"!==r&&(l.pathname="/"===l.pathname?r:H([r,l.pathname])),v(l)}function de(e,t,r){if(!r||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(r))return{path:t};if(r.formMethod&&!qe(r.formMethod))return{path:t,error:Oe(405,{method:r.formMethod})};let n,a,o=()=>({path:t,error:Oe(400,{type:"invalid-body"})}),i=(r.formMethod||"get").toUpperCase(),s=Ue(t);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!Je(i))return o();let e="string"==typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce(((e,t)=>{let[r,n]=t;return""+e+r+"="+n+"\n"}),""):String(r.body);return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===r.formEncType){if(!Je(i))return o();try{let e="string"==typeof r.body?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return o()}}}if("function"!=typeof FormData&&m(!1),r.formData)n=Ce(r.formData),a=r.formData;else if(r.body instanceof FormData)n=Ce(r.body),a=r.body;else if(r.body instanceof URLSearchParams)n=r.body,a=ke(n);else if(null==r.body)n=new URLSearchParams,a=new FormData;else try{n=new URLSearchParams(r.body),a=ke(n)}catch(e){return o()}let l={formMethod:i,formAction:s,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:a,json:void 0,text:void 0};if(Je(l.formMethod))return{path:t,submission:l};let u=g(t);return e&&u.search&&We(u.search)&&n.append("index",""),u.search="?"+n,{path:v(u),submission:l}}function he(e,t,r){void 0===r&&(r=!1);let n=e.findIndex((e=>e.route.id===t));return n>=0?e.slice(0,r?n+1:n):e}function fe(e,t,r,n,a,o,i,l,u,c,d,h,f,m){let p=m?Fe(m[1])?m[1].error:m[1].data:void 0,y=e.createURL(t.location),v=e.createURL(a),g=r;o&&t.errors?g=he(r,Object.keys(t.errors)[0],!0):m&&Fe(m[1])&&(g=he(r,m[0]));let w=m?m[1].statusCode:void 0,b=w&&w>=400,E=g.filter(((e,r)=>{let{route:a}=e;if(a.lazy)return!0;if(null==a.loader)return!1;if(o)return me(a,t.loaderData,t.errors);if(function(e,t,r){let n=!t||r.route.id!==t.route.id,a=!e.hasOwnProperty(r.route.id);return n||a}(t.loaderData,t.matches[r],e))return!0;let l=t.matches[r],u=e;return ye(e,s({currentUrl:y,currentParams:l.params,nextUrl:v,nextParams:u.params},n,{actionResult:p,actionStatus:w,defaultShouldRevalidate:!b&&(i||y.pathname+y.search===v.pathname+v.search||y.search!==v.search||pe(l,u))}))})),S=[];return c.forEach(((e,a)=>{if(o||!r.some((t=>t.route.id===e.routeId))||u.has(a))return;let c=R(h,e.path,f);if(!c)return void S.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let m=t.fetchers.get(a),g=$e(c,e.path),E=!1;d.has(a)?E=!1:l.has(a)?(l.delete(a),E=!0):E=m&&"idle"!==m.state&&void 0===m.data?i:ye(g,s({currentUrl:y,currentParams:t.matches[t.matches.length-1].params,nextUrl:v,nextParams:r[r.length-1].params},n,{actionResult:p,actionStatus:w,defaultShouldRevalidate:!b&&i})),E&&S.push({key:a,routeId:e.routeId,path:e.path,matches:c,match:g,controller:new AbortController})})),[E,S]}function me(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=null!=t&&void 0!==t[e.id],a=null!=r&&void 0!==r[e.id];return!(!n&&a)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!n&&!a)}function pe(e,t){let r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ye(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function ve(e,t,r,n,a){var o;let i;if(e){let t=n[e];t||m(!1),t.children||(t.children=[]),i=t.children}else i=r;let s=S(t.filter((e=>!i.some((t=>ge(e,t))))),a,[e||"_","patch",String((null==(o=i)?void 0:o.length)||"0")],n);i.push(...s)}function ge(e,t){return"id"in e&&"id"in t&&e.id===t.id||e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive&&(!(e.children&&0!==e.children.length||t.children&&0!==t.children.length)||e.children.every(((e,r)=>{var n;return null==(n=t.children)?void 0:n.some((t=>ge(e,t)))})))}async function we(e){let{matches:t}=e,r=t.filter((e=>e.shouldLoad));return(await Promise.all(r.map((e=>e.resolve())))).reduce(((e,t,n)=>Object.assign(e,{[r[n].route.id]:t})),{})}async function be(e,t,r,n,a,o,i,l,u,c){let d=o.map((e=>e.route.lazy?async function(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];a||m(!1);let o={};for(let e in n)void 0!==a[e]&&"hasErrorBoundary"!==e||E.has(e)||(o[e]=n[e]);Object.assign(a,o),Object.assign(a,s({},t(a),{lazy:void 0}))}(e.route,u,l):void 0)),h=o.map(((e,r)=>{let o=d[r],i=a.some((t=>t.route.id===e.route.id));return s({},e,{shouldLoad:i,resolve:async r=>(r&&"GET"===n.method&&(e.route.lazy||e.route.loader)&&(i=!0),i?async function(e,t,r,n,a,o){let i,s,l=n=>{let i,l=new Promise(((e,t)=>i=t));s=()=>i(),t.signal.addEventListener("abort",s);let u=a=>"function"!=typeof n?Promise.reject(new Error('You cannot call the handler for a route which defines a boolean "'+e+'" [routeId: '+r.route.id+"]")):n({request:t,params:r.params,context:o},...void 0!==a?[a]:[]),c=(async()=>{try{return{type:"data",result:await(a?a((e=>u(e))):u())}}catch(e){return{type:"error",result:e}}})();return Promise.race([c,l])};try{let a=r.route[e];if(n)if(a){let e,[t]=await Promise.all([l(a).catch((t=>{e=t})),n]);if(void 0!==e)throw e;i=t}else{if(await n,a=r.route[e],!a){if("action"===e){let e=new URL(t.url),n=e.pathname+e.search;throw Oe(405,{method:t.method,pathname:n,routeId:r.route.id})}return{type:b.data,result:void 0}}i=await l(a)}else{if(!a){let e=new URL(t.url);throw Oe(404,{pathname:e.pathname+e.search})}i=await l(a)}}catch(e){return{type:b.error,result:e}}finally{s&&t.signal.removeEventListener("abort",s)}return i}(t,n,e,o,r,c):Promise.resolve({type:b.data,result:void 0}))})})),f=await e({matches:h,request:n,params:o[0].params,fetcherKey:i,context:c});try{await Promise.all(d)}catch(e){}return f}async function Ee(e){let{result:t,type:r}=e;if(Ie(t)){let e;try{let r=t.headers.get("Content-Type");e=r&&/\bapplication\/json\b/.test(r)?null==t.body?null:await t.json():await t.text()}catch(e){return{type:b.error,error:e}}return r===b.error?{type:b.error,error:new $(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:b.data,data:e,statusCode:t.status,headers:t.headers}}if(r===b.error){if(He(t)){var n,a;if(t.data instanceof Error)return{type:b.error,error:t.data,statusCode:null==(a=t.init)?void 0:a.status};t=new $((null==(n=t.init)?void 0:n.status)||500,void 0,t.data)}return{type:b.error,error:t,statusCode:K(t)?t.status:void 0}}var o,i;return He(t)?{type:b.data,data:t.data,statusCode:null==(o=t.init)?void 0:o.status,headers:null!=(i=t.init)&&i.headers?new Headers(t.init.headers):void 0}:{type:b.data,data:t}}function Se(e,t,r,n,a){let o=e.headers.get("Location");if(o||m(!1),!ne.test(o)){let i=n.slice(0,n.findIndex((e=>e.route.id===r))+1);o=ce(new URL(t.url),i,a,o),e.headers.set("Location",o)}return e}function Re(e,t,r){if(ne.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=null!=_(a.pathname,r);if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function xe(e,t,r,n){let a=e.createURL(Ue(t)).toString(),o={signal:r};if(n&&Je(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=Ce(n.formData):o.body=n.formData}return new Request(a,o)}function Ce(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function ke(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function De(e,t,r,n,a){void 0===n&&(n=!1),void 0===a&&(a=!1);let o,i={},s=null,l=!1,u={},c=r&&Fe(r[1])?r[1].error:void 0;return e.forEach((r=>{if(!(r.route.id in t))return;let d=r.route.id,h=t[d];if(Ne(h)&&m(!1),Fe(h)){let t=h.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},a)s[d]=t;else{let r=Me(e,d);null==s[r.route.id]&&(s[r.route.id]=t)}n||(i[d]=ie),l||(l=!0,o=K(h.error)?h.error.status:500),h.headers&&(u[d]=h.headers)}else i[d]=h.data,h.statusCode&&200!==h.statusCode&&!l&&(o=h.statusCode),h.headers&&(u[d]=h.headers)})),void 0!==c&&r&&(s={[r[0]]:c},i[r[0]]=void 0),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}function Le(e,t,r,n,a,o){let{loaderData:i,errors:l}=De(t,r,n);return a.forEach((t=>{let{key:r,match:n,controller:a}=t,i=o[r];if(i||m(!1),!a||!a.signal.aborted)if(Fe(i)){let t=Me(e.matches,null==n?void 0:n.route.id);l&&l[t.route.id]||(l=s({},l,{[t.route.id]:i.error})),e.fetchers.delete(r)}else if(Ne(i))m(!1);else{let t=Ge(i.data);e.fetchers.set(r,t)}})),{loaderData:i,errors:l}}function Te(e,t,r,n){let a=Object.entries(t).filter((e=>{let[,t]=e;return t!==ie})).reduce(((e,t)=>{let[r,n]=t;return e[r]=n,e}),{});for(let o of r){let r=o.route.id;if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function Ae(e){return e?Fe(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Me(e,t){return(t?e.slice(0,e.findIndex((e=>e.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function Pe(e){let t=1===e.length?e[0]:e.find((e=>e.index||!e.path||"/"===e.path))||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Oe(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=void 0===t?{}:t,s="Unknown Server Error",l="Unknown @remix-run/router error";return 400===e?(s="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but did not provide a `loader` for route "'+n+'", so there is no way to handle the request.':"invalid-body"===o&&(l="Unable to encode submission body")):403===e?(s="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):404===e?(s="Not Found",l='No route matches URL "'+r+'"'):405===e&&(s="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but did not provide an `action` for route "'+n+'", so there is no way to handle the request.':a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new $(e||500,s,new Error(l),!0)}function _e(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(Ne(n))return{key:r,result:n}}}function Ue(e){return v(s({},"string"==typeof e?g(e):e,{hash:""}))}function je(e){return Ie(e.result)&&Q.has(e.result.status)}function Fe(e){return e.type===b.error}function Ne(e){return(e&&e.type)===b.redirect}function He(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function Ie(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function Be(e){return Q.has(e)}function ze(e){return Ie(e)&&Be(e.status)&&e.headers.has("Location")}function qe(e){return G.has(e.toUpperCase())}function Je(e){return X.has(e.toUpperCase())}function We(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function $e(e,t){let r="string"==typeof t?g(t).search:t.search;if(e[e.length-1].route.index&&We(r||""))return e[e.length-1];let n=j(e);return n[n.length-1]}function Ke(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n)return null!=a?{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a}:null!=o?{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0}:void 0!==i?{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}:void 0}function Ve(e,t){if(t){return{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}return{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Xe(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function Ye(e,t){if(e){return{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}}return{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Ge(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}const Qe=i.createContext(null);Qe.displayName="DataRouter";const Ze=i.createContext(null);Ze.displayName="DataRouterState";const et=i.createContext({isTransitioning:!1});et.displayName="ViewTransition";const tt=i.createContext(new Map);tt.displayName="Fetchers";const rt=i.createContext(null);rt.displayName="Await";const nt=i.createContext(null);nt.displayName="Navigation";const at=i.createContext(null);at.displayName="Location";const ot=i.createContext({outlet:null,matches:[],isDataRoute:!1});ot.displayName="Route";const it=i.createContext(null);function st(e,t){let{relative:r}=void 0===t?{}:t;lt()||m(!1);let{basename:n,navigator:a}=i.useContext(nt),{hash:o,pathname:s,search:l}=mt(e,{relative:r}),u=s;return"/"!==n&&(u="/"===s?n:H([n,s])),a.createHref({pathname:u,search:l,hash:o})}function lt(){return null!=i.useContext(at)}function ut(){return lt()||m(!1),i.useContext(at).location}function ct(e){i.useContext(nt).static||i.useLayoutEffect(e)}function dt(){let{isDataRoute:e}=i.useContext(ot);return e?function(){let{router:e}=xt(St.UseNavigateStable),t=kt(Rt.UseNavigateStable),r=i.useRef(!1);return ct((()=>{r.current=!0})),i.useCallback((async function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):await e.navigate(n,s({fromRouteId:t},a)))}),[e,t])}():function(){lt()||m(!1);let e=i.useContext(Qe),{basename:t,navigator:r}=i.useContext(nt),{matches:n}=i.useContext(ot),{pathname:a}=ut(),o=JSON.stringify(F(n)),s=i.useRef(!1);return ct((()=>{s.current=!0})),i.useCallback((function(n,i){if(void 0===i&&(i={}),!s.current)return;if("number"==typeof n)return void r.go(n);let l=N(n,JSON.parse(o),a,"path"===i.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:H([t,l.pathname])),(i.replace?r.replace:r.push)(l,i.state,i)}),[t,r,o,a,e])}()}it.displayName="RouteError";const ht=i.createContext(null);function ft(e){let t=i.useContext(ot).outlet;return t?i.createElement(ht.Provider,{value:e},t):t}function mt(e,t){let{relative:r}=void 0===t?{}:t,{matches:n}=i.useContext(ot),{pathname:a}=ut(),o=JSON.stringify(F(n));return i.useMemo((()=>N(e,JSON.parse(o),a,"path"===r)),[e,o,a,r])}function pt(e,t){return yt(e,t)}function yt(e,t,r,n){lt()||m(!1);let{navigator:a}=i.useContext(nt),{matches:o}=i.useContext(ot),l=o[o.length-1],c=l?l.params:{},d=l?l.pathname:"/",h=l?l.pathnameBase:"/",f=l&&l.route;{let e=f&&f.path||"";_t(d,!f||e.endsWith("*"))}let p,y=ut();if(t){var v;let e="string"==typeof t?g(t):t;"/"===h||(null==(v=e.pathname)?void 0:v.startsWith(h))||m(!1),p=e}else p=y;let w=p.pathname||"/",b=w;if("/"!==h){let e=h.replace(/^\//,"").split("/");b="/"+w.replace(/^\//,"").split("/").slice(e.length).join("/")}let E=R(e,{pathname:b}),S=Et(E&&E.map((e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:H([h,a.encodeLocation?a.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?h:H([h,a.encodeLocation?a.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),o,r);return t&&S?i.createElement(at.Provider,{value:{location:s({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:u.Pop}},S):S}function vt(){let e=Tt(),t=K(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=i.createElement(i.Fragment,null,i.createElement("p",null,"💿 Hey developer 👋"),i.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",i.createElement("code",{style:o},"ErrorBoundary")," or"," ",i.createElement("code",{style:o},"errorElement")," prop on your route.")),i.createElement(i.Fragment,null,i.createElement("h2",null,"Unexpected Application Error!"),i.createElement("h3",{style:{fontStyle:"italic"}},t),r?i.createElement("pre",{style:a},r):null,s)}const gt=i.createElement(vt,null);class wt extends i.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?i.createElement(ot.Provider,{value:this.props.routeContext},i.createElement(it.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function bt(e){let{routeContext:t,match:r,children:n}=e,a=i.useContext(Qe);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),i.createElement(ot.Provider,{value:t},n)}function Et(e,t,r,n){var a;if(void 0===t&&(t=[]),void 0===r&&(r=null),null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let o=e,s=null==(a=r)?void 0:a.errors;if(null!=s){let e=o.findIndex((e=>e.route.id&&void 0!==(null==s?void 0:s[e.route.id])));e>=0||m(!1),o=o.slice(0,Math.min(o.length,e+1))}let l=!1,u=-1;if(r)for(let e=0;e<o.length;e++){let t=o[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(u=e),t.route.id){let{loaderData:e,errors:n}=r,a=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!n||void 0===n[t.route.id]);if(t.route.lazy||a){l=!0,o=u>=0?o.slice(0,u+1):[o[0]];break}}}return o.reduceRight(((e,n,a)=>{let c,d=!1,h=null,f=null;r&&(c=s&&n.route.id?s[n.route.id]:void 0,h=n.route.errorElement||gt,l&&(u<0&&0===a?(_t("route-fallback",!1),d=!0,f=null):u===a&&(d=!0,f=n.route.hydrateFallbackElement||null)));let m=t.concat(o.slice(0,a+1)),p=()=>{let t;return t=c?h:d?f:n.route.Component?i.createElement(n.route.Component,null):n.route.element?n.route.element:e,i.createElement(bt,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?i.createElement(wt,{location:r.location,revalidation:r.revalidation,component:h,error:c,children:p(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):p()}),null)}var St=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(St||{}),Rt=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Rt||{});function xt(e){let t=i.useContext(Qe);return t||m(!1),t}function Ct(e){let t=i.useContext(Ze);return t||m(!1),t}function kt(e){let t=function(e){let t=i.useContext(ot);return t||m(!1),t}(),r=t.matches[t.matches.length-1];return r.route.id||m(!1),r.route.id}function Dt(){return Ct(Rt.UseNavigation).navigation}function Lt(){let{matches:e,loaderData:t}=Ct(Rt.UseMatches);return i.useMemo((()=>e.map((e=>C(e,t)))),[e,t])}function Tt(){var e;let t=i.useContext(it),r=Ct(Rt.UseRouteError),n=kt(Rt.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function At(){let e=i.useContext(rt);return null==e?void 0:e._data}let Mt=0;function Pt(e){let{router:t,basename:r}=xt(St.UseBlocker),n=Ct(Rt.UseBlocker),[a,o]=i.useState(""),l=i.useCallback((t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:s({},n,{pathname:_(n.pathname,r)||n.pathname}),nextLocation:s({},a,{pathname:_(a.pathname,r)||a.pathname}),historyAction:o})}),[r,e]);return i.useEffect((()=>{let e=String(++Mt);return o(e),()=>t.deleteBlocker(e)}),[t]),i.useEffect((()=>{""!==a&&t.getBlocker(a,l)}),[t,a,l]),a&&n.blockers.has(a)?n.blockers.get(a):re}const Ot={};function _t(e,t,r){t||Ot[e]||(Ot[e]=!0)}const Ut={};function jt(e,t){e||Ut[t]||(Ut[t]=!0,console.warn(t))}function Ft(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element,Object.assign(t,{element:i.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement,Object.assign(t,{hydrateFallbackElement:i.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement,Object.assign(t,{errorElement:i.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}function Nt(e,t){return se({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:d({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:Ft,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation}).initialize()}class Ht{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}}function It(e){let{router:t,flushSync:r}=e,[n,a]=i.useState(t.state),[o,s]=i.useState(),[l,u]=i.useState({isTransitioning:!1}),[c,d]=i.useState(),[h,f]=i.useState(),[m,p]=i.useState(),y=i.useRef(new Map),v=i.useCallback(((e,n)=>{let{deletedFetchers:o,flushSync:l,viewTransitionOpts:m}=n;o.forEach((e=>y.current.delete(e))),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)})),jt(!1===l||null!=r,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let v=null!=t.window&&null!=t.window.document&&"function"==typeof t.window.document.startViewTransition;if(jt(null==m||v,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),m&&v){if(r&&l){r((()=>{h&&(c&&c.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:m.currentLocation,nextLocation:m.nextLocation})}));let n=t.window.document.startViewTransition((()=>{r((()=>a(e)))}));return n.finished.finally((()=>{r((()=>{d(void 0),f(void 0),s(void 0),u({isTransitioning:!1})}))})),void r((()=>f(n)))}h?(c&&c.resolve(),h.skipTransition(),p({state:e,currentLocation:m.currentLocation,nextLocation:m.nextLocation})):(s(e),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}))}else r&&l?r((()=>a(e))):i.startTransition((()=>a(e)))}),[t.window,r,h,c]);i.useLayoutEffect((()=>t.subscribe(v)),[t,v]),i.useEffect((()=>{l.isTransitioning&&!l.flushSync&&d(new Ht)}),[l]),i.useEffect((()=>{if(c&&o&&t.window){let e=o,r=c.promise,n=t.window.document.startViewTransition((async()=>{i.startTransition((()=>a(e))),await r}));n.finished.finally((()=>{d(void 0),f(void 0),s(void 0),u({isTransitioning:!1})})),f(n)}}),[o,c,t.window]),i.useEffect((()=>{c&&o&&n.location.key===o.location.key&&c.resolve()}),[c,h,n.location,o]),i.useEffect((()=>{!l.isTransitioning&&m&&(s(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),p(void 0))}),[l.isTransitioning,m]);let g=i.useMemo((()=>({createHref:t.createHref,encodeLocation:t.encodeLocation,go:e=>t.navigate(e),push:(e,r,n)=>t.navigate(e,{state:r,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,r,n)=>t.navigate(e,{replace:!0,state:r,preventScrollReset:null==n?void 0:n.preventScrollReset})})),[t]),w=t.basename||"/",b=i.useMemo((()=>({router:t,navigator:g,static:!1,basename:w})),[t,g,w]);return i.createElement(i.Fragment,null,i.createElement(Qe.Provider,{value:b},i.createElement(Ze.Provider,{value:n},i.createElement(tt.Provider,{value:y.current},i.createElement(et.Provider,{value:l},i.createElement(Wt,{basename:w,location:n.location,navigationType:n.historyAction,navigator:g},i.createElement(Bt,{routes:t.routes,future:t.future,state:n})))))),null)}const Bt=i.memo(zt);function zt(e){let{routes:t,future:r,state:n}=e;return yt(t,void 0,n)}function qt(e){return ft(e.context)}function Jt(e){m(!1)}function Wt(e){let{basename:t="/",children:r=null,location:n,navigationType:a=u.Pop,navigator:o,static:s=!1}=e;lt()&&m(!1);let l=t.replace(/^\/*/,"/"),c=i.useMemo((()=>({basename:l,navigator:o,static:s,future:{}})),[l,o,s]);"string"==typeof n&&(n=g(n));let{pathname:d="/",search:h="",hash:f="",state:p=null,key:y="default"}=n,v=i.useMemo((()=>{let e=_(d,l);return null==e?null:{location:{pathname:e,search:h,hash:f,state:p,key:y},navigationType:a}}),[l,d,h,f,p,y,a]);return null==v?null:i.createElement(nt.Provider,{value:c},i.createElement(at.Provider,{children:r,value:v}))}var $t=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}($t||{});class Kt extends i.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=$t.pending;if(r instanceof Promise)if(this.state.error){a=$t.error;let e=this.state.error;n=Promise.reject().catch((()=>{})),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?(n=r,a="_error"in n?$t.error:"_data"in n?$t.success:$t.pending):(a=$t.pending,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then((e=>Object.defineProperty(r,"_data",{get:()=>e})),(e=>Object.defineProperty(r,"_error",{get:()=>e}))));else a=$t.success,n=Promise.resolve(),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(a===$t.error&&!t)throw n._error;if(a===$t.error)return i.createElement(rt.Provider,{value:n,children:t});if(a===$t.success)return i.createElement(rt.Provider,{value:n,children:e});throw n}}function Vt(e){let{children:t}=e,r=At(),n="function"==typeof t?t(r):t;return i.createElement(i.Fragment,null,n)}function Xt(e,t){void 0===t&&(t=[]);let r=[];return i.Children.forEach(e,((e,n)=>{if(!i.isValidElement(e))return;let a=[...t,n];if(e.type===i.Fragment)return void r.push.apply(r,Xt(e.props.children,a));e.type!==Jt&&m(!1),e.props.index&&e.props.children&&m(!1);let o={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=Xt(e.props.children,a)),r.push(o)})),r}const Yt="get",Gt="application/x-www-form-urlencoded";function Qt(e){return null!=e&&"string"==typeof e.tagName}function Zt(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map((e=>[r,e])):[[r,n]])}),[]))}let er=null;const tr=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function rr(e){return null==e||tr.has(e)?e:null}function nr(e,t){let r,n,a,o,i;if(Qt(s=e)&&"form"===s.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?_(i,t):null,r=e.getAttribute("method")||Yt,a=rr(e.getAttribute("enctype"))||Gt,o=new FormData(e)}else if(function(e){return Qt(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Qt(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||i.getAttribute("action");if(n=s?_(s,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||Yt,a=rr(e.getAttribute("formenctype"))||rr(i.getAttribute("enctype"))||Gt,o=new FormData(i,e),!function(){if(null===er)try{new FormData(document.createElement("form"),0),er=!1}catch(e){er=!0}return er}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?t+".":"";o.append(e+"x","0"),o.append(e+"y","0")}else t&&o.append(t,n)}}else{if(Qt(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Yt,n=null,a=Gt,i=e}var s;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}function ar(e,t){if(!1===e||null==e)throw new Error(t)}async function or(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(t){return console.error("Error loading route module `"+e.module+"`, reloading page..."),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise((()=>{}))}}function ir(e,t,r){let n=e.map((e=>{let n=t[e.route.id],a=r.routes[e.route.id];return[a&&a.css?a.css.map((e=>({rel:"stylesheet",href:e}))):[],(null==n||null==n.links?void 0:n.links())||[]]})).flat(2),a=function(e,t){return hr(e.map((e=>{let r=t.routes[e.route.id];if(!r)return[];let n=[r.module];return r.imports&&(n=n.concat(r.imports)),n})).flat(1))}(e,r);return fr(n,a)}async function sr(e,t){if(!e.css&&!t.links||!function(){if(void 0!==mr)return mr;let e=document.createElement("link");return mr=e.relList.supports("preload"),e=null,mr}())return;let r=[];if(e.css&&r.push(...e.css.map((e=>({rel:"stylesheet",href:e})))),t.links&&r.push(...t.links()),0===r.length)return;let n=[];for(let e of r)ur(e)||"stylesheet"!==e.rel||n.push(s({},e,{rel:"preload",as:"style"}));let a=n.filter((e=>(!e.media||window.matchMedia(e.media).matches)&&!document.querySelector('link[rel="stylesheet"][href="'+e.href+'"]')));await Promise.all(a.map(lr))}async function lr(e){return new Promise((t=>{let r=document.createElement("link");function n(){document.head.contains(r)&&document.head.removeChild(r)}Object.assign(r,e),r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)}))}function ur(e){return null!=e&&"string"==typeof e.page}function cr(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}function dr(e,t,r,n,a,o){let i=(e,t)=>!r[t]||e.route.id!==r[t].route.id,s=(e,t)=>{var n;return r[t].pathname!==e.pathname||(null==(n=r[t].route.path)?void 0:n.endsWith("*"))&&r[t].params["*"]!==e.params["*"]};return"assets"===o?t.filter(((e,t)=>i(e,t)||s(e,t))):"data"===o?t.filter(((t,o)=>{let l=n.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(i(t,o)||s(t,o))return!0;if(t.route.shouldRevalidate){var u;let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:(null==(u=r[0])?void 0:u.params)||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0})):[]}function hr(e){return[...new Set(e)]}function fr(e,t){let r=new Set,n=new Set(t);return e.reduce(((e,a)=>{if(t&&!ur(a)&&"script"===a.as&&a.href&&n.has(a.href))return e;let o=JSON.stringify(function(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}(a));return r.has(o)||(r.add(o),e.push({key:o,link:a})),e}),[])}let mr;const pr={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},yr=/[&><\u2028\u2029]/g;function vr(e){return{__html:e}}async function gr(e){let t={signal:e.signal};if("GET"!==e.method){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}const wr=Symbol("SingleFetchRedirect");function br(e){let{context:t,identifier:r,reader:n,textDecoder:a,nonce:o}=e;if(!t.renderMeta||!t.renderMeta.didRenderScripts)return null;t.renderMeta.streamCache||(t.renderMeta.streamCache={});let{streamCache:s}=t.renderMeta,l=s[r];if(l||(l=s[r]=n.read().then((e=>{s[r].result={done:e.done,value:a.decode(e.value,{stream:!0})}})).catch((e=>{s[r].error=e}))),l.error)throw l.error;if(void 0===l.result)throw l;let{done:u,value:c}=l.result,d=c?i.createElement("script",{nonce:o,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.enqueue("+(h=JSON.stringify(c),h.replace(yr,(e=>pr[e]))+");")}}):null;var h;return u?i.createElement(i.Fragment,null,d,i.createElement("script",{nonce:o,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):i.createElement(i.Fragment,null,d,i.createElement(i.Suspense,null,i.createElement(br,{context:t,identifier:r+1,reader:n,textDecoder:a,nonce:o})))}function Er(e,t,r,n){return e((async()=>{let e=new URL(t);e.searchParams.set("_routes",n);let{data:a}=await xr(e,r);return kr(a,n)}))}function Sr(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let e of t)e&&r.push(e);for(let t of r)e.searchParams.append("index",t);return e}function Rr(e){let t="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return"/"===t.pathname?t.pathname="_root.data":t.pathname=t.pathname.replace(/\/$/,"")+".data",t}async function xr(e,t){let r=await fetch(e,t);if(404===r.status&&!r.headers.has("X-Remix-Response"))throw new $(404,"Not Found",!0);r.body||ar(!1);try{let e=await Cr(r.body,window);return{status:r.status,data:e.value}}catch(e){throw new Error("Unable to decode turbo-stream response")}}function Cr(e,t){return r.decode(e,{plugins:[function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];if("SanitizedError"===e){let[e,r,a]=n,o=Error;e&&e in t&&"function"==typeof t[e]&&(o=t[e]);let i=new o(r);return i.stack=a,{value:i}}if("ErrorResponse"===e){let[e,t,r]=n;return{value:new $(t,r,e)}}return"SingleFetchRedirect"===e?{value:{[wr]:n[0]}}:"SingleFetchClassInstance"===e?{value:n[0]}:"SingleFetchFallback"===e?{value:void 0}:void 0}]})}function kr(e,t){let r=e[wr];return r?Dr(r,t):void 0!==e[t]?Dr(e[t],t):null}function Dr(e,t){if("error"in e)throw e.error;if("redirect"in e){let t={};return e.revalidate&&(t["X-Remix-Revalidate"]="yes"),e.reload&&(t["X-Remix-Reload-Document"]="yes"),e.replace&&(t["X-Remix-Replace"]="yes"),W(e.redirect,{status:e.status,headers:t})}if("data"in e)return e.data;throw new Error('No response found for routeId "'+t+'"')}function Lr(){let e,t,r=new Promise(((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}}));return{promise:r,resolve:e,reject:t}}class Tr extends i.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?i.createElement(Ar,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}}function Ar(e){let{error:t,isOutsideRemixApp:r}=e;console.error(t);let n,a=i.createElement("script",{dangerouslySetInnerHTML:{__html:'\n console.log(\n "💿 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."\n );\n '}});if(K(t))return i.createElement(Mr,{title:"Unhandled Thrown Response!"},i.createElement("h1",{style:{fontSize:"24px"}},t.status," ",t.statusText),a);if(t instanceof Error)n=t;else{let e=null==t?"Unknown Error":"object"==typeof t&&"toString"in t?t.toString():JSON.stringify(t);n=new Error(e)}return i.createElement(Mr,{title:"Application Error!",isOutsideRemixApp:r},i.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),i.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),a)}function Mr(e){var t;let{title:r,renderScripts:n,isOutsideRemixApp:a,children:o}=e,{routeModules:s}=Qr();return null!=(t=s.root)&&t.Layout&&!a?o:i.createElement("html",{lang:"en"},i.createElement("head",null,i.createElement("meta",{charSet:"utf-8"}),i.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),i.createElement("title",null,r)),i.createElement("body",null,i.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},o,n?i.createElement(on,null):null)))}function Pr(){return i.createElement(Mr,{title:"Loading...",renderScripts:!0},i.createElement("script",{dangerouslySetInnerHTML:{__html:'\n console.log(\n "💿 Hey developer 👋. You can provide a way better UX than this " +\n "when your app is loading JS modules and/or running `clientLoader` " +\n "functions. Check out https://remix.run/route/hydrate-fallback " +\n "for more information."\n );\n '}}))}function Or(e){let t={};return Object.values(e).forEach((e=>{if(e){let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)}})),t}function _r(e,t,r){let n=Ir(t),a=!t.HydrateFallback||r&&"root"!==e.id?"root"===e.id?Pr:void 0:t.HydrateFallback,o=t.ErrorBoundary?t.ErrorBoundary:"root"===e.id?()=>i.createElement(Ar,{error:Tt()}):void 0;return"root"===e.id&&t.Layout?s({},n?{element:i.createElement(t.Layout,null,i.createElement(n,null))}:{Component:n},o?{errorElement:i.createElement(t.Layout,null,i.createElement(o,null))}:{ErrorBoundary:o},a?{hydrateFallbackElement:i.createElement(t.Layout,null,i.createElement(a,null))}:{HydrateFallback:a}):{Component:n,ErrorBoundary:o,HydrateFallback:a}}function Ur(e,t,r,n,a,o,i){return void 0===a&&(a=""),void 0===o&&(o=Or(e)),void 0===i&&(i=Promise.resolve({Component:()=>null})),(o[a]||[]).map((a=>{let l=t[a.id];l||ar(!1);let u=s({},_r(a,l,n),{caseSensitive:a.caseSensitive,id:a.id,index:a.index,path:a.path,handle:l.handle,lazy:n?()=>i:void 0,loader:a.hasLoader||a.hasClientLoader?()=>null:void 0}),c=Ur(e,t,r,n,a.id,o,i);return c.length>0&&(u.children=c),u}))}function jr(e,t,r){if(r){let r="You cannot call "+("action"===e?"serverAction()":"serverLoader()")+' in SPA Mode (routeId: "'+t.id+'")';throw console.error(r),new $(400,"Bad Request",new Error(r),!0)}let n="You are trying to call "+("action"===e?"serverAction()":"serverLoader()")+" on a route that does not have a server "+e+' (routeId: "'+t.id+'")';if("loader"===e&&!t.hasLoader||"action"===e&&!t.hasAction)throw console.error(n),new $(400,"Bad Request",new Error(n),!0)}function Fr(e,t){let r="clientAction"===e?"a":"an",n='Route "'+t+'" does not have '+r+" "+e+", but you are trying to submit to it. To fix this, please add "+r+" `"+e+"` function to the route";throw console.error(n),new $(405,"Method Not Allowed",new Error(n),!0)}function Nr(e,t,r,n,a,o,i){return void 0===a&&(a=""),void 0===o&&(o=Or(e)),(o[a]||[]).map((a=>{let l=t[a.id];function u(e){return"function"!=typeof e&&ar(!1),e()}function c(e){return a.hasLoader?u(e):Promise.resolve(null)}function d(e){if(!a.hasAction)throw Fr("action",a.id);return u(e)}async function h(e){let r=t[a.id],n=r?sr(a,r):Promise.resolve();try{return e()}finally{await n}}let f={id:a.id,index:a.index,path:a.path};if(l){var m,p,y;Object.assign(f,s({},f,_r(a,l,n),{handle:l.handle,shouldRevalidate:Hr(l,a.id,i)}));let e=r&&r.loaderData&&a.id in r.loaderData,t=e?null==r||null==(m=r.loaderData)?void 0:m[a.id]:void 0,o=r&&r.errors&&a.id in r.errors,u=o?null==r||null==(p=r.errors)?void 0:p[a.id]:void 0,v=null==i&&(!0===(null==(y=l.clientLoader)?void 0:y.hydrate)||!a.hasLoader);f.loader=async(r,i)=>{let{request:s,params:d}=r;try{return await h((async()=>(l||ar(!1),l.clientLoader?l.clientLoader({request:s,params:d,async serverLoader(){if(jr("loader",a,n),v){if(e)return t;if(o)throw u}return c(i)}}):n?null:c(i))))}finally{v=!1}},f.loader.hydrate=Br(a,l,n),f.action=(e,t)=>{let{request:r,params:o}=e;return h((async()=>{if(l||ar(!1),!l.clientAction){if(n)throw Fr("clientAction",a.id);return d(t)}return l.clientAction({request:r,params:o,serverAction:async()=>(jr("action",a,n),d(t))})}))}}else a.hasClientLoader||(f.loader=(e,t)=>h((()=>n?Promise.resolve(null):c(t)))),a.hasClientAction||(f.action=(e,t)=>h((()=>{if(n)throw Fr("clientAction",a.id);return d(t)}))),f.lazy=async()=>{let e=await async function(e,t){let r=await or(e,t);return await sr(e,r),{Component:Ir(r),ErrorBoundary:r.ErrorBoundary,clientAction:r.clientAction,clientLoader:r.clientLoader,handle:r.handle,links:r.links,meta:r.meta,shouldRevalidate:r.shouldRevalidate}}(a,t),r=s({},e);if(e.clientLoader){let t=e.clientLoader;r.loader=(e,r)=>t(s({},e,{serverLoader:async()=>(jr("loader",a,n),c(r))}))}if(e.clientAction){let t=e.clientAction;r.action=(e,r)=>t(s({},e,{serverAction:async()=>(jr("action",a,n),d(r))}))}return s({},r.loader?{loader:r.loader}:{},r.action?{action:r.action}:{},{hasErrorBoundary:r.hasErrorBoundary,shouldRevalidate:Hr(r,a.id,i),handle:r.handle,Component:r.Component,ErrorBoundary:r.ErrorBoundary})};let v=Nr(e,t,r,n,a.id,o,i);return v.length>0&&(f.children=v),f}))}function Hr(e,t,r){if(r)return function(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}(t,e.shouldRevalidate,r);if(e.shouldRevalidate){let t=e.shouldRevalidate;return e=>t(s({},e,{defaultShouldRevalidate:!0}))}return e.shouldRevalidate}function Ir(e){if(null==e.default)return;return"object"==typeof e.default&&0===Object.keys(e.default).length?void 0:e.default}function Br(e,t,r){return r&&"root"!==e.id||null!=t.clientLoader&&(!0===t.clientLoader.hydrate||!0!==e.hasLoader)}const zr=new Set,qr=new Set;function Jr(e){return!e}async function Wr(e,t,r,n,a,o){let i=((null!=a?a:"/")+"/__manifest").replace(/\/+/g,"/"),s=new URL(i,window.location.origin);if(e.sort().forEach((e=>s.searchParams.append("p",e))),s.searchParams.set("version",t.version),s.toString().length>7680)return void zr.clear();let l=await fetch(s);if(!l.ok)throw new Error(l.status+" "+l.statusText);if(l.status>=400)throw new Error(await l.text());let u=await l.json(),c=new Set(Object.keys(t.routes)),d=Object.values(u).reduce(((e,t)=>(t&&!c.has(t.id)&&(e[t.id]=t),e)),{});Object.assign(t.routes,d),e.forEach((e=>function(e,t){if(t.size>=1e3){let e=t.values().next().value;t.delete(e)}t.add(e)}(e,qr)));let h=new Set;Object.values(d).forEach((e=>{!e||e.parentId&&d[e.parentId]||h.add(e.parentId)})),h.forEach((e=>o(e||null,Nr(d,r,null,n,e))))}const $r=["page"],Kr=["page","matches"],Vr=["tagName"];function Xr(){let e=i.useContext(Qe);return e||ar(!1),e}function Yr(){let e=i.useContext(Ze);return e||ar(!1),e}const Gr=i.createContext(void 0);function Qr(){let e=i.useContext(Gr);return e||ar(!1),e}function Zr(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function en(e,t,r){if(r&&!an)return[e[0]];if(t){let r=e.findIndex((e=>void 0!==t[e.route.id]));return e.slice(0,r+1)}return e}function tn(e){let{page:t}=e,r=l(e,$r),{router:n}=Xr(),a=i.useMemo((()=>R(n.routes,t,n.basename)),[n.routes,t,n.basename]);return a?i.createElement(nn,s({page:t,matches:a},r)):(console.warn("Tried to prefetch "+t+" but no routes matched."),null)}function rn(e){let{manifest:t,routeModules:r}=Qr(),[n,a]=i.useState([]);return i.useEffect((()=>{let n=!1;return async function(e,t,r){return fr((await Promise.all(e.map((async e=>{let n=t.routes[e.route.id];if(n){let e=await or(n,r);return e.links?e.links():[]}return[]})))).flat(1).filter(cr).filter((e=>"stylesheet"===e.rel||"preload"===e.rel)).map((e=>"stylesheet"===e.rel?s({},e,{rel:"prefetch",as:"style"}):s({},e,{rel:"prefetch"}))))}(e,t,r).then((e=>{n||a(e)})),()=>{n=!0}}),[e,t,r]),n}function nn(e){let{page:t,matches:r}=e,n=l(e,Kr),a=ut(),{manifest:o,routeModules:u}=Qr(),{loaderData:c,matches:d}=Yr(),h=i.useMemo((()=>dr(t,r,d,o,a,"data")),[t,r,d,o,a]),f=i.useMemo((()=>dr(t,r,d,o,a,"assets")),[t,r,d,o,a]),m=i.useMemo((()=>{if(t===a.pathname+a.search+a.hash)return[];let e=new Set,n=!1;if(r.forEach((t=>{var r;let a=o.routes[t.route.id];a&&a.hasLoader&&(!h.some((e=>e.route.id===t.route.id))&&t.route.id in c&&null!=(r=u[t.route.id])&&r.shouldRevalidate||a.hasClientLoader?n=!0:e.add(t.route.id))})),0===e.size)return[];let i=Rr(t);return n&&e.size>0&&i.searchParams.set("_routes",r.filter((t=>e.has(t.route.id))).map((e=>e.route.id)).join(",")),[i.pathname+i.search]}),[c,a,o,h,r,t,u]),p=i.useMemo((()=>function(e,t){return hr(e.map((e=>{let r=t.routes[e.route.id];if(!r)return[];let n=[r.module];return r.imports&&(n=n.concat(r.imports)),n})).flat(1))}(f,o)),[f,o]),y=rn(f);return i.createElement(i.Fragment,null,m.map((e=>i.createElement("link",s({key:e,rel:"prefetch",as:"fetch",href:e},n)))),p.map((e=>i.createElement("link",s({key:e,rel:"modulepreload",href:e},n)))),y.map((e=>{let{key:t,link:r}=e;return i.createElement("link",s({key:t},r))})))}Gr.displayName="FrameworkContext";let an=!1;function on(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a}=Qr(),{router:o,static:l,staticContext:u}=Xr(),{matches:c}=Yr(),d=Jr(n);a&&(a.didRenderScripts=!0);let h=en(c,null,n);i.useEffect((()=>{an=!0}),[]);let f=i.useMemo((()=>{var n;let a=u?"window.__reactRouterContext = "+r+";window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());":" ",c=l?(null!=(n=t.hmr)&&n.runtime?"import "+JSON.stringify(t.hmr.runtime)+";":"")+(d?"":"import "+JSON.stringify(t.url))+";\n"+h.map(((e,r)=>"import * as route"+r+" from "+JSON.stringify(t.routes[e.route.id].module)+";")).join("\n")+"\n "+(d?"window.__reactRouterManifest = "+JSON.stringify(function(e,t){let r=new Set(t.state.matches.map((e=>e.route.id))),n=t.state.location.pathname.split("/").filter(Boolean),a=["/"];for(n.pop();n.length>0;)a.push("/"+n.join("/")),n.pop();a.forEach((e=>{let n=R(t.routes,e,t.basename);n&&n.forEach((e=>r.add(e.route.id)))}));let o=[...r].reduce(((t,r)=>Object.assign(t,{[r]:e.routes[r]})),{});return s({},e,{routes:o})}(t,o),null,2)+";":"")+"\n window.__reactRouterRouteModules = {"+h.map(((e,t)=>JSON.stringify(e.route.id)+":route"+t)).join(",")+"};\n\nimport("+JSON.stringify(t.entry.module)+");":" ";return i.createElement(i.Fragment,null,i.createElement("script",s({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:vr(a),type:void 0})),i.createElement("script",s({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:vr(c),type:"module",async:!0})))}),[]),m=h.map((e=>{let r=t.routes[e.route.id];return r?(r.imports||[]).concat([r.module]):[]})).flat(1),p=an?[]:t.entry.imports.concat(m);return an?null:i.createElement(i.Fragment,null,d?null:i.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),i.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),(y=p,[...new Set(y)]).map((t=>i.createElement("link",{key:t,rel:"modulepreload",href:t,crossOrigin:e.crossOrigin}))),f);var y}function sn(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return e=>{t.forEach((t=>{"function"==typeof t?t(e):null!=t&&(t.current=e)}))}}const ln=["onClick","discover","prefetch","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],un=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],cn=["discover","fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"],dn=["getKey","storageKey"],hn="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{hn&&(window.__reactRouterVersion="7")}catch(e){}function fn(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=s({},t,{errors:mn(t.errors)})),t}function mn(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new $(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=new Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}function pn(e){let{basename:t,children:r,history:n}=e,[a,o]=i.useState({action:n.action,location:n.location}),s=i.useCallback((e=>{i.startTransition((()=>o(e)))}),[o]);return i.useLayoutEffect((()=>n.listen(s)),[n,s]),i.createElement(Wt,{basename:t,children:r,location:a.location,navigationType:a.action,navigator:n})}pn.displayName="unstable_HistoryRouter";const yn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,vn=i.forwardRef((function(e,t){let r,{onClick:n,discover:a="render",prefetch:o="none",relative:u,reloadDocument:c,replace:d,state:h,target:f,to:m,preventScrollReset:p,viewTransition:y}=e,v=l(e,ln),{basename:g}=i.useContext(nt),w="string"==typeof m&&yn.test(m),b=!1;if("string"==typeof m&&w&&(r=m,hn))try{let e=new URL(window.location.href),t=m.startsWith("//")?new URL(e.protocol+m):new URL(m),r=_(t.pathname,g);t.origin===e.origin&&null!=r?m=r+t.search+t.hash:b=!0}catch(e){}let E=st(m,{relative:u}),[S,R,x]=function(e,t){let r=i.useContext(Gr),[n,a]=i.useState(!1),[o,s]=i.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:d,onTouchStart:h}=t,f=i.useRef(null);i.useEffect((()=>{if("render"===e&&s(!0),"viewport"===e){let e=new IntersectionObserver((e=>{e.forEach((e=>{s(e.isIntersecting)}))}),{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}}),[e]),i.useEffect((()=>{if(n){let e=setTimeout((()=>{s(!0)}),100);return()=>{clearTimeout(e)}}}),[n]);let m=()=>{a(!0)},p=()=>{a(!1),s(!1)};return r?"intent"!==e?[o,f,{}]:[o,f,{onFocus:Zr(l,m),onBlur:Zr(u,p),onMouseEnter:Zr(c,m),onMouseLeave:Zr(d,p),onTouchStart:Zr(h,m)}]:[!1,f,{}]}(o,v),C=Cn(m,{replace:d,state:h,target:f,preventScrollReset:p,relative:u,viewTransition:y});let k=i.createElement("a",s({},v,x,{href:r||E,onClick:b||c?n:function(e){n&&n(e),e.defaultPrevented||C(e)},ref:sn(t,R),target:f,"data-discover":w||"render"!==a?void 0:"true"}));return S&&!w?i.createElement(i.Fragment,null,k,i.createElement(tn,{page:E})):k}));vn.displayName="Link";const gn=i.forwardRef((function(e,t){let{"aria-current":r="page",caseSensitive:n=!1,className:a="",end:o=!1,style:u,to:c,viewTransition:d,children:h}=e,f=l(e,un),m=mt(c,{relative:f.relative}),p=ut(),y=i.useContext(Ze),{navigator:v,basename:g}=i.useContext(nt),w=null!=y&&On(m)&&!0===d,b=v.encodeLocation?v.encodeLocation(m).pathname:m.pathname,E=p.pathname,S=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;n||(E=E.toLowerCase(),S=S?S.toLowerCase():null,b=b.toLowerCase()),S&&g&&(S=_(S,g)||S);const R="/"!==b&&b.endsWith("/")?b.length-1:b.length;let x,C=E===b||!o&&E.startsWith(b)&&"/"===E.charAt(R),k=null!=S&&(S===b||!o&&S.startsWith(b)&&"/"===S.charAt(b.length)),D={isActive:C,isPending:k,isTransitioning:w},L=C?r:void 0;x="function"==typeof a?a(D):[a,C?"active":null,k?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let T="function"==typeof u?u(D):u;return i.createElement(vn,s({},f,{"aria-current":L,className:x,ref:t,style:T,to:c,viewTransition:d}),"function"==typeof h?h(D):h)}));gn.displayName="NavLink";const wn=i.forwardRef(((e,t)=>{let{discover:r="render",fetcherKey:n,navigate:a,reloadDocument:o,replace:u,state:c,method:d=Yt,action:h,onSubmit:f,relative:m,preventScrollReset:p,viewTransition:y}=e,v=l(e,cn),g=Dn(),w=Ln(h,{relative:m}),b="get"===d.toLowerCase()?"get":"post",E="string"==typeof h&&yn.test(h);return i.createElement("form",s({ref:t,method:b,action:w,onSubmit:o?f:e=>{if(f&&f(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,r=(null==t?void 0:t.getAttribute("formmethod"))||d;g(t||e.currentTarget,{fetcherKey:n,method:r,navigate:a,replace:u,state:c,relative:m,preventScrollReset:p,viewTransition:y})}},v,{"data-discover":E||"render"!==r?void 0:"true"}))}));function bn(e){let{getKey:t,storageKey:r}=e,n=l(e,dn),a=i.useContext(Gr),{basename:o}=i.useContext(nt),u=ut(),c=Lt();Pn({getKey:t,storageKey:r});let d=i.useMemo((()=>{if(!a||!t)return null;let e=Mn(u,c,o,t);return e!==u.key?e:null}),[]);if(!a||a.isSpaMode)return null;let h=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},"")}try{let r=JSON.parse(sessionStorage.getItem(e)||"{}")[t||window.history.state.key];"number"==typeof r&&window.scrollTo(0,r)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return i.createElement("script",s({},n,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:"("+h+")("+JSON.stringify(r||Tn)+", "+JSON.stringify(d)+")"}}))}wn.displayName="Form",bn.displayName="ScrollRestoration";var En=function(e){return e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState",e}(En||{}),Sn=function(e){return e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration",e}(Sn||{});function Rn(e){let t=i.useContext(Qe);return t||m(!1),t}function xn(e){let t=i.useContext(Ze);return t||m(!1),t}function Cn(e,t){let{target:r,replace:n,state:a,preventScrollReset:o,relative:s,viewTransition:l}=void 0===t?{}:t,u=dt(),c=ut(),d=mt(e,{relative:s});return i.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,r)){t.preventDefault();let r=void 0!==n?n:v(c)===v(d);u(e,{replace:r,state:a,preventScrollReset:o,relative:s,viewTransition:l})}}),[c,u,d,n,a,r,e,o,s,l])}let kn=0;function Dn(){let{router:e}=Rn(En.UseSubmit),{basename:t}=i.useContext(nt),r=kt(Rt.UseRouteId);return i.useCallback((async function(n,a){void 0===a&&(a={});let{action:o,method:i,encType:s,formData:l,body:u}=nr(n,t);if(!1===a.navigate){let t=a.fetcherKey||"__"+String(++kn)+"__";await e.fetch(t,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,flushSync:a.flushSync})}else await e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})}),[e,t,r])}function Ln(e,t){let{relative:r}=void 0===t?{}:t,{basename:n}=i.useContext(nt),a=i.useContext(ot);a||m(!1);let[o]=a.matches.slice(-1),l=s({},mt(e||".",{relative:r})),u=ut();if(null==e){l.search=u.search;let e=new URLSearchParams(l.search),t=e.getAll("index");if(t.some((e=>""===e))){e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let r=e.toString();l.search=r?"?"+r:""}}return e&&"."!==e||!o.route.index||(l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(l.pathname="/"===l.pathname?n:H([n,l.pathname])),v(l)}const Tn="react-router-scroll-positions";let An={};function Mn(e,t,r,n){let a=null;return n&&(a=n("/"!==r?s({},e,{pathname:_(e.pathname,r)||e.pathname}):e,t)),null==a&&(a=e.key),a}function Pn(e){let{getKey:t,storageKey:r}=void 0===e?{}:e,{router:n}=Rn(En.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:o}=xn(Sn.UseScrollRestoration),{basename:s}=i.useContext(nt),l=ut(),u=Lt(),c=Dt();i.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:r}=t||{};i.useEffect((()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,r])}(i.useCallback((()=>{if("idle"===c.state){let e=Mn(l,u,s,t);An[e]=window.scrollY}try{sessionStorage.setItem(r||Tn,JSON.stringify(An))}catch(e){}window.history.scrollRestoration="auto"}),[c.state,t,s,l,u,r])),"undefined"!=typeof document&&(i.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(r||Tn);e&&(An=JSON.parse(e))}catch(e){}}),[r]),i.useLayoutEffect((()=>{let e=null==n?void 0:n.enableScrollRestoration(An,(()=>window.scrollY),t?(e,r)=>Mn(e,r,s,t):void 0);return()=>e&&e()}),[n,s,t]),i.useLayoutEffect((()=>{if(!1!==a)if("number"!=typeof a){if(l.hash){let e=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==o&&window.scrollTo(0,0)}else window.scrollTo(0,a)}),[l,a,o]))}function On(e,t){void 0===t&&(t={});let r=i.useContext(et);null==r&&m(!1);let{basename:n}=Rn(En.useViewTransitionState),a=mt(e,{relative:t.relative});if(!r.isTransitioning)return!1;let o=_(r.currentLocation.pathname,n)||r.currentLocation.pathname,s=_(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=P(a.pathname,s)||null!=P(a.pathname,o)}function _n(e){let{context:t,router:r,hydrate:n=!0,nonce:a}=e;r&&t||m(!1);let o={router:r,navigator:Fn(),static:!0,staticContext:t,basename:t.basename||"/"},s=new Map,l="";if(!1!==n){let e={loaderData:t.loaderData,actionData:t.actionData,errors:jn(t.errors)};l="window.__staticRouterHydrationData = JSON.parse("+JSON.stringify(JSON.stringify(e)).replace(qn,(e=>zn[e]))+");"}let{state:u}=o.router;return i.createElement(i.Fragment,null,i.createElement(Qe.Provider,{value:o},i.createElement(Ze.Provider,{value:u},i.createElement(tt.Provider,{value:s},i.createElement(et.Provider,{value:{isTransitioning:!1}},i.createElement(Wt,{basename:o.basename,location:u.location,navigationType:u.historyAction,navigator:o.navigator,static:o.static},i.createElement(Un,{routes:r.routes,future:r.future,state:u})))))),l?i.createElement("script",{suppressHydrationWarning:!0,nonce:a,dangerouslySetInnerHTML:{__html:l}}):null)}function Un(e){let{routes:t,future:r,state:n}=e;return yt(t,void 0,n)}function jn(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)K(n)?r[e]=s({},n,{__type:"RouteErrorResponse"}):n instanceof Error?r[e]=s({message:n.message,__type:"Error"},"Error"!==n.name?{__subType:n.name}:{}):r[e]=n;return r}function Fn(){return{createHref:Hn,encodeLocation:In,push(e){throw new Error("You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+")` somewhere in your app.")},replace(e){throw new Error("You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+", { replace: true })` somewhere in your app.")},go(e){throw new Error("You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+e+")` somewhere in your app.")},back(){throw new Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw new Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}}}function Nn(e,t,r){void 0===r&&(r={});let n={},a=S(e,Ft,void 0,n),o=t.matches.map((e=>s({},e,{route:n[e.route.id]||e.route}))),i=e=>"You cannot use router."+e+"() on the server because it is a stateless environment";return{get basename(){return t.basename},get future(){var e;return s({},null==(e=r)?void 0:e.future)},get state(){return{historyAction:u.Pop,location:t.location,matches:o,loaderData:t.loaderData,actionData:t.actionData,errors:t.errors,initialized:!0,navigation:ee,restoreScrollPosition:null,preventScrollReset:!1,revalidation:"idle",fetchers:new Map,blockers:new Map}},get routes(){return a},get window(){},initialize(){throw i("initialize")},subscribe(){throw i("subscribe")},enableScrollRestoration(){throw i("enableScrollRestoration")},navigate(){throw i("navigate")},fetch(){throw i("fetch")},revalidate(){throw i("revalidate")},createHref:Hn,encodeLocation:In,getFetcher:()=>te,deleteFetcher(){throw i("deleteFetcher")},dispose(){throw i("dispose")},getBlocker:()=>re,deleteBlocker(){throw i("deleteBlocker")},patchRoutes(){throw i("patchRoutes")},_internalFetchControllers:new Map,_internalSetRoutes(){throw i("_internalSetRoutes")}}}function Hn(e){return"string"==typeof e?e:v(e)}function In(e){let t="string"==typeof e?e:v(e);t=t.replace(/ $/,"%20");let r=Bn.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:r.pathname,search:r.search,hash:r.hash}}const Bn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,zn={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},qn=/[&><\u2028\u2029]/g;function Jn(e,t,r,n,a){return e.map((e=>{if(!e.id)throw new Error("Expected a route.id in @remix-run/testing processRoutes() function");let{loader:o,action:i}=e,l={id:e.id,path:e.path,index:e.index,Component:e.Component,HydrateFallback:e.HydrateFallback,ErrorBoundary:e.ErrorBoundary,action:i?e=>i(s({},e,{context:t})):void 0,loader:o?e=>o(s({},e,{context:t})):void 0,handle:e.handle,shouldRevalidate:e.shouldRevalidate},u={id:e.id,path:e.path,index:e.index,parentId:a,hasAction:null!=e.action,hasLoader:null!=e.loader,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:null!=e.ErrorBoundary,module:"build/stub-path-to-module.js"};return r.routes[l.id]=u,n[e.id]={default:e.Component||qt,ErrorBoundary:e.ErrorBoundary||void 0,handle:e.handle,links:e.links,meta:e.meta,shouldRevalidate:e.shouldRevalidate},e.children&&(l.children=Jn(e.children,t,r,n,l.id)),l}))}const Wn=new TextEncoder,$n=async(e,t)=>{let r=e.lastIndexOf("."),n=e.slice(0,r),a=e.slice(r+1),o=Wn.encode(n),i=await Kn(t,["verify"]),s=function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(atob(a));return!!await crypto.subtle.verify("HMAC",i,s,o)&&n},Kn=async(e,t)=>crypto.subtle.importKey("raw",Wn.encode(e),{name:"HMAC",hash:"SHA-256"},!1,t);const Vn=["secrets"],Xn=function(e,t){void 0===t&&(t={});let r=s({path:"/",sameSite:"lax"},t),{secrets:a=[]}=r,o=l(r,Vn);return function(e,t){jt(!t,'The "'+e+'" cookie has an "expires" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use `commitSession(session, { expires })` if using a session storage object, or `cookie.serialize("value", { expires })` if you\'re using the cookie directly.')}(e,o.expires),{get name(){return e},get isSigned(){return a.length>0},get expires(){return void 0!==o.maxAge?new Date(Date.now()+1e3*o.maxAge):o.expires},async parse(t,r){if(!t)return null;let i=n.parse(t,s({},o,r));if(e in i){let t=i[e];if("string"==typeof t&&""!==t){let e=await async function(e,t){if(t.length>0){for(let r of t){let t=await $n(e,r);if(!1!==t)return Gn(t)}return null}return Gn(e)}(t,a);return e}return""}return null},serialize:async(t,r)=>n.serialize(e,""===t?"":await async function(e,t){let r=function(e){return btoa(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;){if(t=n.charAt(o++),"%"===t)if("u"===n.charAt(o)){if(r=n.slice(o+1,o+5),/^[\da-f]{4}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=5;continue}}else if(r=n.slice(o,o+2),/^[\da-f]{2}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=2;continue}a+=t}return a}(encodeURIComponent(JSON.stringify(e))))}(e);t.length>0&&(r=await(async(e,t)=>{let r=Wn.encode(e),n=await Kn(t,["sign"]),a=await crypto.subtle.sign("HMAC",n,r);return e+"."+btoa(String.fromCharCode(...new Uint8Array(a))).replace(/=+$/,"")})(r,t[0]));return r}(t,a),s({},o,r))}},Yn=e=>null!=e&&"string"==typeof e.name&&"boolean"==typeof e.isSigned&&"function"==typeof e.parse&&"function"==typeof e.serialize;function Gn(e){try{return JSON.parse(decodeURIComponent(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;)t=n.charAt(o++),/[\w*+\-./@]/.exec(t)?a+=t:(r=t.charCodeAt(0),a+=r<256?"%"+Qn(r,2):"%u"+Qn(r,4).toUpperCase());return a}(atob(e))))}catch(e){return{}}}function Qn(e,t){let r=e.toString(16);for(;r.length<t;)r="0"+r;return r}function Zn(e){return Object.keys(e).reduce(((t,r)=>{let n=e[r];return n&&(t[r]=n.module),t}),{})}let ea=function(e){return e.Development="development",e.Production="production",e.Test="test",e}({});function ta(e,t){if(e instanceof Error&&t!==ea.Development){let e=new Error("Unexpected Server Error");return e.stack=void 0,e}return e}function ra(e,t){return Object.entries(e).reduce(((e,r)=>{let[n,a]=r;return Object.assign(e,{[n]:ta(a,t)})}),{})}function na(e,t){let r=ta(e,t);return{message:r.message,stack:r.stack}}function aa(e,t){if(!e)return null;let r=Object.entries(e),n={};for(let[e,a]of r)if(K(a))n[e]=s({},a,{__type:"RouteErrorResponse"});else if(a instanceof Error){let r=ta(a,t);n[e]=s({message:r.message,stack:r.stack,__type:"Error"},"Error"!==r.name?{__subType:r.name}:{})}else n[e]=a;return n}function oa(e,t,r){let n=R(e,t,r);return n?n.map((e=>({params:e.params,pathname:e.pathname,route:e.route}))):null}async function ia(e,t){let r=await e({request:la(sa(t.request)),params:t.params,context:t.context});if(He(r)&&r.init&&r.init.status&&Be(r.init.status))throw new Response(null,r.init);return r}function sa(e){let t=new URL(e.url),r=t.searchParams.getAll("index");t.searchParams.delete("index");let n=[];for(let e of r)e&&n.push(e);for(let e of n)t.searchParams.append("index",e);let a={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return a.body&&(a.duplex="half"),new Request(t.href,a)}function la(e){let t=new URL(e.url);t.searchParams.delete("_routes");let r={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return r.body&&(r.duplex="half"),new Request(t.href,r)}function ua(e,t){if(!1===e||null==e)throw console.error("The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose"),new Error(t)}function ca(e){let t={};return Object.values(e).forEach((e=>{if(e){let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)}})),t}function da(e,t,r){return void 0===t&&(t=""),void 0===r&&(r=ca(e)),(r[t]||[]).map((t=>s({},t,{children:da(e,t.id,r)})))}function ha(e,t,r,n){return void 0===r&&(r=""),void 0===n&&(n=ca(e)),(n[r]||[]).map((r=>{let a={hasErrorBoundary:"root"===r.id||null!=r.module.ErrorBoundary,id:r.id,path:r.path,loader:r.module.loader?async e=>{if(e.request.headers.has("X-React-Router-Prerender-Data")){let t=e.request.headers.get("X-React-Router-Prerender-Data");t||ua(!1);let n=(new TextEncoder).encode(t),a=new ReadableStream({start(e){e.enqueue(n),e.close()}}),o=(await Cr(a,global)).value;o&&r.id in o||ua(!1);let i=o[r.id];return"data"in i||ua(!1),i.data}return await ia(r.module.loader,e)}:void 0,action:r.module.action?e=>ia(r.module.action,e):void 0,handle:r.module.handle};return r.index?s({index:!0},a):s({caseSensitive:r.caseSensitive,children:ha(e,t,r.id,n)},a)}))}const fa={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ma=/[&><\u2028\u2029]/g;function pa(e){return JSON.stringify(e).replace(ma,(e=>fa[e]))}const ya="__reactRouterDevServerHooks";function va(){return globalThis[ya]}function ga(e,t){let r,n=t.errors?t.matches.findIndex((e=>t.errors[e.route.id])):-1,a=n>=0?t.matches.slice(0,n+1):t.matches;if(n>=0){let{actionHeaders:e,actionData:a,loaderHeaders:o,loaderData:i}=t;t.matches.slice(n).some((t=>{let n=t.route.id;return!e[n]||a&&a.hasOwnProperty(n)?o[n]&&!i.hasOwnProperty(n)&&(r=o[n]):r=e[n],null!=r}))}return a.reduce(((n,o,i)=>{let{id:s}=o.route,l=e.routes[s];l||ua(!1);let u=l.module,c=t.loaderHeaders[s]||new Headers,d=t.actionHeaders[s]||new Headers,h=null!=r&&i===a.length-1,f=h&&r!==c&&r!==d;if(null==u.headers){let e=new Headers(n);return f&&wa(r,e),wa(d,e),wa(c,e),e}let m=new Headers(u.headers?"function"==typeof u.headers?u.headers({loaderHeaders:c,parentHeaders:n,actionHeaders:d,errorHeaders:h?r:void 0}):u.headers:void 0);return f&&wa(r,m),wa(d,m),wa(c,m),wa(n,m),m}),new Headers)}function wa(e,t){let r=e.get("Set-Cookie");if(r){a.splitCookiesString(r).forEach((e=>{t.append("Set-Cookie",e)}))}}const ba=202;function Ea(e){let{isActionDataRequest:t,loadRouteIds:r}=void 0===e?{}:e;return async e=>{let{request:n,matches:a}=e;if(t&&"GET"===n.method)return{};let o=r?a.filter((e=>r.includes(e.route.id))):a;return(await Promise.all(o.map((e=>e.resolve())))).reduce(((e,t,r)=>Object.assign(e,{[o[r].route.id]:t})),{})}}function Sa(e,t,r){let n=t.get("Location");return r&&(n=_(n,r)||n),{redirect:n,status:e,revalidate:t.has("X-Remix-Revalidate")||t.has("Set-Cookie"),reload:t.has("X-Remix-Reload-Document"),replace:t.has("X-Remix-Replace")}}function Ra(e,t,n,a){let o=new AbortController,i=setTimeout((()=>o.abort(new Error("Server Timeout"))),"number"==typeof n?n:4950);return t.addEventListener("abort",(()=>clearTimeout(i))),r.encode(e,{signal:o.signal,plugins:[e=>{if(e instanceof Error){let{name:t,message:r,stack:n}=a===ea.Production?ta(e,a):e;return["SanitizedError",t,r,n]}if(e instanceof $){let{data:t,status:r,statusText:n}=e;return["ErrorResponse",t,r,n]}if(e&&"object"==typeof e&&wr in e)return["SingleFetchRedirect",e[wr]]}],postPlugins:[e=>{if(e&&"object"==typeof e)return["SingleFetchClassInstance",Object.fromEntries(Object.entries(e))]},()=>["SingleFetchFallback"]]})}function xa(e,t){let r=da(e.routes),n=ha(e.routes,e.future),a=(o=t)===ea.Development||o===ea.Production||o===ea.Test?t:ea.Production;var o;let i=le(n,{basename:e.basename}),s=e.entry.module.handleError||((e,t)=>{let{request:r}=t;a===ea.Test||r.signal.aborted||console.error(K(e)&&e.error?e.error:e)});return{routes:r,dataRoutes:n,serverMode:a,staticHandler:i,errorHandler:s}}function Ca(e,t){let r="Unexpected Server Error";return t!==ea.Production&&(r+="\n\n"+String(e)),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function ka(e){return"__flash_"+e+"__"}const Da=function(e,t){void 0===e&&(e={}),void 0===t&&(t="");let r=new Map(Object.entries(e));return{get id(){return t},get data(){return Object.fromEntries(r)},has:e=>r.has(e)||r.has(ka(e)),get(e){if(r.has(e))return r.get(e);let t=ka(e);if(r.has(t)){let e=r.get(t);return r.delete(t),e}},set(e,t){r.set(e,t)},flash(e,t){r.set(ka(e),t)},unset(e){r.delete(e)}}};function La(e){let{cookie:t,createData:r,readData:n,updateData:a,deleteData:o}=e,i=Yn(t)?t:Xn((null==t?void 0:t.name)||"__session",t);return Ta(i),{async getSession(e,t){let r=e&&await i.parse(e,t),a=r&&await n(r);return Da(a||{},r||"")},async commitSession(e,t){let{id:n,data:o}=e,s=null!=(null==t?void 0:t.maxAge)?new Date(Date.now()+1e3*t.maxAge):null!=(null==t?void 0:t.expires)?t.expires:i.expires;return n?await a(n,o,s):n=await r(o,s),i.serialize(n,t)},destroySession:async(e,t)=>(await o(e.id),i.serialize("",s({},t,{maxAge:void 0,expires:new Date(0)})))}}function Ta(e){jt(e.isSigned,'The "'+e.name+'" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://remix.run/utils/cookies#signing-cookies for more information.')}e.Await=function(e){let{children:t,errorElement:r,resolve:n}=e;return i.createElement(Kt,{resolve:n,errorElement:r},i.createElement(Vt,null,t))},e.BrowserRouter=function(e){let{basename:t,children:r,window:n}=e,a=i.useRef();null==a.current&&(a.current=h({window:n,v5Compat:!0}));let o=a.current,[s,l]=i.useState({action:o.action,location:o.location}),u=i.useCallback((e=>{i.startTransition((()=>l(e)))}),[l]);return i.useLayoutEffect((()=>o.listen(u)),[o,u]),i.createElement(Wt,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o})},e.Form=wn,e.HashRouter=function(e){let{basename:t,children:r,window:n}=e,a=i.useRef();null==a.current&&(a.current=f({window:n,v5Compat:!0}));let o=a.current,[s,l]=i.useState({action:o.action,location:o.location}),u=i.useCallback((e=>{i.startTransition((()=>l(e)))}),[l]);return i.useLayoutEffect((()=>o.listen(u)),[o,u]),i.createElement(Wt,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o})},e.IDLE_BLOCKER=re,e.IDLE_FETCHER=te,e.IDLE_NAVIGATION=ee,e.Link=vn,e.Links=function(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=Qr(),{errors:a,matches:o}=Yr(),l=en(o,a,e),u=i.useMemo((()=>ir(l,r,t)),[l,r,t]);return i.createElement(i.Fragment,null,n?i.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,u.map((e=>{let{key:t,link:r}=e;return ur(r)?i.createElement(tn,s({key:t},r)):i.createElement("link",s({key:t},r))})))},e.MemoryRouter=function(e){let{basename:t,children:r,initialEntries:n,initialIndex:a}=e,o=i.useRef();null==o.current&&(o.current=d({initialEntries:n,initialIndex:a,v5Compat:!0}));let s=o.current,[l,u]=i.useState({action:s.action,location:s.location}),c=i.useCallback((e=>{i.startTransition((()=>u(e)))}),[u]);return i.useLayoutEffect((()=>s.listen(c)),[s,c]),i.createElement(Wt,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:s})},e.Meta=function(){let{isSpaMode:e,routeModules:t}=Qr(),{errors:r,matches:n,loaderData:a}=Yr(),o=ut(),u=en(n,r,e),c=null;r&&(c=r[u[u.length-1].route.id]);let d=[],h=null,f=[];for(let e=0;e<u.length;e++){let r=u[e],n=r.route.id,i=a[n],s=r.params,l=t[n],m=[],p={id:n,data:i,meta:[],params:r.params,pathname:r.pathname,handle:r.route.handle,error:c};if(f[e]=p,null!=l&&l.meta?m="function"==typeof l.meta?l.meta({data:i,params:s,location:o,matches:f,error:c}):Array.isArray(l.meta)?[...l.meta]:l.meta:h&&(m=[...h]),m=m||[],!Array.isArray(m))throw new Error("The route at "+r.route.path+" returns an invalid value. All route meta functions must return an array of meta objects.\n\nTo reference the meta function API, see https://remix.run/route/meta");p.meta=m,f[e]=p,d=[...m],h=d}return i.createElement(i.Fragment,null,d.flat().map((e=>{if(!e)return null;if("tagName"in e){let{tagName:t}=e,r=l(e,Vr);if(!function(e){return"string"==typeof e&&/^(meta|link)$/.test(e)}(t))return console.warn("A meta object uses an invalid tagName: "+t+". Expected either 'link' or 'meta'"),null;let n=t;return i.createElement(n,s({key:JSON.stringify(r)},r))}if("title"in e)return i.createElement("title",{key:"title"},String(e.title));"charset"in e&&(null!=e.charSet||(e.charSet=e.charset),delete e.charset);if("charSet"in e&&null!=e.charSet)return"string"==typeof e.charSet?i.createElement("meta",{key:"charSet",charSet:e.charSet}):null;if("script:ld+json"in e)try{let t=JSON.stringify(e["script:ld+json"]);return i.createElement("script",{key:"script:ld+json:"+t,type:"application/ld+json",dangerouslySetInnerHTML:{__html:t}})}catch(e){return null}return i.createElement("meta",s({key:JSON.stringify(e)},e))})))},e.NavLink=gn,e.Navigate=function(e){let{to:t,replace:r,state:n,relative:a}=e;lt()||m(!1),i.useContext(nt);let{matches:o}=i.useContext(ot),{pathname:s}=ut(),l=dt(),u=N(t,F(o),s,"path"===a),c=JSON.stringify(u);return i.useEffect((()=>{l(JSON.parse(c),{replace:r,state:n,relative:a})}),[l,c,a,r,n]),null},e.NavigationType=u,e.Outlet=qt,e.PrefetchPageLinks=tn,e.Route=Jt,e.Router=Wt,e.RouterProvider=It,e.Routes=function(e){let{children:t,location:r}=e;return pt(Xt(t),r)},e.Scripts=on,e.ScrollRestoration=bn,e.ServerRouter=function(e){let{context:t,url:r,abortDelay:n,nonce:a}=e;"string"==typeof r&&(r=new URL(r));let{manifest:o,routeModules:l,criticalCss:u,serverHandoffString:c}=t,d=Ur(o.routes,l,t.future,t.isSpaMode);t.staticHandlerContext.loaderData=s({},t.staticHandlerContext.loaderData);for(let e of t.staticHandlerContext.matches){let r=e.route.id,n=l[r],a=t.manifest.routes[r];n&&a&&Br(a,n,t.isSpaMode)&&(n.HydrateFallback||!a.hasLoader)&&delete t.staticHandlerContext.loaderData[r]}let h=Nn(d,t.staticHandlerContext);return i.createElement(i.Fragment,null,i.createElement(Gr.Provider,{value:{manifest:o,routeModules:l,criticalCss:u,serverHandoffString:c,future:t.future,isSpaMode:t.isSpaMode,serializeError:t.serializeError,abortDelay:n,renderMeta:t.renderMeta}},i.createElement(Tr,{location:h.state.location},i.createElement(_n,{router:h,context:t.staticHandlerContext,hydrate:!1}))),t.serverHandoffStream?i.createElement(i.Suspense,null,i.createElement(br,{context:t,identifier:0,reader:t.serverHandoffStream.getReader(),textDecoder:new TextDecoder,nonce:a})):null)},e.StaticRouter=function(e){let{basename:t,children:r,location:n="/"}=e;"string"==typeof n&&(n=g(n));let a=u.Pop,o={pathname:n.pathname||"/",search:n.search||"",hash:n.hash||"",state:null!=n.state?n.state:null,key:n.key||"default"},s=Fn();return i.createElement(Wt,{basename:t,children:r,location:o,navigationType:a,navigator:s,static:!0})},e.StaticRouterProvider=_n,e.UNSAFE_DataRouterContext=Qe,e.UNSAFE_DataRouterStateContext=Ze,e.UNSAFE_ErrorResponseImpl=$,e.UNSAFE_FetchersContext=tt,e.UNSAFE_FrameworkContext=Gr,e.UNSAFE_LocationContext=at,e.UNSAFE_NavigationContext=nt,e.UNSAFE_RemixErrorBoundary=Tr,e.UNSAFE_RouteContext=ot,e.UNSAFE_ServerMode=ea,e.UNSAFE_SingleFetchRedirectSymbol=wr,e.UNSAFE_ViewTransitionContext=et,e.UNSAFE_createBrowserHistory=h,e.UNSAFE_createClientRoutes=Nr,e.UNSAFE_createClientRoutesWithHMRRevalidationOptOut=function(e,t,r,n,a,o){return Nr(t,r,n,o,"",Or(t),e)},e.UNSAFE_createRouter=se,e.UNSAFE_decodeViaTurboStream=Cr,e.UNSAFE_deserializeErrors=function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new $(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack=n.stack,r[e]=a}catch(e){}}if(null==r[e]){let t=new Error(n.message);t.stack=n.stack,r[e]=t}}else r[e]=n;return r},e.UNSAFE_getPatchRoutesOnNavigationFunction=function(e,t,r,n){if(Jr(r))return async a=>{let{path:o,patch:i}=a;qr.has(o)||await Wr([o],e,t,r,n,i)}},e.UNSAFE_getSingleFetchDataStrategy=function(e,t,r){return async n=>{let{request:a,matches:o,fetcherKey:i}=n;return"GET"!==a.method?async function(e,t){let r=t.find((e=>e.shouldLoad));r||ar(!1);let n,a=await r.resolve((async t=>{let a=await t((async()=>{let t=Rr(e.url),a=await gr(e),{data:o,status:i}=await xr(t,a);return n=i,Dr(o,r.route.id)}));return a}));if(Ie(a.result)||K(a.result))return{[r.route.id]:a};return{[r.route.id]:{type:a.type,result:J(a.result,n)}}}(a,o):i?async function(e,t){let r=t.find((e=>e.shouldLoad));r||ar(!1);let n=await r.resolve((async t=>Er(t,Sr(Rr(e.url)),await gr(e),r.route.id)));return{[r.route.id]:n}}(a,o):async function(e,t,r,n,a){let o=new Set,i=!1,s=a.map((()=>Lr())),l=Promise.all(s.map((e=>e.promise))),u=Lr(),c=Sr(Rr(n.url)),d=await gr(n),h={},f=Promise.all(a.map((async(n,a)=>n.resolve((async l=>{s[a].resolve();let f=e.routes[n.route.id];if(!n.shouldLoad){var m;if(!r.state.initialized)return;if(n.route.id in r.state.loaderData&&f&&f.hasLoader&&null!=(m=t[n.route.id])&&m.shouldRevalidate)return void(i=!0)}if(f&&f.hasClientLoader){f.hasLoader&&(i=!0);try{let e=await Er(l,c,d,n.route.id);h[n.route.id]={type:"data",result:e}}catch(e){h[n.route.id]={type:"error",result:e}}}else{f&&f.hasLoader&&o.add(n.route.id);try{let e=await l((async()=>kr(await u.promise,n.route.id)));h[n.route.id]={type:"data",result:e}}catch(e){h[n.route.id]={type:"error",result:e}}}})))));if(await l,r.state.initialized&&0!==o.size||window.__reactRouterHdrActive)try{i&&o.size>0&&c.searchParams.set("_routes",a.filter((e=>o.has(e.route.id))).map((e=>e.route.id)).join(","));let e=await xr(c,d);u.resolve(e.data)}catch(e){u.reject(e)}else u.resolve({});return await f,h}(e,t,r(),a,o)}},e.UNSAFE_invariant=m,e.UNSAFE_mapRouteProperties=Ft,e.UNSAFE_shouldHydrateRouteLoader=Br,e.UNSAFE_useFogOFWarDiscovery=function(e,t,r,n){i.useEffect((()=>{var a;if(!Jr(n)||!0===(null==(a=navigator.connection)?void 0:a.saveData))return;function o(e){let t="FORM"===e.tagName?e.getAttribute("action"):e.getAttribute("href");if(!t)return;let r=new URL(t,window.location.origin);qr.has(r.pathname)||zr.add(r.pathname)}async function i(){let a=Array.from(zr.keys()).filter((e=>!qr.has(e)||(zr.delete(e),!1)));if(0!==a.length)try{await Wr(a,t,r,n,e.basename,e.patchRoutes)}catch(e){console.error("Failed to fetch manifest patches",e)}}document.body.querySelectorAll("a[data-discover], form[data-discover]").forEach((e=>o(e))),i();let s=function(e,t){let r;return function(){for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];window.clearTimeout(r),r=window.setTimeout((()=>e(...a)),t)}}(i,100);let l=new MutationObserver((e=>{let t=new Set;e.forEach((e=>{[e.target,...e.addedNodes].forEach((e=>{(function(e){return e.nodeType===Node.ELEMENT_NODE})(e)&&(("A"===e.tagName&&e.getAttribute("data-discover")||"FORM"===e.tagName&&e.getAttribute("data-discover"))&&t.add(e),"A"!==e.tagName&&e.querySelectorAll("a[data-discover], form[data-discover]").forEach((e=>t.add(e))))}))})),t.forEach((e=>o(e))),s()}));return l.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>l.disconnect()}),[n,t,r,e])},e.UNSAFE_useScrollRestoration=Pn,e.createBrowserRouter=function(e,t){return se({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:h({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||fn(),routes:e,mapRouteProperties:Ft,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()},e.createCookie=Xn,e.createCookieSessionStorage=function(e){let{cookie:t}=void 0===e?{}:e,r=Yn(t)?t:Xn((null==t?void 0:t.name)||"__session",t);return Ta(r),{getSession:async(e,t)=>Da(e&&await r.parse(e,t)||{}),async commitSession(e,t){let n=await r.serialize(e.data,t);if(n.length>4096)throw new Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},destroySession:async(e,t)=>r.serialize("",s({},t,{maxAge:void 0,expires:new Date(0)}))}},e.createHashRouter=function(e,t){return se({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:f({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||fn(),routes:e,mapRouteProperties:Ft,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()},e.createMemoryRouter=Nt,e.createMemorySessionStorage=function(e){let{cookie:t}=void 0===e?{}:e,r=new Map;return La({cookie:t,async createData(e,t){let n=Math.random().toString(36).substring(2,10);return r.set(n,{data:e,expires:t}),n},async readData(e){if(r.has(e)){let{data:t,expires:n}=r.get(e);if(!n||n>new Date)return t;n&&r.delete(e)}return null},async updateData(e,t,n){r.set(e,{data:t,expires:n})},async deleteData(e){r.delete(e)}})},e.createPath=v,e.createRequestHandler=(e,t)=>{let r,n,a,o,i;return async function(l,u){var c;if(void 0===u&&(u={}),r="function"==typeof e?await e():e,"function"==typeof e){let e=xa(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler}else if(!(n&&a&&o&&i)){let e=xa(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler}let d=new URL(l.url),h={},f=e=>{var r;t===ea.Development&&(null==(r=va())||null==r.processRequestError||r.processRequestError(e));i(e,{context:u,params:h,request:l})},m=((null!=(c=r.basename)?c:"/")+"/__manifest").replace(/\/+/g,"/");if(d.pathname===m)try{let e=await async function(e,t,r){let n={};if(r.searchParams.has("p")){for(let a of r.searchParams.getAll("p")){let r=oa(t,a,e.basename);if(r)for(let t of r){let r=t.route.id,a=e.assets.routes[r];a&&(n[r]=a)}}return Response.json(n,{headers:{"Cache-Control":"public, max-age=31536000, immutable"}})}return new Response("Invalid Request",{status:400})}(r,n,d);return e}catch(e){return f(e),new Response("Unknown Server Error",{status:500})}let p,y=oa(n,d.pathname,r.basename);if(y&&y.length>0&&Object.assign(h,y[0].params),d.pathname.endsWith(".data")){let e=new URL(l.url);e.pathname=e.pathname.replace(/\.data$/,"").replace(/^\/_root$/,"/");let t=oa(n,e.pathname,r.basename);if(p=await async function(e,t,r,n,a,o,i){let{result:l,headers:u,status:c}="GET"!==n.method?await async function(e,t,r,n,a,o,i){try{let l=new Request(a,s({method:n.method,body:n.body,headers:n.headers,signal:n.signal},n.body?{duplex:"half"}:void 0)),u=await r.query(l,{requestContext:o,skipLoaderErrorBubbling:!0,dataStrategy:Ea({isActionDataRequest:!0})});if(Ie(u))return{result:Sa(u.status,u.headers,e.basename),headers:u.headers,status:ba};let c,d=u,h=ga(e,d);return Be(d.statusCode)&&h.has("Location")?{result:Sa(d.statusCode,h,e.basename),headers:h,status:ba}:(d.errors&&(Object.values(d.errors).forEach((e=>{K(e)&&!e.error||i(e)})),d.errors=ra(d.errors,t)),c=d.errors?{error:Object.values(d.errors)[0]}:{data:Object.values(d.actionData||{})[0]},{result:c,headers:h,status:d.statusCode})}catch(e){return i(e),{result:{error:e},headers:new Headers,status:500}}}(t,e,r,n,a,o,i):await async function(e,t,r,n,a,o,i){try{var s;let l=new Request(a,{headers:n.headers,signal:n.signal}),u=(null==(s=new URL(n.url).searchParams.get("_routes"))?void 0:s.split(","))||void 0,c=await r.query(l,{requestContext:o,skipLoaderErrorBubbling:!0,dataStrategy:Ea({loadRouteIds:u})});if(Ie(c))return{result:{[wr]:Sa(c.status,c.headers,e.basename)},headers:c.headers,status:ba};let d=c,h=ga(e,d);if(Be(d.statusCode)&&h.has("Location"))return{result:{[wr]:Sa(d.statusCode,h,e.basename)},headers:h,status:ba};d.errors&&(Object.values(d.errors).forEach((e=>{K(e)&&!e.error||i(e)})),d.errors=ra(d.errors,t));let f={};return(u?d.matches.filter((e=>e.route.loader&&u.includes(e.route.id))):d.matches).forEach((e=>{let{id:t}=e.route;d.errors&&d.errors.hasOwnProperty(t)?f[t]={error:d.errors[t]}:d.loaderData.hasOwnProperty(t)&&(f[t]={data:d.loaderData[t]})})),{result:f,headers:h,status:d.statusCode}}catch(e){return i(e),{result:{root:{error:e}},headers:new Headers,status:500}}}(t,e,r,n,a,o,i),d=new Headers(u);if(d.set("X-Remix-Response","yes"),304===c)return new Response(null,{status:304,headers:d});return d.set("Content-Type","text/x-script"),new Response(Ra(l,n.signal,t.entry.module.streamTimeout,e),{status:c||200,headers:d})}(a,r,o,l,e,u,f),r.entry.module.handleDataRequest&&(p=await r.entry.module.handleDataRequest(p,{context:u,params:t?t[0].params:{},request:l}),ze(p))){let e=Sa(p.status,p.headers,r.basename);"GET"===l.method&&(e={[wr]:e});let t=new Headers(p.headers);return t.set("Content-Type","text/x-script"),new Response(Ra(e,l.signal,r.entry.module.streamTimeout,a),{status:ba,headers:t})}}else if(y&&null==y[y.length-1].route.module.default&&null==y[y.length-1].route.module.ErrorBoundary)p=await async function(e,t,r,n,a,o,i){try{let e=await r.queryRoute(a,{routeId:n,requestContext:o});return Ie(e)||ua(!1),e}catch(t){return Ie(t)?(t.headers.set("X-Remix-Catch","yes"),t):K(t)?(t&&i(t),function(e,t){return Response.json(na(e.error||new Error("Unexpected Server Error"),t),{status:e.status,statusText:e.statusText,headers:{"X-Remix-Error":"yes"}})}(t,e)):(i(t),Ca(t,e))}}(a,0,o,y.slice(-1)[0].route.id,l,u,f);else{var v;let e=t===ea.Development?await(null==(v=va())||null==v.getCriticalCss?void 0:v.getCriticalCss(r,d.pathname)):void 0;p=await async function(e,t,r,n,a,o,i){let l;try{l=await r.query(n,{requestContext:a})}catch(e){return o(e),new Response(null,{status:500})}if(Ie(l))return l;let u=ga(t,l);if(304===l.statusCode)return new Response(null,{status:304,headers:u});l.errors&&(Object.values(l.errors).forEach((e=>{K(e)&&!e.error||o(e)})),l.errors=ra(l.errors,e));let c={loaderData:l.loaderData,actionData:l.actionData,errors:aa(l.errors,e)},d={manifest:t.assets,routeModules:Zn(t.routes),staticHandlerContext:l,criticalCss:i,serverHandoffString:pa({basename:t.basename,criticalCss:i,future:t.future,isSpaMode:t.isSpaMode}),serverHandoffStream:Ra(c,n.signal,t.entry.module.streamTimeout,e),renderMeta:{},future:t.future,isSpaMode:t.isSpaMode,serializeError:t=>na(t,e)},h=t.entry.module.default;try{return await h(n,l.statusCode,u,d,a)}catch(i){o(i);let c=i;if(Ie(i))try{let e=await function(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?null==e.body?null:e.json():e.text()}(i);c=new $(i.status,i.statusText,e)}catch(e){}l=function(e,t,r){return s({},t,{statusCode:K(r)?r.status:500,errors:{[t._deepestRenderedBoundaryId||e[0].id]:r}})}(r.dataRoutes,l,c),l.errors&&(l.errors=ra(l.errors,e));let f={loaderData:l.loaderData,actionData:l.actionData,errors:aa(l.errors,e)};d=s({},d,{staticHandlerContext:l,serverHandoffString:pa({basename:t.basename,future:t.future,isSpaMode:t.isSpaMode}),serverHandoffStream:Ra(f,n.signal,t.entry.module.streamTimeout,e),renderMeta:{}});try{return await h(n,l.statusCode,u,d,a)}catch(t){return o(t),Ca(t,e)}}}(a,r,o,l,u,f,e)}return"HEAD"===l.method?new Response(null,{headers:p.headers,status:p.status,statusText:p.statusText}):p}},e.createRoutesFromChildren=Xt,e.createRoutesFromElements=Xt,e.createRoutesStub=function(e,t){return void 0===t&&(t={}),function(r){let{initialEntries:n,initialIndex:a,hydrationData:o,future:s}=r,l=i.useRef(),u=i.useRef();if(null==l.current){u.current={future:{},manifest:{routes:{},entry:{imports:[],module:""},url:"",version:""},routeModules:{},isSpaMode:!1};let r=Jn(S(e,(e=>e)),t,u.current.manifest,u.current.routeModules);l.current=Nt(r,{initialEntries:n,initialIndex:a,hydrationData:o})}return i.createElement(Gr.Provider,{value:u.current},i.createElement(It,{router:l.current}))}},e.createSearchParams=Zt,e.createSession=Da,e.createSessionStorage=La,e.createStaticHandler=function(e,t){return le(e,s({},t,{mapRouteProperties:Ft}))},e.createStaticRouter=Nn,e.data=J,e.generatePath=function(e,t){void 0===t&&(t={});let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(r=r.replace(/\*$/,"/*"));const n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map(((e,r,n)=>{if(r===n.length-1&&"*"===e){return a(t["*"])}const o=e.match(/^:([\w-]+)(\??)$/);if(o){const[,e,r]=o;let n=t[e];return"?"!==r&&null==n&&m(!1),a(n)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")},e.isCookie=Yn,e.isRouteErrorResponse=K,e.isSession=e=>null!=e&&"string"==typeof e.id&&void 0!==e.data&&"function"==typeof e.has&&"function"==typeof e.get&&"function"==typeof e.set&&"function"==typeof e.flash&&"function"==typeof e.unset,e.matchPath=P,e.matchRoutes=R,e.parsePath=g,e.redirect=W,e.redirectDocument=(e,t)=>{let r=W(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},e.renderMatches=function(e){return Et(e)},e.replace=(e,t)=>{let r=W(e,t);return r.headers.set("X-Remix-Replace","true"),r},e.resolvePath=U,e.unstable_HistoryRouter=pn,e.unstable_setDevServerHooks=function(e){globalThis[ya]=e},e.unstable_usePrompt=function(e){let{when:t,message:r}=e,n=Pt(t);i.useEffect((()=>{if("blocked"===n.state){window.confirm(r)?setTimeout(n.proceed,0):n.reset()}}),[n,r]),i.useEffect((()=>{"blocked"!==n.state||t||n.reset()}),[n,t])},e.useActionData=function(){let e=Ct(Rt.UseActionData),t=kt(Rt.UseLoaderData);return e.actionData?e.actionData[t]:void 0},e.useAsyncError=function(){let e=i.useContext(rt);return null==e?void 0:e._error},e.useAsyncValue=At,e.useBeforeUnload=function(e,t){let{capture:r}=t||{};i.useEffect((()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}}),[e,r])},e.useBlocker=Pt,e.useFetcher=function(e){var t;let{key:r}=void 0===e?{}:e,{router:n}=Rn(En.UseFetcher),a=xn(Sn.UseFetcher),o=i.useContext(tt),l=i.useContext(ot),u=null==(t=l.matches[l.matches.length-1])?void 0:t.route.id;o||m(!1),l||m(!1),null==u&&m(!1);let c=i.useId(),[d,h]=i.useState(r||c);r&&r!==d&&h(r),i.useEffect((()=>(n.getFetcher(d),()=>n.deleteFetcher(d))),[n,d]);let f=i.useCallback((async(e,t)=>{u||m(!1),await n.fetch(d,u,e,t)}),[d,u,n]),p=Dn(),y=i.useCallback((async(e,t)=>{await p(e,s({},t,{navigate:!1,fetcherKey:d}))}),[d,p]),v=i.useMemo((()=>{let e=i.forwardRef(((e,t)=>i.createElement(wn,s({},e,{navigate:!1,fetcherKey:d,ref:t}))));return e.displayName="fetcher.Form",e}),[d]),g=a.fetchers.get(d)||te,w=o.get(d);return i.useMemo((()=>s({Form:v,submit:y,load:f},g,{data:w})),[v,y,f,g,w])},e.useFetchers=function(){let e=xn(Sn.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,r]=e;return s({},r,{key:t})}))},e.useFormAction=Ln,e.useHref=st,e.useInRouterContext=lt,e.useLinkClickHandler=Cn,e.useLoaderData=function(){let e=Ct(Rt.UseLoaderData),t=kt(Rt.UseLoaderData);return e.loaderData[t]},e.useLocation=ut,e.useMatch=function(e){lt()||m(!1);let{pathname:t}=ut();return i.useMemo((()=>P(e,O(t))),[t,e])},e.useMatches=Lt,e.useNavigate=dt,e.useNavigation=Dt,e.useNavigationType=function(){return i.useContext(at).navigationType},e.useOutlet=ft,e.useOutletContext=function(){return i.useContext(ht)},e.useParams=function(){let{matches:e}=i.useContext(ot),t=e[e.length-1];return t?t.params:{}},e.useResolvedPath=mt,e.useRevalidator=function(){let e=xt(St.UseRevalidator),t=Ct(Rt.UseRevalidator);return i.useMemo((()=>({async revalidate(){await e.router.revalidate()},state:t.revalidation})),[e.router,t.revalidation])},e.useRouteError=Tt,e.useRouteLoaderData=function(e){return Ct(Rt.UseRouteLoaderData).loaderData[e]},e.useRoutes=pt,e.useSearchParams=function(e){let t=i.useRef(Zt(e)),r=i.useRef(!1),n=ut(),a=i.useMemo((()=>function(e,t){let r=Zt(e);return t&&t.forEach(((e,n)=>{r.has(n)||t.getAll(n).forEach((e=>{r.append(n,e)}))})),r}(n.search,r.current?null:t.current)),[n.search]),o=dt(),s=i.useCallback(((e,t)=>{const n=Zt("function"==typeof e?e(a):e);r.current=!0,o("?"+n,t)}),[o,a]);return[a,s]},e.useSubmit=Dn,e.useViewTransitionState=On,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
12
|
-
//# sourceMappingURL=react-router.production.min.js.map
|