PageSourceSearch

https://www.3blue1brown.com/assets/errorBoundaries-DpP5f7LB.js

js 3blue1brown.com collected 2026-10-01 10:16:04 UTC 37,020 bytes, 14 lines download raw bytes

1import{a as e,n as t}from"./jsx-runtime-n5LQ9ujS.js";import{A as n,B as r,C as i,D as a,E as o,F as s,G as c,H as l,K as u,L as d,N as f,O as p,P as m,R as h,W as g,_,a as v,b as y,d as b,h as x,i as S,j as C,k as w,p as T,q as ee,r as te,s as ne,t as re,u as ie,v as ae,w as E,x as oe,y as se}from"./hooks-BqGCSUMO.js";var ce={};function D(e,t){!e&&!ce[t]&&(ce[t]=!0,console.warn(t))}var O=e(t(),1),le=[`HydrateFallback`,`hydrateFallbackElement`],ue=class{status=`pending`;promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function de({router:e,flushSync:t,onError:n,useTransitions:r}){r=E()||r;let[a,o]=O.useState(e.state),[s,c]=(0,O.useOptimistic)(a),[l,u]=O.useState(),[d,p]=O.useState({isTransitioning:!1}),[m,h]=O.useState(),[g,v]=O.useState(),[y,b]=O.useState(),x=O.useRef(new Map),S=O.useCallback((i,{deletedFetchers:a,newErrors:s,flushSync:l,viewTransitionOpts:d})=>{s&&n&&Object.values(s).forEach(e=>n(e,{location:i.location,params:i.matches[0]?.params??{},pattern:f(i.matches)})),i.fetchers.forEach((e,t)=>{e.data!==void 0&&x.current.set(t,e.data)}),a.forEach(e=>x.current.delete(e)),D(l===!1||t!=null,'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 _=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(D(d==null||_,"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."),!d||!_){t&&l?t(()=>o(i)):r===!1?o(i):O.startTransition(()=>{r===!0&&c(e=>fe(e,i)),o(i)});return}if(t&&l){t(()=>{g&&(m?.resolve(),g.skipTransition()),p({isTransitioning:!0,flushSync:!0,currentLocation:d.currentLocation,nextLocation:d.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>o(i))});n.finished.finally(()=>{t(()=>{h(void 0),v(void 0),u(void 0),p({isTransitioning:!1})})}),t(()=>v(n));return}g?(m?.resolve(),g.skipTransition(),b({state:i,currentLocation:d.currentLocation,nextLocation:d.nextLocation})):(u(i),p({isTransitioning:!0,flushSync:!1,currentLocation:d.currentLocation,nextLocation:d.nextLocation}))},[e.window,t,g,m,r,c,n]);O.useLayoutEffect(()=>e.subscribe(S),[e,S]),O.useEffect(()=>{d.isTransitioning&&!d.flushSync&&h(new ue)},[d]),O.useEffect(()=>{if(m&&l&&e.window){let t=l,n=m.promise,i=e.window.document.startViewTransition(async()=>{r===!1?o(t):O.startTransition(()=>{r===!0&&c(e=>fe(e,t)),o(t)}),await n});i.finished.finally(()=>{h(void 0),v(void 0),u(void 0),p({isTransitioning:!1})}),v(i)}},[l,m,e.window,r,c]),O.useEffect(()=>{m&&l&&s.location.key===l.location.key&&m.resolve()},[m,g,s.location,l]),O.useEffect(()=>{!d.isTransitioning&&y&&(u(y.state),p({isTransitioning:!0,flushSync:!1,currentLocation:y.currentLocation,nextLocation:y.nextLocation}),b(void 0))},[d.isTransitioning,y]);let C=O.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),w=e.basename||`/`,T=O.useMemo(()=>({router:e,navigator:C,static:!1,basename:w,onError:n}),[e,C,w,n]);return O.createElement(O.Fragment,null,O.createElement(_.Provider,{value:T},O.createElement(ae.Provider,{value:s},O.createElement(se.Provider,{value:x.current},O.createElement(i.Provider,{value:d},O.createElement(ge,{basename:w,location:s.location,navigationType:s.historyAction,navigator:C,useTransitions:r},O.createElement(pe,{routes:e.routes,manifest:e.manifest,future:e.future,state:s,isStatic:!1,onError:n})))))),null)}function fe(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var pe=O.memo(me);function me({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return x(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function he(e){return ie(e.context)}function ge({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){c(!te(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),d=O.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=u(n));let{pathname:f=`/`,search:p=``,hash:m=``,state:h=null,key:g=`default`,mask:_}=n,v=O.useMemo(()=>{let e=l(f,s);return e==null?null:{location:{pathname:e,search:p,hash:m,state:h,key:g,mask:_},navigationType:r}},[s,f,p,m,h,g,r,_]);
1return ee(v!=null,`<Router basename="${s}"> is not able to match the URL "${f}${p}${m}" because it does not start with the basename, so the <Router> won't render anything.`),v==null?null:O.createElement(oe.Provider,{value:d},O.createElement(y.Provider,{children:t,value:v}))}O.Component;function _e(){return{params:b(),loaderData:S(),actionData:re(),matches:ne()}}function ve(e){return function(){let t=_e();return O.createElement(e,t)}}function ye(){return{params:b(),loaderData:S(),actionData:re(),error:T()}}function be(e){return function(){let t=ye();return O.createElement(e,t)}}function k(e,t){if(e===!1||e==null)throw Error(t)}var xe=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function Se(){let e=new TextDecoder,t=``;return new TransformStream({transform(n,r){let i=e.decode(n,{stream:!0}),a=(t+i).split(`
2`);t=a.pop()||``;for(let e of a)r.enqueue(e)},flush(e){t&&e.enqueue(t)}})}var A=typeof window<`u`?window:typeof globalThis<`u`?globalThis:void 0;function j(e){let{hydrated:t,values:n}=this;if(typeof e==`number`)return Ce.call(this,e);if(!Array.isArray(e)||!e.length)throw SyntaxError();let r=n.length;for(let t of e)n.push(t);return t.length=n.length,Ce.call(this,r)}function Ce(e){let{hydrated:t,values:n,deferred:r,plugins:i}=this,a,o=[[e,e=>{a=e}]],s=[];for(;o.length>0;){let[e,a]=o.pop();switch(e){case-7:a(void 0);continue;case-5:a(null);continue;case-2:a(NaN);continue;case-6:a(1/0);continue;case-3:a(-1/0);continue;case-4:a(-0);continue}if(t[e]){a(t[e]);continue}let c=n[e];if(!c||typeof c!=`object`){t[e]=c,a(c);continue}if(Array.isArray(c))if(typeof c[0]==`string`){let[n,l,u]=c;switch(n){case`D`:a(t[e]=new Date(l));continue;case`U`:a(t[e]=new URL(l));continue;case`B`:a(t[e]=BigInt(l));continue;case`R`:a(t[e]=new RegExp(l,u));continue;case`Y`:a(t[e]=Symbol.for(l));continue;case`S`:let n=new Set;t[e]=n;for(let e=c.length-1;e>0;e--)o.push([c[e],e=>{n.add(e)}]);a(n);continue;case`M`:let d=new Map;t[e]=d;for(let e=c.length-2;e>0;e-=2){let t=[];o.push([c[e+1],e=>{t[1]=e}]),o.push([c[e],e=>{t[0]=e}]),s.push(()=>{d.set(t[0],t[1])})}a(d);continue;case`N`:let f=Object.create(null);t[e]=f;for(let e of Object.keys(l).reverse()){let t=[];o.push([l[e],e=>{t[1]=e}]),o.push([Number(e.slice(1)),e=>{t[0]=e}]),s.push(()=>{f[t[0]]=t[1]})}a(f);continue;case`P`:if(t[l])a(t[e]=t[l]);else{let n=new xe;r[l]=n,a(t[e]=n.promise)}continue;case`E`:let[,p,m]=c,h=m&&A&&w.includes(m)&&m in A&&typeof A[m]==`function`?new A[m](p):Error(p);t[e]=h,a(h);continue;case`Z`:a(t[e]=t[l]);continue;default:if(Array.isArray(i)){let n=[],r=c.slice(1);for(let e=0;e<r.length;e++){let t=r[e];o.push([t,t=>{n[e]=t}])}s.push(()=>{for(let r of i){let i=r(c[0],...n);if(i){a(t[e]=i.value);return}}throw SyntaxError()});continue}throw SyntaxError()}}else{let n=[];t[e]=n;for(let e=0;e<c.length;e++){let t=c[e];t!==-1&&o.push([t,t=>{n[e]=t}])}a(n);continue}else{let n={};t[e]=n;for(let e of Object.keys(c).reverse()){let t=[];o.push([c[e],e=>{t[1]=e}]),o.push([Number(e.slice(1)),e=>{t[0]=e}]),s.push(()=>{n[t[0]]=t[1]})}a(n);continue}}for(;s.length>0;)s.pop()();return a}async function we(e,t){let{plugins:n}=t??{},r=new xe,i=e.pipeThrough(Se()).getReader(),a={values:[],hydrated:[],deferred:{},plugins:n},o=await Te.call(a,i),s=r.promise;return o.done?r.resolve():s=Ee.call(a,i).then(r.resolve).catch(e=>{for(let t of Object.values(a.deferred))t.reject(e);r.reject(e)}),{done:s.then(()=>i.closed),value:o.value}}async function Te(e){let t=await e.read();if(!t.value)throw SyntaxError();let n;try{n=JSON.parse(t.value)}catch{throw SyntaxError()}return{done:t.done,value:j.call(this,n)}}async function Ee(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;let n=t.value;switch(n[0]){case`P`:{let e=n.indexOf(`:`),t=Number(n.slice(1,e)),r=this.deferred[t];if(!r)throw Error(`Deferred ID ${t} not found in stream`);let i=n.slice(e+1),a;try{a=JSON.parse(i)}catch{throw SyntaxError()}let o=j.call(this,a);r.resolve(o);break}case`E`:{let e=n.indexOf(`:`),t=Number(n.slice(1,e)),r=this.deferred[t];if(!r)throw Error(`Deferred ID ${t} not found in stream`);let i=n.slice(e+1),a;try{a=JSON.parse(i)}catch{throw SyntaxError()}let o=j.call(this,a);r.reject(o);break}default:throw SyntaxError()}t=await e.read()}}async function De(e){let t={signal:e.signal};if(e.method!==`GET`){t.method=e.method;let n=e.headers.get(`Content-Type`);n&&/\bapplication\/json\b/.test(n)?(t.headers={"Content-Type":n},t.body=JSON.stringify(await e.json())):n&&/\btext\/plain\b/.test(n)?(t.headers={"Content-Type":n},t.body=await e.text()):n&&/\bapplication\/x-www-form-urlencoded\b/.test(n)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}
2var M=Symbol(`SingleFetchRedirect`),Oe=class extends Error{},ke=new Set([100,101,204,205]);function Ae(e,t,n,r){let i=je(e,e=>{let n=t.routes[e.route.id];return k(n,`Route not found in manifest`),{hasLoader:n.hasLoader,hasClientLoader:n.hasClientLoader}},Re,r);return async e=>e.runClientMiddleware(i)}function je(e,t,n,r,i=()=>!0){return async a=>{let{request:o,matches:s,fetcherKey:c}=a,l=e();if(o.method!==`GET`)return Me(a,n);let u=s.some(e=>{let{hasLoader:n,hasClientLoader:r}=t(e);return e.shouldCallHandler()&&n&&!r});return!r&&!u?Ne(a,t,n):c?Ie(a,n):Pe(a,l,t,n,r,i)}}async function Me(e,t){let n=e.matches.find(e=>e.shouldCallHandler());k(n,`No action match found`);let r,i=await n.resolve(async i=>await i(async()=>{let{data:i,status:a}=await t(e,[n.route.id]);return r=a,P(i,n.route.id)}));return a(i.result)||m(i.result)||o(i.result)?{[n.route.id]:i}:{[n.route.id]:{type:i.type,result:C(i.result,r)}}}async function Ne(e,t,n){let r=e.matches.filter(e=>e.shouldCallHandler()),i={};return await Promise.all(r.map(r=>r.resolve(async a=>{try{let{hasClientLoader:o}=t(r),s=r.route.id,c=o?await a(async()=>{let{data:t}=await n(e,[s]);return P(t,s)}):await a();i[r.route.id]={type:`data`,result:c}}catch(e){i[r.route.id]={type:`error`,result:e}}}))),i}async function Pe(e,t,n,r,i,a=()=>!0){let o=new Set,s=!1,c=e.matches.map(()=>Be()),l=Be(),u={},d=Promise.all(e.matches.map(async(t,i)=>t.resolve(async d=>{c[i].resolve();let f=t.route.id,{hasLoader:p,hasClientLoader:m}=n(t),h=!t.shouldRevalidateArgs||t.shouldRevalidateArgs.actionStatus==null||t.shouldRevalidateArgs.actionStatus<400;if(!t.shouldCallHandler(h)){s||=t.shouldRevalidateArgs!=null&&p;return}if(a(t)&&m){p&&(s=!0);try{u[f]={type:`data`,result:await d(async()=>{let{data:t}=await r(e,[f]);return P(t,f)})}}catch(e){u[f]={type:`error`,result:e}}return}p&&o.add(f);try{u[f]={type:`data`,result:await d(async()=>P(await l.promise,f))}}catch(e){u[f]={type:`error`,result:e}}})));if(await Promise.all(c.map(e=>e.promise)),(!t.state.initialized&&t.state.navigation.state===`idle`||o.size===0)&&!window.__reactRouterHdrActive)l.resolve({routes:{}});else{let t=i&&s&&o.size>0?[...o.keys()]:void 0;try{let n=await r(e,t);l.resolve(n.data)}catch(e){l.reject(e)}}return await d,await Fe(l.promise,e.matches,o,u),u}async function Fe(e,t,n,r){try{let i,a=await e;if(`routes`in a){for(let e of t)if(e.route.id in a.routes){let t=a.routes[e.route.id];if(`error`in t){i=t.error,r[e.route.id]?.result??(r[e.route.id]={type:`error`,result:i});break}}}i!==void 0&&Array.from(n.values()).forEach(e=>{r[e].result instanceof Oe&&(r[e].result=i)})}catch{}}async function Ie(e,t){let n=e.matches.find(e=>e.shouldCallHandler());k(n,`No fetcher match found`);let r=n.route.id,i=await n.resolve(async n=>n(async()=>{let{data:n}=await t(e,[r]);return P(n,r)}));return{[n.route.id]:i}}function Le(e){let t=e.searchParams.getAll(`index`);e.searchParams.delete(`index`);let n=[];for(let e of t)e&&n.push(e);for(let t of n)e.searchParams.append(`index`,t);return e}function N(e,t){let n=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n.pathname.endsWith(`/`)?n.pathname=`${n.pathname}_.${t}`:n.pathname=`${n.pathname}.${t}`,n}async function Re(e,t){let{request:n}=e,r=N(n.url,`data`);n.method===`GET`&&(r=Le(r),t&&r.searchParams.set(`_routes`,t.join(`,`)));let i=await fetch(r,await De(n));if(i.status>=400&&!i.headers.has(`X-Remix-Response`))throw new p(i.status,i.statusText,await i.text());if(i.status===204&&i.headers.has(`X-Remix-Redirect`))return{status:202,data:{redirect:{redirect:i.headers.get(`X-Remix-Redirect`),status:Number(i.headers.get(`X-Remix-Status`)||`302`),revalidate:i.headers.get(`X-Remix-Revalidate`)===`true`,reload:i.headers.get(`X-Remix-Reload-Document`)===`true`,replace:i.headers.get(`X-Remix-Replace`)===`true`}}};if(ke.has(i.status)){let e={};return t&&n.method!==`GET`&&(e[t[0]]={data:void 0}),{status:i.status,data:{routes:e}}}k(i.body,`No response body to decode`);try{let e=await ze(i.body,window),r;if(n.method===`GET`){let t=e.value;r=M in t?{redirect:t[M]}:{routes:t}}else{let n=e.value,i=t?.[0];k(i,`No routeId found for single fetch call decoding`),r=`redirect`in n?{redirect:n}:{routes:{[i]:n}}}return{status:i.status,data:r}}catch{throw Error(`Unable to decode turbo-stream response`)}}function ze(e,t){return we(e,{plugins:[(e,...n)=>{if(e===`SanitizedError`){let[e,r,i]=n,a=Error;e&&w.includes(e)&&e in t&&typeof t[e]==`function`&&(a=t[e]);let o=new a(r);return o.stack=i,{value:o}}if(e===`ErrorResponse`){let[e,t,r]=n;return{value:new p(t,r,e)}
2}if(e===`SingleFetchRedirect`)return{value:{[M]:n[0]}};if(e===`SingleFetchClassInstance`)return{value:n[0]};if(e===`SingleFetchFallback`)return{value:void 0}}]})}function P(e,t){if(`redirect`in e){let{redirect:t,revalidate:n,reload:i,replace:a,status:o}=e.redirect;throw r(t,{status:o,headers:{...n?{"X-Remix-Revalidate":`yes`}:null,...i?{"X-Remix-Reload-Document":`yes`}:null,...a?{"X-Remix-Replace":`yes`}:null}})}let n=e.routes[t];if(n==null)throw new Oe(`No result found for routeId "${t}"`);if(`error`in n)throw n.error;if(`data`in n)return n.data;throw Error(`Invalid response found for routeId "${t}"`)}function Be(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var Ve=`modulepreload`,He=function(e){return`/`+e},Ue={},F=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=He(t,n),t=s(t),t in Ue)return;Ue[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Ve,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};async function We(e,t){if(e.id in t)return t[e.id];try{let n=await F(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Ge(e,t,n){return R(e.map(e=>{let r=t[e.route.id],i=n.routes[e.route.id];return[i&&i.css?i.css.map(e=>({rel:`stylesheet`,href:e})):[],r?.links?.()||[]]}).flat(2),L(e,n))}function Ke(e){return e.css?e.css.map(e=>({rel:`stylesheet`,href:e})):[]}async function qe(e){if(!e.css)return;let t=Ke(e);await Promise.all(t.map(Ye))}async function Je(e,t){if(!e.css&&!t.links||!tt())return;let n=[];if(e.css&&n.push(...Ke(e)),t.links&&n.push(...t.links()),n.length===0)return;let r=[];for(let e of n)!I(e)&&e.rel===`stylesheet`&&r.push({...e,rel:`preload`,as:`style`});await Promise.all(r.map(Ye))}async function Ye(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let n=document.createElement(`link`);Object.assign(n,e);function r(){document.head.contains(n)&&document.head.removeChild(n)}n.onload=()=>{r(),t()},n.onerror=()=>{r(),t()},document.head.appendChild(n)})}function I(e){return e!=null&&typeof e.page==`string`}function Xe(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function Ze(e,t,n){return R((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await We(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Xe).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function Qe(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;
2if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function L(e,t,{includeHydrateFallback:n}={}){return $e(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function $e(e){return[...new Set(e)]}function et(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function R(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!I(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(et(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}var z;function tt(){if(z!==void 0)return z;let e=document.createElement(`link`);return z=e.relList.supports(`preload`),e=null,z}function nt(){let{nonce:e}=Y();return O.createElement($,{title:`Loading...`,renderScripts:!0},null)}function rt(e){let t={};return Object.values(e).forEach(e=>{if(e){let n=e.parentId||``;t[n]||(t[n]=[]),t[n].push(e)}}),t}function it(e,t,n){let r=lt(t),i=t.HydrateFallback&&(!n||e.id===`root`)?t.HydrateFallback:e.id===`root`?nt:void 0,a=t.ErrorBoundary?t.ErrorBoundary:e.id===`root`?()=>O.createElement(Mt,{error:T()}):void 0;return e.id===`root`&&t.Layout?{...r?{element:O.createElement(t.Layout,null,O.createElement(r,null))}:{Component:r},...a?{errorElement:O.createElement(t.Layout,null,O.createElement(a,null))}:{ErrorBoundary:a},...i?{hydrateFallbackElement:O.createElement(t.Layout,null,O.createElement(i,null))}:{HydrateFallback:i}}:{Component:r,ErrorBoundary:a,HydrateFallback:i}}function at(e,t,n,r,i,a){return H(t,n,r,i,a,``,rt(t),e)}function B(e,t){if(e===`loader`&&!t.hasLoader||e===`action`&&!t.hasAction){let n=`You are trying to call ${e===`action`?`serverAction()`:`serverLoader()`} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(n),new p(400,`Bad Request`,Error(n),!0)}}function V(e,t){let n=e===`clientAction`?`a`:`an`,r=`Route "${t}" does not have ${n} ${e}, but you are trying to submit to it. To fix this, please add ${n} \`${e}\` function to the route`;throw console.error(r),new p(405,`Method Not Allowed`,Error(r),!0)}function H(e,t,n,r,i,a=``,o=rt(e),s){return(o[a]||[]).map(a=>{let c=t[a.id];function l(e){return k(typeof e==`function`,`No single fetch function available for route handler`),e()}function u(e){return a.hasLoader?l(e):Promise.resolve(null)}function d(e){if(!a.hasAction)throw V(`action`,a.id);return l(e)}function f(e){F(()=>import(e),[])}function p(e){e.clientActionModule&&f(e.clientActionModule),e.clientLoaderModule&&f(e.clientLoaderModule)}async function m(e){let n=t[a.id],r=n?Je(a,n):Promise.resolve();try{return e()}finally{await r}}let h={id:a.id,index:a.index,path:a.path};if(c){Object.assign(h,{...h,...it(a,c,i),middleware:c.clientMiddleware,handle:c.handle,shouldRevalidate:ot(h.path,c,a,r,s)});let e=n&&n.loaderData&&a.id in n.loaderData,t=e?n?.loaderData?.[a.id]:void 0,o=n&&n.errors&&a.id in n.errors,l=o?n?.errors?.[a.id]:void 0,f=s==null&&(c.clientLoader?.hydrate===!0||!a.hasLoader);h.loader=async({request:n,params:r,context:i,pattern:s,url:d},p)=>{let h=f;return f=!1,await m(async()=>(k(c,"No `routeModule` available for critical-route loader"),c.clientLoader?c.clientLoader({request:n,params:r,context:i,pattern:s,url:d,async serverLoader(){if
2(B(`loader`,a),h){if(e)return t;if(o)throw l}return u(p)}}):u(p)))},h.loader.hydrate=ut(a.id,c.clientLoader,a.hasLoader,i),h.action=({request:e,params:t,context:n,pattern:r,url:o},s)=>m(async()=>{if(k(c,"No `routeModule` available for critical-route action"),!c.clientAction){if(i)throw V(`clientAction`,a.id);return d(s)}return c.clientAction({request:e,params:t,context:n,pattern:r,url:o,async serverAction(){return B(`action`,a),d(s)}})})}else{a.hasClientLoader||(h.loader=(e,t)=>m(()=>u(t))),a.hasClientAction||(h.action=(e,t)=>m(()=>{if(i)throw V(`clientAction`,a.id);return d(t)}));let e;async function n(){return e||=(async()=>{(a.clientLoaderModule||a.clientActionModule)&&await new Promise(e=>setTimeout(e,0));let e=ct(a,t);return p(a),await e})(),await e}h.lazy={loader:a.hasClientLoader?async()=>{let{clientLoader:e}=a.clientLoaderModule?await F(()=>import(a.clientLoaderModule),[]):await n();return k(e,"No `clientLoader` export found"),(t,n)=>e({...t,async serverLoader(){return B(`loader`,a),u(n)}})}:void 0,action:a.hasClientAction?async()=>{let e=a.clientActionModule?F(()=>import(a.clientActionModule),[]):n();p(a);let{clientAction:t}=await e;return k(t,"No `clientAction` export found"),(e,n)=>t({...e,async serverAction(){return B(`action`,a),d(n)}})}:void 0,middleware:a.hasClientMiddleware?async()=>{let{clientMiddleware:e}=a.clientMiddlewareModule?await F(()=>import(a.clientMiddlewareModule),[]):await n();return k(e,"No `clientMiddleware` export found"),e}:void 0,shouldRevalidate:async()=>{let e=await n();return ot(h.path,e,a,r,s)},handle:async()=>(await n()).handle,Component:async()=>(await n()).Component,ErrorBoundary:a.hasErrorBoundary?async()=>(await n()).ErrorBoundary:void 0}}let g=H(e,t,n,r,i,a.id,o,s);return g.length>0&&(h.children=g),h})}function ot(e,t,r,i,a){if(a)return st(r.id,t.shouldRevalidate,a);if(!i&&r.hasLoader&&!r.hasClientLoader){let r=e?n(e)[1].map(e=>e.paramName):[],i=e=>r.some(t=>e.currentParams[t]!==e.nextParams[t]);if(t.shouldRevalidate){let e=t.shouldRevalidate;return t=>e({...t,defaultShouldRevalidate:i(t)})}else return e=>i(e)}return t.shouldRevalidate}function st(e,t,n){let r=!1;return i=>r?t?t(i):i.defaultShouldRevalidate:(r=!0,n.has(e))}async function ct(e,t){let n=We(e,t),r=qe(e),i=await n;return await Promise.all([r,Je(e,i)]),{Component:lt(i),ErrorBoundary:i.ErrorBoundary,clientMiddleware:i.clientMiddleware,clientAction:i.clientAction,clientLoader:i.clientLoader,handle:i.handle,links:i.links,meta:i.meta,shouldRevalidate:i.shouldRevalidate}}function lt(e){if(e.default!=null&&!(typeof e.default==`object`&&Object.keys(e.default).length===0))return e.default}function ut(e,t,n,r){return r&&e!==`root`||t!=null&&(t.hydrate===!0||n!==!0)}var U=new Set,dt=1e3,W=new Set;function ft(e){let t=new Set;return e.forEach(e=>{e.startsWith(`/`)||(e=`/${e}`);for(let n=1;n<e.length;n++)e[n]===`/`&&t.add(e.slice(0,n));t.add(e)}),Array.from(t)}function G(e,t){return e.mode===`lazy`&&t===!0}function pt({sri:e,...t},n){let r=new Set(n.state.matches.map(e=>e.route.id)),i=n.state.location.pathname.split(`/`).filter(Boolean),a=[`/`];for(i.pop();i.length>0;)a.push(`/${i.join(`/`)}`),i.pop();a.forEach(e=>{let t=h(n.routes,e,n.basename||`/`,!1,n.branches);t&&t.forEach(e=>r.add(e.route.id))});let o=[...r].reduce((e,n)=>Object.assign(e,{[n]:t.routes[n]}),{});return{...t,routes:o,sri:e?!0:void 0}}function mt(e,t,n,r,i,a,o){if(G(i,r))return async({path:s,patch:c,signal:l,fetcherKey:u})=>{if(W.has(s))return;let{state:d}=e();await _t([s],u?window.location.href:g(d.navigation.location||d.location),t,n,r,a,o,i.manifestPath,c,l)}}function ht(e,t,n,r,i,a){O.useEffect(()=>{if(!G(i,r)||window.navigator?.connection?.saveData===!0)return;function o(e){let t=e.tagName===`FORM`?e.getAttribute(`action`):e.getAttribute(`href`);if(!t)return;let n=e.tagName===`A`?e.pathname:new URL(t,window.location.origin).pathname;W.has(n)||U.add(n)}async function s(){document.querySelectorAll(`a[data-discover], form[data-discover]`).forEach(o);let s=Array.from(U.keys()).filter(e=>W.has(e)?(U.delete(e),!1):!0);if(s.length!==0)try{await _t(s,null,t,n,r,a,e.basename,i.manifestPath,e.patchRoutes)}catch(e){console.error(`Failed to fetch manifest patches`,e)}}let c=yt(s,100);s();let l=new MutationObserver(()=>c());return l.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`data-discover`,`href`,`action`]}),()=>l.disconnect()},[r,a,t,n,e,i])}function gt(e,t){let n=e||`/__manifest`;return t==null?n:s([t,n])}var K=`react-router-manifest-version`;async function _t(e,t,n,r,i,a,o,s,c,l){e=ft(e);let u=new URLSearchParams;u.set(`paths`,e.sort().join(`,`)),u.set(`version`,n.version);let d=new URL(gt(s,o),window.location.origin);if(d.search=u.toString(),d.toString().length>7680){U.clear();return}let f;try{let e=await fetch(d,{signal:l});if(!e.ok)throw Error(`${e.status} ${e.statusText}`);if(e.status===204&&e.headers.has(`X-Remix-Reload-Document`)){if(!t){console.warn(`Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a 
2new document navigation to sync up with the latest manifest.`);return}try{if(sessionStorage.getItem(K)===n.version){console.error(`Unable to discover routes due to manifest version mismatch.`);return}sessionStorage.setItem(K,n.version)}catch{}window.location.href=t,console.warn(`Detected manifest version mismatch, reloading...`),await new Promise(()=>{})}else if(e.status>=400)throw Error(await e.text());try{sessionStorage.removeItem(K)}catch{}f=await e.json()}catch(e){if(l?.aborted)return;throw e}let p=new Set(Object.keys(n.routes)),m=Object.values(f).reduce((e,t)=>(t&&!p.has(t.id)&&(e[t.id]=t),e),{});Object.assign(n.routes,m),e.forEach(e=>vt(e,W));let h=new Set;Object.values(m).forEach(e=>{e&&(!e.parentId||!m[e.parentId])&&h.add(e.parentId)}),h.forEach(e=>c(e||null,H(m,r,null,i,a,e)))}function vt(e,t){if(t.size>=dt){let e=t.values().next().value;e!==void 0&&t.delete(e)}t.add(e)}function yt(e,t){let n;return(...r)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...r),t)}}function bt(){let e=O.useContext(_);return k(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function q(){let e=O.useContext(ae);return k(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var J=O.createContext(void 0);J.displayName=`FrameworkContext`;function Y(){let e=O.useContext(J);return k(e,`You must render this element inside a <HydratedRouter> element`),e}function xt(e,t){let n=O.useContext(J),[r,i]=O.useState(!1),[a,o]=O.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=O.useRef(null);O.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),O.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:X(s,p),onBlur:X(c,m),onMouseEnter:X(l,p),onMouseLeave:X(u,m),onTouchStart:X(d,p)}]:[a,f,{}]:[!1,f,{}]}function X(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function St(e,t,n){if(n&&!Z)return[e[0]];if(t){let n=e.findIndex(e=>t[e.route.id]!==void 0);return e.slice(0,n+1)}return e}var Ct=`data-react-router-critical-css`;function wt({nonce:e,crossOrigin:t}){let{isSpaMode:n,manifest:r,routeModules:i,criticalCss:a,nonce:o}=Y(),{errors:s,matches:c}=q(),l=St(c,s,n),u=O.useMemo(()=>Ge(l,i,r),[l,i,r]);return e==null&&o&&(e=o),O.createElement(O.Fragment,null,typeof a==`string`?O.createElement(`style`,{[Ct]:``,nonce:e,dangerouslySetInnerHTML:{__html:a}}):null,typeof a==`object`?O.createElement(`link`,{[Ct]:``,rel:`stylesheet`,href:a.href,nonce:e,crossOrigin:t}):null,u.map(({key:n,link:r})=>I(r)?O.createElement(Tt,{key:n,nonce:e,...r,crossOrigin:r.crossOrigin??t}):O.createElement(`link`,{key:n,nonce:e,...r,crossOrigin:r.crossOrigin??t})))}function Tt({page:e,...t}){let n=E(),{nonce:r}=Y(),{router:i}=bt(),a=O.useMemo(()=>d(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?O.createElement(Dt,{page:e,matches:a,...t}):O.createElement(Ot,{page:e,matches:a,...t})):null}function Et(e){let{manifest:t,routeModules:n}=Y(),[r,i]=O.useState([]);return O.useEffect(()=>{let r=!1;return Ze(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Dt({page:e,matches:t,...n}){let r=v(),i=O.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=N(e,`rsc`),i=!1,a=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?i=!0:a.push(e.route.id);return i&&a.length>0&&n.searchParams.set(`_routes`,a.join(`,`)),[n.pathname+n.search]},[e,r,t]);return O.createElement(O.Fragment,null,i.map(e=>O.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function Ot({page:e,matches:t,...n}){let r=v(),{manifest:i,routeModules:a}=Y(),{loaderData:o,matches:s}=q(),c=O.useMemo(()=>Qe(e,t,s,i,r,`data`),[e,t,s,i,r]),l=O.useMemo(()=>Qe(e,t,s,i,r,`assets`),[e,t,s,i,r]),u=O.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,s=!1;if(t.forEach(e=>{let t=i.routes[e.route.id];!t||!t.hasLoader||(!c.some(t=>t.route.id===e.route.id)&&e.route.id in o&&a[e.route.id]?.shouldRevalidate||t.hasClientLoader?s=!0:n.add(e.route.id))}),n.size===0)return[];let l=N(e,`data`);return s&&n.size>0&&l.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[l.pathname+l.search]},[o,r,i,c,t,e,a]),d=O.useMemo(()=>L(l,i),[l,i]),f=Et(l);return O.createElement(O.Fragment,null,u.map(e=>O.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),d.map(e=>O.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),f.map(({key:e,link:t})=>O.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}var Z=!1;function kt(){Z=!0}function Q(e){let{manifest:t,serverHandoffString:n,isSpaMode:r,renderMeta:i,routeDiscovery:a,ssr:o,nonce:s}=Y(),{router:c,static:l,staticContext:u}=bt(),{matches:d}=q(),f=E(),p=G(a,o);e.nonce==null&&s&&(e={...e,nonce:s}
2),i&&(i.didRenderScripts=!0);let m=St(d,null,r);O.useEffect(()=>{kt()},[]);let h=O.useMemo(()=>{if(f)return null;let r=u?`window.__reactRouterContext = ${n};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:` `,i=l?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:``}${p?``:`import ${JSON.stringify(t.url)}`};
3${m.map((e,n)=>{let r=`route${n}`,i=t.routes[e.route.id];k(i,`Route ${e.route.id} not found in manifest`);let{clientActionModule:a,clientLoaderModule:o,clientMiddlewareModule:s,hydrateFallbackModule:c,module:l}=i,u=[...a?[{module:a,varName:`${r}_clientAction`}]:[],...o?[{module:o,varName:`${r}_clientLoader`}]:[],...s?[{module:s,varName:`${r}_clientMiddleware`}]:[],...c?[{module:c,varName:`${r}_HydrateFallback`}]:[],{module:l,varName:`${r}_main`}];return u.length===1?`import * as ${r} from ${JSON.stringify(l)};`:[u.map(e=>`import * as ${e.varName} from "${e.module}";`).join(`
4`),`const ${r} = {${u.map(e=>`...${e.varName}`).join(`,`)}};`].join(`
5`)}).join(`
6`)}
7  ${p?`window.__reactRouterManifest = ${JSON.stringify(pt(t,c),null,2)};`:``}
8  window.__reactRouterRouteModules = {${m.map((e,t)=>`${JSON.stringify(e.route.id)}:route${t}`).join(`,`)}};
9
10import(${JSON.stringify(t.entry.module)});`:` `;return O.createElement(O.Fragment,null,O.createElement(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:r},type:void 0}),O.createElement(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:i},type:`module`,async:!0}))},[]),g=Z||f?[]:[...new Set(t.entry.imports.concat(L(m,t,{includeHydrateFallback:!0})))],_=typeof t.sri==`object`?t.sri:{};return D(!f,`The <Scripts /> element is a no-op when using RSC and can be safely removed.`),Z||f?null:O.createElement(O.Fragment,null,typeof t.sri==`object`?O.createElement(`script`,{...e,"rr-importmap":``,type:`importmap`,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:_})}}):null,p?null:O.createElement(`link`,{rel:`modulepreload`,href:t.url,crossOrigin:e.crossOrigin,integrity:_[t.url],nonce:e.nonce,suppressHydrationWarning:!0}),O.createElement(`link`,{rel:`modulepreload`,href:t.entry.module,crossOrigin:e.crossOrigin,integrity:_[t.entry.module],nonce:e.nonce,suppressHydrationWarning:!0}),g.map(t=>O.createElement(`link`,{key:t,rel:`modulepreload`,href:t,crossOrigin:e.crossOrigin,integrity:_[t],nonce:e.nonce,suppressHydrationWarning:!0})),h)}function At(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}var jt=class extends O.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||t.error,location:t.location}:{error:e.error||null,location:e.location}}render(){return this.state.error?O.createElement(Mt,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function Mt({error:e,isOutsideRemixApp:t}){let{nonce:n}=Y();console.error(e);let r=O.createElement(`script`,{nonce:n,dangerouslySetInnerHTML:{__html:`
11        console.log(
12          "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
13        );
14      `}});if(m(e))return O.createElement($,{title:`Unhandled Thrown Response!`},O.createElement(`h1`,{style:{fontSize:`24px`}},e.status,` `,e.statusText),null);let i;if(e instanceof Error)i=e;else{let t=e==null?`Unknown Error`:typeof e==`object`&&`toString`in e?e.toString():JSON.stringify(e);i=Error(t)}return O.createElement($,{title:`Application Error!`,isOutsideRemixApp:t},O.createElement(`h1`,{style:{fontSize:`24px`}},`Application Error`),O.createElement(`pre`,{style:{padding:`2rem`,background:`hsla(10, 50%, 50%, 0.1)`,color:`red`,overflow:`auto`}},i.stack),r)}function $({title:e,renderScripts:t,isOutsideRemixApp:n,children:r}){let{routeModules:i}=Y();return i.root?.Layout&&!n?r:O.createElement(`html`,{lang:`en`},O.createElement(`head`,null,O.createElement(`meta`,{charSet:`utf-8`}),O.createElement(`meta`,{name:`viewport`,content:`width=device-width,initial-scale=1,viewport-fit=cover`}),O.createElement(`title`,null,e)),O.createElement(`body`,null,O.createElement(`main`,{style:{fontFamily:`system-ui, sans-serif`,padding:`2rem`}},r,t?O.createElement(Q,null):null)))}export{ge as _,Q as a,ve as b,mt as c,at as d,ut as f,he as g,Ae as h,Tt as i,ht as l,ze as m,J as n,At as o,F as p,wt as r,xt as s,jt as t,H as u,de as v,be as x,le as y};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.