@teambit/component.ui.version-dropdown 0.0.852 → 0.0.853
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bit-capsule-ready +0 -0
- package/dist/lane-info/lane-info.d.ts +2 -2
- package/dist/version-dropdown-placeholder.d.ts +3 -3
- package/dist/version-dropdown.composition.d.ts +3 -3
- package/dist/version-dropdown.d.ts +1 -1
- package/dist/version-dropdown.docs.d.ts +3 -3
- package/package-tar/teambit-component.ui.version-dropdown-0.0.853.tgz +0 -0
- package/package.json +17 -17
- package/schema.json +3766 -0
- package/static/css/teambit.component/ui/version-dropdown-preview.d8b2178a.css +1 -0
- package/static/css/teambit.component/ui/version-dropdown.e426931e.css +1 -0
- package/teambit_component_ui_version_dropdown-component.js +831 -0
- package/teambit_component_ui_version_dropdown-preview.js +48 -0
- package/dist/preview-1695901055662.js +0 -7
- package/tsconfig.json +0 -32
- package/types/asset.d.ts +0 -29
- package/types/style.d.ts +0 -42
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";(function(root,factory){typeof exports=="object"&&typeof module=="object"?module.exports=factory():typeof define=="function"&&define.amd?define([],factory):typeof exports=="object"?exports["teambit.component/ui/version-dropdown-preview"]=factory():root["teambit.component/ui/version-dropdown-preview"]=factory()})(self,()=>(self.webpackChunk=self.webpackChunk||[]).push([[15],{33652:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AbortedDeferredError:()=>AbortedDeferredError,Await:()=>Await,BrowserRouter:()=>BrowserRouter,Form:()=>Form,HashRouter:()=>HashRouter,Link:()=>Link,MemoryRouter:()=>MemoryRouter,NavLink:()=>NavLink,Navigate:()=>Navigate,NavigationType:()=>Action,Outlet:()=>Outlet,Route:()=>Route,Router:()=>Router,RouterProvider:()=>dist_RouterProvider,Routes:()=>Routes,ScrollRestoration:()=>ScrollRestoration,UNSAFE_DataRouterContext:()=>DataRouterContext,UNSAFE_DataRouterStateContext:()=>DataRouterStateContext,UNSAFE_FetchersContext:()=>FetchersContext,UNSAFE_LocationContext:()=>LocationContext,UNSAFE_NavigationContext:()=>NavigationContext,UNSAFE_RouteContext:()=>RouteContext,UNSAFE_ViewTransitionContext:()=>ViewTransitionContext,UNSAFE_useRouteId:()=>useRouteId,UNSAFE_useScrollRestoration:()=>useScrollRestoration,createBrowserRouter:()=>createBrowserRouter,createHashRouter:()=>createHashRouter,createMemoryRouter:()=>createMemoryRouter,createPath:()=>createPath,createRoutesFromChildren:()=>createRoutesFromChildren,createRoutesFromElements:()=>createRoutesFromChildren,createSearchParams:()=>createSearchParams,defer:()=>defer,generatePath:()=>generatePath,isRouteErrorResponse:()=>isRouteErrorResponse,json:()=>json,matchPath:()=>matchPath,matchRoutes:()=>matchRoutes,parsePath:()=>parsePath,redirect:()=>redirect,redirectDocument:()=>redirectDocument,renderMatches:()=>renderMatches,resolvePath:()=>resolvePath,unstable_HistoryRouter:()=>HistoryRouter,unstable_usePrompt:()=>usePrompt,unstable_useViewTransitionState:()=>useViewTransitionState,useActionData:()=>useActionData,useAsyncError:()=>useAsyncError,useAsyncValue:()=>useAsyncValue,useBeforeUnload:()=>useBeforeUnload,useBlocker:()=>useBlocker,useFetcher:()=>useFetcher,useFetchers:()=>useFetchers,useFormAction:()=>useFormAction,useHref:()=>useHref,useInRouterContext:()=>useInRouterContext,useLinkClickHandler:()=>useLinkClickHandler,useLoaderData:()=>useLoaderData,useLocation:()=>useLocation,useMatch:()=>useMatch,useMatches:()=>useMatches,useNavigate:()=>useNavigate,useNavigation:()=>useNavigation,useNavigationType:()=>useNavigationType,useOutlet:()=>useOutlet,useOutletContext:()=>useOutletContext,useParams:()=>useParams,useResolvedPath:()=>useResolvedPath,useRevalidator:()=>useRevalidator,useRouteError:()=>useRouteError,useRouteLoaderData:()=>useRouteLoaderData,useRoutes:()=>useRoutes,useSearchParams:()=>useSearchParams,useSubmit:()=>useSubmit});var external_React_=__webpack_require__(87363),external_ReactDom_=__webpack_require__(30394);/**
|
2
|
+
* @remix-run/router v1.14.1
|
3
|
+
*
|
4
|
+
* Copyright (c) Remix Software Inc.
|
5
|
+
*
|
6
|
+
* This source code is licensed under the MIT license found in the
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
8
|
+
*
|
9
|
+
* @license MIT
|
10
|
+
*/function _extends(){return _extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_extends.apply(this,arguments)}var Action;(function(Action2){Action2.Pop="POP",Action2.Push="PUSH",Action2.Replace="REPLACE"})(Action||(Action={}));const PopStateEventType="popstate";function createMemoryHistory(options){options===void 0&&(options={});let{initialEntries=["/"],initialIndex,v5Compat=!1}=options,entries;entries=initialEntries.map((entry,index2)=>createMemoryLocation(entry,typeof entry=="string"?null:entry.state,index2===0?"default":void 0));let index=clampIndex(initialIndex??entries.length-1),action=Action.Pop,listener=null;function clampIndex(n){return Math.min(Math.max(n,0),entries.length-1)}function getCurrentLocation(){return entries[index]}function createMemoryLocation(to,state,key){state===void 0&&(state=null);let location=createLocation(entries?getCurrentLocation().pathname:"/",to,state,key);return warning(location.pathname.charAt(0)==="/","relative pathnames are not supported in memory history: "+JSON.stringify(to)),location}function createHref(to){return typeof to=="string"?to:createPath(to)}return{get index(){return index},get action(){return action},get location(){return getCurrentLocation()},createHref,createURL(to){return new URL(createHref(to),"http://localhost")},encodeLocation(to){let path=typeof to=="string"?parsePath(to):to;return{pathname:path.pathname||"",search:path.search||"",hash:path.hash||""}},push(to,state){action=Action.Push;let nextLocation=createMemoryLocation(to,state);index+=1,entries.splice(index,entries.length,nextLocation),v5Compat&&listener&&listener({action,location:nextLocation,delta:1})},replace(to,state){action=Action.Replace;let nextLocation=createMemoryLocation(to,state);entries[index]=nextLocation,v5Compat&&listener&&listener({action,location:nextLocation,delta:0})},go(delta){action=Action.Pop;let nextIndex=clampIndex(index+delta),nextLocation=entries[nextIndex];index=nextIndex,listener&&listener({action,location:nextLocation,delta})},listen(fn){return listener=fn,()=>{listener=null}}}}function createBrowserHistory(options){options===void 0&&(options={});function createBrowserLocation(window2,globalHistory){let{pathname,search,hash}=window2.location;return createLocation("",{pathname,search,hash},globalHistory.state&&globalHistory.state.usr||null,globalHistory.state&&globalHistory.state.key||"default")}function createBrowserHref(window2,to){return typeof to=="string"?to:createPath(to)}return getUrlBasedHistory(createBrowserLocation,createBrowserHref,null,options)}function createHashHistory(options){options===void 0&&(options={});function createHashLocation(window2,globalHistory){let{pathname="/",search="",hash=""}=parsePath(window2.location.hash.substr(1));return!pathname.startsWith("/")&&!pathname.startsWith(".")&&(pathname="/"+pathname),createLocation("",{pathname,search,hash},globalHistory.state&&globalHistory.state.usr||null,globalHistory.state&&globalHistory.state.key||"default")}function createHashHref(window2,to){let base=window2.document.querySelector("base"),href="";if(base&&base.getAttribute("href")){let url=window2.location.href,hashIndex=url.indexOf("#");href=hashIndex===-1?url:url.slice(0,hashIndex)}return href+"#"+(typeof to=="string"?to:createPath(to))}function validateHashLocation(location,to){warning(location.pathname.charAt(0)==="/","relative pathnames are not supported in hash history.push("+JSON.stringify(to)+")")}return getUrlBasedHistory(createHashLocation,createHashHref,validateHashLocation,options)}function invariant(value,message){if(value===!1||value===null||typeof value>"u")throw new Error(message)}function warning(cond,message){if(!cond){typeof console<"u"&&console.warn(message);try{throw new Error(message)}catch{}}}function createKey(){return Math.random().toString(36).substr(2,8)}function getHistoryState(location,index){return{usr:location.state,key:location.key,idx:index}}function createLocation(current,to,state,key){return state===void 0&&(state=null),_extends({pathname:typeof current=="string"?current:current.pathname,search:"",hash:""},typeof to=="string"?parsePath(to):to,{state,key:to&&to.key||key||createKey()})}function createPath(_ref){let{pathname="/",search="",hash=""}=_ref;return search&&search!=="?"&&(pathname+=search.charAt(0)==="?"?search:"?"+search),hash&&hash!=="#"&&(pathname+=hash.charAt(0)==="#"?hash:"#"+hash),pathname}function parsePath(path){let parsedPath={};if(path){let hashIndex=path.indexOf("#");hashIndex>=0&&(parsedPath.hash=path.substr(hashIndex),path=path.substr(0,hashIndex));let searchIndex=path.indexOf("?");searchIndex>=0&&(parsedPath.search=path.substr(searchIndex),path=path.substr(0,searchIndex)),path&&(parsedPath.pathname=path)}return parsedPath}function getUrlBasedHistory(getLocation,createHref,validateLocation,options){options===void 0&&(options={});let{window:window2=document.defaultView,v5Compat=!1}=options,globalHistory=window2.history,action=Action.Pop,listener=null,index=getIndex();index==null&&(index=0,globalHistory.replaceState(_extends({},globalHistory.state,{idx:index}),""));function getIndex(){return(globalHistory.state||{idx:null}).idx}function handlePop(){action=Action.Pop;let nextIndex=getIndex(),delta=nextIndex==null?null:nextIndex-index;index=nextIndex,listener&&listener({action,location:history.location,delta})}function push(to,state){action=Action.Push;let location=createLocation(history.location,to,state);validateLocation&&validateLocation(location,to),index=getIndex()+1;let historyState=getHistoryState(location,index),url=history.createHref(location);try{globalHistory.pushState(historyState,"",url)}catch(error){if(error instanceof DOMException&&error.name==="DataCloneError")throw error;window2.location.assign(url)}v5Compat&&listener&&listener({action,location:history.location,delta:1})}function replace(to,state){action=Action.Replace;let location=createLocation(history.location,to,state);validateLocation&&validateLocation(location,to),index=getIndex();let historyState=getHistoryState(location,index),url=history.createHref(location);globalHistory.replaceState(historyState,"",url),v5Compat&&listener&&listener({action,location:history.location,delta:0})}function createURL(to){let base=window2.location.origin!=="null"?window2.location.origin:window2.location.href,href=typeof to=="string"?to:createPath(to);return invariant(base,"No window.location.(origin|href) available to create URL for href: "+href),new URL(href,base)}let history={get action(){return action},get location(){return getLocation(window2,globalHistory)},listen(fn){if(listener)throw new Error("A history only accepts one active listener");return window2.addEventListener(PopStateEventType,handlePop),listener=fn,()=>{window2.removeEventListener(PopStateEventType,handlePop),listener=null}},createHref(to){return createHref(window2,to)},createURL,encodeLocation(to){let url=createURL(to);return{pathname:url.pathname,search:url.search,hash:url.hash}},push,replace,go(n){return globalHistory.go(n)}};return history}var ResultType;(function(ResultType2){ResultType2.data="data",ResultType2.deferred="deferred",ResultType2.redirect="redirect",ResultType2.error="error"})(ResultType||(ResultType={}));const immutableRouteKeys=new Set(["lazy","caseSensitive","path","id","index","children"]);function isIndexRoute(route){return route.index===!0}function convertRoutesToDataRoutes(routes,mapRouteProperties2,parentPath,manifest){return parentPath===void 0&&(parentPath=[]),manifest===void 0&&(manifest={}),routes.map((route,index)=>{let treePath=[...parentPath,index],id=typeof route.id=="string"?route.id:treePath.join("-");if(invariant(route.index!==!0||!route.children,"Cannot specify children on an index route"),invariant(!manifest[id],'Found a route id collision on id "'+id+`". Route id's must be globally unique within Data Router usages`),isIndexRoute(route)){let indexRoute=_extends({},route,mapRouteProperties2(route),{id});return manifest[id]=indexRoute,indexRoute}else{let pathOrLayoutRoute=_extends({},route,mapRouteProperties2(route),{id,children:void 0});return manifest[id]=pathOrLayoutRoute,route.children&&(pathOrLayoutRoute.children=convertRoutesToDataRoutes(route.children,mapRouteProperties2,treePath,manifest)),pathOrLayoutRoute}})}function matchRoutes(routes,locationArg,basename){basename===void 0&&(basename="/");let location=typeof locationArg=="string"?parsePath(locationArg):locationArg,pathname=stripBasename(location.pathname||"/",basename);if(pathname==null)return null;let branches=flattenRoutes(routes);rankRouteBranches(branches);let matches=null;for(let i=0;matches==null&&i<branches.length;++i)matches=matchRouteBranch(branches[i],safelyDecodeURI(pathname));return matches}function convertRouteMatchToUiMatch(match,loaderData){let{route,pathname,params}=match;return{id:route.id,pathname,params,data:loaderData[route.id],handle:route.handle}}function flattenRoutes(routes,branches,parentsMeta,parentPath){branches===void 0&&(branches=[]),parentsMeta===void 0&&(parentsMeta=[]),parentPath===void 0&&(parentPath="");let flattenRoute=(route,index,relativePath)=>{let meta={relativePath:relativePath===void 0?route.path||"":relativePath,caseSensitive:route.caseSensitive===!0,childrenIndex:index,route};meta.relativePath.startsWith("/")&&(invariant(meta.relativePath.startsWith(parentPath),'Absolute route path "'+meta.relativePath+'" nested under path '+('"'+parentPath+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),meta.relativePath=meta.relativePath.slice(parentPath.length));let path=joinPaths([parentPath,meta.relativePath]),routesMeta=parentsMeta.concat(meta);route.children&&route.children.length>0&&(invariant(route.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+path+'".')),flattenRoutes(route.children,branches,routesMeta,path)),!(route.path==null&&!route.index)&&branches.push({path,score:computeScore(path,route.index),routesMeta})};return routes.forEach((route,index)=>{var _route$path;if(route.path===""||!((_route$path=route.path)!=null&&_route$path.includes("?")))flattenRoute(route,index);else for(let exploded of explodeOptionalSegments(route.path))flattenRoute(route,index,exploded)}),branches}function explodeOptionalSegments(path){let segments=path.split("/");if(segments.length===0)return[];let[first,...rest]=segments,isOptional=first.endsWith("?"),required=first.replace(/\?$/,"");if(rest.length===0)return isOptional?[required,""]:[required];let restExploded=explodeOptionalSegments(rest.join("/")),result=[];return result.push(...restExploded.map(subpath=>subpath===""?required:[required,subpath].join("/"))),isOptional&&result.push(...restExploded),result.map(exploded=>path.startsWith("/")&&exploded===""?"/":exploded)}function rankRouteBranches(branches){branches.sort((a,b)=>a.score!==b.score?b.score-a.score:compareIndexes(a.routesMeta.map(meta=>meta.childrenIndex),b.routesMeta.map(meta=>meta.childrenIndex)))}const paramRe=/^:\w+$/,dynamicSegmentValue=3,indexRouteValue=2,emptySegmentValue=1,staticSegmentValue=10,splatPenalty=-2,isSplat=s=>s==="*";function computeScore(path,index){let segments=path.split("/"),initialScore=segments.length;return segments.some(isSplat)&&(initialScore+=splatPenalty),index&&(initialScore+=indexRouteValue),segments.filter(s=>!isSplat(s)).reduce((score,segment)=>score+(paramRe.test(segment)?dynamicSegmentValue:segment===""?emptySegmentValue:staticSegmentValue),initialScore)}function compareIndexes(a,b){return a.length===b.length&&a.slice(0,-1).every((n,i)=>n===b[i])?a[a.length-1]-b[b.length-1]:0}function matchRouteBranch(branch,pathname){let{routesMeta}=branch,matchedParams={},matchedPathname="/",matches=[];for(let i=0;i<routesMeta.length;++i){let meta=routesMeta[i],end=i===routesMeta.length-1,remainingPathname=matchedPathname==="/"?pathname:pathname.slice(matchedPathname.length)||"/",match=matchPath({path:meta.relativePath,caseSensitive:meta.caseSensitive,end},remainingPathname);if(!match)return null;Object.assign(matchedParams,match.params);let route=meta.route;matches.push({params:matchedParams,pathname:joinPaths([matchedPathname,match.pathname]),pathnameBase:normalizePathname(joinPaths([matchedPathname,match.pathnameBase])),route}),match.pathnameBase!=="/"&&(matchedPathname=joinPaths([matchedPathname,match.pathnameBase]))}return matches}function generatePath(originalPath,params){params===void 0&&(params={});let path=originalPath;path.endsWith("*")&&path!=="*"&&!path.endsWith("/*")&&(warning(!1,'Route path "'+path+'" will be treated as if it were '+('"'+path.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+path.replace(/\*$/,"/*")+'".')),path=path.replace(/\*$/,"/*"));const prefix=path.startsWith("/")?"/":"",stringify=p=>p==null?"":typeof p=="string"?p:String(p),segments=path.split(/\/+/).map((segment,index,array)=>{if(index===array.length-1&&segment==="*")return stringify(params["*"]);const keyMatch=segment.match(/^:(\w+)(\??)$/);if(keyMatch){const[,key,optional]=keyMatch;let param=params[key];return invariant(optional==="?"||param!=null,'Missing ":'+key+'" param'),stringify(param)}return segment.replace(/\?$/g,"")}).filter(segment=>!!segment);return prefix+segments.join("/")}function matchPath(pattern,pathname){typeof pattern=="string"&&(pattern={path:pattern,caseSensitive:!1,end:!0});let[matcher,compiledParams]=compilePath(pattern.path,pattern.caseSensitive,pattern.end),match=pathname.match(matcher);if(!match)return null;let matchedPathname=match[0],pathnameBase=matchedPathname.replace(/(.)\/+$/,"$1"),captureGroups=match.slice(1);return{params:compiledParams.reduce((memo,_ref,index)=>{let{paramName,isOptional}=_ref;if(paramName==="*"){let splatValue=captureGroups[index]||"";pathnameBase=matchedPathname.slice(0,matchedPathname.length-splatValue.length).replace(/(.)\/+$/,"$1")}const value=captureGroups[index];return isOptional&&!value?memo[paramName]=void 0:memo[paramName]=safelyDecodeURIComponent(value||"",paramName),memo},{}),pathname:matchedPathname,pathnameBase,pattern}}function compilePath(path,caseSensitive,end){caseSensitive===void 0&&(caseSensitive=!1),end===void 0&&(end=!0),warning(path==="*"||!path.endsWith("*")||path.endsWith("/*"),'Route path "'+path+'" will be treated as if it were '+('"'+path.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+path.replace(/\*$/,"/*")+'".'));let params=[],regexpSource="^"+path.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:(\w+)(\?)?/g,(_,paramName,isOptional)=>(params.push({paramName,isOptional:isOptional!=null}),isOptional?"/?([^\\/]+)?":"/([^\\/]+)"));return path.endsWith("*")?(params.push({paramName:"*"}),regexpSource+=path==="*"||path==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):end?regexpSource+="\\/*$":path!==""&&path!=="/"&&(regexpSource+="(?:(?=\\/|$))"),[new RegExp(regexpSource,caseSensitive?void 0:"i"),params]}function safelyDecodeURI(value){try{return decodeURI(value)}catch(error){return warning(!1,'The URL path "'+value+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+error+").")),value}}function safelyDecodeURIComponent(value,paramName){try{return decodeURIComponent(value)}catch(error){return warning(!1,'The value for the URL param "'+paramName+'" will not be decoded because'+(' the string "'+value+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+error+").")),value}}function stripBasename(pathname,basename){if(basename==="/")return pathname;if(!pathname.toLowerCase().startsWith(basename.toLowerCase()))return null;let startIndex=basename.endsWith("/")?basename.length-1:basename.length,nextChar=pathname.charAt(startIndex);return nextChar&&nextChar!=="/"?null:pathname.slice(startIndex)||"/"}function resolvePath(to,fromPathname){fromPathname===void 0&&(fromPathname="/");let{pathname:toPathname,search="",hash=""}=typeof to=="string"?parsePath(to):to;return{pathname:toPathname?toPathname.startsWith("/")?toPathname:resolvePathname(toPathname,fromPathname):fromPathname,search:normalizeSearch(search),hash:normalizeHash(hash)}}function resolvePathname(relativePath,fromPathname){let segments=fromPathname.replace(/\/+$/,"").split("/");return relativePath.split("/").forEach(segment=>{segment===".."?segments.length>1&&segments.pop():segment!=="."&&segments.push(segment)}),segments.length>1?segments.join("/"):"/"}function getInvalidPathError(char,field,dest,path){return"Cannot include a '"+char+"' character in a manually specified "+("`to."+field+"` field ["+JSON.stringify(path)+"]. Please separate it out to the ")+("`to."+dest+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function getPathContributingMatches(matches){return matches.filter((match,index)=>index===0||match.route.path&&match.route.path.length>0)}function getResolveToMatches(matches,v7_relativeSplatPath){let pathMatches=getPathContributingMatches(matches);return v7_relativeSplatPath?pathMatches.map((match,idx)=>idx===matches.length-1?match.pathname:match.pathnameBase):pathMatches.map(match=>match.pathnameBase)}function resolveTo(toArg,routePathnames,locationPathname,isPathRelative){isPathRelative===void 0&&(isPathRelative=!1);let to;typeof toArg=="string"?to=parsePath(toArg):(to=_extends({},toArg),invariant(!to.pathname||!to.pathname.includes("?"),getInvalidPathError("?","pathname","search",to)),invariant(!to.pathname||!to.pathname.includes("#"),getInvalidPathError("#","pathname","hash",to)),invariant(!to.search||!to.search.includes("#"),getInvalidPathError("#","search","hash",to)));let isEmptyPath=toArg===""||to.pathname==="",toPathname=isEmptyPath?"/":to.pathname,from;if(toPathname==null)from=locationPathname;else{let routePathnameIndex=routePathnames.length-1;if(!isPathRelative&&toPathname.startsWith("..")){let toSegments=toPathname.split("/");for(;toSegments[0]==="..";)toSegments.shift(),routePathnameIndex-=1;to.pathname=toSegments.join("/")}from=routePathnameIndex>=0?routePathnames[routePathnameIndex]:"/"}let path=resolvePath(to,from),hasExplicitTrailingSlash=toPathname&&toPathname!=="/"&&toPathname.endsWith("/"),hasCurrentTrailingSlash=(isEmptyPath||toPathname===".")&&locationPathname.endsWith("/");return!path.pathname.endsWith("/")&&(hasExplicitTrailingSlash||hasCurrentTrailingSlash)&&(path.pathname+="/"),path}function getToPathname(to){return to===""||to.pathname===""?"/":typeof to=="string"?parsePath(to).pathname:to.pathname}const joinPaths=paths=>paths.join("/").replace(/\/\/+/g,"/"),normalizePathname=pathname=>pathname.replace(/\/+$/,"").replace(/^\/*/,"/"),normalizeSearch=search=>!search||search==="?"?"":search.startsWith("?")?search:"?"+search,normalizeHash=hash=>!hash||hash==="#"?"":hash.startsWith("#")?hash:"#"+hash,json=function(data,init){init===void 0&&(init={});let responseInit=typeof init=="number"?{status:init}:init,headers=new Headers(responseInit.headers);return headers.has("Content-Type")||headers.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(data),_extends({},responseInit,{headers}))};class AbortedDeferredError extends Error{}class DeferredData{constructor(data,responseInit){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],invariant(data&&typeof data=="object"&&!Array.isArray(data),"defer() only accepts plain objects");let reject;this.abortPromise=new Promise((_,r)=>reject=r),this.controller=new AbortController;let onAbort=()=>reject(new AbortedDeferredError("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",onAbort),this.controller.signal.addEventListener("abort",onAbort),this.data=Object.entries(data).reduce((acc,_ref2)=>{let[key,value]=_ref2;return Object.assign(acc,{[key]:this.trackPromise(key,value)})},{}),this.done&&this.unlistenAbortSignal(),this.init=responseInit}trackPromise(key,value){if(!(value instanceof Promise))return value;this.deferredKeys.push(key),this.pendingKeysSet.add(key);let promise=Promise.race([value,this.abortPromise]).then(data=>this.onSettle(promise,key,void 0,data),error=>this.onSettle(promise,key,error));return promise.catch(()=>{}),Object.defineProperty(promise,"_tracked",{get:()=>!0}),promise}onSettle(promise,key,error,data){if(this.controller.signal.aborted&&error instanceof AbortedDeferredError)return this.unlistenAbortSignal(),Object.defineProperty(promise,"_error",{get:()=>error}),Promise.reject(error);if(this.pendingKeysSet.delete(key),this.done&&this.unlistenAbortSignal(),error===void 0&&data===void 0){let undefinedError=new Error('Deferred data for key "'+key+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(promise,"_error",{get:()=>undefinedError}),this.emit(!1,key),Promise.reject(undefinedError)}return data===void 0?(Object.defineProperty(promise,"_error",{get:()=>error}),this.emit(!1,key),Promise.reject(error)):(Object.defineProperty(promise,"_data",{get:()=>data}),this.emit(!1,key),data)}emit(aborted,settledKey){this.subscribers.forEach(subscriber=>subscriber(aborted,settledKey))}subscribe(fn){return this.subscribers.add(fn),()=>this.subscribers.delete(fn)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((v,k)=>this.pendingKeysSet.delete(k)),this.emit(!0)}async resolveData(signal){let aborted=!1;if(!this.done){let onAbort=()=>this.cancel();signal.addEventListener("abort",onAbort),aborted=await new Promise(resolve=>{this.subscribe(aborted2=>{signal.removeEventListener("abort",onAbort),(aborted2||this.done)&&resolve(aborted2)})})}return aborted}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return invariant(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((acc,_ref3)=>{let[key,value]=_ref3;return Object.assign(acc,{[key]:unwrapTrackedPromise(value)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function isTrackedPromise(value){return value instanceof Promise&&value._tracked===!0}function unwrapTrackedPromise(value){if(!isTrackedPromise(value))return value;if(value._error)throw value._error;return value._data}const defer=function(data,init){init===void 0&&(init={});let responseInit=typeof init=="number"?{status:init}:init;return new DeferredData(data,responseInit)},redirect=function(url,init){init===void 0&&(init=302);let responseInit=init;typeof responseInit=="number"?responseInit={status:responseInit}:typeof responseInit.status>"u"&&(responseInit.status=302);let headers=new Headers(responseInit.headers);return headers.set("Location",url),new Response(null,_extends({},responseInit,{headers}))},redirectDocument=(url,init)=>{let response=redirect(url,init);return response.headers.set("X-Remix-Reload-Document","true"),response};class ErrorResponseImpl{constructor(status,statusText,data,internal){internal===void 0&&(internal=!1),this.status=status,this.statusText=statusText||"",this.internal=internal,data instanceof Error?(this.data=data.toString(),this.error=data):this.data=data}}function isRouteErrorResponse(error){return error!=null&&typeof error.status=="number"&&typeof error.statusText=="string"&&typeof error.internal=="boolean"&&"data"in error}const validMutationMethodsArr=["post","put","patch","delete"],validMutationMethods=new Set(validMutationMethodsArr),validRequestMethodsArr=["get",...validMutationMethodsArr],validRequestMethods=new Set(validRequestMethodsArr),redirectStatusCodes=new Set([301,302,303,307,308]),redirectPreserveMethodStatusCodes=new Set([307,308]),IDLE_NAVIGATION={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},IDLE_FETCHER={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},IDLE_BLOCKER={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ABSOLUTE_URL_REGEX=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,defaultMapRouteProperties=route=>({hasErrorBoundary:Boolean(route.hasErrorBoundary)}),TRANSITIONS_STORAGE_KEY="remix-router-transitions";function createRouter(init){const routerWindow=init.window?init.window:typeof window<"u"?window:void 0,isBrowser2=typeof routerWindow<"u"&&typeof routerWindow.document<"u"&&typeof routerWindow.document.createElement<"u",isServer=!isBrowser2;invariant(init.routes.length>0,"You must provide a non-empty routes array to createRouter");let mapRouteProperties2;if(init.mapRouteProperties)mapRouteProperties2=init.mapRouteProperties;else if(init.detectErrorBoundary){let detectErrorBoundary=init.detectErrorBoundary;mapRouteProperties2=route=>({hasErrorBoundary:detectErrorBoundary(route)})}else mapRouteProperties2=defaultMapRouteProperties;let manifest={},dataRoutes=convertRoutesToDataRoutes(init.routes,mapRouteProperties2,void 0,manifest),inFlightDataRoutes,basename=init.basename||"/",future=_extends({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},init.future),unlistenHistory=null,subscribers=new Set,savedScrollPositions2=null,getScrollRestorationKey=null,getScrollPosition=null,initialScrollRestored=init.hydrationData!=null,initialMatches=matchRoutes(dataRoutes,init.history.location,basename),initialErrors=null;if(initialMatches==null){let error=getInternalRouterError(404,{pathname:init.history.location.pathname}),{matches,route}=getShortCircuitMatches(dataRoutes);initialMatches=matches,initialErrors={[route.id]:error}}let initialized,hasLazyRoutes=initialMatches.some(m=>m.route.lazy),hasLoaders=initialMatches.some(m=>m.route.loader);if(hasLazyRoutes)initialized=!1;else if(!hasLoaders)initialized=!0;else if(future.v7_partialHydration){let loaderData=init.hydrationData?init.hydrationData.loaderData:null,errors=init.hydrationData?init.hydrationData.errors:null;initialized=initialMatches.every(m=>m.route.loader&&m.route.loader.hydrate!==!0&&(loaderData&&loaderData[m.route.id]!==void 0||errors&&errors[m.route.id]!==void 0))}else initialized=init.hydrationData!=null;let router,state={historyAction:init.history.action,location:init.history.location,matches:initialMatches,initialized,navigation:IDLE_NAVIGATION,restoreScrollPosition:init.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:init.hydrationData&&init.hydrationData.loaderData||{},actionData:init.hydrationData&&init.hydrationData.actionData||null,errors:init.hydrationData&&init.hydrationData.errors||initialErrors,fetchers:new Map,blockers:new Map},pendingAction=Action.Pop,pendingPreventScrollReset=!1,pendingNavigationController,pendingViewTransitionEnabled=!1,appliedViewTransitions=new Map,removePageHideEventListener=null,isUninterruptedRevalidation=!1,isRevalidationRequired=!1,cancelledDeferredRoutes=[],cancelledFetcherLoads=[],fetchControllers=new Map,incrementingLoadId=0,pendingNavigationLoadId=-1,fetchReloadIds=new Map,fetchRedirectIds=new Set,fetchLoadMatches=new Map,activeFetchers=new Map,deletedFetchers=new Set,activeDeferreds=new Map,blockerFunctions=new Map,ignoreNextHistoryUpdate=!1;function initialize(){if(unlistenHistory=init.history.listen(_ref=>{let{action:historyAction,location,delta}=_ref;if(ignoreNextHistoryUpdate){ignoreNextHistoryUpdate=!1;return}warning(blockerFunctions.size===0||delta!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let blockerKey=shouldBlockNavigation({currentLocation:state.location,nextLocation:location,historyAction});if(blockerKey&&delta!=null){ignoreNextHistoryUpdate=!0,init.history.go(delta*-1),updateBlocker(blockerKey,{state:"blocked",location,proceed(){updateBlocker(blockerKey,{state:"proceeding",proceed:void 0,reset:void 0,location}),init.history.go(delta)},reset(){let blockers=new Map(state.blockers);blockers.set(blockerKey,IDLE_BLOCKER),updateState({blockers})}});return}return startNavigation(historyAction,location)}),isBrowser2){restoreAppliedTransitions(routerWindow,appliedViewTransitions);let _saveAppliedTransitions=()=>persistAppliedTransitions(routerWindow,appliedViewTransitions);routerWindow.addEventListener("pagehide",_saveAppliedTransitions),removePageHideEventListener=()=>routerWindow.removeEventListener("pagehide",_saveAppliedTransitions)}return state.initialized||startNavigation(Action.Pop,state.location,{initialHydration:!0}),router}function dispose(){unlistenHistory&&unlistenHistory(),removePageHideEventListener&&removePageHideEventListener(),subscribers.clear(),pendingNavigationController&&pendingNavigationController.abort(),state.fetchers.forEach((_,key)=>deleteFetcher(key)),state.blockers.forEach((_,key)=>deleteBlocker(key))}function subscribe(fn){return subscribers.add(fn),()=>subscribers.delete(fn)}function updateState(newState,opts){opts===void 0&&(opts={}),state=_extends({},state,newState);let completedFetchers=[],deletedFetchersKeys=[];future.v7_fetcherPersist&&state.fetchers.forEach((fetcher,key)=>{fetcher.state==="idle"&&(deletedFetchers.has(key)?deletedFetchersKeys.push(key):completedFetchers.push(key))}),[...subscribers].forEach(subscriber=>subscriber(state,{deletedFetchers:deletedFetchersKeys,unstable_viewTransitionOpts:opts.viewTransitionOpts,unstable_flushSync:opts.flushSync===!0})),future.v7_fetcherPersist&&(completedFetchers.forEach(key=>state.fetchers.delete(key)),deletedFetchersKeys.forEach(key=>deleteFetcher(key)))}function completeNavigation(location,newState,_temp){var _location$state,_location$state2;let{flushSync}=_temp===void 0?{}:_temp,isActionReload=state.actionData!=null&&state.navigation.formMethod!=null&&isMutationMethod(state.navigation.formMethod)&&state.navigation.state==="loading"&&((_location$state=location.state)==null?void 0:_location$state._isRedirect)!==!0,actionData;newState.actionData?Object.keys(newState.actionData).length>0?actionData=newState.actionData:actionData=null:isActionReload?actionData=state.actionData:actionData=null;let loaderData=newState.loaderData?mergeLoaderData(state.loaderData,newState.loaderData,newState.matches||[],newState.errors):state.loaderData,blockers=state.blockers;blockers.size>0&&(blockers=new Map(blockers),blockers.forEach((_,k)=>blockers.set(k,IDLE_BLOCKER)));let preventScrollReset=pendingPreventScrollReset===!0||state.navigation.formMethod!=null&&isMutationMethod(state.navigation.formMethod)&&((_location$state2=location.state)==null?void 0:_location$state2._isRedirect)!==!0;inFlightDataRoutes&&(dataRoutes=inFlightDataRoutes,inFlightDataRoutes=void 0),isUninterruptedRevalidation||pendingAction===Action.Pop||(pendingAction===Action.Push?init.history.push(location,location.state):pendingAction===Action.Replace&&init.history.replace(location,location.state));let viewTransitionOpts;if(pendingAction===Action.Pop){let priorPaths=appliedViewTransitions.get(state.location.pathname);priorPaths&&priorPaths.has(location.pathname)?viewTransitionOpts={currentLocation:state.location,nextLocation:location}:appliedViewTransitions.has(location.pathname)&&(viewTransitionOpts={currentLocation:location,nextLocation:state.location})}else if(pendingViewTransitionEnabled){let toPaths=appliedViewTransitions.get(state.location.pathname);toPaths?toPaths.add(location.pathname):(toPaths=new Set([location.pathname]),appliedViewTransitions.set(state.location.pathname,toPaths)),viewTransitionOpts={currentLocation:state.location,nextLocation:location}}updateState(_extends({},newState,{actionData,loaderData,historyAction:pendingAction,location,initialized:!0,navigation:IDLE_NAVIGATION,revalidation:"idle",restoreScrollPosition:getSavedScrollPosition(location,newState.matches||state.matches),preventScrollReset,blockers}),{viewTransitionOpts,flushSync:flushSync===!0}),pendingAction=Action.Pop,pendingPreventScrollReset=!1,pendingViewTransitionEnabled=!1,isUninterruptedRevalidation=!1,isRevalidationRequired=!1,cancelledDeferredRoutes=[],cancelledFetcherLoads=[]}async function navigate(to,opts){if(typeof to=="number"){init.history.go(to);return}let normalizedPath=normalizeTo(state.location,state.matches,basename,future.v7_prependBasename,to,future.v7_relativeSplatPath,opts?.fromRouteId,opts?.relative),{path,submission,error}=normalizeNavigateOptions(future.v7_normalizeFormMethod,!1,normalizedPath,opts),currentLocation=state.location,nextLocation=createLocation(state.location,path,opts&&opts.state);nextLocation=_extends({},nextLocation,init.history.encodeLocation(nextLocation));let userReplace=opts&&opts.replace!=null?opts.replace:void 0,historyAction=Action.Push;userReplace===!0?historyAction=Action.Replace:userReplace===!1||submission!=null&&isMutationMethod(submission.formMethod)&&submission.formAction===state.location.pathname+state.location.search&&(historyAction=Action.Replace);let preventScrollReset=opts&&"preventScrollReset"in opts?opts.preventScrollReset===!0:void 0,flushSync=(opts&&opts.unstable_flushSync)===!0,blockerKey=shouldBlockNavigation({currentLocation,nextLocation,historyAction});if(blockerKey){updateBlocker(blockerKey,{state:"blocked",location:nextLocation,proceed(){updateBlocker(blockerKey,{state:"proceeding",proceed:void 0,reset:void 0,location:nextLocation}),navigate(to,opts)},reset(){let blockers=new Map(state.blockers);blockers.set(blockerKey,IDLE_BLOCKER),updateState({blockers})}});return}return await startNavigation(historyAction,nextLocation,{submission,pendingError:error,preventScrollReset,replace:opts&&opts.replace,enableViewTransition:opts&&opts.unstable_viewTransition,flushSync})}function revalidate(){if(interruptActiveLoads(),updateState({revalidation:"loading"}),state.navigation.state!=="submitting"){if(state.navigation.state==="idle"){startNavigation(state.historyAction,state.location,{startUninterruptedRevalidation:!0});return}startNavigation(pendingAction||state.historyAction,state.navigation.location,{overrideNavigation:state.navigation})}}async function startNavigation(historyAction,location,opts){pendingNavigationController&&pendingNavigationController.abort(),pendingNavigationController=null,pendingAction=historyAction,isUninterruptedRevalidation=(opts&&opts.startUninterruptedRevalidation)===!0,saveScrollPosition(state.location,state.matches),pendingPreventScrollReset=(opts&&opts.preventScrollReset)===!0,pendingViewTransitionEnabled=(opts&&opts.enableViewTransition)===!0;let routesToUse=inFlightDataRoutes||dataRoutes,loadingNavigation=opts&&opts.overrideNavigation,matches=matchRoutes(routesToUse,location,basename),flushSync=(opts&&opts.flushSync)===!0;if(!matches){let error=getInternalRouterError(404,{pathname:location.pathname}),{matches:notFoundMatches,route}=getShortCircuitMatches(routesToUse);cancelActiveDeferreds(),completeNavigation(location,{matches:notFoundMatches,loaderData:{},errors:{[route.id]:error}},{flushSync});return}if(state.initialized&&!isRevalidationRequired&&isHashChangeOnly(state.location,location)&&!(opts&&opts.submission&&isMutationMethod(opts.submission.formMethod))){completeNavigation(location,{matches},{flushSync});return}pendingNavigationController=new AbortController;let request=createClientSideRequest(init.history,location,pendingNavigationController.signal,opts&&opts.submission),pendingActionData,pendingError;if(opts&&opts.pendingError)pendingError={[findNearestBoundary(matches).route.id]:opts.pendingError};else if(opts&&opts.submission&&isMutationMethod(opts.submission.formMethod)){let actionOutput=await handleAction(request,location,opts.submission,matches,{replace:opts.replace,flushSync});if(actionOutput.shortCircuited)return;pendingActionData=actionOutput.pendingActionData,pendingError=actionOutput.pendingActionError,loadingNavigation=getLoadingNavigation(location,opts.submission),flushSync=!1,request=new Request(request.url,{signal:request.signal})}let{shortCircuited,loaderData,errors}=await handleLoaders(request,location,matches,loadingNavigation,opts&&opts.submission,opts&&opts.fetcherSubmission,opts&&opts.replace,opts&&opts.initialHydration===!0,flushSync,pendingActionData,pendingError);shortCircuited||(pendingNavigationController=null,completeNavigation(location,_extends({matches},pendingActionData?{actionData:pendingActionData}:{},{loaderData,errors})))}async function handleAction(request,location,submission,matches,opts){opts===void 0&&(opts={}),interruptActiveLoads();let navigation=getSubmittingNavigation(location,submission);updateState({navigation},{flushSync:opts.flushSync===!0});let result,actionMatch=getTargetMatch(matches,location);if(!actionMatch.route.action&&!actionMatch.route.lazy)result={type:ResultType.error,error:getInternalRouterError(405,{method:request.method,pathname:location.pathname,routeId:actionMatch.route.id})};else if(result=await callLoaderOrAction("action",request,actionMatch,matches,manifest,mapRouteProperties2,basename,future.v7_relativeSplatPath),request.signal.aborted)return{shortCircuited:!0};if(isRedirectResult(result)){let replace;return opts&&opts.replace!=null?replace=opts.replace:replace=result.location===state.location.pathname+state.location.search,await startRedirectNavigation(state,result,{submission,replace}),{shortCircuited:!0}}if(isErrorResult(result)){let boundaryMatch=findNearestBoundary(matches,actionMatch.route.id);return(opts&&opts.replace)!==!0&&(pendingAction=Action.Push),{pendingActionData:{},pendingActionError:{[boundaryMatch.route.id]:result.error}}}if(isDeferredResult(result))throw getInternalRouterError(400,{type:"defer-action"});return{pendingActionData:{[actionMatch.route.id]:result.data}}}async function handleLoaders(request,location,matches,overrideNavigation,submission,fetcherSubmission,replace,initialHydration,flushSync,pendingActionData,pendingError){let loadingNavigation=overrideNavigation||getLoadingNavigation(location,submission),activeSubmission=submission||fetcherSubmission||getSubmissionFromNavigation(loadingNavigation),routesToUse=inFlightDataRoutes||dataRoutes,[matchesToLoad,revalidatingFetchers]=getMatchesToLoad(init.history,state,matches,activeSubmission,location,future.v7_partialHydration&&initialHydration===!0,isRevalidationRequired,cancelledDeferredRoutes,cancelledFetcherLoads,deletedFetchers,fetchLoadMatches,fetchRedirectIds,routesToUse,basename,pendingActionData,pendingError);if(cancelActiveDeferreds(routeId=>!(matches&&matches.some(m=>m.route.id===routeId))||matchesToLoad&&matchesToLoad.some(m=>m.route.id===routeId)),pendingNavigationLoadId=++incrementingLoadId,matchesToLoad.length===0&&revalidatingFetchers.length===0){let updatedFetchers2=markFetchRedirectsDone();return completeNavigation(location,_extends({matches,loaderData:{},errors:pendingError||null},pendingActionData?{actionData:pendingActionData}:{},updatedFetchers2?{fetchers:new Map(state.fetchers)}:{}),{flushSync}),{shortCircuited:!0}}if(!isUninterruptedRevalidation&&(!future.v7_partialHydration||!initialHydration)){revalidatingFetchers.forEach(rf=>{let fetcher=state.fetchers.get(rf.key),revalidatingFetcher=getLoadingFetcher(void 0,fetcher?fetcher.data:void 0);state.fetchers.set(rf.key,revalidatingFetcher)});let actionData=pendingActionData||state.actionData;updateState(_extends({navigation:loadingNavigation},actionData?Object.keys(actionData).length===0?{actionData:null}:{actionData}:{},revalidatingFetchers.length>0?{fetchers:new Map(state.fetchers)}:{}),{flushSync})}revalidatingFetchers.forEach(rf=>{fetchControllers.has(rf.key)&&abortFetcher(rf.key),rf.controller&&fetchControllers.set(rf.key,rf.controller)});let abortPendingFetchRevalidations=()=>revalidatingFetchers.forEach(f=>abortFetcher(f.key));pendingNavigationController&&pendingNavigationController.signal.addEventListener("abort",abortPendingFetchRevalidations);let{results,loaderResults,fetcherResults}=await callLoadersAndMaybeResolveData(state.matches,matches,matchesToLoad,revalidatingFetchers,request);if(request.signal.aborted)return{shortCircuited:!0};pendingNavigationController&&pendingNavigationController.signal.removeEventListener("abort",abortPendingFetchRevalidations),revalidatingFetchers.forEach(rf=>fetchControllers.delete(rf.key));let redirect2=findRedirect(results);if(redirect2){if(redirect2.idx>=matchesToLoad.length){let fetcherKey=revalidatingFetchers[redirect2.idx-matchesToLoad.length].key;fetchRedirectIds.add(fetcherKey)}return await startRedirectNavigation(state,redirect2.result,{replace}),{shortCircuited:!0}}let{loaderData,errors}=processLoaderData(state,matches,matchesToLoad,loaderResults,pendingError,revalidatingFetchers,fetcherResults,activeDeferreds);activeDeferreds.forEach((deferredData,routeId)=>{deferredData.subscribe(aborted=>{(aborted||deferredData.done)&&activeDeferreds.delete(routeId)})});let updatedFetchers=markFetchRedirectsDone(),didAbortFetchLoads=abortStaleFetchLoads(pendingNavigationLoadId),shouldUpdateFetchers=updatedFetchers||didAbortFetchLoads||revalidatingFetchers.length>0;return _extends({loaderData,errors},shouldUpdateFetchers?{fetchers:new Map(state.fetchers)}:{})}function fetch(key,routeId,href,opts){if(isServer)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");fetchControllers.has(key)&&abortFetcher(key);let flushSync=(opts&&opts.unstable_flushSync)===!0,routesToUse=inFlightDataRoutes||dataRoutes,normalizedPath=normalizeTo(state.location,state.matches,basename,future.v7_prependBasename,href,future.v7_relativeSplatPath,routeId,opts?.relative),matches=matchRoutes(routesToUse,normalizedPath,basename);if(!matches){setFetcherError(key,routeId,getInternalRouterError(404,{pathname:normalizedPath}),{flushSync});return}let{path,submission,error}=normalizeNavigateOptions(future.v7_normalizeFormMethod,!0,normalizedPath,opts);if(error){setFetcherError(key,routeId,error,{flushSync});return}let match=getTargetMatch(matches,path);if(pendingPreventScrollReset=(opts&&opts.preventScrollReset)===!0,submission&&isMutationMethod(submission.formMethod)){handleFetcherAction(key,routeId,path,match,matches,flushSync,submission);return}fetchLoadMatches.set(key,{routeId,path}),handleFetcherLoader(key,routeId,path,match,matches,flushSync,submission)}async function handleFetcherAction(key,routeId,path,match,requestMatches,flushSync,submission){if(interruptActiveLoads(),fetchLoadMatches.delete(key),!match.route.action&&!match.route.lazy){let error=getInternalRouterError(405,{method:submission.formMethod,pathname:path,routeId});setFetcherError(key,routeId,error,{flushSync});return}let existingFetcher=state.fetchers.get(key);updateFetcherState(key,getSubmittingFetcher(submission,existingFetcher),{flushSync});let abortController=new AbortController,fetchRequest=createClientSideRequest(init.history,path,abortController.signal,submission);fetchControllers.set(key,abortController);let originatingLoadId=incrementingLoadId,actionResult=await callLoaderOrAction("action",fetchRequest,match,requestMatches,manifest,mapRouteProperties2,basename,future.v7_relativeSplatPath);if(fetchRequest.signal.aborted){fetchControllers.get(key)===abortController&&fetchControllers.delete(key);return}if(future.v7_fetcherPersist&&deletedFetchers.has(key)){if(isRedirectResult(actionResult)||isErrorResult(actionResult)){updateFetcherState(key,getDoneFetcher(void 0));return}}else{if(isRedirectResult(actionResult))if(fetchControllers.delete(key),pendingNavigationLoadId>originatingLoadId){updateFetcherState(key,getDoneFetcher(void 0));return}else return fetchRedirectIds.add(key),updateFetcherState(key,getLoadingFetcher(submission)),startRedirectNavigation(state,actionResult,{fetcherSubmission:submission});if(isErrorResult(actionResult)){setFetcherError(key,routeId,actionResult.error);return}}if(isDeferredResult(actionResult))throw getInternalRouterError(400,{type:"defer-action"});let nextLocation=state.navigation.location||state.location,revalidationRequest=createClientSideRequest(init.history,nextLocation,abortController.signal),routesToUse=inFlightDataRoutes||dataRoutes,matches=state.navigation.state!=="idle"?matchRoutes(routesToUse,state.navigation.location,basename):state.matches;invariant(matches,"Didn't find any matches after fetcher action");let loadId=++incrementingLoadId;fetchReloadIds.set(key,loadId);let loadFetcher=getLoadingFetcher(submission,actionResult.data);state.fetchers.set(key,loadFetcher);let[matchesToLoad,revalidatingFetchers]=getMatchesToLoad(init.history,state,matches,submission,nextLocation,!1,isRevalidationRequired,cancelledDeferredRoutes,cancelledFetcherLoads,deletedFetchers,fetchLoadMatches,fetchRedirectIds,routesToUse,basename,{[match.route.id]:actionResult.data},void 0);revalidatingFetchers.filter(rf=>rf.key!==key).forEach(rf=>{let staleKey=rf.key,existingFetcher2=state.fetchers.get(staleKey),revalidatingFetcher=getLoadingFetcher(void 0,existingFetcher2?existingFetcher2.data:void 0);state.fetchers.set(staleKey,revalidatingFetcher),fetchControllers.has(staleKey)&&abortFetcher(staleKey),rf.controller&&fetchControllers.set(staleKey,rf.controller)}),updateState({fetchers:new Map(state.fetchers)});let abortPendingFetchRevalidations=()=>revalidatingFetchers.forEach(rf=>abortFetcher(rf.key));abortController.signal.addEventListener("abort",abortPendingFetchRevalidations);let{results,loaderResults,fetcherResults}=await callLoadersAndMaybeResolveData(state.matches,matches,matchesToLoad,revalidatingFetchers,revalidationRequest);if(abortController.signal.aborted)return;abortController.signal.removeEventListener("abort",abortPendingFetchRevalidations),fetchReloadIds.delete(key),fetchControllers.delete(key),revalidatingFetchers.forEach(r=>fetchControllers.delete(r.key));let redirect2=findRedirect(results);if(redirect2){if(redirect2.idx>=matchesToLoad.length){let fetcherKey=revalidatingFetchers[redirect2.idx-matchesToLoad.length].key;fetchRedirectIds.add(fetcherKey)}return startRedirectNavigation(state,redirect2.result)}let{loaderData,errors}=processLoaderData(state,state.matches,matchesToLoad,loaderResults,void 0,revalidatingFetchers,fetcherResults,activeDeferreds);if(state.fetchers.has(key)){let doneFetcher=getDoneFetcher(actionResult.data);state.fetchers.set(key,doneFetcher)}abortStaleFetchLoads(loadId),state.navigation.state==="loading"&&loadId>pendingNavigationLoadId?(invariant(pendingAction,"Expected pending action"),pendingNavigationController&&pendingNavigationController.abort(),completeNavigation(state.navigation.location,{matches,loaderData,errors,fetchers:new Map(state.fetchers)})):(updateState({errors,loaderData:mergeLoaderData(state.loaderData,loaderData,matches,errors),fetchers:new Map(state.fetchers)}),isRevalidationRequired=!1)}async function handleFetcherLoader(key,routeId,path,match,matches,flushSync,submission){let existingFetcher=state.fetchers.get(key);updateFetcherState(key,getLoadingFetcher(submission,existingFetcher?existingFetcher.data:void 0),{flushSync});let abortController=new AbortController,fetchRequest=createClientSideRequest(init.history,path,abortController.signal);fetchControllers.set(key,abortController);let originatingLoadId=incrementingLoadId,result=await callLoaderOrAction("loader",fetchRequest,match,matches,manifest,mapRouteProperties2,basename,future.v7_relativeSplatPath);if(isDeferredResult(result)&&(result=await resolveDeferredData(result,fetchRequest.signal,!0)||result),fetchControllers.get(key)===abortController&&fetchControllers.delete(key),!fetchRequest.signal.aborted){if(deletedFetchers.has(key)){updateFetcherState(key,getDoneFetcher(void 0));return}if(isRedirectResult(result))if(pendingNavigationLoadId>originatingLoadId){updateFetcherState(key,getDoneFetcher(void 0));return}else{fetchRedirectIds.add(key),await startRedirectNavigation(state,result);return}if(isErrorResult(result)){setFetcherError(key,routeId,result.error);return}invariant(!isDeferredResult(result),"Unhandled fetcher deferred data"),updateFetcherState(key,getDoneFetcher(result.data))}}async function startRedirectNavigation(state2,redirect2,_temp2){let{submission,fetcherSubmission,replace}=_temp2===void 0?{}:_temp2;redirect2.revalidate&&(isRevalidationRequired=!0);let redirectLocation=createLocation(state2.location,redirect2.location,{_isRedirect:!0});if(invariant(redirectLocation,"Expected a location on the redirect navigation"),isBrowser2){let isDocumentReload=!1;if(redirect2.reloadDocument)isDocumentReload=!0;else if(ABSOLUTE_URL_REGEX.test(redirect2.location)){const url=init.history.createURL(redirect2.location);isDocumentReload=url.origin!==routerWindow.location.origin||stripBasename(url.pathname,basename)==null}if(isDocumentReload){replace?routerWindow.location.replace(redirect2.location):routerWindow.location.assign(redirect2.location);return}}pendingNavigationController=null;let redirectHistoryAction=replace===!0?Action.Replace:Action.Push,{formMethod,formAction,formEncType}=state2.navigation;!submission&&!fetcherSubmission&&formMethod&&formAction&&formEncType&&(submission=getSubmissionFromNavigation(state2.navigation));let activeSubmission=submission||fetcherSubmission;if(redirectPreserveMethodStatusCodes.has(redirect2.status)&&activeSubmission&&isMutationMethod(activeSubmission.formMethod))await startNavigation(redirectHistoryAction,redirectLocation,{submission:_extends({},activeSubmission,{formAction:redirect2.location}),preventScrollReset:pendingPreventScrollReset});else{let overrideNavigation=getLoadingNavigation(redirectLocation,submission);await startNavigation(redirectHistoryAction,redirectLocation,{overrideNavigation,fetcherSubmission,preventScrollReset:pendingPreventScrollReset})}}async function callLoadersAndMaybeResolveData(currentMatches,matches,matchesToLoad,fetchersToLoad,request){let results=await Promise.all([...matchesToLoad.map(match=>callLoaderOrAction("loader",request,match,matches,manifest,mapRouteProperties2,basename,future.v7_relativeSplatPath)),...fetchersToLoad.map(f=>f.matches&&f.match&&f.controller?callLoaderOrAction("loader",createClientSideRequest(init.history,f.path,f.controller.signal),f.match,f.matches,manifest,mapRouteProperties2,basename,future.v7_relativeSplatPath):{type:ResultType.error,error:getInternalRouterError(404,{pathname:f.path})})]),loaderResults=results.slice(0,matchesToLoad.length),fetcherResults=results.slice(matchesToLoad.length);return await Promise.all([resolveDeferredResults(currentMatches,matchesToLoad,loaderResults,loaderResults.map(()=>request.signal),!1,state.loaderData),resolveDeferredResults(currentMatches,fetchersToLoad.map(f=>f.match),fetcherResults,fetchersToLoad.map(f=>f.controller?f.controller.signal:null),!0)]),{results,loaderResults,fetcherResults}}function interruptActiveLoads(){isRevalidationRequired=!0,cancelledDeferredRoutes.push(...cancelActiveDeferreds()),fetchLoadMatches.forEach((_,key)=>{fetchControllers.has(key)&&(cancelledFetcherLoads.push(key),abortFetcher(key))})}function updateFetcherState(key,fetcher,opts){opts===void 0&&(opts={}),state.fetchers.set(key,fetcher),updateState({fetchers:new Map(state.fetchers)},{flushSync:(opts&&opts.flushSync)===!0})}function setFetcherError(key,routeId,error,opts){opts===void 0&&(opts={});let boundaryMatch=findNearestBoundary(state.matches,routeId);deleteFetcher(key),updateState({errors:{[boundaryMatch.route.id]:error},fetchers:new Map(state.fetchers)},{flushSync:(opts&&opts.flushSync)===!0})}function getFetcher(key){return future.v7_fetcherPersist&&(activeFetchers.set(key,(activeFetchers.get(key)||0)+1),deletedFetchers.has(key)&&deletedFetchers.delete(key)),state.fetchers.get(key)||IDLE_FETCHER}function deleteFetcher(key){let fetcher=state.fetchers.get(key);fetchControllers.has(key)&&!(fetcher&&fetcher.state==="loading"&&fetchReloadIds.has(key))&&abortFetcher(key),fetchLoadMatches.delete(key),fetchReloadIds.delete(key),fetchRedirectIds.delete(key),deletedFetchers.delete(key),state.fetchers.delete(key)}function deleteFetcherAndUpdateState(key){if(future.v7_fetcherPersist){let count=(activeFetchers.get(key)||0)-1;count<=0?(activeFetchers.delete(key),deletedFetchers.add(key)):activeFetchers.set(key,count)}else deleteFetcher(key);updateState({fetchers:new Map(state.fetchers)})}function abortFetcher(key){let controller=fetchControllers.get(key);invariant(controller,"Expected fetch controller: "+key),controller.abort(),fetchControllers.delete(key)}function markFetchersDone(keys){for(let key of keys){let fetcher=getFetcher(key),doneFetcher=getDoneFetcher(fetcher.data);state.fetchers.set(key,doneFetcher)}}function markFetchRedirectsDone(){let doneKeys=[],updatedFetchers=!1;for(let key of fetchRedirectIds){let fetcher=state.fetchers.get(key);invariant(fetcher,"Expected fetcher: "+key),fetcher.state==="loading"&&(fetchRedirectIds.delete(key),doneKeys.push(key),updatedFetchers=!0)}return markFetchersDone(doneKeys),updatedFetchers}function abortStaleFetchLoads(landedId){let yeetedKeys=[];for(let[key,id]of fetchReloadIds)if(id<landedId){let fetcher=state.fetchers.get(key);invariant(fetcher,"Expected fetcher: "+key),fetcher.state==="loading"&&(abortFetcher(key),fetchReloadIds.delete(key),yeetedKeys.push(key))}return markFetchersDone(yeetedKeys),yeetedKeys.length>0}function getBlocker(key,fn){let blocker=state.blockers.get(key)||IDLE_BLOCKER;return blockerFunctions.get(key)!==fn&&blockerFunctions.set(key,fn),blocker}function deleteBlocker(key){state.blockers.delete(key),blockerFunctions.delete(key)}function updateBlocker(key,newBlocker){let blocker=state.blockers.get(key)||IDLE_BLOCKER;invariant(blocker.state==="unblocked"&&newBlocker.state==="blocked"||blocker.state==="blocked"&&newBlocker.state==="blocked"||blocker.state==="blocked"&&newBlocker.state==="proceeding"||blocker.state==="blocked"&&newBlocker.state==="unblocked"||blocker.state==="proceeding"&&newBlocker.state==="unblocked","Invalid blocker state transition: "+blocker.state+" -> "+newBlocker.state);let blockers=new Map(state.blockers);blockers.set(key,newBlocker),updateState({blockers})}function shouldBlockNavigation(_ref2){let{currentLocation,nextLocation,historyAction}=_ref2;if(blockerFunctions.size===0)return;blockerFunctions.size>1&&warning(!1,"A router only supports one blocker at a time");let entries=Array.from(blockerFunctions.entries()),[blockerKey,blockerFunction]=entries[entries.length-1],blocker=state.blockers.get(blockerKey);if(!(blocker&&blocker.state==="proceeding")&&blockerFunction({currentLocation,nextLocation,historyAction}))return blockerKey}function cancelActiveDeferreds(predicate){let cancelledRouteIds=[];return activeDeferreds.forEach((dfd,routeId)=>{(!predicate||predicate(routeId))&&(dfd.cancel(),cancelledRouteIds.push(routeId),activeDeferreds.delete(routeId))}),cancelledRouteIds}function enableScrollRestoration(positions,getPosition,getKey){if(savedScrollPositions2=positions,getScrollPosition=getPosition,getScrollRestorationKey=getKey||null,!initialScrollRestored&&state.navigation===IDLE_NAVIGATION){initialScrollRestored=!0;let y=getSavedScrollPosition(state.location,state.matches);y!=null&&updateState({restoreScrollPosition:y})}return()=>{savedScrollPositions2=null,getScrollPosition=null,getScrollRestorationKey=null}}function getScrollKey(location,matches){return getScrollRestorationKey&&getScrollRestorationKey(location,matches.map(m=>convertRouteMatchToUiMatch(m,state.loaderData)))||location.key}function saveScrollPosition(location,matches){if(savedScrollPositions2&&getScrollPosition){let key=getScrollKey(location,matches);savedScrollPositions2[key]=getScrollPosition()}}function getSavedScrollPosition(location,matches){if(savedScrollPositions2){let key=getScrollKey(location,matches),y=savedScrollPositions2[key];if(typeof y=="number")return y}return null}function _internalSetRoutes(newRoutes){manifest={},inFlightDataRoutes=convertRoutesToDataRoutes(newRoutes,mapRouteProperties2,void 0,manifest)}return router={get basename(){return basename},get future(){return future},get state(){return state},get routes(){return dataRoutes},get window(){return routerWindow},initialize,subscribe,enableScrollRestoration,navigate,fetch,revalidate,createHref:to=>init.history.createHref(to),encodeLocation:to=>init.history.encodeLocation(to),getFetcher,deleteFetcher:deleteFetcherAndUpdateState,dispose,getBlocker,deleteBlocker,_internalFetchControllers:fetchControllers,_internalActiveDeferreds:activeDeferreds,_internalSetRoutes},router}const UNSAFE_DEFERRED_SYMBOL=Symbol("deferred");function createStaticHandler(routes,opts){invariant(routes.length>0,"You must provide a non-empty routes array to createStaticHandler");let manifest={},basename=(opts?opts.basename:null)||"/",mapRouteProperties2;if(opts!=null&&opts.mapRouteProperties)mapRouteProperties2=opts.mapRouteProperties;else if(opts!=null&&opts.detectErrorBoundary){let detectErrorBoundary=opts.detectErrorBoundary;mapRouteProperties2=route=>({hasErrorBoundary:detectErrorBoundary(route)})}else mapRouteProperties2=defaultMapRouteProperties;let future=_extends({v7_relativeSplatPath:!1},opts?opts.future:null),dataRoutes=convertRoutesToDataRoutes(routes,mapRouteProperties2,void 0,manifest);async function query(request,_temp3){let{requestContext}=_temp3===void 0?{}:_temp3,url=new URL(request.url),method=request.method,location=createLocation("",createPath(url),null,"default"),matches=matchRoutes(dataRoutes,location,basename);if(!isValidMethod(method)&&method!=="HEAD"){let error=getInternalRouterError(405,{method}),{matches:methodNotAllowedMatches,route}=getShortCircuitMatches(dataRoutes);return{basename,location,matches:methodNotAllowedMatches,loaderData:{},actionData:null,errors:{[route.id]:error},statusCode:error.status,loaderHeaders:{},actionHeaders:{},activeDeferreds:null}}else if(!matches){let error=getInternalRouterError(404,{pathname:location.pathname}),{matches:notFoundMatches,route}=getShortCircuitMatches(dataRoutes);return{basename,location,matches:notFoundMatches,loaderData:{},actionData:null,errors:{[route.id]:error},statusCode:error.status,loaderHeaders:{},actionHeaders:{},activeDeferreds:null}}let result=await queryImpl(request,location,matches,requestContext);return isResponse(result)?result:_extends({location,basename},result)}async function queryRoute(request,_temp4){let{routeId,requestContext}=_temp4===void 0?{}:_temp4,url=new URL(request.url),method=request.method,location=createLocation("",createPath(url),null,"default"),matches=matchRoutes(dataRoutes,location,basename);if(!isValidMethod(method)&&method!=="HEAD"&&method!=="OPTIONS")throw getInternalRouterError(405,{method});if(!matches)throw getInternalRouterError(404,{pathname:location.pathname});let match=routeId?matches.find(m=>m.route.id===routeId):getTargetMatch(matches,location);if(routeId&&!match)throw getInternalRouterError(403,{pathname:location.pathname,routeId});if(!match)throw getInternalRouterError(404,{pathname:location.pathname});let result=await queryImpl(request,location,matches,requestContext,match);if(isResponse(result))return result;let error=result.errors?Object.values(result.errors)[0]:void 0;if(error!==void 0)throw error;if(result.actionData)return Object.values(result.actionData)[0];if(result.loaderData){var _result$activeDeferre;let data=Object.values(result.loaderData)[0];return(_result$activeDeferre=result.activeDeferreds)!=null&&_result$activeDeferre[match.route.id]&&(data[UNSAFE_DEFERRED_SYMBOL]=result.activeDeferreds[match.route.id]),data}}async function queryImpl(request,location,matches,requestContext,routeMatch){invariant(request.signal,"query()/queryRoute() requests must contain an AbortController signal");try{if(isMutationMethod(request.method.toLowerCase()))return await submit(request,matches,routeMatch||getTargetMatch(matches,location),requestContext,routeMatch!=null);let result=await loadRouteData(request,matches,requestContext,routeMatch);return isResponse(result)?result:_extends({},result,{actionData:null,actionHeaders:{}})}catch(e){if(isQueryRouteResponse(e)){if(e.type===ResultType.error)throw e.response;return e.response}if(isRedirectResponse(e))return e;throw e}}async function submit(request,matches,actionMatch,requestContext,isRouteRequest){let result;if(!actionMatch.route.action&&!actionMatch.route.lazy){let error=getInternalRouterError(405,{method:request.method,pathname:new URL(request.url).pathname,routeId:actionMatch.route.id});if(isRouteRequest)throw error;result={type:ResultType.error,error}}else if(result=await callLoaderOrAction("action",request,actionMatch,matches,manifest,mapRouteProperties2,basename,future.v7_relativeSplatPath,{isStaticRequest:!0,isRouteRequest,requestContext}),request.signal.aborted){let method=isRouteRequest?"queryRoute":"query";throw new Error(method+"() call aborted: "+request.method+" "+request.url)}if(isRedirectResult(result))throw new Response(null,{status:result.status,headers:{Location:result.location}});if(isDeferredResult(result)){let error=getInternalRouterError(400,{type:"defer-action"});if(isRouteRequest)throw error;result={type:ResultType.error,error}}if(isRouteRequest){if(isErrorResult(result))throw result.error;return{matches:[actionMatch],loaderData:{},actionData:{[actionMatch.route.id]:result.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{},activeDeferreds:null}}if(isErrorResult(result)){let boundaryMatch=findNearestBoundary(matches,actionMatch.route.id),context2=await loadRouteData(request,matches,requestContext,void 0,{[boundaryMatch.route.id]:result.error});return _extends({},context2,{statusCode:isRouteErrorResponse(result.error)?result.error.status:500,actionData:null,actionHeaders:_extends({},result.headers?{[actionMatch.route.id]:result.headers}:{})})}let loaderRequest=new Request(request.url,{headers:request.headers,redirect:request.redirect,signal:request.signal}),context=await loadRouteData(loaderRequest,matches,requestContext);return _extends({},context,result.statusCode?{statusCode:result.statusCode}:{},{actionData:{[actionMatch.route.id]:result.data},actionHeaders:_extends({},result.headers?{[actionMatch.route.id]:result.headers}:{})})}async function loadRouteData(request,matches,requestContext,routeMatch,pendingActionError){let isRouteRequest=routeMatch!=null;if(isRouteRequest&&!(routeMatch!=null&&routeMatch.route.loader)&&!(routeMatch!=null&&routeMatch.route.lazy))throw getInternalRouterError(400,{method:request.method,pathname:new URL(request.url).pathname,routeId:routeMatch?.route.id});let matchesToLoad=(routeMatch?[routeMatch]:getLoaderMatchesUntilBoundary(matches,Object.keys(pendingActionError||{})[0])).filter(m=>m.route.loader||m.route.lazy);if(matchesToLoad.length===0)return{matches,loaderData:matches.reduce((acc,m)=>Object.assign(acc,{[m.route.id]:null}),{}),errors:pendingActionError||null,statusCode:200,loaderHeaders:{},activeDeferreds:null};let results=await Promise.all([...matchesToLoad.map(match=>callLoaderOrAction("loader",request,match,matches,manifest,mapRouteProperties2,basename,future.v7_relativeSplatPath,{isStaticRequest:!0,isRouteRequest,requestContext}))]);if(request.signal.aborted){let method=isRouteRequest?"queryRoute":"query";throw new Error(method+"() call aborted: "+request.method+" "+request.url)}let activeDeferreds=new Map,context=processRouteLoaderData(matches,matchesToLoad,results,pendingActionError,activeDeferreds),executedLoaders=new Set(matchesToLoad.map(match=>match.route.id));return matches.forEach(match=>{executedLoaders.has(match.route.id)||(context.loaderData[match.route.id]=null)}),_extends({},context,{matches,activeDeferreds:activeDeferreds.size>0?Object.fromEntries(activeDeferreds.entries()):null})}return{dataRoutes,query,queryRoute}}function getStaticContextFromError(routes,context,error){return _extends({},context,{statusCode:500,errors:{[context._deepestRenderedBoundaryId||routes[0].id]:error}})}function isSubmissionNavigation(opts){return opts!=null&&("formData"in opts&&opts.formData!=null||"body"in opts&&opts.body!==void 0)}function normalizeTo(location,matches,basename,prependBasename,to,v7_relativeSplatPath,fromRouteId,relative){let contextualMatches,activeRouteMatch;if(fromRouteId){contextualMatches=[];for(let match of matches)if(contextualMatches.push(match),match.route.id===fromRouteId){activeRouteMatch=match;break}}else contextualMatches=matches,activeRouteMatch=matches[matches.length-1];let path=resolveTo(to||".",getResolveToMatches(contextualMatches,v7_relativeSplatPath),stripBasename(location.pathname,basename)||location.pathname,relative==="path");return to==null&&(path.search=location.search,path.hash=location.hash),(to==null||to===""||to===".")&&activeRouteMatch&&activeRouteMatch.route.index&&!hasNakedIndexQuery(path.search)&&(path.search=path.search?path.search.replace(/^\?/,"?index&"):"?index"),prependBasename&&basename!=="/"&&(path.pathname=path.pathname==="/"?basename:joinPaths([basename,path.pathname])),createPath(path)}function normalizeNavigateOptions(normalizeFormMethod,isFetcher,path,opts){if(!opts||!isSubmissionNavigation(opts))return{path};if(opts.formMethod&&!isValidMethod(opts.formMethod))return{path,error:getInternalRouterError(405,{method:opts.formMethod})};let getInvalidBodyError=()=>({path,error:getInternalRouterError(400,{type:"invalid-body"})}),rawFormMethod=opts.formMethod||"get",formMethod=normalizeFormMethod?rawFormMethod.toUpperCase():rawFormMethod.toLowerCase(),formAction=stripHashFromPath(path);if(opts.body!==void 0){if(opts.formEncType==="text/plain"){if(!isMutationMethod(formMethod))return getInvalidBodyError();let text=typeof opts.body=="string"?opts.body:opts.body instanceof FormData||opts.body instanceof URLSearchParams?Array.from(opts.body.entries()).reduce((acc,_ref3)=>{let[name,value]=_ref3;return""+acc+name+"="+value+`
|
11
|
+
`},""):String(opts.body);return{path,submission:{formMethod,formAction,formEncType:opts.formEncType,formData:void 0,json:void 0,text}}}else if(opts.formEncType==="application/json"){if(!isMutationMethod(formMethod))return getInvalidBodyError();try{let json2=typeof opts.body=="string"?JSON.parse(opts.body):opts.body;return{path,submission:{formMethod,formAction,formEncType:opts.formEncType,formData:void 0,json:json2,text:void 0}}}catch{return getInvalidBodyError()}}}invariant(typeof FormData=="function","FormData is not available in this environment");let searchParams,formData;if(opts.formData)searchParams=convertFormDataToSearchParams(opts.formData),formData=opts.formData;else if(opts.body instanceof FormData)searchParams=convertFormDataToSearchParams(opts.body),formData=opts.body;else if(opts.body instanceof URLSearchParams)searchParams=opts.body,formData=convertSearchParamsToFormData(searchParams);else if(opts.body==null)searchParams=new URLSearchParams,formData=new FormData;else try{searchParams=new URLSearchParams(opts.body),formData=convertSearchParamsToFormData(searchParams)}catch{return getInvalidBodyError()}let submission={formMethod,formAction,formEncType:opts&&opts.formEncType||"application/x-www-form-urlencoded",formData,json:void 0,text:void 0};if(isMutationMethod(submission.formMethod))return{path,submission};let parsedPath=parsePath(path);return isFetcher&&parsedPath.search&&hasNakedIndexQuery(parsedPath.search)&&searchParams.append("index",""),parsedPath.search="?"+searchParams,{path:createPath(parsedPath),submission}}function getLoaderMatchesUntilBoundary(matches,boundaryId){let boundaryMatches=matches;if(boundaryId){let index=matches.findIndex(m=>m.route.id===boundaryId);index>=0&&(boundaryMatches=matches.slice(0,index))}return boundaryMatches}function getMatchesToLoad(history,state,matches,submission,location,isInitialLoad,isRevalidationRequired,cancelledDeferredRoutes,cancelledFetcherLoads,deletedFetchers,fetchLoadMatches,fetchRedirectIds,routesToUse,basename,pendingActionData,pendingError){let actionResult=pendingError?Object.values(pendingError)[0]:pendingActionData?Object.values(pendingActionData)[0]:void 0,currentUrl=history.createURL(state.location),nextUrl=history.createURL(location),boundaryId=pendingError?Object.keys(pendingError)[0]:void 0,navigationMatches=getLoaderMatchesUntilBoundary(matches,boundaryId).filter((match,index)=>{let{route}=match;if(route.lazy)return!0;if(route.loader==null)return!1;if(isInitialLoad)return route.loader.hydrate?!0:state.loaderData[route.id]===void 0&&(!state.errors||state.errors[route.id]===void 0);if(isNewLoader(state.loaderData,state.matches[index],match)||cancelledDeferredRoutes.some(id=>id===match.route.id))return!0;let currentRouteMatch=state.matches[index],nextRouteMatch=match;return shouldRevalidateLoader(match,_extends({currentUrl,currentParams:currentRouteMatch.params,nextUrl,nextParams:nextRouteMatch.params},submission,{actionResult,defaultShouldRevalidate:isRevalidationRequired||currentUrl.pathname+currentUrl.search===nextUrl.pathname+nextUrl.search||currentUrl.search!==nextUrl.search||isNewRouteInstance(currentRouteMatch,nextRouteMatch)}))}),revalidatingFetchers=[];return fetchLoadMatches.forEach((f,key)=>{if(isInitialLoad||!matches.some(m=>m.route.id===f.routeId)||deletedFetchers.has(key))return;let fetcherMatches=matchRoutes(routesToUse,f.path,basename);if(!fetcherMatches){revalidatingFetchers.push({key,routeId:f.routeId,path:f.path,matches:null,match:null,controller:null});return}let fetcher=state.fetchers.get(key),fetcherMatch=getTargetMatch(fetcherMatches,f.path),shouldRevalidate=!1;fetchRedirectIds.has(key)?shouldRevalidate=!1:cancelledFetcherLoads.includes(key)?shouldRevalidate=!0:fetcher&&fetcher.state!=="idle"&&fetcher.data===void 0?shouldRevalidate=isRevalidationRequired:shouldRevalidate=shouldRevalidateLoader(fetcherMatch,_extends({currentUrl,currentParams:state.matches[state.matches.length-1].params,nextUrl,nextParams:matches[matches.length-1].params},submission,{actionResult,defaultShouldRevalidate:isRevalidationRequired})),shouldRevalidate&&revalidatingFetchers.push({key,routeId:f.routeId,path:f.path,matches:fetcherMatches,match:fetcherMatch,controller:new AbortController})}),[navigationMatches,revalidatingFetchers]}function isNewLoader(currentLoaderData,currentMatch,match){let isNew=!currentMatch||match.route.id!==currentMatch.route.id,isMissingData=currentLoaderData[match.route.id]===void 0;return isNew||isMissingData}function isNewRouteInstance(currentMatch,match){let currentPath=currentMatch.route.path;return currentMatch.pathname!==match.pathname||currentPath!=null&¤tPath.endsWith("*")&¤tMatch.params["*"]!==match.params["*"]}function shouldRevalidateLoader(loaderMatch,arg){if(loaderMatch.route.shouldRevalidate){let routeChoice=loaderMatch.route.shouldRevalidate(arg);if(typeof routeChoice=="boolean")return routeChoice}return arg.defaultShouldRevalidate}async function loadLazyRouteModule(route,mapRouteProperties2,manifest){if(!route.lazy)return;let lazyRoute=await route.lazy();if(!route.lazy)return;let routeToUpdate=manifest[route.id];invariant(routeToUpdate,"No route found in manifest");let routeUpdates={};for(let lazyRouteProperty in lazyRoute){let isPropertyStaticallyDefined=routeToUpdate[lazyRouteProperty]!==void 0&&lazyRouteProperty!=="hasErrorBoundary";warning(!isPropertyStaticallyDefined,'Route "'+routeToUpdate.id+'" has a static property "'+lazyRouteProperty+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+lazyRouteProperty+'" will be ignored.')),!isPropertyStaticallyDefined&&!immutableRouteKeys.has(lazyRouteProperty)&&(routeUpdates[lazyRouteProperty]=lazyRoute[lazyRouteProperty])}Object.assign(routeToUpdate,routeUpdates),Object.assign(routeToUpdate,_extends({},mapRouteProperties2(routeToUpdate),{lazy:void 0}))}async function callLoaderOrAction(type,request,match,matches,manifest,mapRouteProperties2,basename,v7_relativeSplatPath,opts){opts===void 0&&(opts={});let resultType,result,onReject,runHandler=handler=>{let reject,abortPromise=new Promise((_,r)=>reject=r);return onReject=()=>reject(),request.signal.addEventListener("abort",onReject),Promise.race([handler({request,params:match.params,context:opts.requestContext}),abortPromise])};try{let handler=match.route[type];if(match.route.lazy)if(handler){let handlerError,values=await Promise.all([runHandler(handler).catch(e=>{handlerError=e}),loadLazyRouteModule(match.route,mapRouteProperties2,manifest)]);if(handlerError)throw handlerError;result=values[0]}else if(await loadLazyRouteModule(match.route,mapRouteProperties2,manifest),handler=match.route[type],handler)result=await runHandler(handler);else if(type==="action"){let url=new URL(request.url),pathname=url.pathname+url.search;throw getInternalRouterError(405,{method:request.method,pathname,routeId:match.route.id})}else return{type:ResultType.data,data:void 0};else if(handler)result=await runHandler(handler);else{let url=new URL(request.url),pathname=url.pathname+url.search;throw getInternalRouterError(404,{pathname})}invariant(result!==void 0,"You defined "+(type==="action"?"an action":"a loader")+" for route "+('"'+match.route.id+"\" but didn't return anything from your `"+type+"` ")+"function. Please return a value or `null`.")}catch(e){resultType=ResultType.error,result=e}finally{onReject&&request.signal.removeEventListener("abort",onReject)}if(isResponse(result)){let status=result.status;if(redirectStatusCodes.has(status)){let location=result.headers.get("Location");if(invariant(location,"Redirects returned/thrown from loaders/actions must have a Location header"),!ABSOLUTE_URL_REGEX.test(location))location=normalizeTo(new URL(request.url),matches.slice(0,matches.indexOf(match)+1),basename,!0,location,v7_relativeSplatPath);else if(!opts.isStaticRequest){let currentUrl=new URL(request.url),url=location.startsWith("//")?new URL(currentUrl.protocol+location):new URL(location),isSameBasename=stripBasename(url.pathname,basename)!=null;url.origin===currentUrl.origin&&isSameBasename&&(location=url.pathname+url.search+url.hash)}if(opts.isStaticRequest)throw result.headers.set("Location",location),result;return{type:ResultType.redirect,status,location,revalidate:result.headers.get("X-Remix-Revalidate")!==null,reloadDocument:result.headers.get("X-Remix-Reload-Document")!==null}}if(opts.isRouteRequest)throw{type:resultType===ResultType.error?ResultType.error:ResultType.data,response:result};let data;try{let contentType=result.headers.get("Content-Type");contentType&&/\bapplication\/json\b/.test(contentType)?data=await result.json():data=await result.text()}catch(e){return{type:ResultType.error,error:e}}return resultType===ResultType.error?{type:resultType,error:new ErrorResponseImpl(status,result.statusText,data),headers:result.headers}:{type:ResultType.data,data,statusCode:result.status,headers:result.headers}}if(resultType===ResultType.error)return{type:resultType,error:result};if(isDeferredData(result)){var _result$init,_result$init2;return{type:ResultType.deferred,deferredData:result,statusCode:(_result$init=result.init)==null?void 0:_result$init.status,headers:((_result$init2=result.init)==null?void 0:_result$init2.headers)&&new Headers(result.init.headers)}}return{type:ResultType.data,data:result}}function createClientSideRequest(history,location,signal,submission){let url=history.createURL(stripHashFromPath(location)).toString(),init={signal};if(submission&&isMutationMethod(submission.formMethod)){let{formMethod,formEncType}=submission;init.method=formMethod.toUpperCase(),formEncType==="application/json"?(init.headers=new Headers({"Content-Type":formEncType}),init.body=JSON.stringify(submission.json)):formEncType==="text/plain"?init.body=submission.text:formEncType==="application/x-www-form-urlencoded"&&submission.formData?init.body=convertFormDataToSearchParams(submission.formData):init.body=submission.formData}return new Request(url,init)}function convertFormDataToSearchParams(formData){let searchParams=new URLSearchParams;for(let[key,value]of formData.entries())searchParams.append(key,typeof value=="string"?value:value.name);return searchParams}function convertSearchParamsToFormData(searchParams){let formData=new FormData;for(let[key,value]of searchParams.entries())formData.append(key,value);return formData}function processRouteLoaderData(matches,matchesToLoad,results,pendingError,activeDeferreds){let loaderData={},errors=null,statusCode,foundError=!1,loaderHeaders={};return results.forEach((result,index)=>{let id=matchesToLoad[index].route.id;if(invariant(!isRedirectResult(result),"Cannot handle redirect results in processLoaderData"),isErrorResult(result)){let boundaryMatch=findNearestBoundary(matches,id),error=result.error;pendingError&&(error=Object.values(pendingError)[0],pendingError=void 0),errors=errors||{},errors[boundaryMatch.route.id]==null&&(errors[boundaryMatch.route.id]=error),loaderData[id]=void 0,foundError||(foundError=!0,statusCode=isRouteErrorResponse(result.error)?result.error.status:500),result.headers&&(loaderHeaders[id]=result.headers)}else isDeferredResult(result)?(activeDeferreds.set(id,result.deferredData),loaderData[id]=result.deferredData.data):loaderData[id]=result.data,result.statusCode!=null&&result.statusCode!==200&&!foundError&&(statusCode=result.statusCode),result.headers&&(loaderHeaders[id]=result.headers)}),pendingError&&(errors=pendingError,loaderData[Object.keys(pendingError)[0]]=void 0),{loaderData,errors,statusCode:statusCode||200,loaderHeaders}}function processLoaderData(state,matches,matchesToLoad,results,pendingError,revalidatingFetchers,fetcherResults,activeDeferreds){let{loaderData,errors}=processRouteLoaderData(matches,matchesToLoad,results,pendingError,activeDeferreds);for(let index=0;index<revalidatingFetchers.length;index++){let{key,match,controller}=revalidatingFetchers[index];invariant(fetcherResults!==void 0&&fetcherResults[index]!==void 0,"Did not find corresponding fetcher result");let result=fetcherResults[index];if(!(controller&&controller.signal.aborted))if(isErrorResult(result)){let boundaryMatch=findNearestBoundary(state.matches,match?.route.id);errors&&errors[boundaryMatch.route.id]||(errors=_extends({},errors,{[boundaryMatch.route.id]:result.error})),state.fetchers.delete(key)}else if(isRedirectResult(result))invariant(!1,"Unhandled fetcher revalidation redirect");else if(isDeferredResult(result))invariant(!1,"Unhandled fetcher deferred data");else{let doneFetcher=getDoneFetcher(result.data);state.fetchers.set(key,doneFetcher)}}return{loaderData,errors}}function mergeLoaderData(loaderData,newLoaderData,matches,errors){let mergedLoaderData=_extends({},newLoaderData);for(let match of matches){let id=match.route.id;if(newLoaderData.hasOwnProperty(id)?newLoaderData[id]!==void 0&&(mergedLoaderData[id]=newLoaderData[id]):loaderData[id]!==void 0&&match.route.loader&&(mergedLoaderData[id]=loaderData[id]),errors&&errors.hasOwnProperty(id))break}return mergedLoaderData}function findNearestBoundary(matches,routeId){return(routeId?matches.slice(0,matches.findIndex(m=>m.route.id===routeId)+1):[...matches]).reverse().find(m=>m.route.hasErrorBoundary===!0)||matches[0]}function getShortCircuitMatches(routes){let route=routes.length===1?routes[0]:routes.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route}],route}}function getInternalRouterError(status,_temp5){let{pathname,routeId,method,type}=_temp5===void 0?{}:_temp5,statusText="Unknown Server Error",errorMessage="Unknown @remix-run/router error";return status===400?(statusText="Bad Request",method&&pathname&&routeId?errorMessage="You made a "+method+' request to "'+pathname+'" but '+('did not provide a `loader` for route "'+routeId+'", ')+"so there is no way to handle the request.":type==="defer-action"?errorMessage="defer() is not supported in actions":type==="invalid-body"&&(errorMessage="Unable to encode submission body")):status===403?(statusText="Forbidden",errorMessage='Route "'+routeId+'" does not match URL "'+pathname+'"'):status===404?(statusText="Not Found",errorMessage='No route matches URL "'+pathname+'"'):status===405&&(statusText="Method Not Allowed",method&&pathname&&routeId?errorMessage="You made a "+method.toUpperCase()+' request to "'+pathname+'" but '+('did not provide an `action` for route "'+routeId+'", ')+"so there is no way to handle the request.":method&&(errorMessage='Invalid request method "'+method.toUpperCase()+'"')),new ErrorResponseImpl(status||500,statusText,new Error(errorMessage),!0)}function findRedirect(results){for(let i=results.length-1;i>=0;i--){let result=results[i];if(isRedirectResult(result))return{result,idx:i}}}function stripHashFromPath(path){let parsedPath=typeof path=="string"?parsePath(path):path;return createPath(_extends({},parsedPath,{hash:""}))}function isHashChangeOnly(a,b){return a.pathname!==b.pathname||a.search!==b.search?!1:a.hash===""?b.hash!=="":a.hash===b.hash?!0:b.hash!==""}function isDeferredResult(result){return result.type===ResultType.deferred}function isErrorResult(result){return result.type===ResultType.error}function isRedirectResult(result){return(result&&result.type)===ResultType.redirect}function isDeferredData(value){let deferred=value;return deferred&&typeof deferred=="object"&&typeof deferred.data=="object"&&typeof deferred.subscribe=="function"&&typeof deferred.cancel=="function"&&typeof deferred.resolveData=="function"}function isResponse(value){return value!=null&&typeof value.status=="number"&&typeof value.statusText=="string"&&typeof value.headers=="object"&&typeof value.body<"u"}function isRedirectResponse(result){if(!isResponse(result))return!1;let status=result.status,location=result.headers.get("Location");return status>=300&&status<=399&&location!=null}function isQueryRouteResponse(obj){return obj&&isResponse(obj.response)&&(obj.type===ResultType.data||obj.type===ResultType.error)}function isValidMethod(method){return validRequestMethods.has(method.toLowerCase())}function isMutationMethod(method){return validMutationMethods.has(method.toLowerCase())}async function resolveDeferredResults(currentMatches,matchesToLoad,results,signals,isFetcher,currentLoaderData){for(let index=0;index<results.length;index++){let result=results[index],match=matchesToLoad[index];if(!match)continue;let currentMatch=currentMatches.find(m=>m.route.id===match.route.id),isRevalidatingLoader=currentMatch!=null&&!isNewRouteInstance(currentMatch,match)&&(currentLoaderData&¤tLoaderData[match.route.id])!==void 0;if(isDeferredResult(result)&&(isFetcher||isRevalidatingLoader)){let signal=signals[index];invariant(signal,"Expected an AbortSignal for revalidating fetcher deferred result"),await resolveDeferredData(result,signal,isFetcher).then(result2=>{result2&&(results[index]=result2||results[index])})}}}async function resolveDeferredData(result,signal,unwrap){if(unwrap===void 0&&(unwrap=!1),!await result.deferredData.resolveData(signal)){if(unwrap)try{return{type:ResultType.data,data:result.deferredData.unwrappedData}}catch(e){return{type:ResultType.error,error:e}}return{type:ResultType.data,data:result.deferredData.data}}}function hasNakedIndexQuery(search){return new URLSearchParams(search).getAll("index").some(v=>v==="")}function getTargetMatch(matches,location){let search=typeof location=="string"?parsePath(location).search:location.search;if(matches[matches.length-1].route.index&&hasNakedIndexQuery(search||""))return matches[matches.length-1];let pathMatches=getPathContributingMatches(matches);return pathMatches[pathMatches.length-1]}function getSubmissionFromNavigation(navigation){let{formMethod,formAction,formEncType,text,formData,json:json2}=navigation;if(!(!formMethod||!formAction||!formEncType)){if(text!=null)return{formMethod,formAction,formEncType,formData:void 0,json:void 0,text};if(formData!=null)return{formMethod,formAction,formEncType,formData,json:void 0,text:void 0};if(json2!==void 0)return{formMethod,formAction,formEncType,formData:void 0,json:json2,text:void 0}}}function getLoadingNavigation(location,submission){return submission?{state:"loading",location,formMethod:submission.formMethod,formAction:submission.formAction,formEncType:submission.formEncType,formData:submission.formData,json:submission.json,text:submission.text}:{state:"loading",location,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function getSubmittingNavigation(location,submission){return{state:"submitting",location,formMethod:submission.formMethod,formAction:submission.formAction,formEncType:submission.formEncType,formData:submission.formData,json:submission.json,text:submission.text}}function getLoadingFetcher(submission,data){return submission?{state:"loading",formMethod:submission.formMethod,formAction:submission.formAction,formEncType:submission.formEncType,formData:submission.formData,json:submission.json,text:submission.text,data}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data}}function getSubmittingFetcher(submission,existingFetcher){return{state:"submitting",formMethod:submission.formMethod,formAction:submission.formAction,formEncType:submission.formEncType,formData:submission.formData,json:submission.json,text:submission.text,data:existingFetcher?existingFetcher.data:void 0}}function getDoneFetcher(data){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data}}function restoreAppliedTransitions(_window,transitions){try{let sessionPositions=_window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);if(sessionPositions){let json2=JSON.parse(sessionPositions);for(let[k,v]of Object.entries(json2||{}))v&&Array.isArray(v)&&transitions.set(k,new Set(v||[]))}}catch{}}function persistAppliedTransitions(_window,transitions){if(transitions.size>0){let json2={};for(let[k,v]of transitions)json2[k]=[...v];try{_window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY,JSON.stringify(json2))}catch(error){warning(!1,"Failed to save applied view transitions in sessionStorage ("+error+").")}}}/**
|
12
|
+
* React Router v6.21.1
|
13
|
+
*
|
14
|
+
* Copyright (c) Remix Software Inc.
|
15
|
+
*
|
16
|
+
* This source code is licensed under the MIT license found in the
|
17
|
+
* LICENSE.md file in the root directory of this source tree.
|
18
|
+
*
|
19
|
+
* @license MIT
|
20
|
+
*/function dist_extends(){return dist_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},dist_extends.apply(this,arguments)}const DataRouterContext=external_React_.createContext(null),DataRouterStateContext=external_React_.createContext(null),AwaitContext=external_React_.createContext(null),NavigationContext=external_React_.createContext(null),LocationContext=external_React_.createContext(null),RouteContext=external_React_.createContext({outlet:null,matches:[],isDataRoute:!1}),RouteErrorContext=external_React_.createContext(null);function useHref(to,_temp){let{relative}=_temp===void 0?{}:_temp;useInRouterContext()||invariant(!1);let{basename,navigator}=external_React_.useContext(NavigationContext),{hash,pathname,search}=useResolvedPath(to,{relative}),joinedPathname=pathname;return basename!=="/"&&(joinedPathname=pathname==="/"?basename:joinPaths([basename,pathname])),navigator.createHref({pathname:joinedPathname,search,hash})}function useInRouterContext(){return external_React_.useContext(LocationContext)!=null}function useLocation(){return useInRouterContext()||invariant(!1),external_React_.useContext(LocationContext).location}function useNavigationType(){return external_React_.useContext(LocationContext).navigationType}function useMatch(pattern){useInRouterContext()||invariant(!1);let{pathname}=useLocation();return external_React_.useMemo(()=>matchPath(pattern,pathname),[pathname,pattern])}const navigateEffectWarning=null;function useIsomorphicLayoutEffect(cb){external_React_.useContext(NavigationContext).static||external_React_.useLayoutEffect(cb)}function useNavigate(){let{isDataRoute}=external_React_.useContext(RouteContext);return isDataRoute?useNavigateStable():useNavigateUnstable()}function useNavigateUnstable(){useInRouterContext()||invariant(!1);let dataRouterContext=external_React_.useContext(DataRouterContext),{basename,future,navigator}=external_React_.useContext(NavigationContext),{matches}=external_React_.useContext(RouteContext),{pathname:locationPathname}=useLocation(),routePathnamesJson=JSON.stringify(getResolveToMatches(matches,future.v7_relativeSplatPath)),activeRef=external_React_.useRef(!1);return useIsomorphicLayoutEffect(()=>{activeRef.current=!0}),external_React_.useCallback(function(to,options){if(options===void 0&&(options={}),!activeRef.current)return;if(typeof to=="number"){navigator.go(to);return}let path=resolveTo(to,JSON.parse(routePathnamesJson),locationPathname,options.relative==="path");dataRouterContext==null&&basename!=="/"&&(path.pathname=path.pathname==="/"?basename:joinPaths([basename,path.pathname])),(options.replace?navigator.replace:navigator.push)(path,options.state,options)},[basename,navigator,routePathnamesJson,locationPathname,dataRouterContext])}const OutletContext=external_React_.createContext(null);function useOutletContext(){return external_React_.useContext(OutletContext)}function useOutlet(context){let outlet=external_React_.useContext(RouteContext).outlet;return outlet&&external_React_.createElement(OutletContext.Provider,{value:context},outlet)}function useParams(){let{matches}=external_React_.useContext(RouteContext),routeMatch=matches[matches.length-1];return routeMatch?routeMatch.params:{}}function useResolvedPath(to,_temp2){let{relative}=_temp2===void 0?{}:_temp2,{future}=external_React_.useContext(NavigationContext),{matches}=external_React_.useContext(RouteContext),{pathname:locationPathname}=useLocation(),routePathnamesJson=JSON.stringify(getResolveToMatches(matches,future.v7_relativeSplatPath));return external_React_.useMemo(()=>resolveTo(to,JSON.parse(routePathnamesJson),locationPathname,relative==="path"),[to,routePathnamesJson,locationPathname,relative])}function useRoutes(routes,locationArg){return useRoutesImpl(routes,locationArg)}function useRoutesImpl(routes,locationArg,dataRouterState,future){useInRouterContext()||invariant(!1);let{navigator}=external_React_.useContext(NavigationContext),{matches:parentMatches}=external_React_.useContext(RouteContext),routeMatch=parentMatches[parentMatches.length-1],parentParams=routeMatch?routeMatch.params:{},parentPathname=routeMatch?routeMatch.pathname:"/",parentPathnameBase=routeMatch?routeMatch.pathnameBase:"/",parentRoute=routeMatch&&routeMatch.route,locationFromContext=useLocation(),location;if(locationArg){var _parsedLocationArg$pa;let parsedLocationArg=typeof locationArg=="string"?parsePath(locationArg):locationArg;parentPathnameBase==="/"||((_parsedLocationArg$pa=parsedLocationArg.pathname)==null?void 0:_parsedLocationArg$pa.startsWith(parentPathnameBase))||invariant(!1),location=parsedLocationArg}else location=locationFromContext;let pathname=location.pathname||"/",remainingPathname=parentPathnameBase==="/"?pathname:pathname.slice(parentPathnameBase.length)||"/",matches=matchRoutes(routes,{pathname:remainingPathname}),renderedMatches=_renderMatches(matches&&matches.map(match=>Object.assign({},match,{params:Object.assign({},parentParams,match.params),pathname:joinPaths([parentPathnameBase,navigator.encodeLocation?navigator.encodeLocation(match.pathname).pathname:match.pathname]),pathnameBase:match.pathnameBase==="/"?parentPathnameBase:joinPaths([parentPathnameBase,navigator.encodeLocation?navigator.encodeLocation(match.pathnameBase).pathname:match.pathnameBase])})),parentMatches,dataRouterState,future);return locationArg&&renderedMatches?external_React_.createElement(LocationContext.Provider,{value:{location:dist_extends({pathname:"/",search:"",hash:"",state:null,key:"default"},location),navigationType:Action.Pop}},renderedMatches):renderedMatches}function DefaultErrorComponent(){let error=useRouteError(),message=isRouteErrorResponse(error)?error.status+" "+error.statusText:error instanceof Error?error.message:JSON.stringify(error),stack=error instanceof Error?error.stack:null,lightgrey="rgba(200,200,200, 0.5)",preStyles={padding:"0.5rem",backgroundColor:lightgrey},codeStyles={padding:"2px 4px",backgroundColor:lightgrey},devInfo=null;return external_React_.createElement(external_React_.Fragment,null,external_React_.createElement("h2",null,"Unexpected Application Error!"),external_React_.createElement("h3",{style:{fontStyle:"italic"}},message),stack?external_React_.createElement("pre",{style:preStyles},stack):null,devInfo)}const defaultErrorElement=external_React_.createElement(DefaultErrorComponent,null);class RenderErrorBoundary extends external_React_.Component{constructor(props){super(props);this.state={location:props.location,revalidation:props.revalidation,error:props.error}}static getDerivedStateFromError(error){return{error}}static getDerivedStateFromProps(props,state){return state.location!==props.location||state.revalidation!=="idle"&&props.revalidation==="idle"?{error:props.error,location:props.location,revalidation:props.revalidation}:{error:props.error!==void 0?props.error:state.error,location:state.location,revalidation:props.revalidation||state.revalidation}}componentDidCatch(error,errorInfo){console.error("React Router caught the following error during render",error,errorInfo)}render(){return this.state.error!==void 0?external_React_.createElement(RouteContext.Provider,{value:this.props.routeContext},external_React_.createElement(RouteErrorContext.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function RenderedRoute(_ref){let{routeContext,match,children}=_ref,dataRouterContext=external_React_.useContext(DataRouterContext);return dataRouterContext&&dataRouterContext.static&&dataRouterContext.staticContext&&(match.route.errorElement||match.route.ErrorBoundary)&&(dataRouterContext.staticContext._deepestRenderedBoundaryId=match.route.id),external_React_.createElement(RouteContext.Provider,{value:routeContext},children)}function _renderMatches(matches,parentMatches,dataRouterState,future){var _dataRouterState2;if(parentMatches===void 0&&(parentMatches=[]),dataRouterState===void 0&&(dataRouterState=null),future===void 0&&(future=null),matches==null){var _dataRouterState;if((_dataRouterState=dataRouterState)!=null&&_dataRouterState.errors)matches=dataRouterState.matches;else return null}let renderedMatches=matches,errors=(_dataRouterState2=dataRouterState)==null?void 0:_dataRouterState2.errors;if(errors!=null){let errorIndex=renderedMatches.findIndex(m=>m.route.id&&errors?.[m.route.id]);errorIndex>=0||invariant(!1),renderedMatches=renderedMatches.slice(0,Math.min(renderedMatches.length,errorIndex+1))}let renderFallback=!1,fallbackIndex=-1;if(dataRouterState&&future&&future.v7_partialHydration)for(let i=0;i<renderedMatches.length;i++){let match=renderedMatches[i];if((match.route.HydrateFallback||match.route.hydrateFallbackElement)&&(fallbackIndex=i),match.route.id){let{loaderData,errors:errors2}=dataRouterState,needsToRunLoader=match.route.loader&&loaderData[match.route.id]===void 0&&(!errors2||errors2[match.route.id]===void 0);if(match.route.lazy||needsToRunLoader){renderFallback=!0,fallbackIndex>=0?renderedMatches=renderedMatches.slice(0,fallbackIndex+1):renderedMatches=[renderedMatches[0]];break}}}return renderedMatches.reduceRight((outlet,match,index)=>{let error,shouldRenderHydrateFallback=!1,errorElement=null,hydrateFallbackElement=null;dataRouterState&&(error=errors&&match.route.id?errors[match.route.id]:void 0,errorElement=match.route.errorElement||defaultErrorElement,renderFallback&&(fallbackIndex<0&&index===0?(warningOnce("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),shouldRenderHydrateFallback=!0,hydrateFallbackElement=null):fallbackIndex===index&&(shouldRenderHydrateFallback=!0,hydrateFallbackElement=match.route.hydrateFallbackElement||null)));let matches2=parentMatches.concat(renderedMatches.slice(0,index+1)),getChildren=()=>{let children;return error?children=errorElement:shouldRenderHydrateFallback?children=hydrateFallbackElement:match.route.Component?children=external_React_.createElement(match.route.Component,null):match.route.element?children=match.route.element:children=outlet,external_React_.createElement(RenderedRoute,{match,routeContext:{outlet,matches:matches2,isDataRoute:dataRouterState!=null},children})};return dataRouterState&&(match.route.ErrorBoundary||match.route.errorElement||index===0)?external_React_.createElement(RenderErrorBoundary,{location:dataRouterState.location,revalidation:dataRouterState.revalidation,component:errorElement,error,children:getChildren(),routeContext:{outlet:null,matches:matches2,isDataRoute:!0}}):getChildren()},null)}var DataRouterHook=function(DataRouterHook2){return DataRouterHook2.UseBlocker="useBlocker",DataRouterHook2.UseRevalidator="useRevalidator",DataRouterHook2.UseNavigateStable="useNavigate",DataRouterHook2}(DataRouterHook||{}),DataRouterStateHook=function(DataRouterStateHook2){return DataRouterStateHook2.UseBlocker="useBlocker",DataRouterStateHook2.UseLoaderData="useLoaderData",DataRouterStateHook2.UseActionData="useActionData",DataRouterStateHook2.UseRouteError="useRouteError",DataRouterStateHook2.UseNavigation="useNavigation",DataRouterStateHook2.UseRouteLoaderData="useRouteLoaderData",DataRouterStateHook2.UseMatches="useMatches",DataRouterStateHook2.UseRevalidator="useRevalidator",DataRouterStateHook2.UseNavigateStable="useNavigate",DataRouterStateHook2.UseRouteId="useRouteId",DataRouterStateHook2}(DataRouterStateHook||{});function getDataRouterConsoleError(hookName){return hookName+" must be used within a data router. See https://reactrouter.com/routers/picking-a-router."}function useDataRouterContext(hookName){let ctx=external_React_.useContext(DataRouterContext);return ctx||invariant(!1),ctx}function useDataRouterState(hookName){let state=external_React_.useContext(DataRouterStateContext);return state||invariant(!1),state}function useRouteContext(hookName){let route=external_React_.useContext(RouteContext);return route||invariant(!1),route}function useCurrentRouteId(hookName){let route=useRouteContext(hookName),thisRoute=route.matches[route.matches.length-1];return thisRoute.route.id||invariant(!1),thisRoute.route.id}function useRouteId(){return useCurrentRouteId(DataRouterStateHook.UseRouteId)}function useNavigation(){return useDataRouterState(DataRouterStateHook.UseNavigation).navigation}function useRevalidator(){let dataRouterContext=useDataRouterContext(DataRouterHook.UseRevalidator),state=useDataRouterState(DataRouterStateHook.UseRevalidator);return external_React_.useMemo(()=>({revalidate:dataRouterContext.router.revalidate,state:state.revalidation}),[dataRouterContext.router.revalidate,state.revalidation])}function useMatches(){let{matches,loaderData}=useDataRouterState(DataRouterStateHook.UseMatches);return external_React_.useMemo(()=>matches.map(m=>convertRouteMatchToUiMatch(m,loaderData)),[matches,loaderData])}function useLoaderData(){let state=useDataRouterState(DataRouterStateHook.UseLoaderData),routeId=useCurrentRouteId(DataRouterStateHook.UseLoaderData);if(state.errors&&state.errors[routeId]!=null){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+routeId+")");return}return state.loaderData[routeId]}function useRouteLoaderData(routeId){return useDataRouterState(DataRouterStateHook.UseRouteLoaderData).loaderData[routeId]}function useActionData(){let state=useDataRouterState(DataRouterStateHook.UseActionData),routeId=useCurrentRouteId(DataRouterStateHook.UseLoaderData);return state.actionData?state.actionData[routeId]:void 0}function useRouteError(){var _state$errors;let error=external_React_.useContext(RouteErrorContext),state=useDataRouterState(DataRouterStateHook.UseRouteError),routeId=useCurrentRouteId(DataRouterStateHook.UseRouteError);return error!==void 0?error:(_state$errors=state.errors)==null?void 0:_state$errors[routeId]}function useAsyncValue(){let value=external_React_.useContext(AwaitContext);return value?._data}function useAsyncError(){let value=external_React_.useContext(AwaitContext);return value?._error}let blockerId=0;function useBlocker(shouldBlock){let{router,basename}=useDataRouterContext(DataRouterHook.UseBlocker),state=useDataRouterState(DataRouterStateHook.UseBlocker),[blockerKey,setBlockerKey]=external_React_.useState(""),blockerFunction=external_React_.useCallback(arg=>{if(typeof shouldBlock!="function")return!!shouldBlock;if(basename==="/")return shouldBlock(arg);let{currentLocation,nextLocation,historyAction}=arg;return shouldBlock({currentLocation:dist_extends({},currentLocation,{pathname:stripBasename(currentLocation.pathname,basename)||currentLocation.pathname}),nextLocation:dist_extends({},nextLocation,{pathname:stripBasename(nextLocation.pathname,basename)||nextLocation.pathname}),historyAction})},[basename,shouldBlock]);return external_React_.useEffect(()=>{let key=String(++blockerId);return setBlockerKey(key),()=>router.deleteBlocker(key)},[router]),external_React_.useEffect(()=>{blockerKey!==""&&router.getBlocker(blockerKey,blockerFunction)},[router,blockerKey,blockerFunction]),blockerKey&&state.blockers.has(blockerKey)?state.blockers.get(blockerKey):IDLE_BLOCKER}function useNavigateStable(){let{router}=useDataRouterContext(DataRouterHook.UseNavigateStable),id=useCurrentRouteId(DataRouterStateHook.UseNavigateStable),activeRef=external_React_.useRef(!1);return useIsomorphicLayoutEffect(()=>{activeRef.current=!0}),external_React_.useCallback(function(to,options){options===void 0&&(options={}),activeRef.current&&(typeof to=="number"?router.navigate(to):router.navigate(to,dist_extends({fromRouteId:id},options)))},[router,id])}const alreadyWarned={};function warningOnce(key,cond,message){!cond&&!alreadyWarned[key]&&(alreadyWarned[key]=!0)}const startTransitionImpl=external_React_["startTransition"];function RouterProvider(_ref){let{fallbackElement,router,future}=_ref,[state,setStateImpl]=React.useState(router.state),{v7_startTransition}=future||{},setState=React.useCallback(newState=>{v7_startTransition&&startTransitionImpl?startTransitionImpl(()=>setStateImpl(newState)):setStateImpl(newState)},[setStateImpl,v7_startTransition]);React.useLayoutEffect(()=>router.subscribe(setState),[router,setState]),React.useEffect(()=>{},[]);let navigator=React.useMemo(()=>({createHref:router.createHref,encodeLocation:router.encodeLocation,go:n=>router.navigate(n),push:(to,state2,opts)=>router.navigate(to,{state:state2,preventScrollReset:opts?.preventScrollReset}),replace:(to,state2,opts)=>router.navigate(to,{replace:!0,state:state2,preventScrollReset:opts?.preventScrollReset})}),[router]),basename=router.basename||"/",dataRouterContext=React.useMemo(()=>({router,navigator,static:!1,basename}),[router,navigator,basename]);return React.createElement(React.Fragment,null,React.createElement(DataRouterContext.Provider,{value:dataRouterContext},React.createElement(DataRouterStateContext.Provider,{value:state},React.createElement(Router,{basename,location:state.location,navigationType:state.historyAction,navigator,future:{v7_relativeSplatPath:router.future.v7_relativeSplatPath}},state.initialized||router.future.v7_partialHydration?React.createElement(DataRoutes,{routes:router.routes,future:router.future,state}):fallbackElement))),null)}function DataRoutes(_ref2){let{routes,future,state}=_ref2;return useRoutesImpl(routes,void 0,state,future)}function MemoryRouter(_ref3){let{basename,children,initialEntries,initialIndex,future}=_ref3,historyRef=external_React_.useRef();historyRef.current==null&&(historyRef.current=createMemoryHistory({initialEntries,initialIndex,v5Compat:!0}));let history=historyRef.current,[state,setStateImpl]=external_React_.useState({action:history.action,location:history.location}),{v7_startTransition}=future||{},setState=external_React_.useCallback(newState=>{v7_startTransition&&startTransitionImpl?startTransitionImpl(()=>setStateImpl(newState)):setStateImpl(newState)},[setStateImpl,v7_startTransition]);return external_React_.useLayoutEffect(()=>history.listen(setState),[history,setState]),external_React_.createElement(Router,{basename,children,location:state.location,navigationType:state.action,navigator:history,future})}function Navigate(_ref4){let{to,replace,state,relative}=_ref4;useInRouterContext()||invariant(!1);let{future,static:isStatic}=external_React_.useContext(NavigationContext),{matches}=external_React_.useContext(RouteContext),{pathname:locationPathname}=useLocation(),navigate=useNavigate(),path=resolveTo(to,getResolveToMatches(matches,future.v7_relativeSplatPath),locationPathname,relative==="path"),jsonPath=JSON.stringify(path);return external_React_.useEffect(()=>navigate(JSON.parse(jsonPath),{replace,state,relative}),[navigate,jsonPath,relative,replace,state]),null}function Outlet(props){return useOutlet(props.context)}function Route(_props){invariant(!1)}function Router(_ref5){let{basename:basenameProp="/",children=null,location:locationProp,navigationType=Action.Pop,navigator,static:staticProp=!1,future}=_ref5;useInRouterContext()&&invariant(!1);let basename=basenameProp.replace(/^\/*/,"/"),navigationContext=external_React_.useMemo(()=>({basename,navigator,static:staticProp,future:dist_extends({v7_relativeSplatPath:!1},future)}),[basename,future,navigator,staticProp]);typeof locationProp=="string"&&(locationProp=parsePath(locationProp));let{pathname="/",search="",hash="",state=null,key="default"}=locationProp,locationContext=external_React_.useMemo(()=>{let trailingPathname=stripBasename(pathname,basename);return trailingPathname==null?null:{location:{pathname:trailingPathname,search,hash,state,key},navigationType}},[basename,pathname,search,hash,state,key,navigationType]);return locationContext==null?null:external_React_.createElement(NavigationContext.Provider,{value:navigationContext},external_React_.createElement(LocationContext.Provider,{children,value:locationContext}))}function Routes(_ref6){let{children,location}=_ref6;return useRoutes(createRoutesFromChildren(children),location)}function Await(_ref7){let{children,errorElement,resolve}=_ref7;return external_React_.createElement(AwaitErrorBoundary,{resolve,errorElement},external_React_.createElement(ResolveAwait,null,children))}var AwaitRenderStatus=function(AwaitRenderStatus2){return AwaitRenderStatus2[AwaitRenderStatus2.pending=0]="pending",AwaitRenderStatus2[AwaitRenderStatus2.success=1]="success",AwaitRenderStatus2[AwaitRenderStatus2.error=2]="error",AwaitRenderStatus2}(AwaitRenderStatus||{});const neverSettledPromise=new Promise(()=>{});class AwaitErrorBoundary extends external_React_.Component{constructor(props){super(props);this.state={error:null}}static getDerivedStateFromError(error){return{error}}componentDidCatch(error,errorInfo){console.error("<Await> caught the following error during render",error,errorInfo)}render(){let{children,errorElement,resolve}=this.props,promise=null,status=AwaitRenderStatus.pending;if(!(resolve instanceof Promise))status=AwaitRenderStatus.success,promise=Promise.resolve(),Object.defineProperty(promise,"_tracked",{get:()=>!0}),Object.defineProperty(promise,"_data",{get:()=>resolve});else if(this.state.error){status=AwaitRenderStatus.error;let renderError=this.state.error;promise=Promise.reject().catch(()=>{}),Object.defineProperty(promise,"_tracked",{get:()=>!0}),Object.defineProperty(promise,"_error",{get:()=>renderError})}else resolve._tracked?(promise=resolve,status=promise._error!==void 0?AwaitRenderStatus.error:promise._data!==void 0?AwaitRenderStatus.success:AwaitRenderStatus.pending):(status=AwaitRenderStatus.pending,Object.defineProperty(resolve,"_tracked",{get:()=>!0}),promise=resolve.then(data=>Object.defineProperty(resolve,"_data",{get:()=>data}),error=>Object.defineProperty(resolve,"_error",{get:()=>error})));if(status===AwaitRenderStatus.error&&promise._error instanceof AbortedDeferredError)throw neverSettledPromise;if(status===AwaitRenderStatus.error&&!errorElement)throw promise._error;if(status===AwaitRenderStatus.error)return external_React_.createElement(AwaitContext.Provider,{value:promise,children:errorElement});if(status===AwaitRenderStatus.success)return external_React_.createElement(AwaitContext.Provider,{value:promise,children});throw promise}}function ResolveAwait(_ref8){let{children}=_ref8,data=useAsyncValue(),toRender=typeof children=="function"?children(data):children;return external_React_.createElement(external_React_.Fragment,null,toRender)}function createRoutesFromChildren(children,parentPath){parentPath===void 0&&(parentPath=[]);let routes=[];return external_React_.Children.forEach(children,(element,index)=>{if(!external_React_.isValidElement(element))return;let treePath=[...parentPath,index];if(element.type===external_React_.Fragment){routes.push.apply(routes,createRoutesFromChildren(element.props.children,treePath));return}element.type!==Route&&invariant(!1),!element.props.index||!element.props.children||invariant(!1);let route={id:element.props.id||treePath.join("-"),caseSensitive:element.props.caseSensitive,element:element.props.element,Component:element.props.Component,index:element.props.index,path:element.props.path,loader:element.props.loader,action:element.props.action,errorElement:element.props.errorElement,ErrorBoundary:element.props.ErrorBoundary,hasErrorBoundary:element.props.ErrorBoundary!=null||element.props.errorElement!=null,shouldRevalidate:element.props.shouldRevalidate,handle:element.props.handle,lazy:element.props.lazy};element.props.children&&(route.children=createRoutesFromChildren(element.props.children,treePath)),routes.push(route)}),routes}function renderMatches(matches){return _renderMatches(matches)}function mapRouteProperties(route){let updates={hasErrorBoundary:route.ErrorBoundary!=null||route.errorElement!=null};return route.Component&&Object.assign(updates,{element:external_React_.createElement(route.Component),Component:void 0}),route.HydrateFallback&&Object.assign(updates,{hydrateFallbackElement:external_React_.createElement(route.HydrateFallback),HydrateFallback:void 0}),route.ErrorBoundary&&Object.assign(updates,{errorElement:external_React_.createElement(route.ErrorBoundary),ErrorBoundary:void 0}),updates}function createMemoryRouter(routes,opts){return createRouter({basename:opts?.basename,future:dist_extends({},opts?.future,{v7_prependBasename:!0}),history:createMemoryHistory({initialEntries:opts?.initialEntries,initialIndex:opts?.initialIndex}),hydrationData:opts?.hydrationData,routes,mapRouteProperties}).initialize()}/**
|
21
|
+
* React Router DOM v6.21.1
|
22
|
+
*
|
23
|
+
* Copyright (c) Remix Software Inc.
|
24
|
+
*
|
25
|
+
* This source code is licensed under the MIT license found in the
|
26
|
+
* LICENSE.md file in the root directory of this source tree.
|
27
|
+
*
|
28
|
+
* @license MIT
|
29
|
+
*/function react_router_dom_dist_extends(){return react_router_dom_dist_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},react_router_dom_dist_extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={},sourceKeys=Object.keys(source),key,i;for(i=0;i<sourceKeys.length;i++)key=sourceKeys[i],!(excluded.indexOf(key)>=0)&&(target[key]=source[key]);return target}const defaultMethod="get",defaultEncType="application/x-www-form-urlencoded";function isHtmlElement(object){return object!=null&&typeof object.tagName=="string"}function isButtonElement(object){return isHtmlElement(object)&&object.tagName.toLowerCase()==="button"}function isFormElement(object){return isHtmlElement(object)&&object.tagName.toLowerCase()==="form"}function isInputElement(object){return isHtmlElement(object)&&object.tagName.toLowerCase()==="input"}function isModifiedEvent(event){return!!(event.metaKey||event.altKey||event.ctrlKey||event.shiftKey)}function shouldProcessLinkClick(event,target){return event.button===0&&(!target||target==="_self")&&!isModifiedEvent(event)}function createSearchParams(init){return init===void 0&&(init=""),new URLSearchParams(typeof init=="string"||Array.isArray(init)||init instanceof URLSearchParams?init:Object.keys(init).reduce((memo,key)=>{let value=init[key];return memo.concat(Array.isArray(value)?value.map(v=>[key,v]):[[key,value]])},[]))}function getSearchParamsForLocation(locationSearch,defaultSearchParams){let searchParams=createSearchParams(locationSearch);return defaultSearchParams&&defaultSearchParams.forEach((_,key)=>{searchParams.has(key)||defaultSearchParams.getAll(key).forEach(value=>{searchParams.append(key,value)})}),searchParams}let _formDataSupportsSubmitter=null;function isFormDataSubmitterSupported(){if(_formDataSupportsSubmitter===null)try{new FormData(document.createElement("form"),0),_formDataSupportsSubmitter=!1}catch{_formDataSupportsSubmitter=!0}return _formDataSupportsSubmitter}const supportedFormEncTypes=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function getFormEncType(encType){return encType!=null&&!supportedFormEncTypes.has(encType)?null:encType}function getFormSubmissionInfo(target,basename){let method,action,encType,formData,body;if(isFormElement(target)){let attr=target.getAttribute("action");action=attr?stripBasename(attr,basename):null,method=target.getAttribute("method")||defaultMethod,encType=getFormEncType(target.getAttribute("enctype"))||defaultEncType,formData=new FormData(target)}else if(isButtonElement(target)||isInputElement(target)&&(target.type==="submit"||target.type==="image")){let form=target.form;if(form==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let attr=target.getAttribute("formaction")||form.getAttribute("action");if(action=attr?stripBasename(attr,basename):null,method=target.getAttribute("formmethod")||form.getAttribute("method")||defaultMethod,encType=getFormEncType(target.getAttribute("formenctype"))||getFormEncType(form.getAttribute("enctype"))||defaultEncType,formData=new FormData(form,target),!isFormDataSubmitterSupported()){let{name,type,value}=target;if(type==="image"){let prefix=name?name+".":"";formData.append(prefix+"x","0"),formData.append(prefix+"y","0")}else name&&formData.append(name,value)}}else{if(isHtmlElement(target))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');method=defaultMethod,action=null,encType=defaultEncType,body=target}return formData&&encType==="text/plain"&&(body=formData,formData=void 0),{action,method:method.toLowerCase(),encType,formData,body}}const _excluded=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],_excluded2=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],_excluded3=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","unstable_viewTransition"];function createBrowserRouter(routes,opts){return createRouter({basename:opts?.basename,future:react_router_dom_dist_extends({},opts?.future,{v7_prependBasename:!0}),history:createBrowserHistory({window:opts?.window}),hydrationData:opts?.hydrationData||parseHydrationData(),routes,mapRouteProperties,window:opts?.window}).initialize()}function createHashRouter(routes,opts){return createRouter({basename:opts?.basename,future:react_router_dom_dist_extends({},opts?.future,{v7_prependBasename:!0}),history:createHashHistory({window:opts?.window}),hydrationData:opts?.hydrationData||parseHydrationData(),routes,mapRouteProperties,window:opts?.window}).initialize()}function parseHydrationData(){var _window;let state=(_window=window)==null?void 0:_window.__staticRouterHydrationData;return state&&state.errors&&(state=react_router_dom_dist_extends({},state,{errors:deserializeErrors(state.errors)})),state}function deserializeErrors(errors){if(!errors)return null;let entries=Object.entries(errors),serialized={};for(let[key,val]of entries)if(val&&val.__type==="RouteErrorResponse")serialized[key]=new ErrorResponseImpl(val.status,val.statusText,val.data,val.internal===!0);else if(val&&val.__type==="Error"){if(val.__subType){let ErrorConstructor=window[val.__subType];if(typeof ErrorConstructor=="function")try{let error=new ErrorConstructor(val.message);error.stack="",serialized[key]=error}catch{}}if(serialized[key]==null){let error=new Error(val.message);error.stack="",serialized[key]=error}}else serialized[key]=val;return serialized}const ViewTransitionContext=external_React_.createContext({isTransitioning:!1}),FetchersContext=external_React_.createContext(new Map),dist_startTransitionImpl=external_React_["startTransition"],flushSyncImpl=external_ReactDom_["flushSync"];function startTransitionSafe(cb){dist_startTransitionImpl?dist_startTransitionImpl(cb):cb()}function flushSyncSafe(cb){flushSyncImpl?flushSyncImpl(cb):cb()}class Deferred{constructor(){this.status="pending",this.promise=new Promise((resolve,reject)=>{this.resolve=value=>{this.status==="pending"&&(this.status="resolved",resolve(value))},this.reject=reason=>{this.status==="pending"&&(this.status="rejected",reject(reason))}})}}function dist_RouterProvider(_ref){let{fallbackElement,router,future}=_ref,[state,setStateImpl]=external_React_.useState(router.state),[pendingState,setPendingState]=external_React_.useState(),[vtContext,setVtContext]=external_React_.useState({isTransitioning:!1}),[renderDfd,setRenderDfd]=external_React_.useState(),[transition,setTransition]=external_React_.useState(),[interruption,setInterruption]=external_React_.useState(),fetcherData=external_React_.useRef(new Map),{v7_startTransition}=future||{},optInStartTransition=external_React_.useCallback(cb=>{v7_startTransition?startTransitionSafe(cb):cb()},[v7_startTransition]),setState=external_React_.useCallback((newState,_ref2)=>{let{deletedFetchers,unstable_flushSync:flushSync,unstable_viewTransitionOpts:viewTransitionOpts}=_ref2;deletedFetchers.forEach(key=>fetcherData.current.delete(key)),newState.fetchers.forEach((fetcher,key)=>{fetcher.data!==void 0&&fetcherData.current.set(key,fetcher.data)});let isViewTransitionUnavailable=router.window==null||typeof router.window.document.startViewTransition!="function";if(!viewTransitionOpts||isViewTransitionUnavailable){flushSync?flushSyncSafe(()=>setStateImpl(newState)):optInStartTransition(()=>setStateImpl(newState));return}if(flushSync){flushSyncSafe(()=>{transition&&(renderDfd&&renderDfd.resolve(),transition.skipTransition()),setVtContext({isTransitioning:!0,flushSync:!0,currentLocation:viewTransitionOpts.currentLocation,nextLocation:viewTransitionOpts.nextLocation})});let t=router.window.document.startViewTransition(()=>{flushSyncSafe(()=>setStateImpl(newState))});t.finished.finally(()=>{flushSyncSafe(()=>{setRenderDfd(void 0),setTransition(void 0),setPendingState(void 0),setVtContext({isTransitioning:!1})})}),flushSyncSafe(()=>setTransition(t));return}transition?(renderDfd&&renderDfd.resolve(),transition.skipTransition(),setInterruption({state:newState,currentLocation:viewTransitionOpts.currentLocation,nextLocation:viewTransitionOpts.nextLocation})):(setPendingState(newState),setVtContext({isTransitioning:!0,flushSync:!1,currentLocation:viewTransitionOpts.currentLocation,nextLocation:viewTransitionOpts.nextLocation}))},[router.window,transition,renderDfd,fetcherData,optInStartTransition]);external_React_.useLayoutEffect(()=>router.subscribe(setState),[router,setState]),external_React_.useEffect(()=>{vtContext.isTransitioning&&!vtContext.flushSync&&setRenderDfd(new Deferred)},[vtContext]),external_React_.useEffect(()=>{if(renderDfd&&pendingState&&router.window){let newState=pendingState,renderPromise=renderDfd.promise,transition2=router.window.document.startViewTransition(async()=>{optInStartTransition(()=>setStateImpl(newState)),await renderPromise});transition2.finished.finally(()=>{setRenderDfd(void 0),setTransition(void 0),setPendingState(void 0),setVtContext({isTransitioning:!1})}),setTransition(transition2)}},[optInStartTransition,pendingState,renderDfd,router.window]),external_React_.useEffect(()=>{renderDfd&&pendingState&&state.location.key===pendingState.location.key&&renderDfd.resolve()},[renderDfd,transition,state.location,pendingState]),external_React_.useEffect(()=>{!vtContext.isTransitioning&&interruption&&(setPendingState(interruption.state),setVtContext({isTransitioning:!0,flushSync:!1,currentLocation:interruption.currentLocation,nextLocation:interruption.nextLocation}),setInterruption(void 0))},[vtContext.isTransitioning,interruption]),external_React_.useEffect(()=>{},[]);let navigator=external_React_.useMemo(()=>({createHref:router.createHref,encodeLocation:router.encodeLocation,go:n=>router.navigate(n),push:(to,state2,opts)=>router.navigate(to,{state:state2,preventScrollReset:opts?.preventScrollReset}),replace:(to,state2,opts)=>router.navigate(to,{replace:!0,state:state2,preventScrollReset:opts?.preventScrollReset})}),[router]),basename=router.basename||"/",dataRouterContext=external_React_.useMemo(()=>({router,navigator,static:!1,basename}),[router,navigator,basename]);return external_React_.createElement(external_React_.Fragment,null,external_React_.createElement(DataRouterContext.Provider,{value:dataRouterContext},external_React_.createElement(DataRouterStateContext.Provider,{value:state},external_React_.createElement(FetchersContext.Provider,{value:fetcherData.current},external_React_.createElement(ViewTransitionContext.Provider,{value:vtContext},external_React_.createElement(Router,{basename,location:state.location,navigationType:state.historyAction,navigator,future:{v7_relativeSplatPath:router.future.v7_relativeSplatPath}},state.initialized||router.future.v7_partialHydration?external_React_.createElement(dist_DataRoutes,{routes:router.routes,future:router.future,state}):fallbackElement))))),null)}function dist_DataRoutes(_ref3){let{routes,future,state}=_ref3;return useRoutesImpl(routes,void 0,state,future)}function BrowserRouter(_ref4){let{basename,children,future,window:window2}=_ref4,historyRef=external_React_.useRef();historyRef.current==null&&(historyRef.current=createBrowserHistory({window:window2,v5Compat:!0}));let history=historyRef.current,[state,setStateImpl]=external_React_.useState({action:history.action,location:history.location}),{v7_startTransition}=future||{},setState=external_React_.useCallback(newState=>{v7_startTransition&&dist_startTransitionImpl?dist_startTransitionImpl(()=>setStateImpl(newState)):setStateImpl(newState)},[setStateImpl,v7_startTransition]);return external_React_.useLayoutEffect(()=>history.listen(setState),[history,setState]),external_React_.createElement(Router,{basename,children,location:state.location,navigationType:state.action,navigator:history,future})}function HashRouter(_ref5){let{basename,children,future,window:window2}=_ref5,historyRef=external_React_.useRef();historyRef.current==null&&(historyRef.current=createHashHistory({window:window2,v5Compat:!0}));let history=historyRef.current,[state,setStateImpl]=external_React_.useState({action:history.action,location:history.location}),{v7_startTransition}=future||{},setState=external_React_.useCallback(newState=>{v7_startTransition&&dist_startTransitionImpl?dist_startTransitionImpl(()=>setStateImpl(newState)):setStateImpl(newState)},[setStateImpl,v7_startTransition]);return external_React_.useLayoutEffect(()=>history.listen(setState),[history,setState]),external_React_.createElement(Router,{basename,children,location:state.location,navigationType:state.action,navigator:history,future})}function HistoryRouter(_ref6){let{basename,children,future,history}=_ref6,[state,setStateImpl]=external_React_.useState({action:history.action,location:history.location}),{v7_startTransition}=future||{},setState=external_React_.useCallback(newState=>{v7_startTransition&&dist_startTransitionImpl?dist_startTransitionImpl(()=>setStateImpl(newState)):setStateImpl(newState)},[setStateImpl,v7_startTransition]);return external_React_.useLayoutEffect(()=>history.listen(setState),[history,setState]),external_React_.createElement(Router,{basename,children,location:state.location,navigationType:state.action,navigator:history,future})}const isBrowser=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",dist_ABSOLUTE_URL_REGEX=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Link=external_React_.forwardRef(function(_ref7,ref){let{onClick,relative,reloadDocument,replace,state,target,to,preventScrollReset,unstable_viewTransition}=_ref7,rest=_objectWithoutPropertiesLoose(_ref7,_excluded),{basename}=external_React_.useContext(NavigationContext),absoluteHref,isExternal=!1;if(typeof to=="string"&&dist_ABSOLUTE_URL_REGEX.test(to)&&(absoluteHref=to,isBrowser))try{let currentUrl=new URL(window.location.href),targetUrl=to.startsWith("//")?new URL(currentUrl.protocol+to):new URL(to),path=stripBasename(targetUrl.pathname,basename);targetUrl.origin===currentUrl.origin&&path!=null?to=path+targetUrl.search+targetUrl.hash:isExternal=!0}catch{}let href=useHref(to,{relative}),internalOnClick=useLinkClickHandler(to,{replace,state,target,preventScrollReset,relative,unstable_viewTransition});function handleClick(event){onClick&&onClick(event),event.defaultPrevented||internalOnClick(event)}return external_React_.createElement("a",react_router_dom_dist_extends({},rest,{href:absoluteHref||href,onClick:isExternal||reloadDocument?onClick:handleClick,ref,target}))}),NavLink=external_React_.forwardRef(function(_ref8,ref){let{"aria-current":ariaCurrentProp="page",caseSensitive=!1,className:classNameProp="",end=!1,style:styleProp,to,unstable_viewTransition,children}=_ref8,rest=_objectWithoutPropertiesLoose(_ref8,_excluded2),path=useResolvedPath(to,{relative:rest.relative}),location=useLocation(),routerState=external_React_.useContext(DataRouterStateContext),{navigator}=external_React_.useContext(NavigationContext),isTransitioning=routerState!=null&&useViewTransitionState(path)&&unstable_viewTransition===!0,toPathname=navigator.encodeLocation?navigator.encodeLocation(path).pathname:path.pathname,locationPathname=location.pathname,nextLocationPathname=routerState&&routerState.navigation&&routerState.navigation.location?routerState.navigation.location.pathname:null;caseSensitive||(locationPathname=locationPathname.toLowerCase(),nextLocationPathname=nextLocationPathname?nextLocationPathname.toLowerCase():null,toPathname=toPathname.toLowerCase());const endSlashPosition=toPathname!=="/"&&toPathname.endsWith("/")?toPathname.length-1:toPathname.length;let isActive=locationPathname===toPathname||!end&&locationPathname.startsWith(toPathname)&&locationPathname.charAt(endSlashPosition)==="/",isPending=nextLocationPathname!=null&&(nextLocationPathname===toPathname||!end&&nextLocationPathname.startsWith(toPathname)&&nextLocationPathname.charAt(toPathname.length)==="/"),renderProps={isActive,isPending,isTransitioning},ariaCurrent=isActive?ariaCurrentProp:void 0,className;typeof classNameProp=="function"?className=classNameProp(renderProps):className=[classNameProp,isActive?"active":null,isPending?"pending":null,isTransitioning?"transitioning":null].filter(Boolean).join(" ");let style=typeof styleProp=="function"?styleProp(renderProps):styleProp;return external_React_.createElement(Link,react_router_dom_dist_extends({},rest,{"aria-current":ariaCurrent,className,ref,style,to,unstable_viewTransition}),typeof children=="function"?children(renderProps):children)}),Form=external_React_.forwardRef((_ref9,forwardedRef)=>{let{fetcherKey,navigate,reloadDocument,replace,state,method=defaultMethod,action,onSubmit,relative,preventScrollReset,unstable_viewTransition}=_ref9,props=_objectWithoutPropertiesLoose(_ref9,_excluded3),submit=useSubmit(),formAction=useFormAction(action,{relative}),formMethod=method.toLowerCase()==="get"?"get":"post",submitHandler=event=>{if(onSubmit&&onSubmit(event),event.defaultPrevented)return;event.preventDefault();let submitter=event.nativeEvent.submitter,submitMethod=submitter?.getAttribute("formmethod")||method;submit(submitter||event.currentTarget,{fetcherKey,method:submitMethod,navigate,replace,state,relative,preventScrollReset,unstable_viewTransition})};return external_React_.createElement("form",react_router_dom_dist_extends({ref:forwardedRef,method:formMethod,action:formAction,onSubmit:reloadDocument?onSubmit:submitHandler},props))});function ScrollRestoration(_ref10){let{getKey,storageKey}=_ref10;return useScrollRestoration({getKey,storageKey}),null}var dist_DataRouterHook;(function(DataRouterHook2){DataRouterHook2.UseScrollRestoration="useScrollRestoration",DataRouterHook2.UseSubmit="useSubmit",DataRouterHook2.UseSubmitFetcher="useSubmitFetcher",DataRouterHook2.UseFetcher="useFetcher",DataRouterHook2.useViewTransitionState="useViewTransitionState"})(dist_DataRouterHook||(dist_DataRouterHook={}));var dist_DataRouterStateHook;(function(DataRouterStateHook2){DataRouterStateHook2.UseFetcher="useFetcher",DataRouterStateHook2.UseFetchers="useFetchers",DataRouterStateHook2.UseScrollRestoration="useScrollRestoration"})(dist_DataRouterStateHook||(dist_DataRouterStateHook={}));function dist_getDataRouterConsoleError(hookName){return hookName+" must be used within a data router. See https://reactrouter.com/routers/picking-a-router."}function dist_useDataRouterContext(hookName){let ctx=external_React_.useContext(DataRouterContext);return ctx||invariant(!1),ctx}function dist_useDataRouterState(hookName){let state=external_React_.useContext(DataRouterStateContext);return state||invariant(!1),state}function useLinkClickHandler(to,_temp){let{target,replace:replaceProp,state,preventScrollReset,relative,unstable_viewTransition}=_temp===void 0?{}:_temp,navigate=useNavigate(),location=useLocation(),path=useResolvedPath(to,{relative});return external_React_.useCallback(event=>{if(shouldProcessLinkClick(event,target)){event.preventDefault();let replace=replaceProp!==void 0?replaceProp:createPath(location)===createPath(path);navigate(to,{replace,state,preventScrollReset,relative,unstable_viewTransition})}},[location,navigate,path,replaceProp,state,target,to,preventScrollReset,relative,unstable_viewTransition])}function useSearchParams(defaultInit){let defaultSearchParamsRef=external_React_.useRef(createSearchParams(defaultInit)),hasSetSearchParamsRef=external_React_.useRef(!1),location=useLocation(),searchParams=external_React_.useMemo(()=>getSearchParamsForLocation(location.search,hasSetSearchParamsRef.current?null:defaultSearchParamsRef.current),[location.search]),navigate=useNavigate(),setSearchParams=external_React_.useCallback((nextInit,navigateOptions)=>{const newSearchParams=createSearchParams(typeof nextInit=="function"?nextInit(searchParams):nextInit);hasSetSearchParamsRef.current=!0,navigate("?"+newSearchParams,navigateOptions)},[navigate,searchParams]);return[searchParams,setSearchParams]}function validateClientSideSubmission(){if(typeof document>"u")throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}let fetcherId=0,getUniqueFetcherId=()=>"__"+String(++fetcherId)+"__";function useSubmit(){let{router}=dist_useDataRouterContext(dist_DataRouterHook.UseSubmit),{basename}=external_React_.useContext(NavigationContext),currentRouteId=useRouteId();return external_React_.useCallback(function(target,options){options===void 0&&(options={}),validateClientSideSubmission();let{action,method,encType,formData,body}=getFormSubmissionInfo(target,basename);if(options.navigate===!1){let key=options.fetcherKey||getUniqueFetcherId();router.fetch(key,currentRouteId,options.action||action,{preventScrollReset:options.preventScrollReset,formData,body,formMethod:options.method||method,formEncType:options.encType||encType,unstable_flushSync:options.unstable_flushSync})}else router.navigate(options.action||action,{preventScrollReset:options.preventScrollReset,formData,body,formMethod:options.method||method,formEncType:options.encType||encType,replace:options.replace,state:options.state,fromRouteId:currentRouteId,unstable_flushSync:options.unstable_flushSync,unstable_viewTransition:options.unstable_viewTransition})},[router,basename,currentRouteId])}function useFormAction(action,_temp2){let{relative}=_temp2===void 0?{}:_temp2,{basename}=external_React_.useContext(NavigationContext),routeContext=external_React_.useContext(RouteContext);routeContext||invariant(!1);let[match]=routeContext.matches.slice(-1),path=react_router_dom_dist_extends({},useResolvedPath(action||".",{relative})),location=useLocation();if(action==null){path.search=location.search;let params=new URLSearchParams(path.search);params.has("index")&¶ms.get("index")===""&&(params.delete("index"),path.search=params.toString()?"?"+params.toString():"")}return(!action||action===".")&&match.route.index&&(path.search=path.search?path.search.replace(/^\?/,"?index&"):"?index"),basename!=="/"&&(path.pathname=path.pathname==="/"?basename:joinPaths([basename,path.pathname])),createPath(path)}function useFetcher(_temp3){var _route$matches;let{key}=_temp3===void 0?{}:_temp3,{router}=dist_useDataRouterContext(dist_DataRouterHook.UseFetcher),state=dist_useDataRouterState(dist_DataRouterStateHook.UseFetcher),fetcherData=external_React_.useContext(FetchersContext),route=external_React_.useContext(RouteContext),routeId=(_route$matches=route.matches[route.matches.length-1])==null?void 0:_route$matches.route.id;fetcherData||invariant(!1),route||invariant(!1),routeId==null&&invariant(!1);let[fetcherKey,setFetcherKey]=external_React_.useState(key||"");key&&key!==fetcherKey?setFetcherKey(key):fetcherKey||setFetcherKey(getUniqueFetcherId()),external_React_.useEffect(()=>(router.getFetcher(fetcherKey),()=>{router.deleteFetcher(fetcherKey)}),[router,fetcherKey]);let load=external_React_.useCallback((href,opts)=>{routeId||invariant(!1),router.fetch(fetcherKey,routeId,href,opts)},[fetcherKey,routeId,router]),submitImpl=useSubmit(),submit=external_React_.useCallback((target,opts)=>{submitImpl(target,react_router_dom_dist_extends({},opts,{navigate:!1,fetcherKey}))},[fetcherKey,submitImpl]),FetcherForm=external_React_.useMemo(()=>external_React_.forwardRef((props,ref)=>external_React_.createElement(Form,react_router_dom_dist_extends({},props,{navigate:!1,fetcherKey,ref}))),[fetcherKey]),fetcher=state.fetchers.get(fetcherKey)||IDLE_FETCHER,data=fetcherData.get(fetcherKey);return external_React_.useMemo(()=>react_router_dom_dist_extends({Form:FetcherForm,submit,load},fetcher,{data}),[FetcherForm,submit,load,fetcher,data])}function useFetchers(){let state=dist_useDataRouterState(dist_DataRouterStateHook.UseFetchers);return Array.from(state.fetchers.entries()).map(_ref11=>{let[key,fetcher]=_ref11;return react_router_dom_dist_extends({},fetcher,{key})})}const SCROLL_RESTORATION_STORAGE_KEY="react-router-scroll-positions";let savedScrollPositions={};function useScrollRestoration(_temp4){let{getKey,storageKey}=_temp4===void 0?{}:_temp4,{router}=dist_useDataRouterContext(dist_DataRouterHook.UseScrollRestoration),{restoreScrollPosition,preventScrollReset}=dist_useDataRouterState(dist_DataRouterStateHook.UseScrollRestoration),{basename}=external_React_.useContext(NavigationContext),location=useLocation(),matches=useMatches(),navigation=useNavigation();external_React_.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),usePageHide(external_React_.useCallback(()=>{if(navigation.state==="idle"){let key=(getKey?getKey(location,matches):null)||location.key;savedScrollPositions[key]=window.scrollY}try{sessionStorage.setItem(storageKey||SCROLL_RESTORATION_STORAGE_KEY,JSON.stringify(savedScrollPositions))}catch{}window.history.scrollRestoration="auto"},[storageKey,getKey,navigation.state,location,matches])),typeof document<"u"&&(external_React_.useLayoutEffect(()=>{try{let sessionPositions=sessionStorage.getItem(storageKey||SCROLL_RESTORATION_STORAGE_KEY);sessionPositions&&(savedScrollPositions=JSON.parse(sessionPositions))}catch{}},[storageKey]),external_React_.useLayoutEffect(()=>{let getKeyWithoutBasename=getKey&&basename!=="/"?(location2,matches2)=>getKey(react_router_dom_dist_extends({},location2,{pathname:stripBasename(location2.pathname,basename)||location2.pathname}),matches2):getKey,disableScrollRestoration=router?.enableScrollRestoration(savedScrollPositions,()=>window.scrollY,getKeyWithoutBasename);return()=>disableScrollRestoration&&disableScrollRestoration()},[router,basename,getKey]),external_React_.useLayoutEffect(()=>{if(restoreScrollPosition!==!1){if(typeof restoreScrollPosition=="number"){window.scrollTo(0,restoreScrollPosition);return}if(location.hash){let el=document.getElementById(decodeURIComponent(location.hash.slice(1)));if(el){el.scrollIntoView();return}}preventScrollReset!==!0&&window.scrollTo(0,0)}},[location,restoreScrollPosition,preventScrollReset]))}function useBeforeUnload(callback,options){let{capture}=options||{};external_React_.useEffect(()=>{let opts=capture!=null?{capture}:void 0;return window.addEventListener("beforeunload",callback,opts),()=>{window.removeEventListener("beforeunload",callback,opts)}},[callback,capture])}function usePageHide(callback,options){let{capture}=options||{};external_React_.useEffect(()=>{let opts=capture!=null?{capture}:void 0;return window.addEventListener("pagehide",callback,opts),()=>{window.removeEventListener("pagehide",callback,opts)}},[callback,capture])}function usePrompt(_ref12){let{when,message}=_ref12,blocker=useBlocker(when);external_React_.useEffect(()=>{blocker.state==="blocked"&&(window.confirm(message)?setTimeout(blocker.proceed,0):blocker.reset())},[blocker,message]),external_React_.useEffect(()=>{blocker.state==="blocked"&&!when&&blocker.reset()},[blocker,when])}function useViewTransitionState(to,opts){opts===void 0&&(opts={});let vtContext=external_React_.useContext(ViewTransitionContext);vtContext==null&&invariant(!1);let{basename}=dist_useDataRouterContext(dist_DataRouterHook.useViewTransitionState),path=useResolvedPath(to,{relative:opts.relative});if(!vtContext.isTransitioning)return!1;let currentPath=stripBasename(vtContext.currentLocation.pathname,basename)||vtContext.currentLocation.pathname,nextPath=stripBasename(vtContext.nextLocation.pathname,basename)||vtContext.nextLocation.pathname;return matchPath(path.pathname,nextPath)!=null||matchPath(path.pathname,currentPath)!=null}},6982:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/brand-definition@1.0.0",homepage:"https://bit.dev/teambit/base-ui/theme/brand-definition",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.brands=void 0;const brand_definition_module_scss_1=__importDefault(__webpack_require__(86924)),{brands}=brand_definition_module_scss_1.default;exports2.brands=brands},33350:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/color-definition@1.0.1",homepage:"https://bit.dev/teambit/base-ui/theme/color-definition",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.primaryPalette=void 0;const color_definition_module_scss_1=__importDefault(__webpack_require__(68564)),{primaryPalette}=color_definition_module_scss_1.default;exports2.primaryPalette=primaryPalette},57720:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/fonts/book@1.0.0",homepage:"https://bit.dev/teambit/base-ui/theme/fonts/book",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.bookFont=void 0;const book_font_module_scss_1=__importDefault(__webpack_require__(58760)),{bookFont}=book_font_module_scss_1.default;exports2.bookFont=bookFont},52823:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/fonts/roboto@1.0.0",homepage:"https://bit.dev/teambit/base-ui/theme/fonts/roboto",exported:!0},__createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){k2===void 0&&(k2=k),Object.defineProperty(o,k2,{enumerable:!0,get:function(){return m[k]}})}:function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports3){for(var p in m)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports3,p)&&__createBinding(exports3,m,p)};Object.defineProperty(exports2,"__esModule",{value:!0}),__exportStar(__webpack_require__(21357),exports2)},21357:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/fonts/roboto@1.0.0",homepage:"https://bit.dev/teambit/base-ui/theme/fonts/roboto",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.Roboto=void 0;const react_1=__importDefault(__webpack_require__(87363)),Roboto=()=>react_1.default.createElement("link",{href:"https://fonts.googleapis.com/css?family=Roboto+Mono",rel:"stylesheet"});Roboto.__bit_component=__bit_component,exports2.Roboto=Roboto},85312:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/heading-margin-definition@1.0.0",homepage:"https://bit.dev/teambit/base-ui/theme/heading-margin-definition",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.headingMargins=void 0;const heading_margin_definition_module_scss_1=__importDefault(__webpack_require__(6431)),{headingMargins}=heading_margin_definition_module_scss_1.default;exports2.headingMargins=headingMargins},14782:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/shadow-definition@1.0.0",homepage:"https://bit.dev/teambit/base-ui/theme/shadow-definition",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.shadowTheme=void 0;const shadow_definition_module_scss_1=__importDefault(__webpack_require__(18286)),{shadowTheme}=shadow_definition_module_scss_1.default;exports2.shadowTheme=shadowTheme},98486:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/size-definition@1.0.0",homepage:"https://bit.dev/teambit/base-ui/theme/size-definition",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.textFontSize=exports2.headingFontSize=void 0;const size_definition_module_scss_1=__importDefault(__webpack_require__(53242)),{headingFontSize,textFontSize}=size_definition_module_scss_1.default;exports2.headingFontSize=headingFontSize,exports2.textFontSize=textFontSize},58300:(__unused_webpack_module,exports2,__webpack_require__)=>{var __bit_component={id:"teambit.base-ui/theme/theme-provider@1.0.1",homepage:"https://bit.dev/teambit/base-ui/theme/theme-provider",exported:!0};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.Theme=void 0;var theme_provider_1=__webpack_require__(75914);Object.defineProperty(exports2,"Theme",{enumerable:!0,get:function(){return theme_provider_1.Theme}})},75914:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.base-ui/theme/theme-provider@1.0.1",homepage:"https://bit.dev/teambit/base-ui/theme/theme-provider",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.Theme=void 0;const react_1=__importDefault(__webpack_require__(87363)),classnames_1=__importDefault(__webpack_require__(99186)),base_ui_theme_size_definition_1=__webpack_require__(98486),base_ui_theme_shadow_definition_1=__webpack_require__(14782),base_ui_theme_color_definition_1=__webpack_require__(33350),base_ui_theme_brand_definition_1=__webpack_require__(6982),base_ui_theme_heading_margin_definition_1=__webpack_require__(85312),base_ui_theme_fonts_book_1=__webpack_require__(57720),texts_module_scss_1=__importDefault(__webpack_require__(72813));function Theme(props){return react_1.default.createElement("div",Object.assign({},props,{className:classnames_1.default(base_ui_theme_size_definition_1.headingFontSize,base_ui_theme_size_definition_1.textFontSize,base_ui_theme_fonts_book_1.bookFont,base_ui_theme_shadow_definition_1.shadowTheme,base_ui_theme_color_definition_1.primaryPalette,base_ui_theme_brand_definition_1.brands,base_ui_theme_heading_margin_definition_1.headingMargins,texts_module_scss_1.default.defaults,props.className)}))}Theme.__bit_component=__bit_component,exports2.Theme=Theme},94640:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.design/theme/icons-font@1.0.0",homepage:"https://bit.dev/teambit/design/theme/icons-font",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.IconFont=void 0;const react_1=__importDefault(__webpack_require__(87363)),EMBED_LINK="https://d1azc1qln24ryf.cloudfront.net/158286/Bit/style-cf.css";function IconFont(props){const{query="cr084i"}=props;return react_1.default.createElement("link",{rel:"stylesheet",href:`${EMBED_LINK}?${query}`})}IconFont.__bit_component=__bit_component,exports2.IconFont=IconFont},83185:(__unused_webpack_module,exports2,__webpack_require__)=>{var __bit_component={id:"teambit.design/theme/icons-font@1.0.0",homepage:"https://bit.dev/teambit/design/theme/icons-font",exported:!0};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.IconFont=void 0;var icon_font_1=__webpack_require__(94640);Object.defineProperty(exports2,"IconFont",{enumerable:!0,get:function(){return icon_font_1.IconFont}})},18094:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.documenter/theme/theme-compositions@4.1.1",homepage:"https://bit.dev/teambit/documenter/theme/theme-compositions",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.center=exports2.ThemeCompositions=void 0;var theme_compositions_1=__webpack_require__(40045);Object.defineProperty(exports2,"ThemeCompositions",{enumerable:!0,get:function(){return theme_compositions_1.ThemeCompositions}});const layout_module_scss_1=__importDefault(__webpack_require__(40988)),{center}=layout_module_scss_1.default;exports2.center=center},40045:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.documenter/theme/theme-compositions@4.1.1",homepage:"https://bit.dev/teambit/documenter/theme/theme-compositions",exported:!0},__rest=this&&this.__rest||function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.ThemeCompositions=void 0;const react_1=__importDefault(__webpack_require__(87363)),design_theme_icons_font_1=__webpack_require__(83185),documenter_theme_theme_context_1=__webpack_require__(26144),ICON_MOON_VERSION="mxd7i0",ThemeCompositions=_a=>{var{children}=_a,rest=__rest(_a,["children"]);return react_1.default.createElement(documenter_theme_theme_context_1.ThemeDocumenter,Object.assign({},rest),react_1.default.createElement(design_theme_icons_font_1.IconFont,{query:ICON_MOON_VERSION}),children)};ThemeCompositions.__bit_component=__bit_component,exports2.ThemeCompositions=ThemeCompositions},26144:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.documenter/theme/theme-context@4.0.3",homepage:"https://bit.dev/teambit/documenter/theme/theme-context",exported:!0},__createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){k2===void 0&&(k2=k),Object.defineProperty(o,k2,{enumerable:!0,get:function(){return m[k]}})}:function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports3){for(var p in m)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports3,p)&&__createBinding(exports3,m,p)};Object.defineProperty(exports2,"__esModule",{value:!0}),__exportStar(__webpack_require__(6927),exports2)},6927:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.documenter/theme/theme-context@4.0.3",homepage:"https://bit.dev/teambit/documenter/theme/theme-context",exported:!0},__rest=this&&this.__rest||function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.ThemeContext=exports2.ThemeDocumenter=void 0;const react_1=__importDefault(__webpack_require__(87363)),classnames_1=__importDefault(__webpack_require__(99186)),base_ui_theme_theme_provider_1=__webpack_require__(58300),base_ui_theme_fonts_roboto_1=__webpack_require__(52823),sizes_module_scss_1=__importDefault(__webpack_require__(42926)),global_module_scss_1=__importDefault(__webpack_require__(10502));function ThemeDocumenter(_a){var{children,className}=_a,rest=__rest(_a,["children","className"]);return react_1.default.createElement(base_ui_theme_theme_provider_1.Theme,Object.assign({},rest,{className:classnames_1.default(className,sizes_module_scss_1.default.heading,global_module_scss_1.default.overrides)}),react_1.default.createElement(base_ui_theme_fonts_roboto_1.Roboto,null),children)}ThemeDocumenter.__bit_component=__bit_component,exports2.ThemeDocumenter=ThemeDocumenter,exports2.ThemeContext=ThemeDocumenter},48250:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.documenter/ui/section@4.1.1",homepage:"https://bit.dev/teambit/documenter/ui/section",exported:!0},__createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){k2===void 0&&(k2=k),Object.defineProperty(o,k2,{enumerable:!0,get:function(){return m[k]}})}:function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports3){for(var p in m)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports3,p)&&__createBinding(exports3,m,p)};Object.defineProperty(exports2,"__esModule",{value:!0}),__exportStar(__webpack_require__(12412),exports2)},12412:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.documenter/ui/section@4.1.1",homepage:"https://bit.dev/teambit/documenter/ui/section",exported:!0},__rest=this&&this.__rest||function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.Section=void 0;const react_1=__importDefault(__webpack_require__(87363)),classnames_1=__importDefault(__webpack_require__(99186)),section_module_scss_1=__importDefault(__webpack_require__(29069));function Section(_a){var{className,children}=_a,rest=__rest(_a,["className","children"]);return react_1.default.createElement("div",Object.assign({className:classnames_1.default(section_module_scss_1.default.spacer,section_module_scss_1.default.sectionMargin,className)},rest),children)}Section.__bit_component=__bit_component,exports2.Section=Section},68798:(__unused_webpack_module,exports2,__webpack_require__)=>{var __bit_component={id:"teambit.documenter/ui/separator@4.1.1",homepage:"https://bit.dev/teambit/documenter/ui/separator",exported:!0};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.Separator=void 0;var separator_1=__webpack_require__(11359);Object.defineProperty(exports2,"Separator",{enumerable:!0,get:function(){return separator_1.Separator}})},11359:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.documenter/ui/separator@4.1.1",homepage:"https://bit.dev/teambit/documenter/ui/separator",exported:!0},__rest=this&&this.__rest||function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.Separator=void 0;const react_1=__importDefault(__webpack_require__(87363)),classnames_1=__importDefault(__webpack_require__(99186)),separator_module_scss_1=__importDefault(__webpack_require__(10192));function Separator(_a){var{className}=_a,rest=__rest(_a,["className"]);return react_1.default.createElement("hr",Object.assign({className:classnames_1.default(separator_module_scss_1.default.separator,className)},rest))}Separator.__bit_component=__bit_component,exports2.Separator=Separator},45934:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{compositions:()=>compositions,compositions_metadata:()=>compositions_metadata,overview:()=>overview});var _Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_composition_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(66809),_Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_composition_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_composition_js__WEBPACK_IMPORTED_MODULE_0__),_Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_docs_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(20019),_Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_docs_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_docs_js__WEBPACK_IMPORTED_MODULE_1__),__bit_component={id:"teambit.component/ui/version-dropdown@e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1",homepage:"https://bit.cloud/teambit/component/ui/version-dropdown",exported:!0};const compositions=[_Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_composition_js__WEBPACK_IMPORTED_MODULE_0__],overview=[_Users_luv_Library_Caches_Bit_capsules_4232a33c1ce36a4473dd457bb7a988b9454af045_teambit_component_ui_version_dropdown_e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1_dist_version_dropdown_docs_js__WEBPACK_IMPORTED_MODULE_1__],compositions_metadata={compositions:[{displayName:"Version dropdown with one version",identifier:"VersionDropdownWithOneVersion"},{displayName:"Version dropdown with multiple versions",identifier:"VersionDropdownWithMultipleVersions"}]}},66809:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.component/ui/version-dropdown@e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1",homepage:"https://bit.cloud/teambit/component/ui/version-dropdown",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0}),exports2.VersionDropdownWithMultipleVersions=exports2.VersionDropdownWithOneVersion=void 0;const react_1=__importDefault(__webpack_require__(87363)),react_router_dom_1=__webpack_require__(33652),documenter_theme_theme_compositions_1=__webpack_require__(18094),version_dropdown_1=__webpack_require__(74107),style={display:"flex",justifyContent:"center",alignContent:"center"},VersionDropdownWithOneVersion=()=>react_1.default.createElement(documenter_theme_theme_compositions_1.ThemeCompositions,{style},react_1.default.createElement(version_dropdown_1.VersionDropdown,{useComponentVersions:()=>({tags:[{version:"0.1"}]}),currentVersion:"0.1"}));VersionDropdownWithOneVersion.__bit_component=__bit_component,exports2.VersionDropdownWithOneVersion=VersionDropdownWithOneVersion;const VersionDropdownWithMultipleVersions=()=>{const versions=["0.3","0.2","0.1"].map(version=>({version}));return react_1.default.createElement(documenter_theme_theme_compositions_1.ThemeCompositions,{style},react_1.default.createElement(react_router_dom_1.MemoryRouter,null,react_1.default.createElement(version_dropdown_1.VersionDropdown,{useComponentVersions:()=>({tags:[{version:"0.1"}]}),currentVersion:versions[0].version})))};VersionDropdownWithMultipleVersions.__bit_component=__bit_component,exports2.VersionDropdownWithMultipleVersions=VersionDropdownWithMultipleVersions},20019:function(__unused_webpack_module,exports2,__webpack_require__){var __bit_component={id:"teambit.component/ui/version-dropdown@e97bc9d1e415fdd57a48a50f9566d1d7d2e93de1",homepage:"https://bit.cloud/teambit/component/ui/version-dropdown",exported:!0},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports2,"__esModule",{value:!0});const react_1=__importDefault(__webpack_require__(87363)),react_router_dom_1=__webpack_require__(33652),documenter_ui_section_1=__webpack_require__(48250),documenter_theme_theme_compositions_1=__webpack_require__(18094),documenter_ui_separator_1=__webpack_require__(68798),version_dropdown_1=__webpack_require__(74107);function Overview(){return react_1.default.createElement(documenter_theme_theme_compositions_1.ThemeCompositions,null,react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement(documenter_ui_section_1.Section,null,"The version-dropdown displays the latest version of the viewed component. ",react_1.default.createElement("br",null),"If previous versions are available, the component will display a list of them, when clicked. ",react_1.default.createElement("br",null),"This allows the user to navigate to previous versions, and explore them."),react_1.default.createElement(documenter_ui_separator_1.Separator,null)))}Overview.__bit_component=__bit_component,exports2.default=Overview,Overview.abstract="The version-dropdown lists the latest and previous versions of the viewed component.",Overview.labels=["react","typescript","version","dropdown"];const style={display:"flex",justifyContent:"center",alignContent:"center"};Overview.examples=[{scope:{VersionDropdown:version_dropdown_1.VersionDropdown,style},title:"Version Dropdown",description:"Using the Version Dropdown component with one verion",code:`
|
30
|
+
() => {
|
31
|
+
return (
|
32
|
+
<div style={{...style, minHeight: 150 }}>
|
33
|
+
<VersionDropdown versions={['0.1']} currentVersion="0.1" />
|
34
|
+
</div>
|
35
|
+
);
|
36
|
+
}
|
37
|
+
`},{scope:{VersionDropdown:version_dropdown_1.VersionDropdown,style,MemoryRouter:react_router_dom_1.MemoryRouter},title:"Version Dropdown with multiple versions",description:"Using the Version Dropdown component with more than one version",code:`
|
38
|
+
() => {
|
39
|
+
const versions = ['0.3', '0.2', '0.1'];
|
40
|
+
return (
|
41
|
+
<div style={{...style, minHeight: 400, alignItems: 'end', justifyContent: 'flex-end', margin: 10 }}>
|
42
|
+
<MemoryRouter>
|
43
|
+
<VersionDropdown versions={versions} currentVersion={versions[0]} />
|
44
|
+
</MemoryRouter>
|
45
|
+
</div>
|
46
|
+
);
|
47
|
+
}
|
48
|
+
`}]},86924:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={brands:"brand-definition_brands__v7Z5u"}},68564:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={primaryPalette:"color-definition_primaryPalette__XUMNC"}},58760:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={bookFont:"book-font_bookFont__3SIFa"}},6431:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={headingMargins:"heading-margin-definition_headingMargins__3G1Lh"}},18286:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={shadowTheme:"shadow-definition_shadowTheme__HlQsc"}},53242:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={headingFontSize:"size-definition_headingFontSize__3T6JK",textFontSize:"size-definition_textFontSize__2UOaa"}},72813:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={defaults:"texts_defaults__2o4qx"}},40988:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={center:"layout_center__1dbHP"}},10502:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={overrides:"global_overrides__2ueCr"}},42926:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={heading:"sizes_heading__26uc1"}},29069:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={section:"section_section__2mH0g",sectionMargin:"section_sectionMargin__3mCws"}},10192:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={separator:"separator_separator__vXDtB"}}},__webpack_require__=>{var __webpack_exec__=moduleId=>__webpack_require__(__webpack_require__.s=moduleId),__webpack_exports__=__webpack_exec__(45934);return __webpack_exports__}]));
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.852/dist/version-dropdown.composition.js';
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.852/dist/version-dropdown.docs.js';
|
3
|
-
|
4
|
-
export const compositions = [compositions_0];
|
5
|
-
export const overview = [overview_0];
|
6
|
-
|
7
|
-
export const compositions_metadata = {"compositions":[{"displayName":"Version dropdown with one version","identifier":"VersionDropdownWithOneVersion"},{"displayName":"Version dropdown with multiple versions","identifier":"VersionDropdownWithMultipleVersions"}]};
|
package/tsconfig.json
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"compilerOptions": {
|
3
|
-
"lib": [
|
4
|
-
"es2019",
|
5
|
-
"DOM",
|
6
|
-
"ES6",
|
7
|
-
"DOM.Iterable"
|
8
|
-
],
|
9
|
-
"target": "es2015",
|
10
|
-
"module": "CommonJS",
|
11
|
-
"jsx": "react",
|
12
|
-
"allowJs": true,
|
13
|
-
"composite": true,
|
14
|
-
"declaration": true,
|
15
|
-
"sourceMap": true,
|
16
|
-
"skipLibCheck": true,
|
17
|
-
"experimentalDecorators": true,
|
18
|
-
"outDir": "dist",
|
19
|
-
"moduleResolution": "node",
|
20
|
-
"esModuleInterop": true,
|
21
|
-
"rootDir": ".",
|
22
|
-
"resolveJsonModule": true
|
23
|
-
},
|
24
|
-
"exclude": [
|
25
|
-
"dist",
|
26
|
-
"package.json"
|
27
|
-
],
|
28
|
-
"include": [
|
29
|
-
"**/*",
|
30
|
-
"**/*.json"
|
31
|
-
]
|
32
|
-
}
|
package/types/asset.d.ts
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
declare module '*.png' {
|
2
|
-
const value: any;
|
3
|
-
export = value;
|
4
|
-
}
|
5
|
-
declare module '*.svg' {
|
6
|
-
import type { FunctionComponent, SVGProps } from 'react';
|
7
|
-
|
8
|
-
export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
|
9
|
-
const src: string;
|
10
|
-
export default src;
|
11
|
-
}
|
12
|
-
|
13
|
-
// @TODO Gilad
|
14
|
-
declare module '*.jpg' {
|
15
|
-
const value: any;
|
16
|
-
export = value;
|
17
|
-
}
|
18
|
-
declare module '*.jpeg' {
|
19
|
-
const value: any;
|
20
|
-
export = value;
|
21
|
-
}
|
22
|
-
declare module '*.gif' {
|
23
|
-
const value: any;
|
24
|
-
export = value;
|
25
|
-
}
|
26
|
-
declare module '*.bmp' {
|
27
|
-
const value: any;
|
28
|
-
export = value;
|
29
|
-
}
|
package/types/style.d.ts
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
declare module '*.module.css' {
|
2
|
-
const classes: { readonly [key: string]: string };
|
3
|
-
export default classes;
|
4
|
-
}
|
5
|
-
declare module '*.module.scss' {
|
6
|
-
const classes: { readonly [key: string]: string };
|
7
|
-
export default classes;
|
8
|
-
}
|
9
|
-
declare module '*.module.sass' {
|
10
|
-
const classes: { readonly [key: string]: string };
|
11
|
-
export default classes;
|
12
|
-
}
|
13
|
-
|
14
|
-
declare module '*.module.less' {
|
15
|
-
const classes: { readonly [key: string]: string };
|
16
|
-
export default classes;
|
17
|
-
}
|
18
|
-
|
19
|
-
declare module '*.less' {
|
20
|
-
const classes: { readonly [key: string]: string };
|
21
|
-
export default classes;
|
22
|
-
}
|
23
|
-
|
24
|
-
declare module '*.css' {
|
25
|
-
const classes: { readonly [key: string]: string };
|
26
|
-
export default classes;
|
27
|
-
}
|
28
|
-
|
29
|
-
declare module '*.sass' {
|
30
|
-
const classes: { readonly [key: string]: string };
|
31
|
-
export default classes;
|
32
|
-
}
|
33
|
-
|
34
|
-
declare module '*.scss' {
|
35
|
-
const classes: { readonly [key: string]: string };
|
36
|
-
export default classes;
|
37
|
-
}
|
38
|
-
|
39
|
-
declare module '*.mdx' {
|
40
|
-
const component: any;
|
41
|
-
export default component;
|
42
|
-
}
|