diff --git a/.gitignore b/.gitignore index b17f631..8f9b98e 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,6 @@ node_modules/ # dataconnect generated files .dataconnect + +# compiled build files +build/ diff --git a/build/assets/index-BR63qlJT.js b/build/assets/index-BR63qlJT.js deleted file mode 100644 index c333f3b..0000000 --- a/build/assets/index-BR63qlJT.js +++ /dev/null @@ -1,128 +0,0 @@ -import{r as f,j as p,R as te,c as br}from"./three-1foLNQd8.js";import{g as wr,s as fn,i as mn,a as St,b as pn,c as _r,d as Er,e as Cr,f as Sr,r as Mr,h as Pr,j as gn,k as Rr,l as Lr,m as jr,o as Tr,S as Ir,H as Ar,F as ne,n as kr,p as vn,q as ke,t as Nr,u as Mt,v as X,w as yn,x as Fr,y as Dr,z as Or,A as Ne,B as nt,C as Pt,D as zr,E as $r,G as Y,I as Vr,J as Br,K as Wr,L as Rt,M as Ur,N as Hr,O as Gr,P as qr,Q as Le,R as Yr,T as Xr,U as xn,V as Kr,W as Zr}from"./motion-BIOHP8Ul.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Lt="popstate";function Jr(t={}){function e(r,i){let{pathname:s,search:a,hash:o}=r.location;return rt("",{pathname:s,search:a,hash:o},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:ve(i)}return ei(e,n,null,t)}function A(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function q(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function Qr(){return Math.random().toString(36).substring(2,10)}function jt(t,e){return{usr:t.state,key:t.key,idx:e}}function rt(t,e,n=null,r){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof e=="string"?le(e):e,state:n,key:e&&e.key||r||Qr()}}function ve({pathname:t="/",search:e="",hash:n=""}){return e&&e!=="?"&&(t+=e.charAt(0)==="?"?e:"?"+e),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function le(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substring(n),t=t.substring(0,n));let r=t.indexOf("?");r>=0&&(e.search=t.substring(r),t=t.substring(0,r)),t&&(e.pathname=t)}return e}function ei(t,e,n,r={}){let{window:i=document.defaultView,v5Compat:s=!1}=r,a=i.history,o="POP",l=null,u=h();u==null&&(u=0,a.replaceState({...a.state,idx:u},""));function h(){return(a.state||{idx:null}).idx}function c(){o="POP";let y=h(),x=y==null?null:y-u;u=y,l&&l({action:o,location:v.location,delta:x})}function d(y,x){o="PUSH";let b=rt(v.location,y,x);u=h()+1;let w=jt(b,u),_=v.createHref(b);try{a.pushState(w,"",_)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;i.location.assign(_)}s&&l&&l({action:o,location:v.location,delta:1})}function m(y,x){o="REPLACE";let b=rt(v.location,y,x);u=h();let w=jt(b,u),_=v.createHref(b);a.replaceState(w,"",_),s&&l&&l({action:o,location:v.location,delta:0})}function g(y){return ti(y)}let v={get action(){return o},get location(){return t(i,a)},listen(y){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(Lt,c),l=y,()=>{i.removeEventListener(Lt,c),l=null}},createHref(y){return e(i,y)},createURL:g,encodeLocation(y){let x=g(y);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:d,replace:m,go(y){return a.go(y)}};return v}function ti(t,e=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),A(n,"No window.location.(origin|href) available to create URL");let r=typeof t=="string"?t:ve(t);return r=r.replace(/ $/,"%20"),!e&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function bn(t,e,n="/"){return ni(t,e,n,!1)}function ni(t,e,n,r){let i=typeof e=="string"?le(e):e,s=J(i.pathname||"/",n);if(s==null)return null;let a=wn(t);ri(a);let o=null;for(let l=0;o==null&&l{let h={relativePath:u===void 0?a.path||"":u,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(r)&&l)return;A(h.relativePath.startsWith(r),`Absolute route path "${h.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(r.length)}let c=Z([r,h.relativePath]),d=n.concat(h);a.children&&a.children.length>0&&(A(a.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${c}".`),wn(a.children,e,d,c,l)),!(a.path==null&&!a.index)&&e.push({path:c,score:ui(c,a.index),routesMeta:d})};return t.forEach((a,o)=>{if(a.path===""||!a.path?.includes("?"))s(a,o);else for(let l of _n(a.path))s(a,o,!0,l)}),e}function _n(t){let e=t.split("/");if(e.length===0)return[];let[n,...r]=e,i=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return i?[s,""]:[s];let a=_n(r.join("/")),o=[];return o.push(...a.map(l=>l===""?s:[s,l].join("/"))),i&&o.push(...a),o.map(l=>t.startsWith("/")&&l===""?"/":l)}function ri(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:hi(e.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var ii=/^:[\w-]+$/,si=3,ai=2,oi=1,li=10,ci=-2,Tt=t=>t==="*";function ui(t,e){let n=t.split("/"),r=n.length;return n.some(Tt)&&(r+=ci),e&&(r+=ai),n.filter(i=>!Tt(i)).reduce((i,s)=>i+(ii.test(s)?si:s===""?oi:li),r)}function hi(t,e){return t.length===e.length&&t.slice(0,-1).every((r,i)=>r===e[i])?t[t.length-1]-e[e.length-1]:0}function di(t,e,n=!1){let{routesMeta:r}=t,i={},s="/",a=[];for(let o=0;o{if(h==="*"){let g=o[d]||"";a=s.slice(0,s.length-g.length).replace(/(.)\/+$/,"$1")}const m=o[d];return c&&!m?u[h]=void 0:u[h]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:a,pattern:t}}function fi(t,e=!1,n=!0){q(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let r=[],i="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,o,l)=>(r.push({paramName:o,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(r.push({paramName:"*"}),i+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":t!==""&&t!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,e?void 0:"i"),r]}function mi(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return q(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),t}}function J(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,r=t.charAt(n);return r&&r!=="/"?null:t.slice(n)||"/"}var En=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,pi=t=>En.test(t);function gi(t,e="/"){let{pathname:n,search:r="",hash:i=""}=typeof t=="string"?le(t):t,s;if(n)if(pi(n))s=n;else{if(n.includes("//")){let a=n;n=n.replace(/\/\/+/g,"/"),q(!1,`Pathnames cannot have embedded double slashes - normalizing ${a} -> ${n}`)}n.startsWith("/")?s=It(n.substring(1),"/"):s=It(n,e)}else s=e;return{pathname:s,search:xi(r),hash:bi(i)}}function It(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Ue(t,e,n,r){return`Cannot include a '${t}' character in a manually specified \`to.${e}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function vi(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function Cn(t){let e=vi(t);return e.map((n,r)=>r===e.length-1?n.pathname:n.pathnameBase)}function Sn(t,e,n,r=!1){let i;typeof t=="string"?i=le(t):(i={...t},A(!i.pathname||!i.pathname.includes("?"),Ue("?","pathname","search",i)),A(!i.pathname||!i.pathname.includes("#"),Ue("#","pathname","hash",i)),A(!i.search||!i.search.includes("#"),Ue("#","search","hash",i)));let s=t===""||i.pathname==="",a=s?"/":i.pathname,o;if(a==null)o=n;else{let c=e.length-1;if(!r&&a.startsWith("..")){let d=a.split("/");for(;d[0]==="..";)d.shift(),c-=1;i.pathname=d.join("/")}o=c>=0?e[c]:"/"}let l=gi(i,o),u=a&&a!=="/"&&a.endsWith("/"),h=(s||a===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||h)&&(l.pathname+="/"),l}var Z=t=>t.join("/").replace(/\/\/+/g,"/"),yi=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),xi=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,bi=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t,wi=class{constructor(t,e,n,r=!1){this.status=t,this.statusText=e||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function _i(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}function Ei(t){return t.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Mn=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Pn(t,e){let n=t;if(typeof n!="string"||!En.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Mn)try{let s=new URL(window.location.href),a=n.startsWith("//")?new URL(s.protocol+n):new URL(n),o=J(a.pathname,e);a.origin===s.origin&&o!=null?n=o+a.search+a.hash:i=!0}catch{q(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Rn=["POST","PUT","PATCH","DELETE"];new Set(Rn);var Ci=["GET",...Rn];new Set(Ci);var ce=f.createContext(null);ce.displayName="DataRouter";var Ve=f.createContext(null);Ve.displayName="DataRouterState";var Si=f.createContext(!1),Ln=f.createContext({isTransitioning:!1});Ln.displayName="ViewTransition";var Mi=f.createContext(new Map);Mi.displayName="Fetchers";var Pi=f.createContext(null);Pi.displayName="Await";var U=f.createContext(null);U.displayName="Navigation";var xe=f.createContext(null);xe.displayName="Location";var Q=f.createContext({outlet:null,matches:[],isDataRoute:!1});Q.displayName="Route";var ut=f.createContext(null);ut.displayName="RouteError";var jn="REACT_ROUTER_ERROR",Ri="REDIRECT",Li="ROUTE_ERROR_RESPONSE";function ji(t){if(t.startsWith(`${jn}:${Ri}:{`))try{let e=JSON.parse(t.slice(28));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.location=="string"&&typeof e.reloadDocument=="boolean"&&typeof e.replace=="boolean")return e}catch{}}function Ti(t){if(t.startsWith(`${jn}:${Li}:{`))try{let e=JSON.parse(t.slice(40));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string")return new wi(e.status,e.statusText,e.data)}catch{}}function Ii(t,{relative:e}={}){A(be(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=f.useContext(U),{hash:i,pathname:s,search:a}=we(t,{relative:e}),o=s;return n!=="/"&&(o=s==="/"?n:Z([n,s])),r.createHref({pathname:o,search:a,hash:i})}function be(){return f.useContext(xe)!=null}function re(){return A(be(),"useLocation() may be used only in the context of a component."),f.useContext(xe).location}var Tn="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function In(t){f.useContext(U).static||f.useLayoutEffect(t)}function Ai(){let{isDataRoute:t}=f.useContext(Q);return t?Gi():ki()}function ki(){A(be(),"useNavigate() may be used only in the context of a component.");let t=f.useContext(ce),{basename:e,navigator:n}=f.useContext(U),{matches:r}=f.useContext(Q),{pathname:i}=re(),s=JSON.stringify(Cn(r)),a=f.useRef(!1);return In(()=>{a.current=!0}),f.useCallback((l,u={})=>{if(q(a.current,Tn),!a.current)return;if(typeof l=="number"){n.go(l);return}let h=Sn(l,JSON.parse(s),i,u.relative==="path");t==null&&e!=="/"&&(h.pathname=h.pathname==="/"?e:Z([e,h.pathname])),(u.replace?n.replace:n.push)(h,u.state,u)},[e,n,s,i,t])}f.createContext(null);function we(t,{relative:e}={}){let{matches:n}=f.useContext(Q),{pathname:r}=re(),i=JSON.stringify(Cn(n));return f.useMemo(()=>Sn(t,JSON.parse(i),r,e==="path"),[t,i,r,e])}function Ni(t,e){return An(t,e)}function An(t,e,n,r,i){A(be(),"useRoutes() may be used only in the context of a component.");let{navigator:s}=f.useContext(U),{matches:a}=f.useContext(Q),o=a[a.length-1],l=o?o.params:{},u=o?o.pathname:"/",h=o?o.pathnameBase:"/",c=o&&o.route;{let b=c&&c.path||"";Nn(u,!c||b.endsWith("*")||b.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${u}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. - -Please change the parent to .`)}let d=re(),m;if(e){let b=typeof e=="string"?le(e):e;A(h==="/"||b.pathname?.startsWith(h),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${h}" but pathname "${b.pathname}" was given in the \`location\` prop.`),m=b}else m=d;let g=m.pathname||"/",v=g;if(h!=="/"){let b=h.replace(/^\//,"").split("/");v="/"+g.replace(/^\//,"").split("/").slice(b.length).join("/")}let y=bn(t,{pathname:v});q(c||y!=null,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),q(y==null||y[y.length-1].route.element!==void 0||y[y.length-1].route.Component!==void 0||y[y.length-1].route.lazy!==void 0,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let x=$i(y&&y.map(b=>Object.assign({},b,{params:Object.assign({},l,b.params),pathname:Z([h,s.encodeLocation?s.encodeLocation(b.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?h:Z([h,s.encodeLocation?s.encodeLocation(b.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:b.pathnameBase])})),a,n,r,i);return e&&x?f.createElement(xe.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...m},navigationType:"POP"}},x):x}function Fi(){let t=Hi(),e=_i(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,r="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:r},s={padding:"2px 4px",backgroundColor:r},a=null;return console.error("Error handled by React Router default ErrorBoundary:",t),a=f.createElement(f.Fragment,null,f.createElement("p",null,"💿 Hey developer 👋"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:s},"ErrorBoundary")," or"," ",f.createElement("code",{style:s},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},e),n?f.createElement("pre",{style:i},n):null,a)}var Di=f.createElement(Fi,null),kn=class extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,e){return e.location!==t.location||e.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:e.error,location:e.location,revalidation:t.revalidation||e.revalidation}}componentDidCatch(t,e){this.props.onError?this.props.onError(t,e):console.error("React Router caught the following error during render",t)}render(){let t=this.state.error;if(this.context&&typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){const n=Ti(t.digest);n&&(t=n)}let e=t!==void 0?f.createElement(Q.Provider,{value:this.props.routeContext},f.createElement(ut.Provider,{value:t,children:this.props.component})):this.props.children;return this.context?f.createElement(Oi,{error:t},e):e}};kn.contextType=Si;var He=new WeakMap;function Oi({children:t,error:e}){let{basename:n}=f.useContext(U);if(typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){let r=ji(e.digest);if(r){let i=He.get(e);if(i)throw i;let s=Pn(r.location,n);if(Mn&&!He.get(e))if(s.isExternal||r.reloadDocument)window.location.href=s.absoluteURL||s.to;else{const a=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(s.to,{replace:r.replace}));throw He.set(e,a),a}return f.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s.absoluteURL||s.to}`})}}return t}function zi({routeContext:t,match:e,children:n}){let r=f.useContext(ce);return r&&r.static&&r.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=e.route.id),f.createElement(Q.Provider,{value:t},n)}function $i(t,e=[],n=null,r=null,i=null){if(t==null){if(!n)return null;if(n.errors)t=n.matches;else if(e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let s=t,a=n?.errors;if(a!=null){let h=s.findIndex(c=>c.route.id&&a?.[c.route.id]!==void 0);A(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(",")}`),s=s.slice(0,Math.min(s.length,h+1))}let o=!1,l=-1;if(n)for(let h=0;h=0?s=s.slice(0,l+1):s=[s[0]];break}}}let u=n&&r?(h,c)=>{r(h,{location:n.location,params:n.matches?.[0]?.params??{},unstable_pattern:Ei(n.matches),errorInfo:c})}:void 0;return s.reduceRight((h,c,d)=>{let m,g=!1,v=null,y=null;n&&(m=a&&c.route.id?a[c.route.id]:void 0,v=c.route.errorElement||Di,o&&(l<0&&d===0?(Nn("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),g=!0,y=null):l===d&&(g=!0,y=c.route.hydrateFallbackElement||null)));let x=e.concat(s.slice(0,d+1)),b=()=>{let w;return m?w=v:g?w=y:c.route.Component?w=f.createElement(c.route.Component,null):c.route.element?w=c.route.element:w=h,f.createElement(zi,{match:c,routeContext:{outlet:h,matches:x,isDataRoute:n!=null},children:w})};return n&&(c.route.ErrorBoundary||c.route.errorElement||d===0)?f.createElement(kn,{location:n.location,revalidation:n.revalidation,component:v,error:m,children:b(),routeContext:{outlet:null,matches:x,isDataRoute:!0},onError:u}):b()},null)}function ht(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Vi(t){let e=f.useContext(ce);return A(e,ht(t)),e}function Bi(t){let e=f.useContext(Ve);return A(e,ht(t)),e}function Wi(t){let e=f.useContext(Q);return A(e,ht(t)),e}function dt(t){let e=Wi(t),n=e.matches[e.matches.length-1];return A(n.route.id,`${t} can only be used on routes that contain a unique "id"`),n.route.id}function Ui(){return dt("useRouteId")}function Hi(){let t=f.useContext(ut),e=Bi("useRouteError"),n=dt("useRouteError");return t!==void 0?t:e.errors?.[n]}function Gi(){let{router:t}=Vi("useNavigate"),e=dt("useNavigate"),n=f.useRef(!1);return In(()=>{n.current=!0}),f.useCallback(async(i,s={})=>{q(n.current,Tn),n.current&&(typeof i=="number"?await t.navigate(i):await t.navigate(i,{fromRouteId:e,...s}))},[t,e])}var At={};function Nn(t,e,n){!e&&!At[t]&&(At[t]=!0,q(!1,n))}f.memo(qi);function qi({routes:t,future:e,state:n,onError:r}){return An(t,void 0,n,r,e)}function je(t){A(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Yi({basename:t="/",children:e=null,location:n,navigationType:r="POP",navigator:i,static:s=!1,unstable_useTransitions:a}){A(!be(),"You cannot render a inside another . You should never have more than one in your app.");let o=t.replace(/^\/*/,"/"),l=f.useMemo(()=>({basename:o,navigator:i,static:s,unstable_useTransitions:a,future:{}}),[o,i,s,a]);typeof n=="string"&&(n=le(n));let{pathname:u="/",search:h="",hash:c="",state:d=null,key:m="default"}=n,g=f.useMemo(()=>{let v=J(u,o);return v==null?null:{location:{pathname:v,search:h,hash:c,state:d,key:m},navigationType:r}},[o,u,h,c,d,m,r]);return q(g!=null,` is not able to match the URL "${u}${h}${c}" because it does not start with the basename, so the won't render anything.`),g==null?null:f.createElement(U.Provider,{value:l},f.createElement(xe.Provider,{children:e,value:g}))}function Xi({children:t,location:e}){return Ni(it(t),e)}function it(t,e=[]){let n=[];return f.Children.forEach(t,(r,i)=>{if(!f.isValidElement(r))return;let s=[...e,i];if(r.type===f.Fragment){n.push.apply(n,it(r.props.children,s));return}A(r.type===je,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),A(!r.props.index||!r.props.children,"An index route cannot have child routes.");let a={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(a.children=it(r.props.children,s)),n.push(a)}),n}var Te="get",Ie="application/x-www-form-urlencoded";function Be(t){return typeof HTMLElement<"u"&&t instanceof HTMLElement}function Ki(t){return Be(t)&&t.tagName.toLowerCase()==="button"}function Zi(t){return Be(t)&&t.tagName.toLowerCase()==="form"}function Ji(t){return Be(t)&&t.tagName.toLowerCase()==="input"}function Qi(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function es(t,e){return t.button===0&&(!e||e==="_self")&&!Qi(t)}var Se=null;function ts(){if(Se===null)try{new FormData(document.createElement("form"),0),Se=!1}catch{Se=!0}return Se}var ns=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Ge(t){return t!=null&&!ns.has(t)?(q(!1,`"${t}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Ie}"`),null):t}function rs(t,e){let n,r,i,s,a;if(Zi(t)){let o=t.getAttribute("action");r=o?J(o,e):null,n=t.getAttribute("method")||Te,i=Ge(t.getAttribute("enctype"))||Ie,s=new FormData(t)}else if(Ki(t)||Ji(t)&&(t.type==="submit"||t.type==="image")){let o=t.form;if(o==null)throw new Error('Cannot submit a