{"version":3,"file":"index-ssf3u2Nh.js","sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../node_modules/@tanstack/history/dist/esm/index.js","../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/@tanstack/react-router/node_modules/@tanstack/store/build/modern/index.js","../../node_modules/@tanstack/react-router/node_modules/@tanstack/react-store/build/modern/index.js","../../node_modules/@tanstack/react-router/dist/esm/root.js","../../node_modules/@tanstack/react-router/dist/esm/qss.js","../../node_modules/@tanstack/react-router/dist/esm/searchParams.js","../../node_modules/@tanstack/react-router/dist/esm/utils.js","../../node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js","../../node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../node_modules/@tanstack/react-router/dist/esm/Transitioner.js","../../node_modules/@tanstack/react-router/dist/esm/matchContext.js","../../node_modules/@tanstack/react-router/dist/esm/not-found.js","../../node_modules/@tanstack/react-router/dist/esm/redirects.js","../../node_modules/@tanstack/react-router/dist/esm/isServerSideError.js","../../node_modules/@tanstack/react-router/dist/esm/SafeFragment.js","../../node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js","../../node_modules/@tanstack/react-router/dist/esm/Match.js","../../node_modules/@tanstack/react-router/dist/esm/Matches.js","../../node_modules/@tanstack/react-router/dist/esm/RouterProvider.js","../../node_modules/@tanstack/react-router/dist/esm/path.js","../../node_modules/@tanstack/react-router/dist/esm/router.js","../../node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../node_modules/@tanstack/react-router/dist/esm/useParams.js","../../node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../node_modules/@tanstack/react-router/dist/esm/useNavigate.js","../../node_modules/@tanstack/react-router/dist/esm/route.js","../../node_modules/@tanstack/react-router/dist/esm/fileRoute.js","../../node_modules/@tanstack/react-router/dist/esm/link.js","../../node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../node_modules/@tanstack/react-query/build/modern/isRestoring.js","../../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../node_modules/@tanstack/react-query/build/modern/utils.js","../../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../node_modules/@tanstack/react-query/build/modern/suspense.js","../../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../node_modules/@tanstack/react-query/build/modern/useQuery.js","../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/@tanstack/store/dist/esm/index.js","../../node_modules/@tanstack/react-store/dist/esm/index.js","../../node_modules/pocketbase/dist/pocketbase.es.mjs","../../node_modules/date-fns/toDate.mjs","../../node_modules/date-fns/constructFrom.mjs","../../node_modules/date-fns/constants.mjs","../../node_modules/date-fns/_lib/defaultOptions.mjs","../../node_modules/date-fns/startOfWeek.mjs","../../node_modules/date-fns/startOfISOWeek.mjs","../../node_modules/date-fns/getISOWeekYear.mjs","../../node_modules/date-fns/startOfDay.mjs","../../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../node_modules/date-fns/differenceInCalendarDays.mjs","../../node_modules/date-fns/startOfISOWeekYear.mjs","../../node_modules/date-fns/isDate.mjs","../../node_modules/date-fns/isValid.mjs","../../node_modules/date-fns/_lib/getRoundingMethod.mjs","../../node_modules/date-fns/differenceInMilliseconds.mjs","../../node_modules/date-fns/differenceInHours.mjs","../../node_modules/date-fns/startOfYear.mjs","../../node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../node_modules/date-fns/locale/en-US/_lib/match.mjs","../../node_modules/date-fns/locale/en-US.mjs","../../node_modules/date-fns/getDayOfYear.mjs","../../node_modules/date-fns/getISOWeek.mjs","../../node_modules/date-fns/getWeekYear.mjs","../../node_modules/date-fns/startOfWeekYear.mjs","../../node_modules/date-fns/getWeek.mjs","../../node_modules/date-fns/_lib/addLeadingZeros.mjs","../../node_modules/date-fns/_lib/format/lightFormatters.mjs","../../node_modules/date-fns/_lib/format/formatters.mjs","../../node_modules/date-fns/_lib/format/longFormatters.mjs","../../node_modules/date-fns/_lib/protectedTokens.mjs","../../node_modules/date-fns/format.mjs","../../node_modules/date-fns/isBefore.mjs","../../node_modules/date-fns/parseISO.mjs","../../src/api.ts","../../src/store.ts","../../src/components/toast.tsx","../../src/routes/~__root.tsx","../../src/routes/~index.tsx","../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/lucide-react/dist/esm/icons/chevron-left.js","../../node_modules/lucide-react/dist/esm/icons/chevron-right.js","../../node_modules/lucide-react/dist/esm/icons/external-link.js","../../node_modules/lucide-react/dist/esm/icons/plus.js","../../node_modules/lucide-react/dist/esm/icons/user-plus.js","../../node_modules/lucide-react/dist/esm/icons/x.js","../../src/components/back-button.tsx","../../src/components/loader.tsx","../../src/components/panel.tsx","../../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../src/lib/utils.ts","../../src/routes/task-row.tsx","../../src/routes/~mytasks.index.tsx","../../src/components/button.tsx","../../src/routes/error-page.tsx","../../src/routes/~missions/enroll.tsx","../../src/routes/~missions/upload.tsx","../../src/routes/~missions/~$missionId.tsx","../../src/routes/~auth/~callback.tsx","../../src/routes/~missions/~index.tsx","../../src/routes/~auth/~index.tsx","../../src/components/cells.tsx","../../src/components/grids.tsx","../../src/routes/~account/~index.tsx","../../src/components/form.tsx","../../node_modules/@multiavatar/multiavatar/dist/commonjs/index.js","../../node_modules/performance-now/lib/performance-now.js","../../node_modules/raf/index.js","../../node_modules/rgbcolor/index.js","../../node_modules/svg-pathdata/lib/SVGPathData.module.js","../../node_modules/stackblur-canvas/dist/stackblur-es.js","../../node_modules/canvg/dist/index.js","../../src/lib/image.ts","../../src/routes/~account/upsert-form.tsx","../../src/routes/~account/~upsert.index.tsx","../../src/routes/~account/~upsert.$accountId.tsx","../../src/routeTree.gen.ts","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 {\n event.preventDefault();\n return event.returnValue = \"\";\n};\nconst stopBlocking = () => {\n removeEventListener(beforeUnloadEvent, beforeUnloadListener, {\n capture: true\n });\n};\nfunction createHistory(opts) {\n let location = opts.getLocation();\n const subscribers = /* @__PURE__ */ new Set();\n let blockers = [];\n const notify = () => {\n location = opts.getLocation();\n subscribers.forEach((subscriber) => subscriber());\n };\n const tryNavigation = async (task, navigateOpts) => {\n var _a;\n const ignoreBlocker = (navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false;\n if (!ignoreBlocker && typeof document !== \"undefined\" && blockers.length) {\n for (const blocker of blockers) {\n const allowed = await blocker();\n if (!allowed) {\n (_a = opts.onBlocked) == null ? void 0 : _a.call(opts, notify);\n return;\n }\n }\n }\n task();\n };\n return {\n get location() {\n return location;\n },\n subscribe: (cb) => {\n subscribers.add(cb);\n return () => {\n subscribers.delete(cb);\n };\n },\n push: (path, state, navigateOpts) => {\n state = assignKey(state);\n tryNavigation(() => {\n opts.pushState(path, state);\n notify();\n }, navigateOpts);\n },\n replace: (path, state, navigateOpts) => {\n state = assignKey(state);\n tryNavigation(() => {\n opts.replaceState(path, state);\n notify();\n }, navigateOpts);\n },\n go: (index, navigateOpts) => {\n tryNavigation(() => {\n opts.go(index);\n notify();\n }, navigateOpts);\n },\n back: (navigateOpts) => {\n tryNavigation(() => {\n opts.back();\n notify();\n }, navigateOpts);\n },\n forward: (navigateOpts) => {\n tryNavigation(() => {\n opts.forward();\n notify();\n }, navigateOpts);\n },\n createHref: (str) => opts.createHref(str),\n block: (blocker) => {\n blockers.push(blocker);\n if (blockers.length === 1) {\n addEventListener(beforeUnloadEvent, beforeUnloadListener, {\n capture: true\n });\n }\n return () => {\n blockers = blockers.filter((b) => b !== blocker);\n if (!blockers.length) {\n stopBlocking();\n }\n };\n },\n flush: () => {\n var _a;\n return (_a = opts.flush) == null ? void 0 : _a.call(opts);\n },\n destroy: () => {\n var _a;\n return (_a = opts.destroy) == null ? void 0 : _a.call(opts);\n },\n notify\n };\n}\nfunction assignKey(state) {\n if (!state) {\n state = {};\n }\n return {\n ...state,\n key: createRandomKey()\n };\n}\nfunction createBrowserHistory(opts) {\n const win = (opts == null ? void 0 : opts.window) ?? (typeof document !== \"undefined\" ? window : void 0);\n const originalPushState = win.history.pushState;\n const originalReplaceState = win.history.replaceState;\n const createHref = (opts == null ? void 0 : opts.createHref) ?? ((path) => path);\n const parseLocation = (opts == null ? void 0 : opts.parseLocation) ?? (() => parseHref(\n `${win.location.pathname}${win.location.search}${win.location.hash}`,\n win.history.state\n ));\n let currentLocation = parseLocation();\n let rollbackLocation;\n const getLocation = () => currentLocation;\n let next;\n let scheduled;\n const flush = () => {\n if (!next) {\n return;\n }\n const caller = next.isPush ? originalPushState : originalReplaceState;\n caller.call(win.history, next.state, \"\", next.href);\n next = void 0;\n scheduled = void 0;\n rollbackLocation = void 0;\n };\n const queueHistoryAction = (type, destHref, state) => {\n const href = createHref(destHref);\n if (!scheduled) {\n rollbackLocation = currentLocation;\n }\n currentLocation = parseHref(destHref, state);\n next = {\n href,\n state,\n isPush: (next == null ? void 0 : next.isPush) || type === \"push\"\n };\n if (!scheduled) {\n scheduled = Promise.resolve().then(() => flush());\n }\n };\n const onPushPop = () => {\n currentLocation = parseLocation();\n history.notify();\n };\n const history = createHistory({\n getLocation,\n pushState: (href, state) => queueHistoryAction(\"push\", href, state),\n replaceState: (href, state) => queueHistoryAction(\"replace\", href, state),\n back: () => win.history.back(),\n forward: () => win.history.forward(),\n go: (n) => win.history.go(n),\n createHref: (href) => createHref(href),\n flush,\n destroy: () => {\n win.history.pushState = originalPushState;\n win.history.replaceState = originalReplaceState;\n win.removeEventListener(pushStateEvent, onPushPop);\n win.removeEventListener(popStateEvent, onPushPop);\n },\n onBlocked: (onUpdate) => {\n if (rollbackLocation && currentLocation !== rollbackLocation) {\n currentLocation = rollbackLocation;\n onUpdate();\n }\n }\n });\n win.addEventListener(pushStateEvent, onPushPop);\n win.addEventListener(popStateEvent, onPushPop);\n win.history.pushState = function(...args) {\n const res = originalPushState.apply(win.history, args);\n onPushPop();\n return res;\n };\n win.history.replaceState = function(...args) {\n const res = originalReplaceState.apply(win.history, args);\n onPushPop();\n return res;\n };\n return history;\n}\nfunction createHashHistory(opts) {\n const win = (opts == null ? void 0 : opts.window) ?? (typeof document !== \"undefined\" ? window : void 0);\n return createBrowserHistory({\n window: win,\n parseLocation: () => {\n const hashHref = win.location.hash.split(\"#\").slice(1).join(\"#\") ?? \"/\";\n return parseHref(hashHref, win.history.state);\n },\n createHref: (href) => `${win.location.pathname}${win.location.search}#${href}`\n });\n}\nfunction createMemoryHistory(opts = {\n initialEntries: [\"/\"]\n}) {\n const entries = opts.initialEntries;\n let index = opts.initialIndex ?? entries.length - 1;\n let currentState = {\n key: createRandomKey()\n };\n const getLocation = () => parseHref(entries[index], currentState);\n return createHistory({\n getLocation,\n pushState: (path, state) => {\n currentState = state;\n entries.push(path);\n index = Math.max(entries.length - 1, 0);\n },\n replaceState: (path, state) => {\n currentState = state;\n entries[index] = path;\n },\n back: () => {\n currentState = assignKey(currentState);\n index--;\n },\n forward: () => {\n currentState = assignKey(currentState);\n index = Math.min(index + 1, entries.length - 1);\n },\n go: (n) => {\n currentState = assignKey(currentState);\n index = Math.min(Math.max(index + n, 0), entries.length - 1);\n },\n createHref: (path) => path\n });\n}\nfunction parseHref(href, state) {\n const hashIndex = href.indexOf(\"#\");\n const searchIndex = href.indexOf(\"?\");\n return {\n href,\n pathname: href.substring(\n 0,\n hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : href.length\n ),\n hash: hashIndex > -1 ? href.substring(hashIndex) : \"\",\n search: searchIndex > -1 ? href.slice(searchIndex, hashIndex === -1 ? void 0 : hashIndex) : \"\",\n state: state || {}\n };\n}\nfunction createRandomKey() {\n return (Math.random() + 1).toString(36).substring(7);\n}\nexport {\n createBrowserHistory,\n createHashHistory,\n createHistory,\n createMemoryHistory\n};\n//# sourceMappingURL=index.js.map\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import * as React from \"react\";\nconst routerContext = React.createContext(null);\nfunction getRouterContext() {\n if (typeof document === \"undefined\") {\n return routerContext;\n }\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__;\n }\n window.__TSR_ROUTER_CONTEXT__ = routerContext;\n return routerContext;\n}\nexport {\n getRouterContext\n};\n//# sourceMappingURL=routerContext.js.map\n","import * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction useRouter(opts) {\n const value = React.useContext(getRouterContext());\n warning(\n !(((opts == null ? void 0 : opts.warn) ?? true) && !value),\n \"useRouter must be used inside a component!\"\n );\n return value;\n}\nexport {\n useRouter\n};\n//# sourceMappingURL=useRouter.js.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","// src/index.ts\nvar Store = class {\n constructor(initialState, options) {\n this.listeners = /* @__PURE__ */ new Set();\n this._batching = false;\n this._flushing = 0;\n this._nextPriority = null;\n this.subscribe = (listener) => {\n this.listeners.add(listener);\n const unsub = this.options?.onSubscribe?.(listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub?.();\n };\n };\n this.setState = (updater, opts) => {\n const previous = this.state;\n this.state = this.options?.updateFn ? this.options.updateFn(previous)(updater) : updater(previous);\n const priority = opts?.priority ?? this.options?.defaultPriority ?? \"high\";\n if (this._nextPriority === null) {\n this._nextPriority = priority;\n } else if (this._nextPriority === \"high\") {\n this._nextPriority = priority;\n } else {\n this._nextPriority = this.options?.defaultPriority ?? \"high\";\n }\n this.options?.onUpdate?.({\n priority: this._nextPriority\n });\n this._flush();\n };\n this._flush = () => {\n if (this._batching)\n return;\n const flushId = ++this._flushing;\n this.listeners.forEach((listener) => {\n if (this._flushing !== flushId)\n return;\n listener({\n priority: this._nextPriority ?? \"high\"\n });\n });\n };\n this.batch = (cb) => {\n if (this._batching)\n return cb();\n this._batching = true;\n cb();\n this._batching = false;\n this._flush();\n };\n this.state = initialState;\n this.options = options;\n }\n};\nexport {\n Store\n};\n//# sourceMappingURL=index.js.map","// src/index.ts\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d) {\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n shallow\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map","const rootRouteId = \"__root__\";\nexport {\n rootRouteId\n};\n//# sourceMappingURL=root.js.map\n","function encode(obj, pfx) {\n let k, i, tmp, str = \"\";\n for (k in obj) {\n if ((tmp = obj[k]) !== void 0) {\n if (Array.isArray(tmp)) {\n for (i = 0; i < tmp.length; i++) {\n str && (str += \"&\");\n str += encodeURIComponent(k) + \"=\" + encodeURIComponent(tmp[i]);\n }\n } else {\n str && (str += \"&\");\n str += encodeURIComponent(k) + \"=\" + encodeURIComponent(tmp);\n }\n }\n }\n return (pfx || \"\") + str;\n}\nfunction toValue(mix) {\n if (!mix) return \"\";\n const str = decodeURIComponent(mix);\n if (str === \"false\") return false;\n if (str === \"true\") return true;\n return +str * 0 === 0 && +str + \"\" === str ? +str : str;\n}\nfunction decode(str, pfx) {\n let tmp, k;\n const out = {}, arr = (pfx ? str.substr(pfx.length) : str).split(\"&\");\n while (tmp = arr.shift()) {\n const equalIndex = tmp.indexOf(\"=\");\n if (equalIndex !== -1) {\n k = tmp.slice(0, equalIndex);\n const value = tmp.slice(equalIndex + 1);\n if (out[k] !== void 0) {\n out[k] = [].concat(out[k], toValue(value));\n } else {\n out[k] = toValue(value);\n }\n } else {\n k = tmp;\n out[k] = \"\";\n }\n }\n return out;\n}\nexport {\n decode,\n encode\n};\n//# sourceMappingURL=qss.js.map\n","import { decode, encode } from \"./qss.js\";\nconst defaultParseSearch = parseSearchWith(JSON.parse);\nconst defaultStringifySearch = stringifySearchWith(\n JSON.stringify,\n JSON.parse\n);\nfunction parseSearchWith(parser) {\n return (searchStr) => {\n if (searchStr.substring(0, 1) === \"?\") {\n searchStr = searchStr.substring(1);\n }\n const query = decode(searchStr);\n for (const key in query) {\n const value = query[key];\n if (typeof value === \"string\") {\n try {\n query[key] = parser(value);\n } catch (err) {\n }\n }\n }\n return query;\n };\n}\nfunction stringifySearchWith(stringify, parser) {\n function stringifyValue(val) {\n if (typeof val === \"object\" && val !== null) {\n try {\n return stringify(val);\n } catch (err) {\n }\n } else if (typeof val === \"string\" && typeof parser === \"function\") {\n try {\n parser(val);\n return stringify(val);\n } catch (err) {\n }\n }\n return val;\n }\n return (search) => {\n search = { ...search };\n Object.keys(search).forEach((key) => {\n const val = search[key];\n if (typeof val === \"undefined\" || val === void 0) {\n delete search[key];\n } else {\n search[key] = stringifyValue(val);\n }\n });\n const searchStr = encode(search).toString();\n return searchStr ? `?${searchStr}` : \"\";\n };\n}\nexport {\n defaultParseSearch,\n defaultStringifySearch,\n parseSearchWith,\n stringifySearchWith\n};\n//# sourceMappingURL=searchParams.js.map\n","import * as React from \"react\";\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nfunction isFunction(d) {\n return typeof d === \"function\";\n}\nfunction functionalUpdate(updater, previous) {\n if (isFunction(updater)) {\n return updater(previous);\n }\n return updater;\n}\nfunction pick(parent, keys) {\n return keys.reduce((obj, key) => {\n obj[key] = parent[key];\n return obj;\n }, {});\n}\nfunction replaceEqualDeep(prev, _next) {\n if (prev === _next) {\n return prev;\n }\n const next = _next;\n const array = isPlainArray(prev) && isPlainArray(next);\n if (array || isPlainObject(prev) && isPlainObject(next)) {\n const prevItems = array ? prev : Object.keys(prev);\n const prevSize = prevItems.length;\n const nextItems = array ? next : Object.keys(next);\n const nextSize = nextItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < nextSize; i++) {\n const key = array ? i : nextItems[i];\n if ((!array && prevItems.includes(key) || array) && prev[key] === void 0 && next[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(prev[key], next[key]);\n if (copy[key] === prev[key] && prev[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return prevSize === nextSize && equalItems === prevSize ? prev : copy;\n }\n return next;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction deepEqual(a, b, partial = false) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (!partial && aKeys.length !== bKeys.length) {\n return false;\n }\n return !bKeys.some(\n (key) => !(key in a) || !deepEqual(a[key], b[key], partial)\n );\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return !a.some((item, index) => !deepEqual(item, b[index], partial));\n }\n return false;\n}\nfunction useStableCallback(fn) {\n const fnRef = React.useRef(fn);\n fnRef.current = fn;\n const ref = React.useRef((...args) => fnRef.current(...args));\n return ref.current;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const item of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, item) || !Object.is(objA[item], objB[item])) {\n return false;\n }\n }\n return true;\n}\nconst useLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction escapeJSON(jsonString) {\n return jsonString.replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\").replace(/\"/g, '\\\\\"');\n}\nfunction createControlledPromise(onResolve) {\n let resolveLoadPromise;\n let rejectLoadPromise;\n const controlledPromise = new Promise((resolve, reject) => {\n resolveLoadPromise = resolve;\n rejectLoadPromise = reject;\n });\n controlledPromise.status = \"pending\";\n controlledPromise.resolve = (value) => {\n controlledPromise.status = \"resolved\";\n controlledPromise.value = value;\n resolveLoadPromise(value);\n onResolve == null ? void 0 : onResolve(value);\n };\n controlledPromise.reject = (e) => {\n controlledPromise.status = \"rejected\";\n rejectLoadPromise(e);\n };\n return controlledPromise;\n}\nfunction usePrevious(value) {\n const ref = React.useRef({\n value,\n prev: null\n });\n const current = ref.current.value;\n if (value !== current) {\n ref.current = {\n value,\n prev: current\n };\n }\n return ref.current.prev;\n}\nexport {\n createControlledPromise,\n deepEqual,\n escapeJSON,\n functionalUpdate,\n isPlainArray,\n isPlainObject,\n last,\n pick,\n replaceEqualDeep,\n shallow,\n useLayoutEffect,\n usePrevious,\n useStableCallback\n};\n//# sourceMappingURL=utils.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nfunction CatchBoundary(props) {\n const errorComponent = props.errorComponent ?? ErrorComponent;\n return /* @__PURE__ */ jsx(\n CatchBoundaryImpl,\n {\n getResetKey: props.getResetKey,\n onCatch: props.onCatch,\n children: ({ error, reset }) => {\n if (error) {\n return React.createElement(errorComponent, {\n error,\n reset\n });\n }\n return props.children;\n }\n }\n );\n}\nclass CatchBoundaryImpl extends React.Component {\n constructor() {\n super(...arguments);\n this.state = { error: null };\n }\n static getDerivedStateFromProps(props) {\n return { resetKey: props.getResetKey() };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n reset() {\n this.setState({ error: null });\n }\n componentDidUpdate(prevProps, prevState) {\n if (prevState.error && prevState.resetKey !== this.state.resetKey) {\n this.reset();\n }\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.onCatch) {\n this.props.onCatch(error, errorInfo);\n }\n }\n render() {\n return this.props.children({\n error: this.state.error,\n reset: () => {\n this.reset();\n }\n });\n }\n}\nfunction ErrorComponent({ error }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== \"production\");\n return /* @__PURE__ */ jsxs(\"div\", { style: { padding: \".5rem\", maxWidth: \"100%\" }, children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: \".5rem\" }, children: [\n /* @__PURE__ */ jsx(\"strong\", { style: { fontSize: \"1rem\" }, children: \"Something went wrong!\" }),\n /* @__PURE__ */ jsx(\n \"button\",\n {\n style: {\n appearance: \"none\",\n fontSize: \".6em\",\n border: \"1px solid currentColor\",\n padding: \".1rem .2rem\",\n fontWeight: \"bold\",\n borderRadius: \".25rem\"\n },\n onClick: () => setShow((d) => !d),\n children: show ? \"Hide Error\" : \"Show Error\"\n }\n )\n ] }),\n /* @__PURE__ */ jsx(\"div\", { style: { height: \".25rem\" } }),\n show ? /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\n \"pre\",\n {\n style: {\n fontSize: \".7em\",\n border: \"1px solid red\",\n borderRadius: \".25rem\",\n padding: \".3rem\",\n color: \"red\",\n overflow: \"auto\"\n },\n children: error.message ? /* @__PURE__ */ jsx(\"code\", { children: error.message }) : null\n }\n ) }) : null\n ] });\n}\nexport {\n CatchBoundary,\n ErrorComponent\n};\n//# sourceMappingURL=CatchBoundary.js.map\n","import { useStore } from \"@tanstack/react-store\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useRouterState(opts) {\n const contextRouter = useRouter({\n warn: (opts == null ? void 0 : opts.router) === void 0\n });\n return useStore(((opts == null ? void 0 : opts.router) || contextRouter).__store, opts == null ? void 0 : opts.select);\n}\nexport {\n useRouterState\n};\n//# sourceMappingURL=useRouterState.js.map\n","import * as React from \"react\";\nimport { pick, usePrevious, useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction Transitioner() {\n const router = useRouter();\n const mountLoadForRouter = React.useRef({ router, mounted: false });\n const routerState = useRouterState({\n select: (s) => pick(s, [\"isLoading\", \"location\", \"resolvedLocation\", \"isTransitioning\"])\n });\n const [isTransitioning, startReactTransition_] = React.useTransition();\n const hasPendingMatches = useRouterState({\n select: (s) => s.matches.some((d) => d.status === \"pending\")\n });\n const previousIsLoading = usePrevious(routerState.isLoading);\n const isAnyPending = routerState.isLoading || isTransitioning || hasPendingMatches;\n const previousIsAnyPending = usePrevious(isAnyPending);\n if (!router.isServer) {\n router.startReactTransition = startReactTransition_;\n }\n React.useEffect(() => {\n const unsub = router.history.subscribe(router.load);\n const nextLocation = router.buildLocation({\n to: router.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true\n });\n if (router.state.location.href !== nextLocation.href) {\n router.commitLocation({ ...nextLocation, replace: true });\n }\n return () => {\n unsub();\n };\n }, [router, router.history]);\n useLayoutEffect(() => {\n var _a;\n if (((_a = window.__TSR__) == null ? void 0 : _a.dehydrated) || mountLoadForRouter.current.router === router && mountLoadForRouter.current.mounted) {\n return;\n }\n mountLoadForRouter.current = { router, mounted: true };\n const tryLoad = async () => {\n try {\n await router.load();\n } catch (err) {\n console.error(err);\n }\n };\n tryLoad();\n }, [router]);\n useLayoutEffect(() => {\n if (previousIsLoading && !routerState.isLoading) {\n const toLocation = router.state.location;\n const fromLocation = router.state.resolvedLocation;\n const pathChanged = fromLocation.href !== toLocation.href;\n router.emit({\n type: \"onLoad\",\n // When the new URL has committed, when the new matches have been loaded into state.matches\n fromLocation,\n toLocation,\n pathChanged\n });\n }\n }, [previousIsLoading, router, routerState.isLoading]);\n useLayoutEffect(() => {\n if (previousIsAnyPending && !isAnyPending) {\n const toLocation = router.state.location;\n const fromLocation = router.state.resolvedLocation;\n const pathChanged = fromLocation.href !== toLocation.href;\n router.emit({\n type: \"onResolved\",\n fromLocation,\n toLocation,\n pathChanged\n });\n router.__store.setState((s) => ({\n ...s,\n status: \"idle\",\n resolvedLocation: s.location\n }));\n if (document.querySelector) {\n if (router.state.location.hash !== \"\") {\n const el = document.getElementById(router.state.location.hash);\n if (el) {\n el.scrollIntoView();\n }\n }\n }\n }\n }, [isAnyPending, previousIsAnyPending, router]);\n return null;\n}\nexport {\n Transitioner\n};\n//# sourceMappingURL=Transitioner.js.map\n","import * as React from \"react\";\nconst matchContext = React.createContext(void 0);\nexport {\n matchContext\n};\n//# sourceMappingURL=matchContext.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { CatchBoundary } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction notFound(options = {}) {\n options.isNotFound = true;\n if (options.throw) throw options;\n return options;\n}\nfunction isNotFound(obj) {\n return !!(obj == null ? void 0 : obj.isNotFound);\n}\nfunction CatchNotFound(props) {\n const resetKey = useRouterState({\n select: (s) => `not-found-${s.location.pathname}-${s.status}`\n });\n return /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n onCatch: (error, errorInfo) => {\n var _a;\n if (isNotFound(error)) {\n (_a = props.onCatch) == null ? void 0 : _a.call(props, error, errorInfo);\n } else {\n throw error;\n }\n },\n errorComponent: ({ error }) => {\n var _a;\n return (_a = props.fallback) == null ? void 0 : _a.call(props, error);\n },\n children: props.children\n }\n );\n}\nfunction DefaultGlobalNotFound() {\n return /* @__PURE__ */ jsx(\"p\", { children: \"Not Found\" });\n}\nexport {\n CatchNotFound,\n DefaultGlobalNotFound,\n isNotFound,\n notFound\n};\n//# sourceMappingURL=not-found.js.map\n","function redirect(opts) {\n opts.isRedirect = true;\n opts.statusCode = opts.statusCode || opts.code || 301;\n opts.headers = opts.headers || {};\n if (opts.throw) {\n throw opts;\n }\n return opts;\n}\nfunction isRedirect(obj) {\n return !!(obj == null ? void 0 : obj.isRedirect);\n}\nfunction isResolvedRedirect(obj) {\n return !!(obj == null ? void 0 : obj.isRedirect) && obj.href;\n}\nexport {\n isRedirect,\n isResolvedRedirect,\n redirect\n};\n//# sourceMappingURL=redirects.js.map\n","function isServerSideError(error) {\n if (!(typeof error === \"object\" && error && \"data\" in error)) return false;\n if (!(\"__isServerError\" in error && error.__isServerError)) return false;\n if (!(typeof error.data === \"object\" && error.data)) return false;\n return error.__isServerError === true;\n}\nfunction defaultDeserializeError(serializedData) {\n if (\"name\" in serializedData && \"message\" in serializedData) {\n const error = new Error(serializedData.message);\n error.name = serializedData.name;\n if (process.env.NODE_ENV === \"development\") {\n error.stack = serializedData.stack;\n }\n return error;\n }\n return serializedData.data;\n}\nexport {\n defaultDeserializeError,\n isServerSideError\n};\n//# sourceMappingURL=isServerSideError.js.map\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nfunction SafeFragment(props) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n}\nexport {\n SafeFragment\n};\n//# sourceMappingURL=SafeFragment.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport warning from \"tiny-warning\";\nimport { DefaultGlobalNotFound } from \"./not-found.js\";\nfunction renderRouteNotFound(router, route, data) {\n if (!route.options.notFoundComponent) {\n if (router.options.defaultNotFoundComponent) {\n return /* @__PURE__ */ jsx(router.options.defaultNotFoundComponent, { data });\n }\n if (process.env.NODE_ENV === \"development\") {\n warning(\n route.options.notFoundComponent,\n `A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (
Not Found
)`\n );\n }\n return /* @__PURE__ */ jsx(DefaultGlobalNotFound, {});\n }\n return /* @__PURE__ */ jsx(route.options.notFoundComponent, { data });\n}\nexport {\n renderRouteNotFound\n};\n//# sourceMappingURL=renderRouteNotFound.js.map\n","\"use client\";\nimport { jsx, jsxs, Fragment } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\nimport { ErrorComponent, CatchBoundary } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { pick, createControlledPromise } from \"./utils.js\";\nimport { isNotFound, CatchNotFound } from \"./not-found.js\";\nimport { isRedirect } from \"./redirects.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { isServerSideError, defaultDeserializeError } from \"./isServerSideError.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nimport { renderRouteNotFound } from \"./renderRouteNotFound.js\";\nimport { rootRouteId } from \"./root.js\";\nfunction Match({ matchId }) {\n var _a, _b;\n const router = useRouter();\n const routeId = useRouterState({\n select: (s) => {\n var _a2;\n return (_a2 = s.matches.find((d) => d.id === matchId)) == null ? void 0 : _a2.routeId;\n }\n });\n invariant(\n routeId,\n `Could not find routeId for matchId \"${matchId}\". Please file an issue!`\n );\n const route = router.routesById[routeId];\n const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent;\n const pendingElement = PendingComponent ? /* @__PURE__ */ jsx(PendingComponent, {}) : null;\n const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent;\n const routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch;\n const routeNotFoundComponent = route.isRoot ? (\n // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n route.options.notFoundComponent ?? ((_a = router.options.notFoundRoute) == null ? void 0 : _a.options.component)\n ) : route.options.notFoundComponent;\n const ResolvedSuspenseBoundary = (\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route.isRoot || route.options.wrapInSuspense) && (route.options.wrapInSuspense ?? PendingComponent ?? ((_b = route.options.errorComponent) == null ? void 0 : _b.preload)) ? React.Suspense : SafeFragment\n );\n const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment;\n const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment;\n const resetKey = useRouterState({\n select: (s) => s.resolvedLocation.state.key\n });\n return /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsx(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ jsx(\n ResolvedCatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: routeErrorComponent || ErrorComponent,\n onCatch: (error, errorInfo) => {\n if (isNotFound(error)) throw error;\n warning(false, `Error in route match: ${matchId}`);\n routeOnCatch == null ? void 0 : routeOnCatch(error, errorInfo);\n },\n children: /* @__PURE__ */ jsx(\n ResolvedNotFoundBoundary,\n {\n fallback: (error) => {\n if (!routeNotFoundComponent || error.routeId && error.routeId !== routeId || !error.routeId && !route.isRoot)\n throw error;\n return React.createElement(routeNotFoundComponent, error);\n },\n children: /* @__PURE__ */ jsx(MatchInner, { matchId })\n }\n )\n }\n ) }) });\n}\nfunction MatchInner({ matchId }) {\n var _a, _b;\n const router = useRouter();\n const routeId = useRouterState({\n select: (s) => {\n var _a2;\n return (_a2 = s.matches.find((d) => d.id === matchId)) == null ? void 0 : _a2.routeId;\n }\n });\n const route = router.routesById[routeId];\n const [match, matchIndex] = useRouterState({\n select: (s) => {\n const matchIndex2 = s.matches.findIndex((d) => d.id === matchId);\n const match2 = s.matches[matchIndex2];\n return [\n pick(match2, [\n \"id\",\n \"status\",\n \"error\",\n \"loadPromise\",\n \"minPendingPromise\"\n ]),\n matchIndex2\n ];\n }\n });\n const RouteErrorComponent = (route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent;\n if (match.status === \"notFound\") {\n let error;\n if (isServerSideError(match.error)) {\n const deserializeError = ((_a = router.options.errorSerializer) == null ? void 0 : _a.deserialize) ?? defaultDeserializeError;\n error = deserializeError(match.error.data);\n } else {\n error = match.error;\n }\n invariant(isNotFound(error), \"Expected a notFound error\");\n return renderRouteNotFound(router, route, error);\n }\n if (match.status === \"redirected\") {\n invariant(isRedirect(match.error), \"Expected a redirect error\");\n throw match.loadPromise;\n }\n if (match.status === \"error\") {\n if (router.isServer) {\n return /* @__PURE__ */ jsx(\n RouteErrorComponent,\n {\n error: match.error,\n info: {\n componentStack: \"\"\n }\n }\n );\n }\n if (isServerSideError(match.error)) {\n const deserializeError = ((_b = router.options.errorSerializer) == null ? void 0 : _b.deserialize) ?? defaultDeserializeError;\n throw deserializeError(match.error.data);\n } else {\n throw match.error;\n }\n }\n if (match.status === \"pending\") {\n const pendingMinMs = route.options.pendingMinMs ?? router.options.defaultPendingMinMs;\n if (pendingMinMs && !match.minPendingPromise) {\n match.minPendingPromise = createControlledPromise();\n if (!router.isServer) {\n Promise.resolve().then(() => {\n router.__store.setState((s) => ({\n ...s,\n matches: s.matches.map(\n (d) => d.id === match.id ? { ...d, minPendingPromise: createControlledPromise() } : d\n )\n }));\n });\n setTimeout(() => {\n router.__store.setState((s) => {\n return {\n ...s,\n matches: s.matches.map(\n (d) => {\n var _a2;\n return d.id === match.id ? {\n ...d,\n minPendingPromise: ((_a2 = d.minPendingPromise) == null ? void 0 : _a2.resolve(), void 0)\n } : d;\n }\n )\n };\n });\n }, pendingMinMs);\n }\n }\n throw match.loadPromise;\n }\n const Comp = route.options.component ?? router.options.defaultComponent;\n const out = Comp ? /* @__PURE__ */ jsx(Comp, {}) : /* @__PURE__ */ jsx(Outlet, {});\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n out,\n router.AfterEachMatch ? /* @__PURE__ */ jsx(router.AfterEachMatch, { match, matchIndex }) : null\n ] });\n}\nconst Outlet = React.memo(function Outlet2() {\n const router = useRouter();\n const matchId = React.useContext(matchContext);\n const routeId = useRouterState({\n select: (s) => {\n var _a;\n return (_a = s.matches.find((d) => d.id === matchId)) == null ? void 0 : _a.routeId;\n }\n });\n const route = router.routesById[routeId];\n const { parentGlobalNotFound } = useRouterState({\n select: (s) => {\n const matches = s.matches;\n const parentMatch = matches.find((d) => d.id === matchId);\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId}\"`\n );\n return {\n parentGlobalNotFound: parentMatch.globalNotFound\n };\n }\n });\n const childMatchId = useRouterState({\n select: (s) => {\n var _a;\n const matches = s.matches;\n const index = matches.findIndex((d) => d.id === matchId);\n return (_a = matches[index + 1]) == null ? void 0 : _a.id;\n }\n });\n if (parentGlobalNotFound) {\n return renderRouteNotFound(router, route, void 0);\n }\n if (!childMatchId) {\n return null;\n }\n const nextMatch = /* @__PURE__ */ jsx(Match, { matchId: childMatchId });\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n if (matchId === rootRouteId) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: pendingElement, children: nextMatch });\n }\n return nextMatch;\n});\nexport {\n Match,\n Outlet\n};\n//# sourceMappingURL=Match.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Transitioner } from \"./Transitioner.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { Match } from \"./Match.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nfunction Matches() {\n const router = useRouter();\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n const ResolvedSuspense = !router.state.matches.length ? React.Suspense : SafeFragment;\n const inner = /* @__PURE__ */ jsxs(ResolvedSuspense, { fallback: pendingElement, children: [\n /* @__PURE__ */ jsx(Transitioner, {}),\n /* @__PURE__ */ jsx(MatchesInner, {})\n ] });\n return router.options.InnerWrap ? /* @__PURE__ */ jsx(router.options.InnerWrap, { children: inner }) : inner;\n}\nfunction MatchesInner() {\n const matchId = useRouterState({\n select: (s) => {\n var _a;\n return (_a = s.matches[0]) == null ? void 0 : _a.id;\n }\n });\n const resetKey = useRouterState({\n select: (s) => s.resolvedLocation.state.key\n });\n return /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: ErrorComponent,\n onCatch: (error) => {\n warning(\n false,\n `The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`\n );\n warning(false, error.message || error.toString());\n },\n children: matchId ? /* @__PURE__ */ jsx(Match, { matchId }) : null\n }\n ) });\n}\nfunction useMatchRoute() {\n const router = useRouter();\n return React.useCallback(\n (opts) => {\n const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n return router.matchRoute(rest, {\n pending,\n caseSensitive,\n fuzzy,\n includeSearch\n });\n },\n [router]\n );\n}\nfunction MatchRoute(props) {\n const matchRoute = useMatchRoute();\n const params = matchRoute(props);\n if (typeof props.children === \"function\") {\n return props.children(params);\n }\n return params ? props.children : null;\n}\nfunction useMatches(opts) {\n return useRouterState({\n select: (state) => {\n const matches = state.matches;\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n }\n });\n}\nfunction useParentMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n 0,\n matches.findIndex((d) => d.id === contextMatchId)\n );\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n }\n });\n}\nfunction useChildMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n matches.findIndex((d) => d.id === contextMatchId) + 1\n );\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n }\n });\n}\nexport {\n MatchRoute,\n Matches,\n useChildMatches,\n useMatchRoute,\n useMatches,\n useParentMatches\n};\n//# sourceMappingURL=Matches.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Matches } from \"./Matches.js\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction RouterContextProvider({\n router,\n children,\n ...rest\n}) {\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest.context\n }\n });\n const routerContext = getRouterContext();\n const provider = /* @__PURE__ */ jsx(routerContext.Provider, { value: router, children });\n if (router.options.Wrap) {\n return /* @__PURE__ */ jsx(router.options.Wrap, { children: provider });\n }\n return provider;\n}\nfunction RouterProvider({ router, ...rest }) {\n return /* @__PURE__ */ jsx(RouterContextProvider, { router, ...rest, children: /* @__PURE__ */ jsx(Matches, {}) });\n}\nfunction getRouteMatch(state, id) {\n return [\n ...state.cachedMatches,\n ...state.pendingMatches ?? [],\n ...state.matches\n ].find((d) => d.id === id);\n}\nexport {\n RouterContextProvider,\n RouterProvider,\n getRouteMatch\n};\n//# sourceMappingURL=RouterProvider.js.map\n","import { last } from \"./utils.js\";\nfunction joinPaths(paths) {\n return cleanPath(paths.filter(Boolean).join(\"/\"));\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n return path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if (value.endsWith(\"/\") && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction resolvePath({\n basepath,\n base,\n to,\n trailingSlash = \"never\"\n}) {\n var _a, _b;\n base = base.replace(new RegExp(`^${basepath}`), \"/\");\n to = to.replace(new RegExp(`^${basepath}`), \"/\");\n let baseSegments = parsePathname(base);\n const toSegments = parsePathname(to);\n if (baseSegments.length > 1 && ((_a = last(baseSegments)) == null ? void 0 : _a.value) === \"/\") {\n baseSegments.pop();\n }\n toSegments.forEach((toSegment, index) => {\n if (toSegment.value === \"/\") {\n if (!index) {\n baseSegments = [toSegment];\n } else if (index === toSegments.length - 1) {\n baseSegments.push(toSegment);\n } else ;\n } else if (toSegment.value === \"..\") {\n baseSegments.pop();\n } else if (toSegment.value === \".\") ;\n else {\n baseSegments.push(toSegment);\n }\n });\n if (baseSegments.length > 1) {\n if (((_b = last(baseSegments)) == null ? void 0 : _b.value) === \"/\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push({ type: \"pathname\", value: \"/\" });\n }\n }\n const joined = joinPaths([basepath, ...baseSegments.map((d) => d.value)]);\n return cleanPath(joined);\n}\nfunction parsePathname(pathname) {\n if (!pathname) {\n return [];\n }\n pathname = cleanPath(pathname);\n const segments = [];\n if (pathname.slice(0, 1) === \"/\") {\n pathname = pathname.substring(1);\n segments.push({\n type: \"pathname\",\n value: \"/\"\n });\n }\n if (!pathname) {\n return segments;\n }\n const split = pathname.split(\"/\").filter(Boolean);\n segments.push(\n ...split.map((part) => {\n if (part === \"$\" || part === \"*\") {\n return {\n type: \"wildcard\",\n value: part\n };\n }\n if (part.charAt(0) === \"$\") {\n return {\n type: \"param\",\n value: part\n };\n }\n return {\n type: \"pathname\",\n value: part\n };\n })\n );\n if (pathname.slice(-1) === \"/\") {\n pathname = pathname.substring(1);\n segments.push({\n type: \"pathname\",\n value: \"/\"\n });\n }\n return segments;\n}\nfunction interpolatePath({\n path,\n params,\n leaveWildcards,\n leaveParams\n}) {\n const interpolatedPathSegments = parsePathname(path);\n const encodedParams = {};\n for (const [key, value] of Object.entries(params)) {\n const isValueString = typeof value === \"string\";\n if ([\"*\", \"_splat\"].includes(key)) {\n encodedParams[key] = isValueString ? encodeURI(value) : value;\n } else {\n encodedParams[key] = isValueString ? encodeURIComponent(value) : value;\n }\n }\n return joinPaths(\n interpolatedPathSegments.map((segment) => {\n if (segment.type === \"wildcard\") {\n const value = encodedParams._splat;\n if (leaveWildcards) return `${segment.value}${value ?? \"\"}`;\n return value;\n }\n if (segment.type === \"param\") {\n if (leaveParams) {\n const value = encodedParams[segment.value];\n return `${segment.value}${value ?? \"\"}`;\n }\n return encodedParams[segment.value.substring(1)] ?? \"undefined\";\n }\n return segment.value;\n })\n );\n}\nfunction matchPathname(basepath, currentPathname, matchLocation) {\n const pathParams = matchByPath(basepath, currentPathname, matchLocation);\n if (matchLocation.to && !pathParams) {\n return;\n }\n return pathParams ?? {};\n}\nfunction removeBasepath(basepath, pathname) {\n switch (true) {\n case basepath === \"/\":\n return pathname;\n case pathname === basepath:\n return \"\";\n case pathname.length < basepath.length:\n return pathname;\n case pathname[basepath.length] !== \"/\":\n return pathname;\n case pathname.startsWith(basepath):\n return pathname.slice(basepath.length);\n default:\n return pathname;\n }\n}\nfunction matchByPath(basepath, from, matchLocation) {\n from = removeBasepath(basepath, from);\n const to = removeBasepath(basepath, `${matchLocation.to ?? \"$\"}`);\n const baseSegments = parsePathname(from);\n const routeSegments = parsePathname(to);\n if (!from.startsWith(\"/\")) {\n baseSegments.unshift({\n type: \"pathname\",\n value: \"/\"\n });\n }\n if (!to.startsWith(\"/\")) {\n routeSegments.unshift({\n type: \"pathname\",\n value: \"/\"\n });\n }\n const params = {};\n const isMatch = (() => {\n for (let i = 0; i < Math.max(baseSegments.length, routeSegments.length); i++) {\n const baseSegment = baseSegments[i];\n const routeSegment = routeSegments[i];\n const isLastBaseSegment = i >= baseSegments.length - 1;\n const isLastRouteSegment = i >= routeSegments.length - 1;\n if (routeSegment) {\n if (routeSegment.type === \"wildcard\") {\n if (baseSegment == null ? void 0 : baseSegment.value) {\n const _splat = decodeURI(\n joinPaths(baseSegments.slice(i).map((d) => d.value))\n );\n params[\"*\"] = _splat;\n params[\"_splat\"] = _splat;\n return true;\n }\n return false;\n }\n if (routeSegment.type === \"pathname\") {\n if (routeSegment.value === \"/\" && !(baseSegment == null ? void 0 : baseSegment.value)) {\n return true;\n }\n if (baseSegment) {\n if (matchLocation.caseSensitive) {\n if (routeSegment.value !== baseSegment.value) {\n return false;\n }\n } else if (routeSegment.value.toLowerCase() !== baseSegment.value.toLowerCase()) {\n return false;\n }\n }\n }\n if (!baseSegment) {\n return false;\n }\n if (routeSegment.type === \"param\") {\n if (baseSegment.value === \"/\") {\n return false;\n }\n if (baseSegment.value.charAt(0) !== \"$\") {\n params[routeSegment.value.substring(1)] = decodeURIComponent(\n baseSegment.value\n );\n }\n }\n }\n if (!isLastBaseSegment && isLastRouteSegment) {\n params[\"**\"] = joinPaths(baseSegments.slice(i + 1).map((d) => d.value));\n return !!matchLocation.fuzzy && (routeSegment == null ? void 0 : routeSegment.value) !== \"/\";\n }\n }\n return true;\n })();\n return isMatch ? params : void 0;\n}\nexport {\n cleanPath,\n exactPathTest,\n interpolatePath,\n joinPaths,\n matchByPath,\n matchPathname,\n parsePathname,\n removeBasepath,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","import { createBrowserHistory, createMemoryHistory } from \"@tanstack/history\";\nimport { Store } from \"@tanstack/react-store\";\nimport invariant from \"tiny-invariant\";\nimport { rootRouteId } from \"./root.js\";\nimport { defaultStringifySearch, defaultParseSearch } from \"./searchParams.js\";\nimport { createControlledPromise, replaceEqualDeep, pick, last, deepEqual, functionalUpdate } from \"./utils.js\";\nimport { getRouteMatch } from \"./RouterProvider.js\";\nimport { trimPath, trimPathLeft, parsePathname, resolvePath, cleanPath, matchPathname, trimPathRight, interpolatePath, joinPaths } from \"./path.js\";\nimport { isResolvedRedirect, isRedirect } from \"./redirects.js\";\nimport { isNotFound } from \"./not-found.js\";\nconst componentTypes = [\n \"component\",\n \"errorComponent\",\n \"pendingComponent\",\n \"notFoundComponent\"\n];\nfunction createRouter(options) {\n return new Router(options);\n}\nclass Router {\n /**\n * @deprecated Use the `createRouter` function instead\n */\n constructor(options) {\n this.tempLocationKey = `${Math.round(\n Math.random() * 1e7\n )}`;\n this.resetNextScroll = true;\n this.shouldViewTransition = void 0;\n this.latestLoadPromise = Promise.resolve();\n this.subscribers = /* @__PURE__ */ new Set();\n this.isServer = typeof document === \"undefined\";\n this.startReactTransition = (fn) => fn();\n this.update = (newOptions) => {\n if (newOptions.notFoundRoute) {\n console.warn(\n \"The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/guide/not-found-errors#migrating-from-notfoundroute for more info.\"\n );\n }\n const previousOptions = this.options;\n this.options = {\n ...this.options,\n ...newOptions\n };\n if (!this.basepath || newOptions.basepath && newOptions.basepath !== previousOptions.basepath) {\n if (newOptions.basepath === void 0 || newOptions.basepath === \"\" || newOptions.basepath === \"/\") {\n this.basepath = \"/\";\n } else {\n this.basepath = `/${trimPath(newOptions.basepath)}`;\n }\n }\n if (\n // eslint-disable-next-line ts/no-unnecessary-condition\n !this.history || this.options.history && this.options.history !== this.history\n ) {\n this.history = this.options.history ?? (typeof document !== \"undefined\" ? createBrowserHistory() : createMemoryHistory({\n initialEntries: [this.options.basepath || \"/\"]\n }));\n this.latestLocation = this.parseLocation();\n }\n if (this.options.routeTree !== this.routeTree) {\n this.routeTree = this.options.routeTree;\n this.buildRouteTree();\n }\n if (!this.__store) {\n this.__store = new Store(getInitialRouterState(this.latestLocation), {\n onUpdate: () => {\n this.__store.state = {\n ...this.state,\n cachedMatches: this.state.cachedMatches.filter(\n (d) => ![\"redirected\"].includes(d.status)\n )\n };\n }\n });\n }\n };\n this.buildRouteTree = () => {\n this.routesById = {};\n this.routesByPath = {};\n const notFoundRoute = this.options.notFoundRoute;\n if (notFoundRoute) {\n notFoundRoute.init({ originalIndex: 99999999999 });\n this.routesById[notFoundRoute.id] = notFoundRoute;\n }\n const recurseRoutes = (childRoutes) => {\n childRoutes.forEach((childRoute, i) => {\n childRoute.init({ originalIndex: i });\n const existingRoute = this.routesById[childRoute.id];\n invariant(\n !existingRoute,\n `Duplicate routes found with id: ${String(childRoute.id)}`\n );\n this.routesById[childRoute.id] = childRoute;\n if (!childRoute.isRoot && childRoute.path) {\n const trimmedFullPath = trimPathRight(childRoute.fullPath);\n if (!this.routesByPath[trimmedFullPath] || childRoute.fullPath.endsWith(\"/\")) {\n this.routesByPath[trimmedFullPath] = childRoute;\n }\n }\n const children = childRoute.children;\n if (children == null ? void 0 : children.length) {\n recurseRoutes(children);\n }\n });\n };\n recurseRoutes([this.routeTree]);\n const scoredRoutes = [];\n const routes = Object.values(this.routesById);\n routes.forEach((d, i) => {\n var _a;\n if (d.isRoot || !d.path) {\n return;\n }\n const trimmed = trimPathLeft(d.fullPath);\n const parsed = parsePathname(trimmed);\n while (parsed.length > 1 && ((_a = parsed[0]) == null ? void 0 : _a.value) === \"/\") {\n parsed.shift();\n }\n const scores = parsed.map((segment) => {\n if (segment.value === \"/\") {\n return 0.75;\n }\n if (segment.type === \"param\") {\n return 0.5;\n }\n if (segment.type === \"wildcard\") {\n return 0.25;\n }\n return 1;\n });\n scoredRoutes.push({ child: d, trimmed, parsed, index: i, scores });\n });\n this.flatRoutes = scoredRoutes.sort((a, b) => {\n const minLength = Math.min(a.scores.length, b.scores.length);\n for (let i = 0; i < minLength; i++) {\n if (a.scores[i] !== b.scores[i]) {\n return b.scores[i] - a.scores[i];\n }\n }\n if (a.scores.length !== b.scores.length) {\n return b.scores.length - a.scores.length;\n }\n for (let i = 0; i < minLength; i++) {\n if (a.parsed[i].value !== b.parsed[i].value) {\n return a.parsed[i].value > b.parsed[i].value ? 1 : -1;\n }\n }\n return a.index - b.index;\n }).map((d, i) => {\n d.child.rank = i;\n return d.child;\n });\n };\n this.subscribe = (eventType, fn) => {\n const listener = {\n eventType,\n fn\n };\n this.subscribers.add(listener);\n return () => {\n this.subscribers.delete(listener);\n };\n };\n this.emit = (routerEvent) => {\n this.subscribers.forEach((listener) => {\n if (listener.eventType === routerEvent.type) {\n listener.fn(routerEvent);\n }\n });\n };\n this.checkLatest = (promise) => {\n if (this.latestLoadPromise !== promise) {\n throw this.latestLoadPromise;\n }\n };\n this.parseLocation = (previousLocation) => {\n const parse = ({\n pathname,\n search,\n hash,\n state\n }) => {\n const parsedSearch = this.options.parseSearch(search);\n const searchStr = this.options.stringifySearch(parsedSearch);\n return {\n pathname,\n searchStr,\n search: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.search, parsedSearch),\n hash: hash.split(\"#\").reverse()[0] ?? \"\",\n href: `${pathname}${searchStr}${hash}`,\n state: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.state, state)\n };\n };\n const location = parse(this.history.location);\n const { __tempLocation, __tempKey } = location.state;\n if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {\n const parsedTempLocation = parse(__tempLocation);\n parsedTempLocation.state.key = location.state.key;\n delete parsedTempLocation.state.__tempLocation;\n return {\n ...parsedTempLocation,\n maskedLocation: location\n };\n }\n return location;\n };\n this.resolvePathWithBase = (from, path) => {\n const resolvedPath = resolvePath({\n basepath: this.basepath,\n base: from,\n to: cleanPath(path),\n trailingSlash: this.options.trailingSlash\n });\n return resolvedPath;\n };\n this.matchRoutes = (pathname, locationSearch, opts) => {\n let routeParams = {};\n const foundRoute = this.flatRoutes.find((route) => {\n const matchedParams = matchPathname(\n this.basepath,\n trimPathRight(pathname),\n {\n to: route.fullPath,\n caseSensitive: route.options.caseSensitive ?? this.options.caseSensitive,\n fuzzy: true\n }\n );\n if (matchedParams) {\n routeParams = matchedParams;\n return true;\n }\n return false;\n });\n let routeCursor = foundRoute || this.routesById[rootRouteId];\n const matchedRoutes = [routeCursor];\n let isGlobalNotFound = false;\n if (\n // If we found a route, and it's not an index route and we have left over path\n foundRoute ? foundRoute.path !== \"/\" && routeParams[\"**\"] : (\n // Or if we didn't find a route and we have left over path\n trimPathRight(pathname)\n )\n ) {\n if (this.options.notFoundRoute) {\n matchedRoutes.push(this.options.notFoundRoute);\n } else {\n isGlobalNotFound = true;\n }\n }\n while (routeCursor.parentRoute) {\n routeCursor = routeCursor.parentRoute;\n matchedRoutes.unshift(routeCursor);\n }\n const globalNotFoundRouteId = (() => {\n if (!isGlobalNotFound) {\n return void 0;\n }\n if (this.options.notFoundMode !== \"root\") {\n for (let i = matchedRoutes.length - 1; i >= 0; i--) {\n const route = matchedRoutes[i];\n if (route.children) {\n return route.id;\n }\n }\n }\n return rootRouteId;\n })();\n const parseErrors = matchedRoutes.map((route) => {\n var _a;\n let parsedParamsError;\n const parseParams = ((_a = route.options.params) == null ? void 0 : _a.parse) ?? route.options.parseParams;\n if (parseParams) {\n try {\n const parsedParams = parseParams(routeParams);\n Object.assign(routeParams, parsedParams);\n } catch (err) {\n parsedParamsError = new PathParamError(err.message, {\n cause: err\n });\n if (opts == null ? void 0 : opts.throwOnError) {\n throw parsedParamsError;\n }\n return parsedParamsError;\n }\n }\n return;\n });\n const matches = [];\n matchedRoutes.forEach((route, index) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n const parentMatch = matches[index - 1];\n const [preMatchSearch, searchError] = (() => {\n const parentSearch = (parentMatch == null ? void 0 : parentMatch.search) ?? locationSearch;\n try {\n const validator = typeof route.options.validateSearch === \"object\" ? route.options.validateSearch.parse : route.options.validateSearch;\n const search = (validator == null ? void 0 : validator(parentSearch)) ?? {};\n return [\n {\n ...parentSearch,\n ...search\n },\n void 0\n ];\n } catch (err) {\n const searchParamError = new SearchParamError(err.message, {\n cause: err\n });\n if (opts == null ? void 0 : opts.throwOnError) {\n throw searchParamError;\n }\n return [parentSearch, searchParamError];\n }\n })();\n const loaderDeps = ((_b = (_a = route.options).loaderDeps) == null ? void 0 : _b.call(_a, {\n search: preMatchSearch\n })) ?? \"\";\n const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : \"\";\n const interpolatedPath = interpolatePath({\n path: route.fullPath,\n params: routeParams\n });\n const matchId = interpolatePath({\n path: route.id,\n params: routeParams,\n leaveWildcards: true\n }) + loaderDepsHash;\n const existingMatch = getRouteMatch(this.state, matchId);\n const cause = this.state.matches.find((d) => d.id === matchId) ? \"stay\" : \"enter\";\n let match;\n if (existingMatch) {\n match = {\n ...existingMatch,\n cause,\n params: routeParams\n };\n } else {\n const status = route.options.loader || route.options.beforeLoad ? \"pending\" : \"success\";\n const loadPromise = createControlledPromise();\n if (status === \"success\") {\n loadPromise.resolve();\n }\n match = {\n id: matchId,\n index,\n routeId: route.id,\n params: routeParams,\n pathname: joinPaths([this.basepath, interpolatedPath]),\n updatedAt: Date.now(),\n search: {},\n searchError: void 0,\n status: \"pending\",\n isFetching: false,\n error: void 0,\n paramsError: parseErrors[index],\n loaderPromise: Promise.resolve(),\n loadPromise,\n routeContext: void 0,\n context: void 0,\n abortController: new AbortController(),\n fetchCount: 0,\n cause,\n loaderDeps,\n invalid: false,\n preload: false,\n links: (_d = (_c = route.options).links) == null ? void 0 : _d.call(_c),\n scripts: (_f = (_e = route.options).scripts) == null ? void 0 : _f.call(_e),\n staticData: route.options.staticData || {}\n };\n }\n if (match.status === \"success\") {\n match.meta = (_h = (_g = route.options).meta) == null ? void 0 : _h.call(_g, {\n matches,\n params: match.params,\n loaderData: match.loaderData\n });\n match.headers = (_j = (_i = route.options).headers) == null ? void 0 : _j.call(_i, {\n loaderData: match.loaderData\n });\n }\n if (!(opts == null ? void 0 : opts.preload)) {\n match.globalNotFound = globalNotFoundRouteId === route.id;\n }\n match.search = replaceEqualDeep(match.search, preMatchSearch);\n match.searchError = searchError;\n matches.push(match);\n });\n return matches;\n };\n this.cancelMatch = (id) => {\n var _a;\n (_a = getRouteMatch(this.state, id)) == null ? void 0 : _a.abortController.abort();\n };\n this.cancelMatches = () => {\n var _a;\n (_a = this.state.pendingMatches) == null ? void 0 : _a.forEach((match) => {\n this.cancelMatch(match.id);\n });\n };\n this.buildLocation = (opts) => {\n const build = (dest = {}, matches) => {\n var _a, _b, _c;\n const currentLocation = this.state.isLoading ? this.state.resolvedLocation : this.latestLocation;\n const location = dest._fromLocation ?? currentLocation;\n let fromPath = location.pathname;\n let fromSearch = dest.fromSearch || location.search;\n const fromMatches = this.matchRoutes(location.pathname, fromSearch);\n const fromMatch = dest.from != null ? fromMatches.find(\n (d) => matchPathname(this.basepath, trimPathRight(d.pathname), {\n to: dest.from,\n caseSensitive: false,\n fuzzy: false\n })\n ) : void 0;\n fromPath = (fromMatch == null ? void 0 : fromMatch.pathname) || fromPath;\n invariant(\n dest.from == null || fromMatch != null,\n \"Could not find match for from: \" + dest.from\n );\n fromSearch = ((_a = last(fromMatches)) == null ? void 0 : _a.search) || this.latestLocation.search;\n const stayingMatches = matches == null ? void 0 : matches.filter(\n (d) => fromMatches.find((e) => e.routeId === d.routeId)\n );\n const fromRouteByFromPathRouteId = this.routesById[(_b = stayingMatches == null ? void 0 : stayingMatches.find((d) => d.pathname === fromPath)) == null ? void 0 : _b.routeId];\n let pathname = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(\n fromPath,\n (fromRouteByFromPathRouteId == null ? void 0 : fromRouteByFromPathRouteId.to) ?? fromPath\n );\n const prevParams = { ...(_c = last(fromMatches)) == null ? void 0 : _c.params };\n let nextParams = (dest.params ?? true) === true ? prevParams : { ...prevParams, ...functionalUpdate(dest.params, prevParams) };\n if (Object.keys(nextParams).length > 0) {\n matches == null ? void 0 : matches.map((d) => {\n var _a2;\n const route = this.looseRoutesById[d.routeId];\n return ((_a2 = route == null ? void 0 : route.options.params) == null ? void 0 : _a2.stringify) ?? route.options.stringifyParams;\n }).filter(Boolean).forEach((fn) => {\n nextParams = { ...nextParams, ...fn(nextParams) };\n });\n }\n pathname = interpolatePath({\n path: pathname,\n params: nextParams ?? {},\n leaveWildcards: false,\n leaveParams: opts.leaveParams\n });\n const preSearchFilters = (stayingMatches == null ? void 0 : stayingMatches.map(\n (match) => this.looseRoutesById[match.routeId].options.preSearchFilters ?? []\n ).flat().filter(Boolean)) ?? [];\n const postSearchFilters = (stayingMatches == null ? void 0 : stayingMatches.map(\n (match) => this.looseRoutesById[match.routeId].options.postSearchFilters ?? []\n ).flat().filter(Boolean)) ?? [];\n const preFilteredSearch = preSearchFilters.length ? preSearchFilters.reduce((prev, next) => next(prev), fromSearch) : fromSearch;\n const destSearch = dest.search === true ? preFilteredSearch : dest.search ? functionalUpdate(dest.search, preFilteredSearch) : preSearchFilters.length ? preFilteredSearch : {};\n const postFilteredSearch = postSearchFilters.length ? postSearchFilters.reduce((prev, next) => next(prev), destSearch) : destSearch;\n const search = replaceEqualDeep(fromSearch, postFilteredSearch);\n const searchStr = this.options.stringifySearch(search);\n const hash = dest.hash === true ? this.latestLocation.hash : dest.hash ? functionalUpdate(dest.hash, this.latestLocation.hash) : void 0;\n const hashStr = hash ? `#${hash}` : \"\";\n let nextState = dest.state === true ? this.latestLocation.state : dest.state ? functionalUpdate(dest.state, this.latestLocation.state) : {};\n nextState = replaceEqualDeep(this.latestLocation.state, nextState);\n return {\n pathname,\n search,\n searchStr,\n state: nextState,\n hash: hash ?? \"\",\n href: `${pathname}${searchStr}${hashStr}`,\n unmaskOnReload: dest.unmaskOnReload\n };\n };\n const buildWithMatches = (dest = {}, maskedDest) => {\n var _a;\n const next = build(dest);\n let maskedNext = maskedDest ? build(maskedDest) : void 0;\n if (!maskedNext) {\n let params = {};\n const foundMask = (_a = this.options.routeMasks) == null ? void 0 : _a.find((d) => {\n const match = matchPathname(this.basepath, next.pathname, {\n to: d.from,\n caseSensitive: false,\n fuzzy: false\n });\n if (match) {\n params = match;\n return true;\n }\n return false;\n });\n if (foundMask) {\n const { from, ...maskProps } = foundMask;\n maskedDest = {\n ...pick(opts, [\"from\"]),\n ...maskProps,\n params\n };\n maskedNext = build(maskedDest);\n }\n }\n const nextMatches = this.matchRoutes(next.pathname, next.search);\n const maskedMatches = maskedNext ? this.matchRoutes(maskedNext.pathname, maskedNext.search) : void 0;\n const maskedFinal = maskedNext ? build(maskedDest, maskedMatches) : void 0;\n const final = build(dest, nextMatches);\n if (maskedFinal) {\n final.maskedLocation = maskedFinal;\n }\n return final;\n };\n if (opts.mask) {\n return buildWithMatches(opts, {\n ...pick(opts, [\"from\"]),\n ...opts.mask\n });\n }\n return buildWithMatches(opts);\n };\n this.commitLocation = async ({\n startTransition,\n viewTransition,\n ignoreBlocker,\n ...next\n }) => {\n const isSameState = () => {\n next.state.key = this.latestLocation.state.key;\n const isEqual = deepEqual(next.state, this.latestLocation.state);\n delete next.state.key;\n return isEqual;\n };\n const isSameUrl = this.latestLocation.href === next.href;\n if (isSameUrl && isSameState()) {\n this.load();\n } else {\n let { maskedLocation, ...nextHistory } = next;\n if (maskedLocation) {\n nextHistory = {\n ...maskedLocation,\n state: {\n ...maskedLocation.state,\n __tempKey: void 0,\n __tempLocation: {\n ...nextHistory,\n search: nextHistory.searchStr,\n state: {\n ...nextHistory.state,\n __tempKey: void 0,\n __tempLocation: void 0,\n key: void 0\n }\n }\n }\n };\n if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) {\n nextHistory.state.__tempKey = this.tempLocationKey;\n }\n }\n this.shouldViewTransition = viewTransition;\n this.history[next.replace ? \"replace\" : \"push\"](\n nextHistory.href,\n nextHistory.state,\n { ignoreBlocker }\n );\n }\n this.resetNextScroll = next.resetScroll ?? true;\n return this.latestLoadPromise;\n };\n this.buildAndCommitLocation = ({\n replace,\n resetScroll,\n startTransition,\n viewTransition,\n ignoreBlocker,\n ...rest\n } = {}) => {\n const location = this.buildLocation(rest);\n return this.commitLocation({\n ...location,\n startTransition,\n viewTransition,\n replace,\n resetScroll,\n ignoreBlocker\n });\n };\n this.navigate = ({ from, to, __isRedirect, ...rest }) => {\n const toString = String(to);\n let isExternal;\n try {\n new URL(`${toString}`);\n isExternal = true;\n } catch (e) {\n }\n invariant(\n !isExternal,\n \"Attempting to navigate to external url with this.navigate!\"\n );\n return this.buildAndCommitLocation({\n ...rest,\n from,\n to\n // to: toString,\n });\n };\n this.load = async () => {\n this.latestLocation = this.parseLocation(this.latestLocation);\n if (this.state.location === this.latestLocation) {\n return;\n }\n const promise = createControlledPromise();\n this.latestLoadPromise = promise;\n let redirect;\n let notFound;\n this.startReactTransition(async () => {\n try {\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n const pathDidChange = prevLocation.href !== next.href;\n this.cancelMatches();\n let pendingMatches;\n this.__store.batch(() => {\n pendingMatches = this.matchRoutes(next.pathname, next.search);\n this.__store.setState((s) => ({\n ...s,\n status: \"pending\",\n isLoading: true,\n location: next,\n pendingMatches,\n // If a cached moved to pendingMatches, remove it from cachedMatches\n cachedMatches: s.cachedMatches.filter((d) => {\n return !pendingMatches.find((e) => e.id === d.id);\n })\n }));\n });\n if (!this.state.redirect) {\n this.emit({\n type: \"onBeforeNavigate\",\n fromLocation: prevLocation,\n toLocation: next,\n pathChanged: pathDidChange\n });\n }\n this.emit({\n type: \"onBeforeLoad\",\n fromLocation: prevLocation,\n toLocation: next,\n pathChanged: pathDidChange\n });\n await this.loadMatches({\n matches: pendingMatches,\n location: next,\n checkLatest: () => this.checkLatest(promise),\n onReady: async () => {\n await this.startViewTransition(async () => {\n let exitingMatches;\n let enteringMatches;\n let stayingMatches;\n this.__store.batch(() => {\n this.__store.setState((s) => {\n const previousMatches = s.matches;\n const newMatches = s.pendingMatches || s.matches;\n exitingMatches = previousMatches.filter(\n (match) => !newMatches.find((d) => d.id === match.id)\n );\n enteringMatches = newMatches.filter(\n (match) => !previousMatches.find((d) => d.id === match.id)\n );\n stayingMatches = previousMatches.filter(\n (match) => newMatches.find((d) => d.id === match.id)\n );\n return {\n ...s,\n isLoading: false,\n matches: newMatches,\n pendingMatches: void 0,\n cachedMatches: [\n ...s.cachedMatches,\n ...exitingMatches.filter((d) => d.status !== \"error\")\n ]\n };\n });\n this.cleanCache();\n });\n [\n [exitingMatches, \"onLeave\"],\n [enteringMatches, \"onEnter\"],\n [stayingMatches, \"onStay\"]\n ].forEach(([matches, hook]) => {\n matches.forEach((match) => {\n var _a, _b;\n (_b = (_a = this.looseRoutesById[match.routeId].options)[hook]) == null ? void 0 : _b.call(_a, match);\n });\n });\n });\n }\n });\n } catch (err) {\n if (isResolvedRedirect(err)) {\n redirect = err;\n if (!this.isServer) {\n this.navigate({ ...err, replace: true, __isRedirect: true });\n }\n } else if (isNotFound(err)) {\n notFound = err;\n }\n this.__store.setState((s) => ({\n ...s,\n statusCode: redirect ? redirect.statusCode : notFound ? 404 : s.matches.some((d) => d.status === \"error\") ? 500 : 200,\n redirect\n }));\n }\n promise.resolve();\n });\n return this.latestLoadPromise;\n };\n this.startViewTransition = async (fn) => {\n var _a, _b;\n const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition;\n delete this.shouldViewTransition;\n ((_b = (_a = shouldViewTransition && typeof document !== \"undefined\" ? document : void 0) == null ? void 0 : _a.startViewTransition) == null ? void 0 : _b.call(_a, fn)) || fn();\n };\n this.loadMatches = async ({\n checkLatest,\n location,\n matches,\n preload,\n onReady\n }) => {\n let firstBadMatchIndex;\n let rendered = false;\n const triggerOnReady = async () => {\n if (!rendered) {\n rendered = true;\n await (onReady == null ? void 0 : onReady());\n }\n };\n if (!this.isServer && !this.state.matches.length) {\n triggerOnReady();\n }\n const updateMatch = (id, updater, opts) => {\n var _a;\n let updated;\n const isPending = (_a = this.state.pendingMatches) == null ? void 0 : _a.find((d) => d.id === id);\n const isMatched = this.state.matches.find((d) => d.id === id);\n const matchesKey = isPending ? \"pendingMatches\" : isMatched ? \"matches\" : \"cachedMatches\";\n this.__store.setState((s) => {\n var _a2;\n return {\n ...s,\n [matchesKey]: (_a2 = s[matchesKey]) == null ? void 0 : _a2.map(\n (d) => d.id === id ? updated = updater(d) : d\n )\n };\n });\n return updated;\n };\n const handleRedirectAndNotFound = (match, err) => {\n if (isResolvedRedirect(err)) throw err;\n if (isRedirect(err) || isNotFound(err)) {\n updateMatch(match.id, (prev) => ({\n ...prev,\n status: isRedirect(err) ? \"redirected\" : isNotFound(err) ? \"notFound\" : \"error\",\n isFetching: false,\n error: err\n }));\n if (!err.routeId) {\n err.routeId = match.routeId;\n }\n if (isRedirect(err)) {\n rendered = true;\n err = this.resolveRedirect({ ...err, _fromLocation: location });\n throw err;\n } else if (isNotFound(err)) {\n this.handleNotFound(matches, err);\n throw err;\n }\n }\n };\n try {\n await new Promise((resolveAll, rejectAll) => {\n ;\n (async () => {\n try {\n for (let [index, match] of matches.entries()) {\n const parentMatch = matches[index - 1];\n const route = this.looseRoutesById[match.routeId];\n const abortController = new AbortController();\n let loadPromise = match.loadPromise;\n const pendingMs = route.options.pendingMs ?? this.options.defaultPendingMs;\n const shouldPending = !!(onReady && !this.isServer && !preload && (route.options.loader || route.options.beforeLoad) && typeof pendingMs === \"number\" && pendingMs !== Infinity && (route.options.pendingComponent ?? this.options.defaultPendingComponent));\n if (shouldPending) {\n setTimeout(() => {\n try {\n checkLatest();\n triggerOnReady();\n } catch {\n }\n }, pendingMs);\n }\n if (match.isFetching) {\n continue;\n }\n const previousResolve = loadPromise.resolve;\n loadPromise = createControlledPromise(\n // Resolve the old when we we resolve the new one\n previousResolve\n );\n matches[index] = match = updateMatch(match.id, (prev) => ({\n ...prev,\n isFetching: \"beforeLoad\",\n loadPromise\n }));\n const handleSerialError = (err, routerCode) => {\n var _a, _b;\n if (err instanceof Promise) {\n throw err;\n }\n err.routerCode = routerCode;\n firstBadMatchIndex = firstBadMatchIndex ?? index;\n handleRedirectAndNotFound(match, err);\n try {\n (_b = (_a = route.options).onError) == null ? void 0 : _b.call(_a, err);\n } catch (errorHandlerErr) {\n err = errorHandlerErr;\n handleRedirectAndNotFound(match, err);\n }\n matches[index] = match = updateMatch(match.id, () => ({\n ...match,\n error: err,\n status: \"error\",\n updatedAt: Date.now(),\n abortController: new AbortController()\n }));\n };\n if (match.paramsError) {\n handleSerialError(match.paramsError, \"PARSE_PARAMS\");\n }\n if (match.searchError) {\n handleSerialError(match.searchError, \"VALIDATE_SEARCH\");\n }\n try {\n const parentContext = (parentMatch == null ? void 0 : parentMatch.context) ?? this.options.context ?? {};\n matches[index] = match = {\n ...match,\n routeContext: replaceEqualDeep(\n match.routeContext,\n parentContext\n ),\n context: replaceEqualDeep(match.context, parentContext),\n abortController\n };\n const beforeLoadFnContext = {\n search: match.search,\n abortController,\n params: match.params,\n preload: !!preload,\n context: match.routeContext,\n location,\n navigate: (opts) => this.navigate({ ...opts, _fromLocation: location }),\n buildLocation: this.buildLocation,\n cause: preload ? \"preload\" : match.cause\n };\n const beforeLoadContext = route.options.beforeLoad ? await route.options.beforeLoad(beforeLoadFnContext) ?? {} : {};\n checkLatest();\n if (isRedirect(beforeLoadContext) || isNotFound(beforeLoadContext)) {\n handleSerialError(beforeLoadContext, \"BEFORE_LOAD\");\n }\n const context = {\n ...parentContext,\n ...beforeLoadContext\n };\n matches[index] = match = {\n ...match,\n routeContext: replaceEqualDeep(\n match.routeContext,\n beforeLoadContext\n ),\n context: replaceEqualDeep(match.context, context),\n abortController\n };\n updateMatch(match.id, () => match);\n } catch (err) {\n handleSerialError(err, \"BEFORE_LOAD\");\n break;\n }\n }\n checkLatest();\n const validResolvedMatches = matches.slice(0, firstBadMatchIndex);\n const matchPromises = [];\n validResolvedMatches.forEach((match, index) => {\n const createValidateResolvedMatchPromise = async () => {\n const parentMatchPromise = matchPromises[index - 1];\n const route = this.looseRoutesById[match.routeId];\n const loaderContext = {\n params: match.params,\n deps: match.loaderDeps,\n preload: !!preload,\n parentMatchPromise,\n abortController: match.abortController,\n context: match.context,\n location,\n navigate: (opts) => this.navigate({ ...opts, _fromLocation: location }),\n cause: preload ? \"preload\" : match.cause,\n route\n };\n const fetchAndResolveInLoaderLifetime = async () => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const existing = getRouteMatch(this.state, match.id);\n let lazyPromise = Promise.resolve();\n let componentsPromise = Promise.resolve();\n let loaderPromise = existing.loaderPromise;\n const potentialPendingMinPromise = async () => {\n const latestMatch = getRouteMatch(this.state, match.id);\n if (latestMatch == null ? void 0 : latestMatch.minPendingPromise) {\n await latestMatch.minPendingPromise;\n checkLatest();\n updateMatch(latestMatch.id, (prev) => ({\n ...prev,\n minPendingPromise: void 0\n }));\n }\n };\n try {\n if (match.isFetching === \"beforeLoad\") {\n matches[index] = match = updateMatch(\n match.id,\n (prev) => ({\n ...prev,\n isFetching: \"loader\",\n fetchCount: match.fetchCount + 1\n })\n );\n lazyPromise = ((_a = route.lazyFn) == null ? void 0 : _a.call(route).then((lazyRoute) => {\n Object.assign(route.options, lazyRoute.options);\n })) || Promise.resolve();\n componentsPromise = lazyPromise.then(\n () => Promise.all(\n componentTypes.map(async (type) => {\n const component = route.options[type];\n if (component == null ? void 0 : component.preload) {\n await component.preload();\n }\n })\n )\n );\n await lazyPromise;\n checkLatest();\n loaderPromise = (_c = (_b = route.options).loader) == null ? void 0 : _c.call(_b, loaderContext);\n matches[index] = match = updateMatch(\n match.id,\n (prev) => ({\n ...prev,\n loaderPromise\n })\n );\n }\n let loaderData = await loaderPromise;\n if (this.serializeLoaderData) {\n loaderData = this.serializeLoaderData(loaderData, {\n router: this,\n match\n });\n }\n checkLatest();\n handleRedirectAndNotFound(match, loaderData);\n await potentialPendingMinPromise();\n checkLatest();\n const meta = (_e = (_d = route.options).meta) == null ? void 0 : _e.call(_d, {\n matches,\n params: match.params,\n loaderData\n });\n const headers = (_g = (_f = route.options).headers) == null ? void 0 : _g.call(_f, {\n loaderData\n });\n matches[index] = match = updateMatch(match.id, (prev) => ({\n ...prev,\n error: void 0,\n status: \"success\",\n isFetching: false,\n updatedAt: Date.now(),\n loaderData,\n meta,\n headers\n }));\n } catch (e) {\n checkLatest();\n let error = e;\n await potentialPendingMinPromise();\n checkLatest();\n handleRedirectAndNotFound(match, e);\n try {\n (_i = (_h = route.options).onError) == null ? void 0 : _i.call(_h, e);\n } catch (onErrorError) {\n error = onErrorError;\n handleRedirectAndNotFound(match, onErrorError);\n }\n matches[index] = match = updateMatch(match.id, (prev) => ({\n ...prev,\n error,\n status: \"error\",\n isFetching: false\n }));\n }\n await componentsPromise;\n checkLatest();\n match.loadPromise.resolve();\n };\n const age = Date.now() - match.updatedAt;\n const staleAge = preload ? route.options.preloadStaleTime ?? this.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? this.options.defaultStaleTime ?? 0;\n const shouldReloadOption = route.options.shouldReload;\n const shouldReload = typeof shouldReloadOption === \"function\" ? shouldReloadOption(loaderContext) : shouldReloadOption;\n matches[index] = match = {\n ...match,\n preload: !!preload && !this.state.matches.find((d) => d.id === match.id)\n };\n const fetchWithRedirectAndNotFound = async () => {\n try {\n await fetchAndResolveInLoaderLifetime();\n } catch (err) {\n checkLatest();\n handleRedirectAndNotFound(match, err);\n }\n };\n if (match.status === \"success\" && (match.invalid || (shouldReload ?? age > staleAge))) {\n ;\n (async () => {\n try {\n await fetchWithRedirectAndNotFound();\n } catch (err) {\n }\n })();\n return;\n }\n if (match.status !== \"success\") {\n await fetchWithRedirectAndNotFound();\n }\n return;\n };\n matchPromises.push(createValidateResolvedMatchPromise());\n });\n await Promise.all(matchPromises);\n checkLatest();\n resolveAll();\n } catch (err) {\n rejectAll(err);\n }\n })();\n });\n await triggerOnReady();\n } catch (err) {\n if (isRedirect(err) || isNotFound(err)) {\n if (isNotFound(err) && !preload) {\n await triggerOnReady();\n }\n throw err;\n }\n }\n return matches;\n };\n this.invalidate = () => {\n const invalidate = (d) => ({\n ...d,\n invalid: true,\n ...d.status === \"error\" ? { status: \"pending\" } : {}\n });\n this.__store.setState((s) => {\n var _a;\n return {\n ...s,\n matches: s.matches.map(invalidate),\n cachedMatches: s.cachedMatches.map(invalidate),\n pendingMatches: (_a = s.pendingMatches) == null ? void 0 : _a.map(invalidate)\n };\n });\n return this.load();\n };\n this.resolveRedirect = (err) => {\n const redirect = err;\n if (!redirect.href) {\n redirect.href = this.buildLocation(redirect).href;\n }\n return redirect;\n };\n this.cleanCache = () => {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: s.cachedMatches.filter((d) => {\n const route = this.looseRoutesById[d.routeId];\n if (!route.options.loader) {\n return false;\n }\n const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3;\n return d.status !== \"error\" && Date.now() - d.updatedAt < gcTime;\n })\n };\n });\n };\n this.preloadRoute = async (opts) => {\n const next = this.buildLocation(opts);\n let matches = this.matchRoutes(next.pathname, next.search, {\n throwOnError: true,\n preload: true\n });\n const loadedMatchIds = Object.fromEntries(\n [\n ...this.state.matches,\n ...this.state.pendingMatches ?? [],\n ...this.state.cachedMatches\n ].map((d) => [d.id, true])\n );\n this.__store.batch(() => {\n matches.forEach((match) => {\n if (!loadedMatchIds[match.id]) {\n this.__store.setState((s) => ({\n ...s,\n cachedMatches: [...s.cachedMatches, match]\n }));\n }\n });\n });\n const leafMatch = last(matches);\n const currentLeafMatch = last(this.state.matches);\n const pendingLeafMatch = last(this.state.pendingMatches ?? []);\n if (leafMatch && ((currentLeafMatch == null ? void 0 : currentLeafMatch.id) === leafMatch.id || (pendingLeafMatch == null ? void 0 : pendingLeafMatch.id) === leafMatch.id)) {\n return void 0;\n }\n try {\n matches = await this.loadMatches({\n matches,\n location: next,\n preload: true,\n checkLatest: () => void 0\n });\n return matches;\n } catch (err) {\n if (isRedirect(err)) {\n return await this.preloadRoute({\n ...err,\n _fromLocation: next\n });\n }\n console.error(err);\n return void 0;\n }\n };\n this.matchRoute = (location, opts) => {\n const matchLocation = {\n ...location,\n to: location.to ? this.resolvePathWithBase(location.from || \"\", location.to) : void 0,\n params: location.params || {},\n leaveParams: true\n };\n const next = this.buildLocation(matchLocation);\n if ((opts == null ? void 0 : opts.pending) && this.state.status !== \"pending\") {\n return false;\n }\n const pending = (opts == null ? void 0 : opts.pending) === void 0 ? !this.state.isLoading : opts.pending;\n const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation;\n const match = matchPathname(this.basepath, baseLocation.pathname, {\n ...opts,\n to: next.pathname\n });\n if (!match) {\n return false;\n }\n if (location.params) {\n if (!deepEqual(match, location.params, true)) {\n return false;\n }\n }\n if (match && ((opts == null ? void 0 : opts.includeSearch) ?? true)) {\n return deepEqual(baseLocation.search, next.search, true) ? match : false;\n }\n return match;\n };\n this.dehydrate = () => {\n var _a;\n const pickError = ((_a = this.options.errorSerializer) == null ? void 0 : _a.serialize) ?? defaultSerializeError;\n return {\n state: {\n dehydratedMatches: this.state.matches.map((d) => {\n return {\n ...pick(d, [\"id\", \"status\", \"updatedAt\"]),\n // If an error occurs server-side during SSRing,\n // send a small subset of the error to the client\n error: d.error ? {\n data: pickError(d.error),\n __isServerError: true\n } : void 0\n // NOTE: We don't send the loader data here, because\n // there is a potential that it needs to be streamed.\n // Instead, we render it next to the route match in the HTML\n // which gives us the potential to stream it via suspense.\n };\n })\n },\n manifest: this.manifest\n };\n };\n this.hydrate = async () => {\n var _a, _b, _c;\n let ctx;\n if (typeof document !== \"undefined\") {\n ctx = this.options.transformer.parse((_a = window.__TSR__) == null ? void 0 : _a.dehydrated);\n }\n invariant(\n ctx,\n \"Expected to find a dehydrated data on window.__TSR__.dehydrated... but we did not. Please file an issue!\"\n );\n this.dehydratedData = ctx.payload;\n (_c = (_b = this.options).hydrate) == null ? void 0 : _c.call(_b, ctx.payload);\n const dehydratedState = ctx.router.state;\n const matches = this.matchRoutes(\n this.state.location.pathname,\n this.state.location.search\n ).map((match) => {\n const dehydratedMatch = dehydratedState.dehydratedMatches.find(\n (d) => d.id === match.id\n );\n invariant(\n dehydratedMatch,\n `Could not find a client-side match for dehydrated match with id: ${match.id}!`\n );\n return {\n ...match,\n ...dehydratedMatch\n };\n });\n this.__store.setState((s) => {\n return {\n ...s,\n matches\n };\n });\n this.manifest = ctx.router.manifest;\n };\n this.injectedHtml = [];\n this.getStreamedValue = (key) => {\n var _a;\n if (this.isServer) {\n return void 0;\n }\n const streamedValue = (_a = window.__TSR__) == null ? void 0 : _a.streamedValues[key];\n if (!streamedValue) {\n return;\n }\n if (!streamedValue.parsed) {\n streamedValue.parsed = this.options.transformer.parse(streamedValue.value);\n }\n return streamedValue.parsed;\n };\n this.streamValue = (key, value) => {\n var _a;\n const children = `window.__TSR__.streamedValues['${key}'] = { value: ${(_a = this.serializer) == null ? void 0 : _a.call(this, this.options.transformer.stringify(value))}}`;\n this.injectedHtml.push(\n `