react-router 0.0.0-experimental-bcda00aaf → 0.0.0-experimental-3278f3ca6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +0 -7
  2. package/README.md +1 -10
  3. package/dist/dom-export.d.ts +3 -0
  4. package/dist/dom-export.mjs +205 -0
  5. package/dist/dom-export.mjs.map +1 -0
  6. package/dist/index.d.ts +79 -29
  7. package/dist/index.mjs +11726 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/lib/components.d.ts +249 -34
  10. package/dist/lib/context.d.ts +18 -5
  11. package/dist/lib/dom/dom.d.ts +123 -0
  12. package/dist/lib/dom/global.d.ts +40 -0
  13. package/dist/lib/dom/lib.d.ts +940 -0
  14. package/dist/lib/dom/server.d.ts +41 -0
  15. package/dist/lib/dom/ssr/components.d.ts +123 -0
  16. package/dist/lib/dom/ssr/data.d.ts +7 -0
  17. package/dist/lib/dom/ssr/entry.d.ts +47 -0
  18. package/dist/lib/dom/ssr/errorBoundaries.d.ts +36 -0
  19. package/dist/lib/dom/ssr/errors.d.ts +2 -0
  20. package/dist/lib/dom/ssr/fallback.d.ts +2 -0
  21. package/dist/lib/dom/ssr/fog-of-war.d.ts +28 -0
  22. package/dist/lib/dom/ssr/invariant.d.ts +2 -0
  23. package/dist/lib/dom/ssr/links.d.ts +25 -0
  24. package/dist/lib/dom/ssr/markup.d.ts +5 -0
  25. package/dist/lib/dom/ssr/routeModules.d.ts +141 -0
  26. package/dist/lib/dom/ssr/routes-test-stub.d.ts +59 -0
  27. package/dist/lib/dom/ssr/routes.d.ts +32 -0
  28. package/dist/lib/dom/ssr/server.d.ts +16 -0
  29. package/dist/lib/dom/ssr/single-fetch.d.ts +37 -0
  30. package/dist/lib/dom-export/dom-router-provider.d.ts +5 -0
  31. package/dist/lib/dom-export/hydrated-router.d.ts +5 -0
  32. package/dist/lib/hooks.d.ts +284 -55
  33. package/dist/lib/router/history.d.ts +253 -0
  34. package/dist/lib/router/links.d.ts +104 -0
  35. package/dist/lib/router/router.d.ts +540 -0
  36. package/dist/lib/router/utils.d.ts +505 -0
  37. package/dist/lib/server-runtime/build.d.ts +38 -0
  38. package/dist/lib/server-runtime/cookies.d.ts +62 -0
  39. package/dist/lib/server-runtime/crypto.d.ts +2 -0
  40. package/dist/lib/server-runtime/data.d.ts +28 -0
  41. package/dist/lib/server-runtime/dev.d.ts +8 -0
  42. package/dist/lib/server-runtime/entry.d.ts +3 -0
  43. package/dist/lib/server-runtime/errors.d.ts +51 -0
  44. package/dist/lib/server-runtime/formData.d.ts +15 -0
  45. package/dist/lib/server-runtime/headers.d.ts +3 -0
  46. package/dist/lib/server-runtime/invariant.d.ts +2 -0
  47. package/dist/lib/server-runtime/jsonify.d.ts +33 -0
  48. package/dist/lib/server-runtime/markup.d.ts +1 -0
  49. package/dist/lib/server-runtime/mode.d.ts +9 -0
  50. package/dist/lib/server-runtime/responses.d.ts +37 -0
  51. package/dist/lib/server-runtime/routeMatching.d.ts +8 -0
  52. package/dist/lib/server-runtime/routeModules.d.ts +212 -0
  53. package/dist/lib/server-runtime/routes.d.ts +31 -0
  54. package/dist/lib/server-runtime/server.d.ts +5 -0
  55. package/dist/lib/server-runtime/serverHandoff.d.ts +11 -0
  56. package/dist/lib/server-runtime/sessions/cookieStorage.d.ts +19 -0
  57. package/dist/lib/server-runtime/sessions/memoryStorage.d.ts +17 -0
  58. package/dist/lib/server-runtime/sessions.d.ts +140 -0
  59. package/dist/lib/server-runtime/single-fetch.d.ts +30 -0
  60. package/dist/lib/server-runtime/typecheck.d.ts +4 -0
  61. package/dist/lib/server-runtime/upload/errors.d.ts +5 -0
  62. package/dist/lib/server-runtime/upload/memoryUploadHandler.d.ts +21 -0
  63. package/dist/lib/server-runtime/warnings.d.ts +1 -0
  64. package/dist/main-dom-export.js +19 -0
  65. package/dist/main.js +1 -1
  66. package/dist/react-router-dom.development.js +199 -0
  67. package/dist/react-router-dom.development.js.map +1 -0
  68. package/dist/react-router-dom.production.min.js +12 -0
  69. package/dist/react-router-dom.production.min.js.map +1 -0
  70. package/dist/react-router.development.js +12367 -1134
  71. package/dist/react-router.development.js.map +1 -1
  72. package/dist/react-router.production.min.js +2 -2
  73. package/dist/react-router.production.min.js.map +1 -1
  74. package/dist/umd/react-router-dom.development.js +241 -0
  75. package/dist/umd/react-router-dom.development.js.map +1 -0
  76. package/dist/umd/react-router-dom.production.min.js +12 -0
  77. package/dist/umd/react-router-dom.production.min.js.map +1 -0
  78. package/dist/umd/react-router.development.js +12691 -1284
  79. package/dist/umd/react-router.development.js.map +1 -1
  80. package/dist/umd/react-router.production.min.js +2 -2
  81. package/dist/umd/react-router.production.min.js.map +1 -1
  82. package/package.json +32 -6
  83. package/dist/index.js +0 -1471
  84. package/dist/index.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * React Router v0.0.0-experimental-bcda00aaf
2
+ * React Router v0.0.0-experimental-3278f3ca6
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -8,5 +8,5 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@remix-run/router")):"function"==typeof define&&define.amd?define(["exports","react","@remix-run/router"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouter={},e.React,e.RemixRouter)}(this,(function(e,t,r){"use strict";function n(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 a=n(t);function o(){return o=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},o.apply(this,arguments)}const i=a.createContext(null),u=a.createContext(null),l=a.createContext(null),s=a.createContext(null),c=a.createContext(null),d=a.createContext({outlet:null,matches:[],isDataRoute:!1}),p=a.createContext(null);function f(){return null!=a.useContext(c)}function m(){return f()||r.UNSAFE_invariant(!1),a.useContext(c).location}function v(e){a.useContext(s).static||a.useLayoutEffect(e)}function h(){let{isDataRoute:e}=a.useContext(d);return e?function(){let{router:e}=O(U.UseNavigateStable),t=j(N.UseNavigateStable),r=a.useRef(!1);return v((()=>{r.current=!0})),a.useCallback((function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):e.navigate(n,o({fromRouteId:t},a)))}),[e,t])}():function(){f()||r.UNSAFE_invariant(!1);let e=a.useContext(i),{basename:t,future:n,navigator:o}=a.useContext(s),{matches:u}=a.useContext(d),{pathname:l}=m(),c=JSON.stringify(r.UNSAFE_getResolveToMatches(u,n.v7_relativeSplatPath)),p=a.useRef(!1);return v((()=>{p.current=!0})),a.useCallback((function(n,a){if(void 0===a&&(a={}),!p.current)return;if("number"==typeof n)return void o.go(n);let i=r.resolveTo(n,JSON.parse(c),l,"path"===a.relative);null==e&&"/"!==t&&(i.pathname="/"===i.pathname?t:r.joinPaths([t,i.pathname])),(a.replace?o.replace:o.push)(i,a.state,a)}),[t,o,c,l,e])}()}const g=a.createContext(null);function E(e){let t=a.useContext(d).outlet;return t?a.createElement(g.Provider,{value:e},t):t}function y(e,t){let{relative:n}=void 0===t?{}:t,{future:o}=a.useContext(s),{matches:i}=a.useContext(d),{pathname:u}=m(),l=JSON.stringify(r.UNSAFE_getResolveToMatches(i,o.v7_relativeSplatPath));return a.useMemo((()=>r.resolveTo(e,JSON.parse(l),u,"path"===n)),[e,l,u,n])}function b(e,t){return R(e,t)}function R(e,t,n,i){f()||r.UNSAFE_invariant(!1);let{navigator:u}=a.useContext(s),{matches:l}=a.useContext(d),p=l[l.length-1],v=p?p.params:{};!p||p.pathname;let h=p?p.pathnameBase:"/";p&&p.route;let g,E=m();if(t){var y;let e="string"==typeof t?r.parsePath(t):t;"/"===h||(null==(y=e.pathname)?void 0:y.startsWith(h))||r.UNSAFE_invariant(!1),g=e}else g=E;let b=g.pathname||"/",R=b;if("/"!==h){let e=h.replace(/^\//,"").split("/");R="/"+b.replace(/^\//,"").split("/").slice(e.length).join("/")}let P=n&&"/"===h?n.matches:r.matchRoutes(e,{pathname:R}),x=_(P&&P.map((e=>Object.assign({},e,{params:Object.assign({},v,e.params),pathname:r.joinPaths([h,u.encodeLocation?u.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?h:r.joinPaths([h,u.encodeLocation?u.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),l,n,i);return t&&x?a.createElement(c.Provider,{value:{location:o({pathname:"/",search:"",hash:"",state:null,key:"default"},g),navigationType:r.Action.Pop}},x):x}function P(){let e=F(),t=r.isRouteErrorResponse(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),n?a.createElement("pre",{style:o},n):null,null)}const x=a.createElement(P,null);class C extends a.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?a.createElement(d.Provider,{value:this.props.routeContext},a.createElement(p.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function S(e){let{routeContext:t,match:r,children:n}=e,o=a.useContext(i);return o&&o.static&&o.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=r.route.id),a.createElement(d.Provider,{value:t},n)}function _(e,t,n,o){var i;if(void 0===t&&(t=[]),void 0===n&&(n=null),void 0===o&&(o=null),null==e){var u;if(!n)return null;if(n.errors)e=n.matches;else{if(!(null!=(u=o)&&u.v7_partialHydration&&0===t.length&&!n.initialized&&n.matches.length>0))return null;e=n.matches}}let l=e,s=null==(i=n)?void 0:i.errors;if(null!=s){let e=l.findIndex((e=>e.route.id&&void 0!==(null==s?void 0:s[e.route.id])));e>=0||r.UNSAFE_invariant(!1),l=l.slice(0,Math.min(l.length,e+1))}let c=!1,d=-1;if(n&&o&&o.v7_partialHydration)for(let e=0;e<l.length;e++){let t=l[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(d=e),t.route.id){let{loaderData:e,errors:r}=n,a=t.route.loader&&void 0===e[t.route.id]&&(!r||void 0===r[t.route.id]);if(t.route.lazy||a){c=!0,l=d>=0?l.slice(0,d+1):[l[0]];break}}}return l.reduceRight(((e,r,o)=>{let i,u=!1,p=null,f=null;var m;n&&(i=s&&r.route.id?s[r.route.id]:void 0,p=r.route.errorElement||x,c&&(d<0&&0===o?(m="route-fallback",!1||B[m]||(B[m]=!0),u=!0,f=null):d===o&&(u=!0,f=r.route.hydrateFallbackElement||null)));let v=t.concat(l.slice(0,o+1)),h=()=>{let t;return t=i?p:u?f:r.route.Component?a.createElement(r.route.Component,null):r.route.element?r.route.element:e,a.createElement(S,{match:r,routeContext:{outlet:e,matches:v,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===o)?a.createElement(C,{location:n.location,revalidation:n.revalidation,component:p,error:i,children:h(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):h()}),null)}var U=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(U||{}),N=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}(N||{});function O(e){let t=a.useContext(i);return t||r.UNSAFE_invariant(!1),t}function A(e){let t=a.useContext(u);return t||r.UNSAFE_invariant(!1),t}function j(e){let t=function(e){let t=a.useContext(d);return t||r.UNSAFE_invariant(!1),t}(),n=t.matches[t.matches.length-1];return n.route.id||r.UNSAFE_invariant(!1),n.route.id}function F(){var e;let t=a.useContext(p),r=A(N.UseRouteError),n=j(N.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function D(){let e=a.useContext(l);return null==e?void 0:e._data}let k=0;const B={};const L=a.startTransition;function M(e){let{routes:t,future:r,state:n}=e;return R(t,void 0,n,r)}function T(e){r.UNSAFE_invariant(!1)}function I(e){let{basename:t="/",children:n=null,location:i,navigationType:u=r.Action.Pop,navigator:l,static:d=!1,future:p}=e;f()&&r.UNSAFE_invariant(!1);let m=t.replace(/^\/*/,"/"),v=a.useMemo((()=>({basename:m,navigator:l,static:d,future:o({v7_relativeSplatPath:!1},p)})),[m,p,l,d]);"string"==typeof i&&(i=r.parsePath(i));let{pathname:h="/",search:g="",hash:E="",state:y=null,key:b="default"}=i,R=a.useMemo((()=>{let e=r.stripBasename(h,m);return null==e?null:{location:{pathname:e,search:g,hash:E,state:y,key:b},navigationType:u}}),[m,h,g,E,y,b,u]);return null==R?null:a.createElement(s.Provider,{value:v},a.createElement(c.Provider,{children:n,value:R}))}var H=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(H||{});const w=new Promise((()=>{}));class z extends a.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:n}=this.props,o=null,i=H.pending;if(n instanceof Promise)if(this.state.error){i=H.error;let e=this.state.error;o=Promise.reject().catch((()=>{})),Object.defineProperty(o,"_tracked",{get:()=>!0}),Object.defineProperty(o,"_error",{get:()=>e})}else n._tracked?(o=n,i="_error"in o?H.error:"_data"in o?H.success:H.pending):(i=H.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),o=n.then((e=>Object.defineProperty(n,"_data",{get:()=>e})),(e=>Object.defineProperty(n,"_error",{get:()=>e}))));else i=H.success,o=Promise.resolve(),Object.defineProperty(o,"_tracked",{get:()=>!0}),Object.defineProperty(o,"_data",{get:()=>n});if(i===H.error&&o._error instanceof r.AbortedDeferredError)throw w;if(i===H.error&&!t)throw o._error;if(i===H.error)return a.createElement(l.Provider,{value:o,children:t});if(i===H.success)return a.createElement(l.Provider,{value:o,children:e});throw o}}function J(e){let{children:t}=e,r=D(),n="function"==typeof t?t(r):t;return a.createElement(a.Fragment,null,n)}function q(e,t){void 0===t&&(t=[]);let n=[];return a.Children.forEach(e,((e,o)=>{if(!a.isValidElement(e))return;let i=[...t,o];if(e.type===a.Fragment)return void n.push.apply(n,q(e.props.children,i));e.type!==T&&r.UNSAFE_invariant(!1),e.props.index&&e.props.children&&r.UNSAFE_invariant(!1);let u={id:e.props.id||i.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,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(u.children=q(e.props.children,i)),n.push(u)})),n}function V(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:a.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:a.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:a.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}Object.defineProperty(e,"AbortedDeferredError",{enumerable:!0,get:function(){return r.AbortedDeferredError}}),Object.defineProperty(e,"NavigationType",{enumerable:!0,get:function(){return r.Action}}),Object.defineProperty(e,"createPath",{enumerable:!0,get:function(){return r.createPath}}),Object.defineProperty(e,"defer",{enumerable:!0,get:function(){return r.defer}}),Object.defineProperty(e,"generatePath",{enumerable:!0,get:function(){return r.generatePath}}),Object.defineProperty(e,"isRouteErrorResponse",{enumerable:!0,get:function(){return r.isRouteErrorResponse}}),Object.defineProperty(e,"json",{enumerable:!0,get:function(){return r.json}}),Object.defineProperty(e,"matchPath",{enumerable:!0,get:function(){return r.matchPath}}),Object.defineProperty(e,"matchRoutes",{enumerable:!0,get:function(){return r.matchRoutes}}),Object.defineProperty(e,"parsePath",{enumerable:!0,get:function(){return r.parsePath}}),Object.defineProperty(e,"redirect",{enumerable:!0,get:function(){return r.redirect}}),Object.defineProperty(e,"redirectDocument",{enumerable:!0,get:function(){return r.redirectDocument}}),Object.defineProperty(e,"replace",{enumerable:!0,get:function(){return r.replace}}),Object.defineProperty(e,"resolvePath",{enumerable:!0,get:function(){return r.resolvePath}}),e.Await=function(e){let{children:t,errorElement:r,resolve:n}=e;return a.createElement(z,{resolve:n,errorElement:r},a.createElement(J,null,t))},e.MemoryRouter=function(e){let{basename:t,children:n,initialEntries:o,initialIndex:i,future:u}=e,l=a.useRef();null==l.current&&(l.current=r.createMemoryHistory({initialEntries:o,initialIndex:i,v5Compat:!0}));let s=l.current,[c,d]=a.useState({action:s.action,location:s.location}),{v7_startTransition:p}=u||{},f=a.useCallback((e=>{p&&L?L((()=>d(e))):d(e)}),[d,p]);return a.useLayoutEffect((()=>s.listen(f)),[s,f]),a.createElement(I,{basename:t,children:n,location:c.location,navigationType:c.action,navigator:s,future:u})},e.Navigate=function(e){let{to:t,replace:n,state:o,relative:i}=e;f()||r.UNSAFE_invariant(!1);let{future:u,static:l}=a.useContext(s),{matches:c}=a.useContext(d),{pathname:p}=m(),v=h(),g=r.resolveTo(t,r.UNSAFE_getResolveToMatches(c,u.v7_relativeSplatPath),p,"path"===i),E=JSON.stringify(g);return a.useEffect((()=>v(JSON.parse(E),{replace:n,state:o,relative:i})),[v,E,i,n,o]),null},e.Outlet=function(e){return E(e.context)},e.Route=T,e.Router=I,e.RouterProvider=function(e){let{fallbackElement:t,router:r,future:n}=e,[o,l]=a.useState(r.state),{v7_startTransition:s}=n||{},c=a.useCallback((e=>{s&&L?L((()=>l(e))):l(e)}),[l,s]);a.useLayoutEffect((()=>r.subscribe(c)),[r,c]),a.useEffect((()=>{}),[]);let d=a.useMemo((()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:e=>r.navigate(e),push:(e,t,n)=>r.navigate(e,{state:t,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,t,n)=>r.navigate(e,{replace:!0,state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})})),[r]),p=r.basename||"/",f=a.useMemo((()=>({router:r,navigator:d,static:!1,basename:p})),[r,d,p]);return a.createElement(a.Fragment,null,a.createElement(i.Provider,{value:f},a.createElement(u.Provider,{value:o},a.createElement(I,{basename:p,location:o.location,navigationType:o.historyAction,navigator:d,future:{v7_relativeSplatPath:r.future.v7_relativeSplatPath}},o.initialized||r.future.v7_partialHydration?a.createElement(M,{routes:r.routes,future:r.future,state:o}):t))),null)},e.Routes=function(e){let{children:t,location:r}=e;return b(q(t),r)},e.UNSAFE_DataRouterContext=i,e.UNSAFE_DataRouterStateContext=u,e.UNSAFE_LocationContext=c,e.UNSAFE_NavigationContext=s,e.UNSAFE_RouteContext=d,e.UNSAFE_mapRouteProperties=V,e.UNSAFE_useRouteId=function(){return j(N.UseRouteId)},e.UNSAFE_useRoutesImpl=R,e.createMemoryRouter=function(e,t){return r.createRouter({basename:null==t?void 0:t.basename,future:o({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:r.createMemoryHistory({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:V,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation}).initialize()},e.createRoutesFromChildren=q,e.createRoutesFromElements=q,e.renderMatches=function(e){return _(e)},e.useActionData=function(){let e=A(N.UseActionData),t=j(N.UseLoaderData);return e.actionData?e.actionData[t]:void 0},e.useAsyncError=function(){let e=a.useContext(l);return null==e?void 0:e._error},e.useAsyncValue=D,e.useBlocker=function(e){let{router:t,basename:n}=O(U.UseBlocker),i=A(N.UseBlocker),[u,l]=a.useState(""),s=a.useCallback((t=>{if("function"!=typeof e)return!!e;if("/"===n)return e(t);let{currentLocation:a,nextLocation:i,historyAction:u}=t;return e({currentLocation:o({},a,{pathname:r.stripBasename(a.pathname,n)||a.pathname}),nextLocation:o({},i,{pathname:r.stripBasename(i.pathname,n)||i.pathname}),historyAction:u})}),[n,e]);return a.useEffect((()=>{let e=String(++k);return l(e),()=>t.deleteBlocker(e)}),[t]),a.useEffect((()=>{""!==u&&t.getBlocker(u,s)}),[t,u,s]),u&&i.blockers.has(u)?i.blockers.get(u):r.IDLE_BLOCKER},e.useHref=function(e,t){let{relative:n}=void 0===t?{}:t;f()||r.UNSAFE_invariant(!1);let{basename:o,navigator:i}=a.useContext(s),{hash:u,pathname:l,search:c}=y(e,{relative:n}),d=l;return"/"!==o&&(d="/"===l?o:r.joinPaths([o,l])),i.createHref({pathname:d,search:c,hash:u})},e.useInRouterContext=f,e.useLoaderData=function(){let e=A(N.UseLoaderData),t=j(N.UseLoaderData);if(!e.errors||null==e.errors[t])return e.loaderData[t];console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")")},e.useLocation=m,e.useMatch=function(e){f()||r.UNSAFE_invariant(!1);let{pathname:t}=m();return a.useMemo((()=>r.matchPath(e,r.UNSAFE_decodePath(t))),[t,e])},e.useMatches=function(){let{matches:e,loaderData:t}=A(N.UseMatches);return a.useMemo((()=>e.map((e=>r.UNSAFE_convertRouteMatchToUiMatch(e,t)))),[e,t])},e.useNavigate=h,e.useNavigation=function(){return A(N.UseNavigation).navigation},e.useNavigationType=function(){return a.useContext(c).navigationType},e.useOutlet=E,e.useOutletContext=function(){return a.useContext(g)},e.useParams=function(){let{matches:e}=a.useContext(d),t=e[e.length-1];return t?t.params:{}},e.useResolvedPath=y,e.useRevalidator=function(){let e=O(U.UseRevalidator),t=A(N.UseRevalidator);return a.useMemo((()=>({revalidate:e.router.revalidate,state:t.revalidation})),[e.router.revalidate,t.revalidation])},e.useRouteError=F,e.useRouteLoaderData=function(e){return A(N.UseRouteLoaderData).loaderData[e]},e.useRoutes=b,Object.defineProperty(e,"__esModule",{value:!0})}));
11
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("turbo-stream"),require("cookie"),require("@web3-storage/multipart-parser"),require("set-cookie-parser")):"function"==typeof define&&define.amd?define(["exports","react","turbo-stream","cookie","@web3-storage/multipart-parser","set-cookie-parser"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouter={},e.React,e.turboStream,e.cookie,e.multipartParser,e.setCookieParser)}(this,(function(e,t,r,n,a,o){"use strict";function i(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 s=i(t);function l(e){var t,r,n,a=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);a--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new u(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function u(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return u=function(e){this.s=e,this.n=e.next},u.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new u(e)}function c(){return c=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},c.apply(this,arguments)}function d(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 h=function(e){return e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE",e}({});const f="popstate";function m(e){void 0===e&&(e={});let t,{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map(((e,t)=>c(e,"string"==typeof e?null:e.state,0===t?"default":void 0)));let o=l(null==n?t.length-1:n),i=h.Pop,s=null;function l(e){return Math.min(Math.max(e,0),t.length-1)}function u(){return t[o]}function c(e,r,n){return void 0===r&&(r=null),w(t?u().pathname:"/",e,r,n)}function d(e){return"string"==typeof e?e:b(e)}return{get index(){return o},get action(){return i},get location(){return u()},createHref:d,createURL:e=>new URL(d(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?E(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i=h.Push;let n=c(e,r);o+=1,t.splice(o,t.length,n),a&&s&&s({action:i,location:n,delta:1})},replace(e,r){i=h.Replace;let n=c(e,r);t[o]=n,a&&s&&s({action:i,location:n,delta:0})},go(e){i=h.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 p(e){return void 0===e&&(e={}),S((function(e,t){let{pathname:r,search:n,hash:a}=e.location;return w("",{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:b(t)}),null,e)}function y(e){return void 0===e&&(e={}),S((function(e,t){let{pathname:r="/",search:n="",hash:a=""}=E(e.location.hash.substr(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),w("",{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:b(t))}),(function(e,t){}),e)}function v(e,t){if(!1===e||null==e)throw new Error(t)}function g(e,t){return{usr:e.state,key:e.key,idx:t}}function w(e,t,r,n){return void 0===r&&(r=null),c({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?E(t):t,{state:r,key:t&&t.key||n||Math.random().toString(36).substr(2,8)})}function b(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 E(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function S(e,t,r,n){void 0===n&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,s=h.Pop,l=null,u=d();function d(){return(i.state||{idx:null}).idx}function m(){s=h.Pop;let e=d(),t=null==e?null:e-u;u=e,l&&l({action:s,location:y.location,delta:t})}function p(e){let t="null"!==a.location.origin?a.location.origin:a.location.href,r="string"==typeof e?e:b(e);return r=r.replace(/ $/,"%20"),t||v(!1),new URL(r,t)}null==u&&(u=0,i.replaceState(c({},i.state,{idx:u}),""));let y={get action(){return s},get location(){return e(a,i)},listen(e){if(l)throw new Error("A history only accepts one active listener");return a.addEventListener(f,m),l=e,()=>{a.removeEventListener(f,m),l=null}},createHref:e=>t(a,e),createURL:p,encodeLocation(e){let t=p(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s=h.Push;let n=w(y.location,e,t);r&&r(n,e),u=d()+1;let c=g(n,u),f=y.createHref(n);try{i.pushState(c,"",f)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(f)}o&&l&&l({action:s,location:y.location,delta:1})},replace:function(e,t){s=h.Replace;let n=w(y.location,e,t);r&&r(n,e),u=d();let a=g(n,u),c=y.createHref(n);i.replaceState(a,"",c),o&&l&&l({action:s,location:y.location,delta:0})},go:e=>i.go(e)};return y}let x=function(e){return e.data="data",e.redirect="redirect",e.error="error",e}({});const R=new Set(["lazy","caseSensitive","path","id","index","children"]);function C(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&&v(!1),n[i]&&v(!1),function(e){return!0===e.index}(e)){let r=c({},e,t(e),{id:i});return n[i]=r,r}{let r=c({},e,t(e),{id:i,children:void 0});return n[i]=r,e.children&&(r.children=C(e.children,t,o,n)),r}}))}function k(e,t,r){return void 0===r&&(r="/"),D(e,t,r,!1)}function D(e,t,r,n){let a=F(("string"==typeof t?E(t):t).pathname||"/",r);if(null==a)return null;let o=T(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=j(a);i=O(o[e],t,n)}return i}function L(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 T(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)||v(!1),i.relativePath=i.relativePath.slice(n.length));let s=z([n,i.relativePath]),l=r.concat(i);e.children&&e.children.length>0&&(!0===e.index&&v(!1),T(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:_(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 M(e.path))a(e,t,r);else a(e,t)})),t}function M(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=M(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 A=/^:[\w-]+$/,P=e=>"*"===e;function _(e,t){let r=e.split("/"),n=r.length;return r.some(P)&&(n+=-2),t&&(n+=2),r.filter((e=>!P(e))).reduce(((e,t)=>e+(A.test(t)?3:""===t?1:10)),n)}function O(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=U({path:s.relativePath,caseSensitive:s.caseSensitive,end:l},u),d=s.route;if(!c&&l&&r&&!n[n.length-1].route.index&&(c=U({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:z([o,c.pathname]),pathnameBase:q(z([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=z([o,c.pathnameBase]))}return i}function U(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 j(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return e}}function F(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 N(e,t){void 0===t&&(t="/");let{pathname:r,search:n="",hash:a=""}="string"==typeof e?E(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:J(n),hash:W(a)}}function H(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function I(e){let t=H(e);return t.map(((e,r)=>r===t.length-1?e.pathname:e.pathnameBase))}function B(e,t,r,n){let a;void 0===n&&(n=!1),"string"==typeof e?a=E(e):(a=c({},e),a.pathname&&a.pathname.includes("?")&&v(!1),a.pathname&&a.pathname.includes("#")&&v(!1),a.search&&a.search.includes("#")&&v(!1));let o,i=""===e||""===a.pathname,s=i?"/":a.pathname;if(null==s)o=r;else{let e=t.length-1;if(!n&&s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let l=N(a,o),u=s&&"/"!==s&&s.endsWith("/"),d=(i||"."===s)&&r.endsWith("/");return l.pathname.endsWith("/")||!u&&!d||(l.pathname+="/"),l}const z=e=>e.join("/").replace(/\/\/+/g,"/"),q=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),J=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",W=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",$=function(e,t){void 0===t&&(t={});let r="number"==typeof t?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),c({},r,{headers:n}))};class K{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}}function V(e,t){return new K(e,"number"==typeof t?{status:t}:t)}const Y=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,c({},r,{headers:n}))};class X{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 G(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}const Q=["POST","PUT","PATCH","DELETE"],Z=new Set(Q),ee=["GET",...Q],te=new Set(ee),re=new Set([301,302,303,307,308]),ne=new Set([307,308]),ae={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},oe={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ie={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},se=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,le=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),ue="remix-router-transitions";function ce(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||v(!1);let n,a,o,i=e.mapRouteProperties||le,s={},l=C(e.routes,i,void 0,s),u=e.basename||"/",d=e.dataStrategy||Ee,f=e.patchRoutesOnNavigation,m=c({},e.future),p=null,y=new Set,g=null,b=null,E=null,S=null!=e.hydrationData,R=k(l,e.history.location,u),T=null;if(null==R&&!f){let t=Ue(404,{pathname:e.history.location.pathname}),{matches:r,route:n}=Oe(l);R=r,T={[n.id]:t}}if(R&&!e.hydrationData){at(R,l,e.history.location.pathname).active&&(R=null)}if(R)if(R.some((e=>e.route.lazy)))a=!1;else if(R.some((e=>e.route.loader))){let t=e.hydrationData?e.hydrationData.loaderData:null,r=e.hydrationData?e.hydrationData.errors:null,n=e=>!e.route.loader||("function"!=typeof e.route.loader||!0!==e.route.loader.hydrate)&&(t&&void 0!==t[e.route.id]||r&&void 0!==r[e.route.id]);if(r){let e=R.findIndex((e=>void 0!==r[e.route.id]));a=R.slice(0,e+1).every(n)}else a=R.every(n)}else a=!0;else{a=!1,R=[];let t=at(null,l,e.history.location.pathname);t.active&&t.matches&&(R=t.matches)}let M,A,P={historyAction:e.history.action,location:e.history.location,matches:R,initialized:a,navigation:ae,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},_=h.Pop,O=!1,U=!1,j=new Map,N=null,H=!1,I=!1,B=new Set,z=new Map,q=0,J=-1,W=new Map,$=new Set,K=new Map,V=new Map,Y=new Set,X=new Map,Q=new Map,Z=null;function ee(e,t){void 0===t&&(t={}),P=c({},P,e);let r=[],n=[];P.fetchers.forEach(((e,t)=>{"idle"===e.state&&(Y.has(t)?r.push(t):n.push(t))})),[...y].forEach((e=>e(P,{deletedFetchers:r,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync}))),r.forEach((e=>Te(e))),n.forEach((e=>P.fetchers.delete(e)))}function te(t,r,a){var o,i,s;let u,{flushSync:d}=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);u=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:f?P.actionData:null;let m=r.loaderData?Ae(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,ie))));let y,v=!0===O||null!=P.navigation.formMethod&&Je(P.navigation.formMethod)&&!0!==(null==(i=t.state)?void 0:i._isRedirect);if(n&&(l=n,n=void 0),H||_===h.Pop||(_===h.Push?e.history.push(t,t.state):_===h.Replace&&e.history.replace(t,t.state)),_===h.Pop){let e=j.get(P.location.pathname);e&&e.has(t.pathname)?y={currentLocation:P.location,nextLocation:t}:j.has(t.pathname)&&(y={currentLocation:t,nextLocation:P.location})}else if(U){let e=j.get(P.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),j.set(P.location.pathname,e)),y={currentLocation:P.location,nextLocation:t}}ee(c({},r,{actionData:u,loaderData:m,historyAction:_,location:t,initialized:!0,navigation:ae,revalidation:"idle",restoreScrollPosition:nt(t,r.matches||P.matches),preventScrollReset:v,blockers:p}),{viewTransitionOpts:y,flushSync:!0===d}),_=h.Pop,O=!1,U=!1,H=!1,I=!1,null==(s=Z)||s.resolve(),Z=null}async function re(t,r,a){M&&M.abort(),M=null,_=t,H=!0===(a&&a.startUninterruptedRevalidation),function(e,t){if(g&&E){let r=rt(e,t);g[r]=E()}}(P.location,P.matches),O=!0===(a&&a.preventScrollReset),U=!0===(a&&a.enableViewTransition);let o=n||l,i=a&&a.overrideNavigation,s=k(o,r,u),d=!0===(a&&a.flushSync),f=at(s,o,r.pathname);if(f.active&&f.matches&&(s=f.matches),!s){let{error:e,notFoundMatches:t,route:n}=et(r.pathname);return void te(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:d})}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 te(r,{matches:s},{flushSync:d});M=new AbortController;let m,p=ke(e.history,r,M.signal,a&&a.submission);if(a&&a.pendingError)m=[_e(s).route.id,{type:x.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(ve(),ee({navigation:Ye(t,r)},{flushSync:!0===o.flushSync}),a){let r=await ot(n,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){let{boundaryId:e,error:n}=tt(t.pathname,r);return{matches:r.partialMatches,pendingActionResult:[e,{type:x.error,error:n}]}}if(!r.matches){let{notFoundMatches:e,error:r,route:n}=et(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:x.error,error:r}]}}n=r.matches}let s=$e(n,t);if(s.route.action||s.route.lazy){if(i=(await he("action",P,e,[s],n,null))[s.route.id],e.signal.aborted)return{shortCircuited:!0}}else i={type:x.error,error:Ue(405,{method:e.method,pathname:t.pathname,routeId:s.route.id})};if(Ie(i)){let t;if(o&&null!=o.replace)t=o.replace;else{t=Ce(i.response.headers.get("Location"),new URL(e.url),u)===P.location.pathname+P.location.search}return await de(e,i,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(He(i)){let e=_e(n,s.route.id);return!0!==(o&&o.replace)&&(_=h.Push),{matches:n,pendingActionResult:[e.route.id,i]}}return{matches:n,pendingActionResult:[s.route.id,i]}}(p,r,a.submission,s,f.active,{replace:a.replace,flushSync:d});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,n]=t.pendingActionResult;if(He(n)&&G(n.error)&&404===n.error.status)return M=null,void te(r,{matches:t.matches,loaderData:{},errors:{[e]:n.error}})}s=t.matches||s,m=t.pendingActionResult,i=Ve(r,a.submission),d=!1,f.active=!1,p=ke(e.history,p.url,p.signal)}let{shortCircuited:y,matches:v,loaderData:w,errors:b}=await async function(t,r,a,o,i,s,d,h,f,m,p){let y=i||Ve(r,s),v=s||d||Ke(y),g=!H&&!f;if(o){if(g){let e=ce(p);ee(c({navigation:y},void 0!==e?{actionData:e}:{}),{flushSync:m})}let e=await ot(a,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let{boundaryId:t,error:n}=tt(r.pathname,e);return{matches:e.partialMatches,loaderData:{},errors:{[t]:n}}}if(!e.matches){let{error:e,notFoundMatches:t,route:n}=et(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}a=e.matches}let w=n||l,[b,E]=ye(e.history,P,a,v,r,!0===f,I,B,Y,K,$,w,u,p);if(J=++q,0===b.length&&0===E.length){let e=ze();return te(r,c({matches:a,loaderData:{},errors:p&&He(p[1])?{[p[0]]:p[1].error}:null},Pe(p),e?{fetchers:new Map(P.fetchers)}:{}),{flushSync:m}),{shortCircuited:!0}}if(g){let e={};if(!o){e.navigation=y;let t=ce(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=Xe(void 0,t?t.data:void 0);P.fetchers.set(e.key,r)})),new Map(P.fetchers)}(E)),ee(e,{flushSync:m})}E.forEach((e=>{z.has(e.key)&&Fe(e.key),e.controller&&z.set(e.key,e.controller)}));let S=()=>E.forEach((e=>Fe(e.key)));M&&M.signal.addEventListener("abort",S);let{loaderResults:x,fetcherResults:R}=await pe(P,a,b,E,t);if(t.signal.aborted)return{shortCircuited:!0};M&&M.signal.removeEventListener("abort",S);E.forEach((e=>z.delete(e.key)));let C=je(x);if(C)return await de(t,C.result,!0,{replace:h}),{shortCircuited:!0};if(C=je(R),C)return $.add(C.key),await de(t,C.result,!0,{replace:h}),{shortCircuited:!0};let{loaderData:k,errors:D}=Me(P,a,b,x,p,E,R);f&&P.errors&&Object.entries(P.errors).filter((e=>{let[t]=e;return!b.some((e=>e.route.id===t))})).forEach((e=>{let[t,r]=e;D=Object.assign(D||{},{[t]:r})}));let L=ze(),T=qe(J),A=L||T||E.length>0;return c({matches:a,loaderData:k,errors:D},A?{fetchers:new Map(P.fetchers)}:{})}(p,r,s,f.active,i,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,d,m);y||(M=null,te(r,c({matches:v||s},Pe(m),{loaderData:w,errors:b})))}function ce(e){return e&&!He(e[1])?{[e[0]]:e[1].data}:P.actionData?0===Object.keys(P.actionData).length?null:P.actionData:void 0}async function de(n,a,o,i){let{submission:s,fetcherSubmission:l,preventScrollReset:d,replace:f}=void 0===i?{}:i;a.response.headers.has("X-Remix-Revalidate")&&(I=!0);let m=a.response.headers.get("Location");m||v(!1),m=Ce(m,new URL(n.url),u);let p=w(P.location,m,{_isRedirect:!0});if(r){let r=!1;if(a.response.headers.has("X-Remix-Reload-Document"))r=!0;else if(se.test(m)){const n=e.history.createURL(m);r=n.origin!==t.location.origin||null==F(n.pathname,u)}if(r)return void(f?t.location.replace(m):t.location.assign(m))}M=null;let y=!0===f||a.response.headers.has("X-Remix-Replace")?h.Replace:h.Push,{formMethod:g,formAction:b,formEncType:E}=P.navigation;!s&&!l&&g&&b&&E&&(s=Ke(P.navigation));let S=s||l;if(ne.has(a.response.status)&&S&&Je(S.formMethod))await re(y,p,{submission:c({},S,{formAction:m}),preventScrollReset:d||O,enableViewTransition:o?U:void 0});else{let e=Ve(p,s);await re(y,p,{overrideNavigation:e,fetcherSubmission:l,preventScrollReset:d||O,enableViewTransition:o?U:void 0})}}async function he(e,t,r,n,a,o){let l,c={};try{l=await Se(d,e,t,r,n,a,o,s,i)}catch(e){return n.forEach((t=>{c[t.route.id]={type:x.error,error:e}})),c}for(let[e,t]of Object.entries(l))if(Ne(t)){let n=t.result;c[e]={type:x.redirect,response:Re(n,r,e,a,u)}}else c[e]=await xe(t);return c}async function pe(t,r,n,a,o){t.matches;let i=he("loader",t,o,n,r,null),s=Promise.all(a.map((async r=>{if(r.matches&&r.match&&r.controller){let n=(await he("loader",t,ke(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:x.error,error:Ue(404,{pathname:r.path})}})})));return{loaderResults:await i,fetcherResults:(await s).reduce(((e,t)=>Object.assign(e,t)),{})}}function ve(){I=!0,K.forEach(((e,t)=>{z.has(t)&&(B.add(t),Fe(t))}))}function ge(e,t,r){void 0===r&&(r={}),P.fetchers.set(e,t),ee({fetchers:new Map(P.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function De(e,t,r,n){void 0===n&&(n={});let a=_e(P.matches,t);Te(e),ee({errors:{[a.route.id]:r},fetchers:new Map(P.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function Le(e){return V.set(e,(V.get(e)||0)+1),Y.has(e)&&Y.delete(e),P.fetchers.get(e)||oe}function Te(e){let t=P.fetchers.get(e);!z.has(e)||t&&"loading"===t.state&&W.has(e)||Fe(e),K.delete(e),W.delete(e),$.delete(e),Y.delete(e),B.delete(e),P.fetchers.delete(e)}function Fe(e){let t=z.get(e);t||v(!1),t.abort(),z.delete(e)}function Be(e){for(let t of e){let e=Ge(Le(t).data);P.fetchers.set(t,e)}}function ze(){let e=[],t=!1;for(let r of $){let n=P.fetchers.get(r);n||v(!1),"loading"===n.state&&($.delete(r),e.push(r),t=!0)}return Be(e),t}function qe(e){let t=[];for(let[r,n]of W)if(n<e){let e=P.fetchers.get(r);e||v(!1),"loading"===e.state&&(Fe(r),W.delete(r),t.push(r))}return Be(t),t.length>0}function We(e){P.blockers.delete(e),X.delete(e)}function Qe(e,t){let r=P.blockers.get(e)||ie;"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||v(!1);let n=new Map(P.blockers);n.set(e,t),ee({blockers:n})}function Ze(e){let{currentLocation:t,nextLocation:r,historyAction:n}=e;if(0===X.size)return;X.size;let a=Array.from(X.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 et(e){let t=Ue(404,{pathname:e}),r=n||l,{matches:a,route:o}=Oe(r);return{notFoundMatches:a,route:o,error:t}}function tt(e,t){return{boundaryId:_e(t.partialMatches).route.id,error:Ue(400,{type:"route-discovery",pathname:e,message:null!=t.error&&"message"in t.error?t.error:String(t.error)})}}function rt(e,t){if(b){return b(e,t.map((e=>L(e,P.loaderData))))||e.key}return e.key}function nt(e,t){if(g){let r=rt(e,t),n=g[r];if("number"==typeof n)return n}return null}function at(e,t,r){if(f){if(!e){return{active:!0,matches:D(t,r,u,!0)||[]}}if(Object.keys(e[0].params).length>0){return{active:!0,matches:D(t,r,u,!0)}}}return{active:!1,matches:null}}async function ot(e,t,r){let a=e;for(;;){let e=null==n,o=n||l;try{await we(f,t,a,o,s,i,Q,r)}catch(e){return{type:"error",error:e,partialMatches:a}}finally{e&&(l=[...l])}if(r.aborted)return{type:"aborted"};let c=k(o,t,u);if(c)return{type:"success",matches:c};let d=D(o,t,u,!0);if(!d||a.length===d.length&&a.every(((e,t)=>e.route.id===d[t].route.id)))return{type:"success",matches:null};a=d}}return o={get basename(){return u},get future(){return m},get state(){return P},get routes(){return l},get window(){return t},initialize:function(){if(p=e.history.listen((t=>{let{action:r,location:n,delta:a}=t;if(A)return A(),void(A=void 0);let o=Ze({currentLocation:P.location,nextLocation:n,historyAction:r});if(o&&null!=a){let t=new Promise((e=>{A=e}));return e.history.go(-1*a),void Qe(o,{state:"blocked",location:n,proceed(){Qe(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,ie),ee({blockers:e})}})}return re(r,n)})),r){!function(e,t){try{let r=e.sessionStorage.getItem(ue);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,j);let e=()=>function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ue,JSON.stringify(r))}catch(e){}}}(t,j);t.addEventListener("pagehide",e),N=()=>t.removeEventListener("pagehide",e)}return P.initialized||re(h.Pop,P.location,{initialHydration:!0}),o},subscribe:function(e){return y.add(e),()=>y.delete(e)},enableScrollRestoration:function(e,t,r){if(g=e,E=t,b=r||null,!S&&P.navigation===ae){S=!0;let e=nt(P.location,P.matches);null!=e&&ee({restoreScrollPosition:e})}return()=>{g=null,E=null,b=null}},navigate:async function t(r,n){if("number"==typeof r)return void e.history.go(r);let a=fe(P.location,P.matches,u,r,null==n?void 0:n.fromRouteId,null==n?void 0:n.relative),{path:o,submission:i,error:s}=me(!1,a,n),l=P.location,d=w(P.location,o,n&&n.state);d=c({},d,e.history.encodeLocation(d));let f=n&&null!=n.replace?n.replace:void 0,m=h.Push;!0===f?m=h.Replace:!1===f||null!=i&&Je(i.formMethod)&&i.formAction===P.location.pathname+P.location.search&&(m=h.Replace);let p=n&&"preventScrollReset"in n?!0===n.preventScrollReset:void 0,y=!0===(n&&n.flushSync),v=Ze({currentLocation:l,nextLocation:d,historyAction:m});v?Qe(v,{state:"blocked",location:d,proceed(){Qe(v,{state:"proceeding",proceed:void 0,reset:void 0,location:d}),t(r,n)},reset(){let e=new Map(P.blockers);e.set(v,ie),ee({blockers:e})}}):await re(m,d,{submission:i,pendingError:s,preventScrollReset:p,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:y})},fetch:async function(t,r,a,o){z.has(t)&&Fe(t);let i=!0===(o&&o.flushSync),s=n||l,c=fe(P.location,P.matches,u,a,r,null==o?void 0:o.relative),d=k(s,c,u),h=at(d,s,c);if(h.active&&h.matches&&(d=h.matches),!d)return void De(t,r,Ue(404,{pathname:c}),{flushSync:i});let{path:f,submission:m,error:p}=me(!0,c,o);if(p)return void De(t,r,p,{flushSync:i});let y=$e(d,f),g=!0===(o&&o.preventScrollReset);m&&Je(m.formMethod)?await async function(t,r,a,o,i,s,c,d,h){function f(e){if(!e.route.action&&!e.route.lazy){let e=Ue(405,{method:h.formMethod,pathname:a,routeId:r});return De(t,r,e,{flushSync:c}),!0}return!1}if(ve(),K.delete(t),!s&&f(o))return;let m=P.fetchers.get(t);ge(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,m),{flushSync:c});let p=new AbortController,y=ke(e.history,a,p.signal,h);if(s){let e=await ot(i,a,y.signal);if("aborted"===e.type)return;if("error"===e.type){let{error:n}=tt(a,e);return void De(t,r,n,{flushSync:c})}if(!e.matches)return void De(t,r,Ue(404,{pathname:a}),{flushSync:c});if(f(o=$e(i=e.matches,a)))return}z.set(t,p);let g=q,w=(await he("action",P,y,[o],i,t))[o.route.id];if(y.signal.aborted)return void(z.get(t)===p&&z.delete(t));if(Y.has(t)){if(Ie(w)||He(w))return void ge(t,Ge(void 0))}else{if(Ie(w))return z.delete(t),J>g?void ge(t,Ge(void 0)):($.add(t),ge(t,Xe(h)),de(y,w,!1,{fetcherSubmission:h,preventScrollReset:d}));if(He(w))return void De(t,r,w.error)}let b=P.navigation.location||P.location,E=ke(e.history,b,p.signal),S=n||l,x="idle"!==P.navigation.state?k(S,P.navigation.location,u):P.matches;x||v(!1);let R=++q;W.set(t,R);let C=Xe(h,w.data);P.fetchers.set(t,C);let[D,L]=ye(e.history,P,x,h,b,!1,I,B,Y,K,$,S,u,[o.route.id,w]);L.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,r=P.fetchers.get(t),n=Xe(void 0,r?r.data:void 0);P.fetchers.set(t,n),z.has(t)&&Fe(t),e.controller&&z.set(t,e.controller)})),ee({fetchers:new Map(P.fetchers)});let T=()=>L.forEach((e=>Fe(e.key)));p.signal.addEventListener("abort",T);let{loaderResults:A,fetcherResults:O}=await pe(P,x,D,L,E);if(p.signal.aborted)return;p.signal.removeEventListener("abort",T),W.delete(t),z.delete(t),L.forEach((e=>z.delete(e.key)));let U=je(A);if(U)return de(E,U.result,!1,{preventScrollReset:d});if(U=je(O),U)return $.add(U.key),de(E,U.result,!1,{preventScrollReset:d});let{loaderData:j,errors:F}=Me(P,x,D,A,void 0,L,O);if(P.fetchers.has(t)){let e=Ge(w.data);P.fetchers.set(t,e)}qe(R),"loading"===P.navigation.state&&R>J?(_||v(!1),M&&M.abort(),te(P.navigation.location,{matches:x,loaderData:j,errors:F,fetchers:new Map(P.fetchers)})):(ee({errors:F,loaderData:Ae(P.loaderData,j,x,F),fetchers:new Map(P.fetchers)}),I=!1)}(t,r,f,y,d,h.active,i,g,m):(K.set(t,{routeId:r,path:f}),await async function(t,r,n,a,o,i,s,l,u){let c=P.fetchers.get(t);ge(t,Xe(u,c?c.data:void 0),{flushSync:s});let d=new AbortController,h=ke(e.history,n,d.signal);if(i){let e=await ot(o,n,h.signal);if("aborted"===e.type)return;if("error"===e.type){let{error:a}=tt(n,e);return void De(t,r,a,{flushSync:s})}if(!e.matches)return void De(t,r,Ue(404,{pathname:n}),{flushSync:s});a=$e(o=e.matches,n)}z.set(t,d);let f=q,m=(await he("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 ge(t,Ge(void 0));if(Ie(m))return J>f?void ge(t,Ge(void 0)):($.add(t),void await de(h,m,!1,{preventScrollReset:l}));if(He(m))return void De(t,r,m.error);ge(t,Ge(m.data))}(t,r,f,y,d,h.active,i,g,m))},revalidate:function(){Z||(Z=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}}()),ve(),ee({revalidation:"loading"});let e=Z.promise;return"submitting"===P.navigation.state?e:"idle"===P.navigation.state?(re(P.historyAction,P.location,{startUninterruptedRevalidation:!0}),e):(re(_||P.historyAction,P.navigation.location,{overrideNavigation:P.navigation,enableViewTransition:!0===U}),e)},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Le,deleteFetcher:function(e){let t=(V.get(e)||0)-1;t<=0?(V.delete(e),Y.add(e)):V.set(e,t),ee({fetchers:new Map(P.fetchers)})},dispose:function(){p&&p(),N&&N(),y.clear(),M&&M.abort(),P.fetchers.forEach(((e,t)=>Te(t))),P.blockers.forEach(((e,t)=>We(t)))},getBlocker:function(e,t){let r=P.blockers.get(e)||ie;return X.get(e)!==t&&X.set(e,t),r},deleteBlocker:We,patchRoutes:function(e,t){let r=null==n;be(e,t,n||l,s,i),r&&(l=[...l],ee({}))},_internalFetchControllers:z,_internalSetRoutes:function(e){s={},n=C(e,i,void 0,s)}},o}function de(e,t){e.length>0||v(!1);let r={},n=(t?t.basename:null)||"/",a=(null==t?void 0:t.mapRouteProperties)||le,o=C(e,a,void 0,r);async function i(e,t,r,n,a,o,i){e.signal||v(!1);try{if(Je(e.method)){let u=await async function(e,t,r,n,a,o,i){let u;if(r.route.action||r.route.lazy){u=(await l("action",e,[r],t,i,n,a))[r.route.id],e.signal.aborted&&he(e,i)}else{let t=Ue(405,{method:e.method,pathname:new URL(e.url).pathname,routeId:r.route.id});if(i)throw t;u={type:x.error,error:t}}if(Ie(u))throw new Response(null,{status:u.response.status,headers:{Location:u.response.headers.get("Location")}});if(i){if(He(u))throw u.error;return{matches:[r],loaderData:{},actionData:{[r.route.id]:u.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}let d=new Request(e.url,{headers:e.headers,redirect:e.redirect,signal:e.signal});if(He(u)){let e=o?r:_e(t,r.route.id);return c({},await s(d,t,n,a,o,null,[e.route.id,u]),{statusCode:G(u.error)?u.error.status:null!=u.statusCode?u.statusCode:500,actionData:null,actionHeaders:c({},u.headers?{[r.route.id]:u.headers}:{})})}return c({},await s(d,t,n,a,o,null),{actionData:{[r.route.id]:u.data}},u.statusCode?{statusCode:u.statusCode}:{},{actionHeaders:u.headers?{[r.route.id]:u.headers}:{}})}(e,r,i||$e(r,t),n,a,o,null!=i);return u}let u=await s(e,r,n,a,o,i);return ze(u)?u:c({},u,{actionData:null,actionHeaders:{}})}catch(e){if(function(e){return null!=e&&"object"==typeof e&&"type"in e&&"result"in e&&(e.type===x.data||e.type===x.error)}(e)&&ze(e.result)){if(e.type===x.error)throw e.result;return e.result}if(function(e){if(!ze(e))return!1;let t=e.status,r=e.headers.get("Location");return t>=300&&t<=399&&null!=r}(e))return e;throw e}}async function s(e,t,r,n,a,o,i){let s=null!=o;if(s&&(null==o||!o.route.loader)&&(null==o||!o.route.lazy))throw Ue(400,{method:e.method,pathname:new URL(e.url).pathname,routeId:null==o?void 0:o.route.id});let u=(o?[o]:i&&He(i[1])?pe(t,i[0]):t).filter((e=>e.route.loader||e.route.lazy));if(0===u.length)return{matches:t,loaderData:t.reduce(((e,t)=>Object.assign(e,{[t.route.id]:null})),{}),errors:i&&He(i[1])?{[i[0]]:i[1].error}:null,statusCode:200,loaderHeaders:{}};let d=await l("loader",e,u,t,s,r,n);e.signal.aborted&&he(e,s);let h=Te(t,d,i,a),f=new Set(u.map((e=>e.route.id)));return t.forEach((e=>{f.has(e.route.id)||(h.loaderData[e.route.id]=null)})),c({},h,{matches:t})}async function l(e,t,o,i,s,l,u){let c=await Se(u||Ee,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(Ne(r)){throw Re(r.result,t,e.route.id,i,n)}if(ze(r.result)&&s)throw r;d[e.route.id]=await xe(r)}))),d}return{dataRoutes:o,query:async function(e,t){let{requestContext:r,skipLoaderErrorBubbling:a,dataStrategy:s}=void 0===t?{}:t,l=new URL(e.url),u=e.method,d=w("",b(l),null,"default"),h=k(o,d,n);if(!qe(u)&&"HEAD"!==u){let e=Ue(405,{method:u}),{matches:t,route:r}=Oe(o);return{basename:n,location:d,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}}}if(!h){let e=Ue(404,{pathname:d.pathname}),{matches:t,route:r}=Oe(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,s||null,!0===a,null);return ze(f)?f:c({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=w("",b(l),null,"default"),d=k(o,c,n);if(!qe(u)&&"HEAD"!==u&&"OPTIONS"!==u)throw Ue(405,{method:u});if(!d)throw Ue(404,{pathname:c.pathname});let h=r?d.find((e=>e.route.id===r)):$e(d,c);if(r&&!h)throw Ue(403,{pathname:c.pathname,routeId:r});if(!h)throw Ue(404,{pathname:c.pathname});let f=await i(e,c,d,a,s||null,!1,h);if(ze(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 he(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 fe(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=B(n||".",I(i),F(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:z([r,l.pathname])),b(l)}function me(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:Ue(405,{method:r.formMethod})};let n,a,o=()=>({path:t,error:Ue(400,{type:"invalid-body"})}),i=(r.formMethod||"get").toUpperCase(),s=Fe(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&&v(!1),r.formData)n=De(r.formData),a=r.formData;else if(r.body instanceof FormData)n=De(r.body),a=r.body;else if(r.body instanceof URLSearchParams)n=r.body,a=Le(n);else if(null==r.body)n=new URLSearchParams,a=new FormData;else try{n=new URLSearchParams(r.body),a=Le(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=E(t);return e&&u.search&&We(u.search)&&n.append("index",""),u.search="?"+n,{path:b(u),submission:l}}function pe(e,t){let r=e;if(t){let n=e.findIndex((e=>e.route.id===t));n>=0&&(r=e.slice(0,n))}return r}function ye(e,t,r,n,a,o,i,s,l,u,d,h,f,m){let p=m?He(m[1])?m[1].error:m[1].data:void 0,y=e.createURL(t.location),v=e.createURL(a),g=m&&He(m[1])?m[0]:void 0,w=g?pe(r,g):r,b=m?m[1].statusCode:void 0,E=b&&b>=400,S=w.filter(((e,r)=>{let{route:a}=e;if(a.lazy)return!0;if(null==a.loader)return!1;if(o)return!("function"==typeof a.loader&&!a.loader.hydrate)||void 0===t.loaderData[a.id]&&(!t.errors||void 0===t.errors[a.id]);if(function(e,t,r){let n=!t||r.route.id!==t.route.id,a=void 0===e[r.route.id];return n||a}(t.loaderData,t.matches[r],e))return!0;let s=t.matches[r],l=e;return ge(e,c({currentUrl:y,currentParams:s.params,nextUrl:v,nextParams:l.params},n,{actionResult:p,actionStatus:b,defaultShouldRevalidate:!E&&(i||y.pathname+y.search===v.pathname+v.search||y.search!==v.search||ve(s,l))}))})),x=[];return u.forEach(((e,a)=>{if(o||!r.some((t=>t.route.id===e.routeId))||l.has(a))return;let u=k(h,e.path,f);if(!u)return void x.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let m=t.fetchers.get(a),g=$e(u,e.path),w=!1;d.has(a)?w=!1:s.has(a)?(s.delete(a),w=!0):w=m&&"idle"!==m.state&&void 0===m.data?i:ge(g,c({currentUrl:y,currentParams:t.matches[t.matches.length-1].params,nextUrl:v,nextParams:r[r.length-1].params},n,{actionResult:p,actionStatus:b,defaultShouldRevalidate:!E&&i})),w&&x.push({key:a,routeId:e.routeId,path:e.path,matches:u,match:g,controller:new AbortController})})),[S,x]}function ve(e,t){let r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ge(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}async function we(e,t,r,n,a,o,i,s){let l=[t,...r.map((e=>e.route.id))].join("-");try{let c=i.get(l);c||(c=e({path:t,matches:r,patch:(e,t)=>{s.aborted||be(e,t,n,a,o)}}),i.set(l,c)),c&&("object"==typeof(u=c)&&null!=u&&"then"in u)&&await c}finally{i.delete(l)}var u}function be(e,t,r,n,a){var o;let i;if(e){let t=n[e];t||v(!1),t.children||(t.children=[]),i=t.children}else i=r;let s=C(t.filter((e=>!i.some((t=>e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive)))),a,[e||"_","patch",String((null==(o=i)?void 0:o.length)||"0")],n);i.push(...s)}async function Ee(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 Se(e,t,r,n,a,o,i,s,l,u){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||v(!1);let o={};for(let e in n)void 0!==a[e]&&"hasErrorBoundary"!==e||R.has(e)||(o[e]=n[e]);Object.assign(a,o),Object.assign(a,c({},t(a),{lazy:void 0}))}(e.route,l,s):void 0)),h=o.map(((e,r)=>{let o=d[r],i=a.some((t=>t.route.id===e.route.id));return c({},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 Ue(405,{method:t.method,pathname:n,routeId:r.route.id})}return{type:x.data,result:void 0}}i=await l(a)}else{if(!a){let e=new URL(t.url);throw Ue(404,{pathname:e.pathname+e.search})}i=await l(a)}}catch(e){return{type:x.error,result:e}}finally{s&&t.signal.removeEventListener("abort",s)}return i}(t,n,e,o,r,u):Promise.resolve({type:x.data,result:void 0}))})})),f=await e({matches:h,request:n,params:o[0].params,fetcherKey:i,context:u});try{await Promise.all(d)}catch(e){}return f}async function xe(e){let{result:t,type:r}=e;if(ze(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:x.error,error:e}}return r===x.error?{type:x.error,error:new X(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:x.data,data:e,statusCode:t.status,headers:t.headers}}if(r===x.error){if(Be(t)){var n,a;if(t.data instanceof Error)return{type:x.error,error:t.data,statusCode:null==(a=t.init)?void 0:a.status};t=new X((null==(n=t.init)?void 0:n.status)||500,void 0,t.data)}return{type:x.error,error:t,statusCode:G(t)?t.status:void 0}}var o,i;return Be(t)?{type:x.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:x.data,data:t}}function Re(e,t,r,n,a){let o=e.headers.get("Location");if(o||v(!1),!se.test(o)){let i=n.slice(0,n.findIndex((e=>e.route.id===r))+1);o=fe(new URL(t.url),i,a,o),e.headers.set("Location",o)}return e}function Ce(e,t,r){if(se.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=null!=F(a.pathname,r);if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function ke(e,t,r,n){let a=e.createURL(Fe(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=De(n.formData):o.body=n.formData}return new Request(a,o)}function De(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function Le(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Te(e,t,r,n){let a,o={},i=null,s=!1,l={},u=r&&He(r[1])?r[1].error:void 0;return e.forEach((r=>{if(!(r.route.id in t))return;let c=r.route.id,d=t[c];if(Ie(d)&&v(!1),He(d)){let t=d.error;if(void 0!==u&&(t=u,u=void 0),i=i||{},n)i[c]=t;else{let r=_e(e,c);null==i[r.route.id]&&(i[r.route.id]=t)}o[c]=void 0,s||(s=!0,a=G(d.error)?d.error.status:500),d.headers&&(l[c]=d.headers)}else o[c]=d.data,d.statusCode&&200!==d.statusCode&&!s&&(a=d.statusCode),d.headers&&(l[c]=d.headers)})),void 0!==u&&r&&(i={[r[0]]:u},o[r[0]]=void 0),{loaderData:o,errors:i,statusCode:a||200,loaderHeaders:l}}function Me(e,t,r,n,a,o,i){let{loaderData:s,errors:l}=Te(t,n,a,!1);return o.forEach((t=>{let{key:r,match:n,controller:a}=t,o=i[r];if(o||v(!1),!a||!a.signal.aborted)if(He(o)){let t=_e(e.matches,null==n?void 0:n.route.id);l&&l[t.route.id]||(l=c({},l,{[t.route.id]:o.error})),e.fetchers.delete(r)}else if(Ie(o))v(!1);else{let t=Ge(o.data);e.fetchers.set(r,t)}})),{loaderData:s,errors:l}}function Ae(e,t,r,n){let a=c({},t);for(let o of r){let r=o.route.id;if(t.hasOwnProperty(r)?void 0!==t[r]&&(a[r]=t[r]):void 0!==e[r]&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function Pe(e){return e?He(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function _e(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 Oe(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 Ue(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","route-discovery"===o?l='Unable to match URL "'+r+'" - the `patchRoutesOnNavigation()` function threw the following error:\n'+i: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 X(e||500,s,new Error(l),!0)}function je(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(Ie(n))return{key:r,result:n}}}function Fe(e){return b(c({},"string"==typeof e?E(e):e,{hash:""}))}function Ne(e){return ze(e.result)&&re.has(e.result.status)}function He(e){return e.type===x.error}function Ie(e){return(e&&e.type)===x.redirect}function Be(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function ze(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function qe(e){return te.has(e.toUpperCase())}function Je(e){return Z.has(e.toUpperCase())}function We(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function $e(e,t){let r="string"==typeof t?E(t).search:t.search;if(e[e.length-1].route.index&&We(r||""))return e[e.length-1];let n=H(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 Ye(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 Xe(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=s.createContext(null);Qe.displayName="DataRouter";const Ze=s.createContext(null);Ze.displayName="DataRouterState";const et=s.createContext({isTransitioning:!1});et.displayName="ViewTransition";const tt=s.createContext(new Map);tt.displayName="Fetchers";const rt=s.createContext(null);rt.displayName="Await";const nt=s.createContext(null);nt.displayName="Navigation";const at=s.createContext(null);at.displayName="Location";const ot=s.createContext({outlet:null,matches:[],isDataRoute:!1});ot.displayName="Route";const it=s.createContext(null);function st(e,t){let{relative:r}=void 0===t?{}:t;lt()||v(!1);let{basename:n,navigator:a}=s.useContext(nt),{hash:o,pathname:i,search:l}=mt(e,{relative:r}),u=i;return"/"!==n&&(u="/"===i?n:z([n,i])),a.createHref({pathname:u,search:l,hash:o})}function lt(){return null!=s.useContext(at)}function ut(){return lt()||v(!1),s.useContext(at).location}function ct(e){s.useContext(nt).static||s.useLayoutEffect(e)}function dt(){let{isDataRoute:e}=s.useContext(ot);return e?function(){let{router:e}=Rt(St.UseNavigateStable),t=kt(xt.UseNavigateStable),r=s.useRef(!1);return ct((()=>{r.current=!0})),s.useCallback((async function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):await e.navigate(n,c({fromRouteId:t},a)))}),[e,t])}():function(){lt()||v(!1);let e=s.useContext(Qe),{basename:t,navigator:r}=s.useContext(nt),{matches:n}=s.useContext(ot),{pathname:a}=ut(),o=JSON.stringify(I(n)),i=s.useRef(!1);return ct((()=>{i.current=!0})),s.useCallback((function(n,s){if(void 0===s&&(s={}),!i.current)return;if("number"==typeof n)return void r.go(n);let l=B(n,JSON.parse(o),a,"path"===s.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:z([t,l.pathname])),(s.replace?r.replace:r.push)(l,s.state,s)}),[t,r,o,a,e])}()}it.displayName="RouteError";const ht=s.createContext(null);function ft(e){let t=s.useContext(ot).outlet;return t?s.createElement(ht.Provider,{value:e},t):t}function mt(e,t){let{relative:r}=void 0===t?{}:t,{matches:n}=s.useContext(ot),{pathname:a}=ut(),o=JSON.stringify(I(n));return s.useMemo((()=>B(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()||v(!1);let{navigator:a}=s.useContext(nt),{matches:o}=s.useContext(ot),i=o[o.length-1],l=i?i.params:{},u=i?i.pathname:"/",d=i?i.pathnameBase:"/",f=i&&i.route;{let e=f&&f.path||"";Ot(u,!f||e.endsWith("*"))}let m,p=ut();if(t){var y;let e="string"==typeof t?E(t):t;"/"===d||(null==(y=e.pathname)?void 0:y.startsWith(d))||v(!1),m=e}else m=p;let g=m.pathname||"/",w=g;if("/"!==d){let e=d.replace(/^\//,"").split("/");w="/"+g.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=k(e,{pathname:w}),S=Et(b&&b.map((e=>Object.assign({},e,{params:Object.assign({},l,e.params),pathname:z([d,a.encodeLocation?a.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?d:z([d,a.encodeLocation?a.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),o,r);return t&&S?s.createElement(at.Provider,{value:{location:c({pathname:"/",search:"",hash:"",state:null,key:"default"},m),navigationType:h.Pop}},S):S}function vt(){let e=Tt(),t=G(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},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=s.createElement(s.Fragment,null,s.createElement("p",null,"💿 Hey developer 👋"),s.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",s.createElement("code",{style:o},"ErrorBoundary")," or"," ",s.createElement("code",{style:o},"errorElement")," prop on your route.")),s.createElement(s.Fragment,null,s.createElement("h2",null,"Unexpected Application Error!"),s.createElement("h3",{style:{fontStyle:"italic"}},t),r?s.createElement("pre",{style:a},r):null,i)}const gt=s.createElement(vt,null);class wt extends s.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?s.createElement(ot.Provider,{value:this.props.routeContext},s.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=s.useContext(Qe);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),s.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,i=null==(a=r)?void 0:a.errors;if(null!=i){let e=o.findIndex((e=>e.route.id&&void 0!==(null==i?void 0:i[e.route.id])));e>=0||v(!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&&void 0===e[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=i&&n.route.id?i[n.route.id]:void 0,h=n.route.errorElement||gt,l&&(u<0&&0===a?(Ot("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?s.createElement(n.route.Component,null):n.route.element?n.route.element:e,s.createElement(bt,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?s.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||{}),xt=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}(xt||{});function Rt(e){let t=s.useContext(Qe);return t||v(!1),t}function Ct(e){let t=s.useContext(Ze);return t||v(!1),t}function kt(e){let t=function(e){let t=s.useContext(ot);return t||v(!1),t}(),r=t.matches[t.matches.length-1];return r.route.id||v(!1),r.route.id}function Dt(){return Ct(xt.UseNavigation).navigation}function Lt(){let{matches:e,loaderData:t}=Ct(xt.UseMatches);return s.useMemo((()=>e.map((e=>L(e,t)))),[e,t])}function Tt(){var e;let t=s.useContext(it),r=Ct(xt.UseRouteError),n=kt(xt.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function Mt(){let e=s.useContext(rt);return null==e?void 0:e._data}let At=0;function Pt(e){let{router:t,basename:r}=Rt(St.UseBlocker),n=Ct(xt.UseBlocker),[a,o]=s.useState(""),i=s.useCallback((t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:c({},n,{pathname:F(n.pathname,r)||n.pathname}),nextLocation:c({},a,{pathname:F(a.pathname,r)||a.pathname}),historyAction:o})}),[r,e]);return s.useEffect((()=>{let e=String(++At);return o(e),()=>t.deleteBlocker(e)}),[t]),s.useEffect((()=>{""!==a&&t.getBlocker(a,i)}),[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):ie}const _t={};function Ot(e,t,r){t||_t[e]||(_t[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:s.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement,Object.assign(t,{hydrateFallbackElement:s.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement,Object.assign(t,{errorElement:s.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}function Nt(e,t){return ce({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:m({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]=s.useState(t.state),[o,i]=s.useState(),[l,u]=s.useState({isTransitioning:!1}),[c,d]=s.useState(),[h,f]=s.useState(),[m,p]=s.useState(),y=s.useRef(new Map),v=s.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),i(void 0),u({isTransitioning:!1})}))})),void r((()=>f(n)))}h?(c&&c.resolve(),h.skipTransition(),p({state:e,currentLocation:m.currentLocation,nextLocation:m.nextLocation})):(i(e),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}))}else r&&l?r((()=>a(e))):s.startTransition((()=>a(e)))}),[t.window,r,h,c]);s.useLayoutEffect((()=>t.subscribe(v)),[t,v]),s.useEffect((()=>{l.isTransitioning&&!l.flushSync&&d(new Ht)}),[l]),s.useEffect((()=>{if(c&&o&&t.window){let e=o,r=c.promise,n=t.window.document.startViewTransition((async()=>{s.startTransition((()=>a(e))),await r}));n.finished.finally((()=>{d(void 0),f(void 0),i(void 0),u({isTransitioning:!1})})),f(n)}}),[o,c,t.window]),s.useEffect((()=>{c&&o&&n.location.key===o.location.key&&c.resolve()}),[c,h,n.location,o]),s.useEffect((()=>{!l.isTransitioning&&m&&(i(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),p(void 0))}),[l.isTransitioning,m]);let g=s.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=s.useMemo((()=>({router:t,navigator:g,static:!1,basename:w})),[t,g,w]);return s.createElement(s.Fragment,null,s.createElement(Qe.Provider,{value:b},s.createElement(Ze.Provider,{value:n},s.createElement(tt.Provider,{value:y.current},s.createElement(et.Provider,{value:l},s.createElement(Wt,{basename:w,location:n.location,navigationType:n.historyAction,navigator:g},s.createElement(Bt,{routes:t.routes,future:t.future,state:n})))))),null)}const Bt=s.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){v(!1)}function Wt(e){let{basename:t="/",children:r=null,location:n,navigationType:a=h.Pop,navigator:o,static:i=!1}=e;lt()&&v(!1);let l=t.replace(/^\/*/,"/"),u=s.useMemo((()=>({basename:l,navigator:o,static:i,future:{}})),[l,o,i]);"string"==typeof n&&(n=E(n));let{pathname:c="/",search:d="",hash:f="",state:m=null,key:p="default"}=n,y=s.useMemo((()=>{let e=F(c,l);return null==e?null:{location:{pathname:e,search:d,hash:f,state:m,key:p},navigationType:a}}),[l,c,d,f,m,p,a]);return null==y?null:s.createElement(nt.Provider,{value:u},s.createElement(at.Provider,{children:r,value:y}))}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 s.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 s.createElement(rt.Provider,{value:n,children:t});if(a===$t.success)return s.createElement(rt.Provider,{value:n,children:e});throw n}}function Vt(e){let{children:t}=e,r=Mt(),n="function"==typeof t?t(r):t;return s.createElement(s.Fragment,null,n)}function Yt(e,t){void 0===t&&(t=[]);let r=[];return s.Children.forEach(e,((e,n)=>{if(!s.isValidElement(e))return;let a=[...t,n];if(e.type===s.Fragment)return void r.push.apply(r,Yt(e.props.children,a));e.type!==Jt&&v(!1),e.props.index&&e.props.children&&v(!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=Yt(e.props.children,a)),r.push(o)})),r}const Xt="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?F(i,t):null,r=e.getAttribute("method")||Xt,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?F(s,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||Xt,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=Xt,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.__remixContext&&window.__remixContext.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.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],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(c({},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=function(e){let t=E(e);void 0===t.search&&(t.search="");return t}(e),s=(e,t)=>!r[t]||e.route.id!==r[t].route.id,l=(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"data"===o&&a.search!==i.search?t.filter(((t,o)=>{if(!n.routes[t.route.id].hasLoader)return!1;if(s(t,o)||l(t,o))return!0;if(t.route.shouldRevalidate){var i;let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:(null==(i=r[0])?void 0:i.params)||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0})):t.filter(((e,t)=>{let r=n.routes[e.route.id];return("assets"===o||r.hasLoader)&&(s(e,t)||l(e,t))}))}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:i}=t.renderMeta,l=i[r];if(l||(l=i[r]=n.read().then((e=>{i[r].result={done:e.done,value:a.decode(e.value,{stream:!0})}})).catch((e=>{i[r].error=e}))),l.error)throw l.error;if(void 0===l.result)throw l;let{done:u,value:c}=l.result,d=c?s.createElement("script",{nonce:o,dangerouslySetInnerHTML:{__html:"window.__remixContext.streamController.enqueue("+(h=JSON.stringify(c),h.replace(yr,(e=>pr[e]))+");")}}):null;var h;return u?s.createElement(s.Fragment,null,d,s.createElement("script",{nonce:o,dangerouslySetInnerHTML:{__html:"window.__remixContext.streamController.close();"}})):s.createElement(s.Fragment,null,d,s.createElement(s.Suspense,null,s.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 Rr(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 xr(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 Rr(e,t){let r=await fetch(e,t);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 X(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"),Y(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 s.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?s.createElement(Mr,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}}function Mr(e){let{error:t,isOutsideRemixApp:r}=e;console.error(t);let n,a=s.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(G(t))return s.createElement(Ar,{title:"Unhandled Thrown Response!"},s.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 s.createElement(Ar,{title:"Application Error!",isOutsideRemixApp:r},s.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),s.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),a)}function Ar(e){var t;let{title:r,renderScripts:n,isOutsideRemixApp:a,children:o}=e,{routeModules:i}=Qr();return null!=(t=i.root)&&t.Layout&&!a?o:s.createElement("html",{lang:"en"},s.createElement("head",null,s.createElement("meta",{charSet:"utf-8"}),s.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),s.createElement("title",null,r)),s.createElement("body",null,s.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},o,n?s.createElement(on,null):null)))}function Pr(){return s.createElement(Ar,{title:"Loading...",renderScripts:!0},s.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 _r(e){let t={};return Object.values(e).forEach((e=>{let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)})),t}function Or(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?()=>s.createElement(Mr,{error:Tt()}):void 0;return"root"===e.id&&t.Layout?c({},n?{element:s.createElement(t.Layout,null,s.createElement(n,null))}:{Component:n},o?{errorElement:s.createElement(t.Layout,null,s.createElement(o,null))}:{ErrorBoundary:o},a?{hydrateFallbackElement:s.createElement(t.Layout,null,s.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=_r(e)),void 0===i&&(i=Promise.resolve({Component:()=>null})),(o[a]||[]).map((a=>{let s=t[a.id];s||ar(!1);let l=c({},Or(a,s,n),{caseSensitive:a.caseSensitive,id:a.id,index:a.index,path:a.path,handle:s.handle,lazy:n?()=>i:void 0,loader:a.hasLoader||a.hasClientLoader?()=>null:void 0}),u=Ur(e,t,r,n,a.id,o,i);return u.length>0&&(l.children=u),l}))}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 X(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 X(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 X(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=_r(e)),(o[a]||[]).map((a=>{let s=t[a.id];function l(e){return"function"!=typeof e&&ar(!1),e()}function u(e){return a.hasLoader?l(e):Promise.resolve(null)}function d(e){if(!a.hasAction)throw Fr("action",a.id);return l(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(s){var m,p,y;Object.assign(f,c({},f,Or(a,s,n),{handle:s.handle,shouldRevalidate:i?Hr(a.id,s.shouldRevalidate,i):s.shouldRevalidate}));let e=null==r||null==(m=r.loaderData)?void 0:m[a.id],t=null==r||null==(p=r.errors)?void 0:p[a.id],o=null==i&&(!0===(null==(y=s.clientLoader)?void 0:y.hydrate)||!a.hasLoader);f.loader=async(r,i)=>{let{request:l,params:c}=r;try{return await h((async()=>(s||ar(!1),s.clientLoader?s.clientLoader({request:l,params:c,async serverLoader(){if(jr("loader",a,n),o){if(void 0!==t)throw t;return e}return u(i)}}):n?null:u(i))))}finally{o=!1}},f.loader.hydrate=Br(a,s,n),f.action=(e,t)=>{let{request:r,params:o}=e;return h((async()=>{if(s||ar(!1),!s.clientAction){if(n)throw Fr("clientAction",a.id);return d(t)}return s.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):u(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=c({},e);if(e.clientLoader){let t=e.clientLoader;r.loader=(e,r)=>t(c({},e,{serverLoader:async()=>(jr("loader",a,n),u(r))}))}if(e.clientAction){let t=e.clientAction;r.action=(e,r)=>t(c({},e,{serverAction:async()=>(jr("action",a,n),d(r))}))}return i&&(r.shouldRevalidate=Hr(a.id,e.shouldRevalidate,i)),c({},r.loader?{loader:r.loader}:{},r.action?{action:r.action}:{},{hasErrorBoundary:r.hasErrorBoundary,shouldRevalidate:r.shouldRevalidate,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){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}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)=>c.has(t.id)?e:Object.assign(e,{[t.id]:t})),{});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.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 Yr(){let e=s.useContext(Qe);return e||ar(!1),e}function Xr(){let e=s.useContext(Ze);return e||ar(!1),e}const Gr=s.createContext(void 0);function Qr(){let e=s.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=d(e,$r),{router:n}=Yr(),a=s.useMemo((()=>k(n.routes,t,n.basename)),[n.routes,t,n.basename]);return a?s.createElement(nn,c({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]=s.useState([]);return s.useEffect((()=>{let n=!1;return async function(e,t,r){return fr((await Promise.all(e.map((async e=>{let n=await or(t.routes[e.route.id],r);return n.links?n.links():[]})))).flat(1).filter(cr).filter((e=>"stylesheet"===e.rel||"preload"===e.rel)).map((e=>"stylesheet"===e.rel?c({},e,{rel:"prefetch",as:"style"}):c({},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=d(e,Kr),a=ut(),{manifest:o,routeModules:i}=Qr(),{loaderData:l,matches:u}=Xr(),h=s.useMemo((()=>dr(t,r,u,o,a,"data")),[t,r,u,o,a]),f=s.useMemo((()=>dr(t,r,u,o,a,"assets")),[t,r,u,o,a]),m=s.useMemo((()=>{if(t===a.pathname+a.search+a.hash)return[];let e=new Set,n=!1;if(r.forEach((t=>{var r;o.routes[t.route.id].hasLoader&&(!h.some((e=>e.route.id===t.route.id))&&t.route.id in l&&null!=(r=i[t.route.id])&&r.shouldRevalidate||o.routes[t.route.id].hasClientLoader?n=!0:e.add(t.route.id))})),0===e.size)return[];let s=xr(t);return n&&e.size>0&&s.searchParams.set("_routes",r.filter((t=>e.has(t.route.id))).map((e=>e.route.id)).join(",")),[s.pathname+s.search]}),[l,a,o,h,r,t,i]),p=s.useMemo((()=>function(e,t){return hr(e.map((e=>{let r=t.routes[e.route.id],n=[r.module];return r.imports&&(n=n.concat(r.imports)),n})).flat(1))}(f,o)),[f,o]),y=rn(f);return s.createElement(s.Fragment,null,m.map((e=>s.createElement("link",c({key:e,rel:"prefetch",as:"fetch",href:e},n)))),p.map((e=>s.createElement("link",c({key:e,rel:"modulepreload",href:e},n)))),y.map((e=>{let{key:t,link:r}=e;return s.createElement("link",c({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:i,staticContext:l}=Yr(),{matches:u}=Xr(),d=Jr(n);a&&(a.didRenderScripts=!0);let h=en(u,null,n);s.useEffect((()=>{an=!0}),[]);let f=s.useMemo((()=>{var n;let a=l?"window.__remixContext = "+r+";window.__remixContext.stream = new ReadableStream({start(controller){window.__remixContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());":" ",u=i?(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.__remixManifest = "+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=k(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 c({},e,{routes:o})}(t,o),null,2)+";":"")+"\n window.__remixRouteModules = {"+h.map(((e,t)=>JSON.stringify(e.route.id)+":route"+t)).join(",")+"};\n\nimport("+JSON.stringify(t.entry.module)+");":" ";return s.createElement(s.Fragment,null,s.createElement("script",c({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:vr(a),type:void 0})),s.createElement("script",c({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:vr(u),type:"module",async:!0})))}),[]),m=h.map((e=>{let r=t.routes[e.route.id];return(r.imports||[]).concat([r.module])})).flat(1),p=an?[]:t.entry.imports.concat(m);return an?null:s.createElement(s.Fragment,null,d?null:s.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),s.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),(y=p,[...new Set(y)]).map((t=>s.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="0")}catch(e){}function fn(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=c({},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 X(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]=s.useState({action:n.action,location:n.location}),i=s.useCallback((e=>{s.startTransition((()=>o(e)))}),[o]);return s.useLayoutEffect((()=>n.listen(i)),[n,i]),s.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=s.forwardRef((function(e,t){let r,{onClick:n,discover:a="render",prefetch:o="none",relative:i,reloadDocument:l,replace:u,state:h,target:f,to:m,preventScrollReset:p,viewTransition:y}=e,v=d(e,ln),{basename:g}=s.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=F(t.pathname,g);t.origin===e.origin&&null!=r?m=r+t.search+t.hash:b=!0}catch(e){}let E=st(m,{relative:i}),[S,x,R]=function(e,t){let r=s.useContext(Gr),[n,a]=s.useState(!1),[o,i]=s.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:d,onTouchStart:h}=t,f=s.useRef(null);s.useEffect((()=>{if("render"===e&&i(!0),"viewport"===e){let e=new IntersectionObserver((e=>{e.forEach((e=>{i(e.isIntersecting)}))}),{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}}),[e]),s.useEffect((()=>{if(n){let e=setTimeout((()=>{i(!0)}),100);return()=>{clearTimeout(e)}}}),[n]);let m=()=>{a(!0)},p=()=>{a(!1),i(!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:u,state:h,target:f,preventScrollReset:p,relative:i,viewTransition:y});let k=s.createElement("a",c({},v,R,{href:r||E,onClick:b||l?n:function(e){n&&n(e),e.defaultPrevented||C(e)},ref:sn(t,x),target:f,"data-discover":w||"render"!==a?void 0:"true"}));return S&&!w?s.createElement(s.Fragment,null,k,s.createElement(tn,{page:E})):k}));vn.displayName="Link";const gn=s.forwardRef((function(e,t){let{"aria-current":r="page",caseSensitive:n=!1,className:a="",end:o=!1,style:i,to:l,viewTransition:u,children:h}=e,f=d(e,un),m=mt(l,{relative:f.relative}),p=ut(),y=s.useContext(Ze),{navigator:v,basename:g}=s.useContext(nt),w=null!=y&&_n(m)&&!0===u,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=F(S,g)||S);const x="/"!==b&&b.endsWith("/")?b.length-1:b.length;let R,C=E===b||!o&&E.startsWith(b)&&"/"===E.charAt(x),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;R="function"==typeof a?a(D):[a,C?"active":null,k?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let T="function"==typeof i?i(D):i;return s.createElement(vn,c({},f,{"aria-current":L,className:R,ref:t,style:T,to:l,viewTransition:u}),"function"==typeof h?h(D):h)}));gn.displayName="NavLink";const wn=s.forwardRef(((e,t)=>{let{discover:r="render",fetcherKey:n,navigate:a,reloadDocument:o,replace:i,state:l,method:u=Xt,action:h,onSubmit:f,relative:m,preventScrollReset:p,viewTransition:y}=e,v=d(e,cn),g=Dn(),w=Ln(h,{relative:m}),b="get"===u.toLowerCase()?"get":"post",E="string"==typeof h&&yn.test(h);return s.createElement("form",c({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"))||u;g(t||e.currentTarget,{fetcherKey:n,method:r,navigate:a,replace:i,state:l,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=d(e,dn),a=s.useContext(Gr),{basename:o}=s.useContext(nt),i=ut(),l=Lt();Pn({getKey:t,storageKey:r});let u=s.useMemo((()=>{if(!a||!t)return null;let e=An(i,l,o,t);return e!==i.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 s.createElement("script",c({},n,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:"("+h+")("+JSON.stringify(r||Tn)+", "+JSON.stringify(u)+")"}}))}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 xn(e){let t=s.useContext(Qe);return t||v(!1),t}function Rn(e){let t=s.useContext(Ze);return t||v(!1),t}function Cn(e,t){let{target:r,replace:n,state:a,preventScrollReset:o,relative:i,viewTransition:l}=void 0===t?{}:t,u=dt(),c=ut(),d=mt(e,{relative:i});return s.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:b(c)===b(d);u(e,{replace:r,state:a,preventScrollReset:o,relative:i,viewTransition:l})}}),[c,u,d,n,a,r,e,o,i,l])}let kn=0;function Dn(){let{router:e}=xn(En.UseSubmit),{basename:t}=s.useContext(nt),r=kt(xt.UseRouteId);return s.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}=s.useContext(nt),a=s.useContext(ot);a||v(!1);let[o]=a.matches.slice(-1),i=c({},mt(e||".",{relative:r})),l=ut();if(null==e){i.search=l.search;let e=new URLSearchParams(i.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();i.search=r?"?"+r:""}}return e&&"."!==e||!o.route.index||(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(i.pathname="/"===i.pathname?n:z([n,i.pathname])),b(i)}const Tn="react-router-scroll-positions";let Mn={};function An(e,t,r,n){let a=null;return n&&(a=n("/"!==r?c({},e,{pathname:F(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}=xn(En.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:o}=Rn(Sn.UseScrollRestoration),{basename:i}=s.useContext(nt),l=ut(),u=Lt(),c=Dt();s.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:r}=t||{};s.useEffect((()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,r])}(s.useCallback((()=>{if("idle"===c.state){let e=An(l,u,i,t);Mn[e]=window.scrollY}try{sessionStorage.setItem(r||Tn,JSON.stringify(Mn))}catch(e){}window.history.scrollRestoration="auto"}),[c.state,t,i,l,u,r])),"undefined"!=typeof document&&(s.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(r||Tn);e&&(Mn=JSON.parse(e))}catch(e){}}),[r]),s.useLayoutEffect((()=>{let e=null==n?void 0:n.enableScrollRestoration(Mn,(()=>window.scrollY),t?(e,r)=>An(e,r,i,t):void 0);return()=>e&&e()}),[n,i,t]),s.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 _n(e,t){void 0===t&&(t={});let r=s.useContext(et);null==r&&v(!1);let{basename:n}=xn(En.useViewTransitionState),a=mt(e,{relative:t.relative});if(!r.isTransitioning)return!1;let o=F(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=F(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=U(a.pathname,i)||null!=U(a.pathname,o)}function On(e){let{context:t,router:r,hydrate:n=!0,nonce:a}=e;r&&t||v(!1);let o={router:r,navigator:Fn(),static:!0,staticContext:t,basename:t.basename||"/"},i=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 s.createElement(s.Fragment,null,s.createElement(Qe.Provider,{value:o},s.createElement(Ze.Provider,{value:u},s.createElement(tt.Provider,{value:i},s.createElement(et.Provider,{value:{isTransitioning:!1}},s.createElement(Wt,{basename:o.basename,location:u.location,navigationType:u.historyAction,navigator:o.navigator,static:o.static},s.createElement(Un,{routes:r.routes,future:r.future,state:u})))))),l?s.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)G(n)?r[e]=c({},n,{__type:"RouteErrorResponse"}):n instanceof Error?r[e]=c({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=C(e,Ft,void 0,n),o=t.matches.map((e=>c({},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 c({},null==(e=r)?void 0:e.future)},get state(){return{historyAction:h.Pop,location:t.location,matches:o,loaderData:t.loaderData,actionData:t.actionData,errors:t.errors,initialized:!0,navigation:ae,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:()=>oe,deleteFetcher(){throw i("deleteFetcher")},dispose(){throw i("dispose")},getBlocker:()=>ie,deleteBlocker(){throw i("deleteBlocker")},patchRoutes(){throw i("patchRoutes")},_internalFetchControllers:new Map,_internalSetRoutes(){throw i("_internalSetRoutes")}}}function Hn(e){return"string"==typeof e?e:b(e)}function In(e){let t="string"==typeof e?e:b(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,s={id:e.id,path:e.path,index:e.index,Component:e.Component,HydrateFallback:e.HydrateFallback,ErrorBoundary:e.ErrorBoundary,action:i?e=>i(c({},e,{context:t})):void 0,loader:o?e=>o(c({},e,{context:t})):void 0,handle:e.handle,shouldRevalidate:e.shouldRevalidate},l={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[s.id]=l,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&&(s.children=Jn(e.children,t,r,n,s.id)),s}))}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"],Yn=function(e,t){void 0===t&&(t={});let r=c({path:"/",sameSite:"lax"},t),{secrets:a=[]}=r,o=d(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,c({},o,r));return e in i?""===i[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)}(i[e],a):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),c({},o,r))}},Xn=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)=>(t[r]=e[r].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(G(a))n[e]=c({},a,{__type:"RouteErrorResponse"});else if(a instanceof Error){let r=ta(a,t);n[e]=c({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=k(e,t,r);return n?n.map((e=>({params:e.params,pathname:e.pathname,route:e.route}))):null}function ia(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 sa(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 la(e){let t={};return Object.values(e).forEach((e=>{let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)})),t}function ua(e,t,r){return void 0===t&&(t=""),void 0===r&&(r=la(e)),(r[t]||[]).map((t=>c({},t,{children:ua(e,t.id,r)})))}function ca(e,t,r,n){return void 0===r&&(r=""),void 0===n&&(n=la(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?(e,t)=>async function(e){let{loadContext:t,loader:r,params:n,request:a,routeId:o}=e,i=await r({request:sa(ia(a)),context:t,params:n});if(void 0===i)throw new Error('You defined a loader for route "'+o+"\" but didn't return anything from your `loader` function. Please return a value or `null`.");return i}({request:e.request,params:e.params,loadContext:e.context,loader:r.module.loader,routeId:r.id}):void 0,action:r.module.action?(e,t)=>async function(e){let{loadContext:t,action:r,params:n,request:a,routeId:o}=e,i=await r({request:sa(ia(a)),context:t,params:n});if(void 0===i)throw new Error('You defined an action for route "'+o+"\" but didn't return anything from your `action` function. Please return a value or `null`.");return i}({request:e.request,params:e.params,loadContext:e.context,action:r.module.action,routeId:r.id}):void 0,handle:r.module.handle};return r.index?c({index:!0},a):c({caseSensitive:r.caseSensitive,children:ca(e,t,r.id,n)},a)}))}function da(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}const ha=new Set([301,302,303,307,308]);function fa(e){return ha.has(e)}const ma={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},pa=/[&><\u2028\u2029]/g;function ya(e){return JSON.stringify(e).replace(pa,(e=>ma[e]))}function va(){return globalThis.__remix_devServerHooks}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&&void 0!==a[n]?o[n]&&void 0===i[n]&&(r=o[n]):r=e[n],null!=r}))}return a.reduce(((n,o,i)=>{let{id:s}=o.route,l=e.routes[s].module,u=t.loaderHeaders[s]||new Headers,c=t.actionHeaders[s]||new Headers,d=null!=r&&i===a.length-1,h=d&&r!==u&&r!==c;if(null==l.headers){let e=new Headers(n);return h&&wa(r,e),wa(c,e),wa(u,e),e}let f=new Headers(l.headers?"function"==typeof l.headers?l.headers({loaderHeaders:u,parentHeaders:n,actionHeaders:c,errorHeaders:d?r:void 0}):l.headers:void 0);return h&&wa(r,f),wa(c,f),wa(u,f),wa(n,f),f}),new Headers)}function wa(e,t){let r=e.get("Set-Cookie");if(r){o.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=F(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 xa(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 X){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 Ra(e,t){if(!1===e||null==e)throw console.error("The following error is a bug in Remix; please open an issue! https://github.com/remix-run/remix/issues/new"),new Error(t)}function Ca(e,t){let r=ua(e.routes),n=ca(e.routes,e.future),a=(o=t)===ea.Development||o===ea.Production||o===ea.Test?t:ea.Production;var o;let i=de(n,{basename:e.basename}),s=e.entry.module.handleError||((e,t)=>{let{request:r}=t;a===ea.Test||r.signal.aborted||console.error(G(e)&&e.error?e.error:e)});return{routes:r,dataRoutes:n,serverMode:a,staticHandler:i,errorHandler:s}}function ka(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 Da(e){return"__flash_"+e+"__"}const La=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(Da(e)),get(e){if(r.has(e))return r.get(e);let t=Da(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(Da(e),t)},unset(e){r.delete(e)}}};function Ta(e){let{cookie:t,createData:r,readData:n,updateData:a,deleteData:o}=e,i=Xn(t)?t:Yn((null==t?void 0:t.name)||"__session",t);return Ma(i),{async getSession(e,t){let r=e&&await i.parse(e,t),a=r&&await n(r);return La(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("",c({},t,{maxAge:void 0,expires:new Date(0)})))}}function Ma(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.')}class Aa extends Error{constructor(e,t){super('Field "'+e+'" exceeded upload size of '+t+" bytes."),this.field=e,this.maxBytes=t}}e.Await=function(e){let{children:t,errorElement:r,resolve:n}=e;return s.createElement(Kt,{resolve:n,errorElement:r},s.createElement(Vt,null,t))},e.BrowserRouter=function(e){let{basename:t,children:r,window:n}=e,a=s.useRef();null==a.current&&(a.current=p({window:n,v5Compat:!0}));let o=a.current,[i,l]=s.useState({action:o.action,location:o.location}),u=s.useCallback((e=>{s.startTransition((()=>l(e)))}),[l]);return s.useLayoutEffect((()=>o.listen(u)),[o,u]),s.createElement(Wt,{basename:t,children:r,location:i.location,navigationType:i.action,navigator:o})},e.Form=wn,e.HashRouter=function(e){let{basename:t,children:r,window:n}=e,a=s.useRef();null==a.current&&(a.current=y({window:n,v5Compat:!0}));let o=a.current,[i,l]=s.useState({action:o.action,location:o.location}),u=s.useCallback((e=>{s.startTransition((()=>l(e)))}),[l]);return s.useLayoutEffect((()=>o.listen(u)),[o,u]),s.createElement(Wt,{basename:t,children:r,location:i.location,navigationType:i.action,navigator:o})},e.IDLE_BLOCKER=ie,e.IDLE_FETCHER=oe,e.IDLE_NAVIGATION=ae,e.Link=vn,e.Links=function(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=Qr(),{errors:a,matches:o}=Xr(),i=en(o,a,e),l=s.useMemo((()=>ir(i,r,t)),[i,r,t]);return s.createElement(s.Fragment,null,n?s.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,l.map((e=>{let{key:t,link:r}=e;return ur(r)?s.createElement(tn,c({key:t},r)):s.createElement("link",c({key:t},r))})))},e.MaxPartSizeExceededError=Aa,e.MemoryRouter=function(e){let{basename:t,children:r,initialEntries:n,initialIndex:a}=e,o=s.useRef();null==o.current&&(o.current=m({initialEntries:n,initialIndex:a,v5Compat:!0}));let i=o.current,[l,u]=s.useState({action:i.action,location:i.location}),c=s.useCallback((e=>{s.startTransition((()=>u(e)))}),[u]);return s.useLayoutEffect((()=>i.listen(c)),[i,c]),s.createElement(Wt,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:i})},e.Meta=function(){let{isSpaMode:e,routeModules:t}=Qr(),{errors:r,matches:n,loaderData:a}=Xr(),o=ut(),i=en(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let u=[],h=null,f=[];for(let e=0;e<i.length;e++){let r=i[e],n=r.route.id,s=a[n],c=r.params,d=t[n],m=[],p={id:n,data:s,meta:[],params:r.params,pathname:r.pathname,handle:r.route.handle,error:l};if(f[e]=p,null!=d&&d.meta?m="function"==typeof d.meta?d.meta({data:s,params:c,location:o,matches:f,error:l}):Array.isArray(d.meta)?[...d.meta]:d.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,u=[...m],h=u}return s.createElement(s.Fragment,null,u.flat().map((e=>{if(!e)return null;if("tagName"in e){let{tagName:t}=e,r=d(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 s.createElement(n,c({key:JSON.stringify(r)},r))}if("title"in e)return s.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?s.createElement("meta",{key:"charSet",charSet:e.charSet}):null;if("script:ld+json"in e)try{let t=JSON.stringify(e["script:ld+json"]);return s.createElement("script",{key:"script:ld+json:"+t,type:"application/ld+json",dangerouslySetInnerHTML:{__html:t}})}catch(e){return null}return s.createElement("meta",c({key:JSON.stringify(e)},e))})))},e.NavLink=gn,e.Navigate=function(e){let{to:t,replace:r,state:n,relative:a}=e;lt()||v(!1),s.useContext(nt);let{matches:o}=s.useContext(ot),{pathname:i}=ut(),l=dt(),u=B(t,I(o),i,"path"===a),c=JSON.stringify(u);return s.useEffect((()=>{l(JSON.parse(c),{replace:r,state:n,relative:a})}),[l,c,a,r,n]),null},e.NavigationType=h,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(Yt(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:i,criticalCss:l,serverHandoffString:u}=t,d=Ur(o.routes,i,t.future,t.isSpaMode);t.staticHandlerContext.loaderData=c({},t.staticHandlerContext.loaderData);for(let e of t.staticHandlerContext.matches){let r=e.route.id,n=i[r],a=t.manifest.routes[r];n&&Br(a,n,t.isSpaMode)&&(n.HydrateFallback||!a.hasLoader)&&(t.staticHandlerContext.loaderData[r]=void 0)}let h=Nn(d,t.staticHandlerContext);return s.createElement(s.Fragment,null,s.createElement(Gr.Provider,{value:{manifest:o,routeModules:i,criticalCss:l,serverHandoffString:u,future:t.future,isSpaMode:t.isSpaMode,serializeError:t.serializeError,abortDelay:n,renderMeta:t.renderMeta}},s.createElement(Tr,{location:h.state.location},s.createElement(On,{router:h,context:t.staticHandlerContext,hydrate:!1}))),t.serverHandoffStream?s.createElement(s.Suspense,null,s.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=E(n));let a=h.Pop,o={pathname:n.pathname||"/",search:n.search||"",hash:n.hash||"",state:null!=n.state?n.state:null,key:n.key||"default"},i=Fn();return s.createElement(Wt,{basename:t,children:r,location:o,navigationType:a,navigator:i,static:!0})},e.StaticRouterProvider=On,e.UNSAFE_DataRouterContext=Qe,e.UNSAFE_DataRouterStateContext=Ze,e.UNSAFE_ErrorResponseImpl=X,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=p,e.UNSAFE_createClientRoutes=Nr,e.UNSAFE_createClientRoutesWithHMRRevalidationOptOut=function(e,t,r,n,a,o){return Nr(t,r,n,o,"",_r(t),e)},e.UNSAFE_createRouter=ce,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 X(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=xr(e.url),a=await gr(e),{data:o,status:i}=await Rr(t,a);return n=i,Dr(o,r.route.id)}));return a}));if(o=a.result,null!=o&&"number"==typeof o.status&&"string"==typeof o.statusText&&"object"==typeof o.headers&&void 0!==o.body||G(a.result))return{[r.route.id]:a};var o;return{[r.route.id]:{type:a.type,result:V(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(xr(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(xr(n.url)),d=await gr(n),h={},f=Promise.all(a.map((async(n,a)=>n.resolve((async l=>{if(s[a].resolve(),!n.shouldLoad){var f;if(!r.state.initialized)return;if(n.route.id in r.state.loaderData&&e.routes[n.route.id].hasLoader&&null!=(f=t[n.route.id])&&f.shouldRevalidate)return void(i=!0)}if(e.routes[n.route.id].hasClientLoader){e.routes[n.route.id].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{e.routes[n.route.id].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.__remixHdrActive)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 Rr(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=v,e.UNSAFE_mapRouteProperties=Ft,e.UNSAFE_shouldHydrateRouteLoader=Br,e.UNSAFE_useFogOFWarDiscovery=function(e,t,r,n){s.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 ce({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:p({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=Yn,e.createCookieSessionStorage=function(e){let{cookie:t}=void 0===e?{}:e,r=Xn(t)?t:Yn((null==t?void 0:t.name)||"__session",t);return Ma(r),{getSession:async(e,t)=>La(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("",c({},t,{maxAge:void 0,expires:new Date(0)}))}},e.createHashRouter=function(e,t){return ce({basename:null==t?void 0:t.basename,future:null==t?void 0:t.future,history:y({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 Ta({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=b,e.createRequestHandler=(e,t)=>{let r,n,a,o,i;return async function(s,l){var u;if(void 0===l&&(l={}),r="function"==typeof e?await e():e,"function"==typeof e){let e=Ca(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler}else if(!(n&&a&&o&&i)){let e=Ca(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler}let d=new URL(s.url),h={},f=e=>{var r;t===ea.Development&&(null==(r=va())||null==r.processRequestError||r.processRequestError(e));i(e,{context:l,params:h,request:s})},m=((null!=(u=r.basename)?u:"/")+"/__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;n[r]=e.assets.routes[r]}}return function(e,t){return void 0===t&&(t={}),$(e,t)}(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(s.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:s,headers:l,status:u}="GET"!==n.method?await async function(e,t,r,n,a,o,i){try{let s=new Request(a,c({method:n.method,body:n.body,headers:n.headers,signal:n.signal},n.body?{duplex:"half"}:void 0)),l=await r.query(s,{requestContext:o,skipLoaderErrorBubbling:!0,dataStrategy:Ea({isActionDataRequest:!0})});if(da(l))return{result:Sa(l.status,l.headers,e.basename),headers:l.headers,status:ba};let u,d=l,h=ga(e,d);return fa(d.statusCode)&&h.has("Location")?{result:Sa(d.statusCode,h,e.basename),headers:h,status:ba}:(d.errors&&(Object.values(d.errors).forEach((e=>{G(e)&&!e.error||i(e)})),d.errors=ra(d.errors,t)),u=d.errors?{error:Object.values(d.errors)[0]}:{data:Object.values(d.actionData||{})[0]},{result:u,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(da(c))return{result:{[wr]:Sa(c.status,c.headers,e.basename)},headers:c.headers,status:ba};let d=c,h=ga(e,d);if(fa(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=>{G(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=>{var t,r;let n=null==(t=d.loaderData)?void 0:t[e.route.id],a=null==(r=d.errors)?void 0:r[e.route.id];void 0!==a?f[e.route.id]={error:a}:void 0!==n&&(f[e.route.id]={data:n})})),{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(l);if(d.set("X-Remix-Response","yes"),304===u)return new Response(null,{status:304,headers:d});return d.set("Content-Type","text/x-script"),new Response(xa(s,n.signal,t.entry.module.streamTimeout,e),{status:u||200,headers:d})}(a,r,o,s,e,l,f),r.entry.module.handleDataRequest&&(p=await r.entry.module.handleDataRequest(p,{context:l,params:t?t[0].params:{},request:s}),function(e){return fa(e.status)}(p))){let e=Sa(p.status,p.headers,r.basename);"GET"===s.method&&(e={[wr]:e});let t=new Headers(p.headers);return t.set("Content-Type","text/x-script"),new Response(xa(e,s.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 da(e)||Ra(!1),e}catch(t){return da(t)?(t.headers.set("X-Remix-Catch","yes"),t):G(t)?(t&&i(t),function(e,t){return $(na(e.error||new Error("Unexpected Server Error"),t),{status:e.status,statusText:e.statusText,headers:{"X-Remix-Error":"yes"}})}(t,e)):(i(t),ka(t,e))}}(a,0,o,y.slice(-1)[0].route.id,s,l,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 s;try{s=await r.query(n,{requestContext:a})}catch(e){return o(e),new Response(null,{status:500})}if(da(s))return s;let l=ga(t,s);if(304===s.statusCode)return new Response(null,{status:304,headers:l});s.errors&&(Object.values(s.errors).forEach((e=>{G(e)&&!e.error||o(e)})),s.errors=ra(s.errors,e));let u={loaderData:s.loaderData,actionData:s.actionData,errors:aa(s.errors,e)},d={manifest:t.assets,routeModules:Zn(t.routes),staticHandlerContext:s,criticalCss:i,serverHandoffString:ya({basename:t.basename,criticalCss:i,future:t.future,isSpaMode:t.isSpaMode}),serverHandoffStream:xa(u,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,s.statusCode,l,d,a)}catch(i){o(i);let u=i;if(da(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);u=new X(i.status,i.statusText,e)}catch(e){}s=function(e,t,r){return c({},t,{statusCode:G(r)?r.status:500,errors:{[t._deepestRenderedBoundaryId||e[0].id]:r}})}(r.dataRoutes,s,u),s.errors&&(s.errors=ra(s.errors,e));let f={loaderData:s.loaderData,actionData:s.actionData,errors:aa(s.errors,e)};d=c({},d,{staticHandlerContext:s,serverHandoffString:ya({basename:t.basename,future:t.future,isSpaMode:t.isSpaMode}),serverHandoffStream:xa(f,n.signal,t.entry.module.streamTimeout,e),renderMeta:{}});try{return await h(n,s.statusCode,l,d,a)}catch(t){return o(t),ka(t,e)}}}(a,r,o,s,l,f,e)}return"HEAD"===s.method?new Response(null,{headers:p.headers,status:p.status,statusText:p.statusText}):p}},e.createRoutesFromChildren=Yt,e.createRoutesFromElements=Yt,e.createRoutesStub=function(e,t){return void 0===t&&(t={}),function(r){let{initialEntries:n,initialIndex:a,hydrationData:o,future:i}=r,l=s.useRef(),u=s.useRef();if(null==l.current){u.current={future:{},manifest:{routes:{},entry:{imports:[],module:""},url:"",version:""},routeModules:{},isSpaMode:!1};let r=Jn(C(e,(e=>e)),t,u.current.manifest,u.current.routeModules);l.current=Nt(r,{initialEntries:n,initialIndex:a,hydrationData:o})}return s.createElement(Gr.Provider,{value:u.current},s.createElement(It,{router:l.current}))}},e.createSearchParams=Zt,e.createSession=La,e.createSessionStorage=Ta,e.createStaticHandler=function(e,t){return de(e,c({},t,{mapRouteProperties:Ft}))},e.createStaticRouter=Nn,e.data=V,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&&v(!1),a(n)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")},e.isCookie=Xn,e.isRouteErrorResponse=G,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.json=$,e.matchPath=U,e.matchRoutes=k,e.parsePath=E,e.redirect=Y,e.redirectDocument=(e,t)=>{let r=Y(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=Y(e,t);return r.headers.set("X-Remix-Replace","true"),r},e.resolvePath=N,e.unstable_HistoryRouter=pn,e.unstable_composeUploadHandlers=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return async e=>{for(let r of t){let t=await r(e);if(null!=t)return t}}},e.unstable_createMemoryUploadHandler=function(e){let{filter:t,maxPartSize:r=3e6}=void 0===e?{}:e;return async e=>{let{filename:n,contentType:a,name:o,data:i}=e;if(t&&!await t({filename:n,contentType:a,name:o}))return;let s=0,u=[];var c,d=!1,h=!1;try{for(var f,m=l(i);d=!(f=await m.next()).done;d=!1){let e=f.value;if(s+=e.byteLength,s>r)throw new Aa(o,r);u.push(e)}}catch(e){h=!0,c=e}finally{try{d&&null!=m.return&&await m.return()}finally{if(h)throw c}}return"string"==typeof n?new File(u,n,{type:a}):await new Blob(u,{type:a}).text()}},e.unstable_parseMultipartFormData=async function(e,t){let r=e.headers.get("Content-Type")||"",[n,o]=r.split(/\s*;\s*boundary=/);if(!e.body||!o||"multipart/form-data"!==n)throw new TypeError("Could not parse content as FormData.");let i=new FormData,s=a.streamMultipart(e.body,o);var u,c=!1,d=!1;try{for(var h,f=l(s);c=!(h=await f.next()).done;c=!1){let e=h.value;{if(e.done)break;"string"==typeof e.filename&&(e.filename=e.filename.split(/[/\\]/).pop());let r=await t(e);null!=r&&i.append(e.name,r)}}}catch(e){d=!0,u=e}finally{try{c&&null!=f.return&&await f.return()}finally{if(d)throw u}}return i},e.unstable_setDevServerHooks=function(e){globalThis.__remix_devServerHooks=e},e.unstable_usePrompt=function(e){let{when:t,message:r}=e,n=Pt(t);s.useEffect((()=>{if("blocked"===n.state){window.confirm(r)?setTimeout(n.proceed,0):n.reset()}}),[n,r]),s.useEffect((()=>{"blocked"!==n.state||t||n.reset()}),[n,t])},e.useActionData=function(){let e=Ct(xt.UseActionData),t=kt(xt.UseLoaderData);return e.actionData?e.actionData[t]:void 0},e.useAsyncError=function(){let e=s.useContext(rt);return null==e?void 0:e._error},e.useAsyncValue=Mt,e.useBeforeUnload=function(e,t){let{capture:r}=t||{};s.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}=xn(En.UseFetcher),a=Rn(Sn.UseFetcher),o=s.useContext(tt),i=s.useContext(ot),l=null==(t=i.matches[i.matches.length-1])?void 0:t.route.id;o||v(!1),i||v(!1),null==l&&v(!1);let u=s.useId(),[d,h]=s.useState(r||u);r&&r!==d&&h(r),s.useEffect((()=>(n.getFetcher(d),()=>n.deleteFetcher(d))),[n,d]);let f=s.useCallback((async(e,t)=>{l||v(!1),await n.fetch(d,l,e,t)}),[d,l,n]),m=Dn(),p=s.useCallback((async(e,t)=>{await m(e,c({},t,{navigate:!1,fetcherKey:d}))}),[d,m]),y=s.useMemo((()=>{let e=s.forwardRef(((e,t)=>s.createElement(wn,c({},e,{navigate:!1,fetcherKey:d,ref:t}))));return e.displayName="fetcher.Form",e}),[d]),g=a.fetchers.get(d)||oe,w=o.get(d);return s.useMemo((()=>c({Form:y,submit:p,load:f},g,{data:w})),[y,p,f,g,w])},e.useFetchers=function(){let e=Rn(Sn.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,r]=e;return c({},r,{key:t})}))},e.useFormAction=Ln,e.useHref=st,e.useInRouterContext=lt,e.useLinkClickHandler=Cn,e.useLoaderData=function(){let e=Ct(xt.UseLoaderData),t=kt(xt.UseLoaderData);return e.loaderData[t]},e.useLocation=ut,e.useMatch=function(e){lt()||v(!1);let{pathname:t}=ut();return s.useMemo((()=>U(e,j(t))),[t,e])},e.useMatches=Lt,e.useNavigate=dt,e.useNavigation=Dt,e.useNavigationType=function(){return s.useContext(at).navigationType},e.useOutlet=ft,e.useOutletContext=function(){return s.useContext(ht)},e.useParams=function(){let{matches:e}=s.useContext(ot),t=e[e.length-1];return t?t.params:{}},e.useResolvedPath=mt,e.useRevalidator=function(){let e=Rt(St.UseRevalidator),t=Ct(xt.UseRevalidator);return s.useMemo((()=>({async revalidate(){await e.router.revalidate()},state:t.revalidation})),[e.router,t.revalidation])},e.useRouteError=Tt,e.useRouteLoaderData=function(e){return Ct(xt.UseRouteLoaderData).loaderData[e]},e.useRoutes=pt,e.useSearchParams=function(e){let t=s.useRef(Zt(e)),r=s.useRef(!1),n=ut(),a=s.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(),i=s.useCallback(((e,t)=>{const n=Zt("function"==typeof e?e(a):e);r.current=!0,o("?"+n,t)}),[o,a]);return[a,i]},e.useSubmit=Dn,e.useViewTransitionState=_n,Object.defineProperty(e,"__esModule",{value:!0})}));
12
12
  //# sourceMappingURL=react-router.production.min.js.map