New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-router-dom-v5-compat

Package Overview
Dependencies
Maintainers
1
Versions
269
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-router-dom-v5-compat - npm Package Compare versions

Comparing version 0.0.0-experimental-d90c8fb3 to 0.0.0-experimental-db3389095

167

CHANGELOG.md
# `react-router-dom-v5-compat`
## 6.28.2
### Patch Changes
- Updated dependencies:
- `@remix-run/router@1.21.1`
- `react-router@6.28.2`
- `react-router-dom@6.28.2`
## 6.28.1
### Patch Changes
- Updated dependencies:
- `react-router@6.28.1`
- `react-router-dom@6.28.1`
## 6.28.0
### Patch Changes
- Updated dependencies:
- `react-router-dom@6.28.0`
- `react-router@6.28.0`
- `@remix-run/router@1.21.0`
## 6.27.0
### Patch Changes
- Updated dependencies:
- `react-router-dom@6.27.0`
- `react-router@6.27.0`
- `@remix-run/router@1.20.0`
## 6.26.2
### Patch Changes
- Updated dependencies:
- `@remix-run/router@1.19.2`
- `react-router@6.26.2`
- `react-router-dom@6.26.2`
## 6.26.1
### Patch Changes
- Updated dependencies:
- `@remix-run/router@1.19.1`
- `react-router-dom@6.26.1`
- `react-router@6.26.1`
## 6.26.0
### Patch Changes
- Updated dependencies:
- `@remix-run/router@1.19.0`
- `react-router@6.26.0`
- `react-router-dom@6.26.0`
## 6.25.1
### Patch Changes
- Updated dependencies:
- `react-router-dom@6.25.1`
- `react-router@6.25.1`
## 6.25.0
### Patch Changes
- Updated dependencies:
- `react-router@6.25.0`
- `@remix-run/router@1.18.0`
- `react-router-dom@6.25.0`
## 6.24.1
### Patch Changes
- Updated dependencies:
- `react-router-dom@6.24.1`
- `@remix-run/router@1.17.1`
- `react-router@6.24.1`
## 6.24.0
### Patch Changes
- Allow falsy `location.state` values passed to `<StaticRouter>` ([#11495](https://github.com/remix-run/react-router/pull/11495))
- Updated dependencies:
- `react-router-dom@6.24.0`
- `react-router@6.24.0`
- `@remix-run/router@1.17.0`
## 6.23.1
### Patch Changes
- Updated dependencies:
- `@remix-run/router@1.16.1`
- `react-router-dom@6.23.1`
- `react-router@6.23.1`
## 6.23.0
### Minor Changes
- Add a new `unstable_dataStrategy` configuration option ([#11098](https://github.com/remix-run/react-router/pull/11098))
- This option allows Data Router applications to take control over the approach for executing route loaders and actions
- The default implementation is today's behavior, to fetch all loaders in parallel, but this option allows users to implement more advanced data flows including Remix single-fetch, middleware/context APIs, automatic loader caching, and more
### Patch Changes
- Updated dependencies:
- `@remix-run/router@1.16.0`
- `react-router@6.23.0`
- `react-router-dom@6.23.0`
## 6.22.3
### Patch Changes
- Updated dependencies:
- `react-router@6.22.3`
- `react-router-dom@6.22.3`
## 6.22.2
### Patch Changes
- Updated dependencies:
- `react-router@6.22.2`
- `react-router-dom@6.22.2`
## 6.22.1
### Patch Changes
- Updated dependencies:
- `react-router@6.22.1`
- `react-router-dom@6.22.1`
## 6.22.0
### Minor Changes
- Include a `window__reactRouterVersion` tag for CWV Report detection ([#11222](https://github.com/remix-run/react-router/pull/11222))
### Patch Changes
- Updated dependencies:
- `react-router-dom@6.22.0`
- `react-router@6.22.0`
## 6.21.3
### Patch Changes
- Remove leftover `unstable_` prefix from `Blocker`/`BlockerFunction` types ([#11187](https://github.com/remix-run/react-router/pull/11187))
- Updated dependencies:
- `react-router-dom@6.21.3`
- `react-router@6.21.3`
## 6.21.2

@@ -4,0 +171,0 @@

4

dist/index.d.ts

@@ -49,5 +49,5 @@ /**

*/
export type { ActionFunction, ActionFunctionArgs, AwaitProps, BrowserRouterProps, DataRouteMatch, DataRouteObject, ErrorResponse, Fetcher, FetcherWithComponents, FormEncType, FormMethod, FormProps, FutureConfig, GetScrollRestorationKeyFunction, Hash, HashRouterProps, HistoryRouterProps, IndexRouteObject, IndexRouteProps, JsonFunction, LayoutRouteProps, LinkProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavLinkProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, ParamKeyValuePair, ParamParseKey, Params, Path, PathMatch, PathParam, PathPattern, PathRouteProps, Pathname, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, ScrollRestorationProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, SubmitFunction, SubmitOptions, To, URLSearchParamsInit, UIMatch, Blocker, BlockerFunction, } from "./react-router-dom";
export { AbortedDeferredError, Await, BrowserRouter, Form, HashRouter, Link, MemoryRouter, NavLink, Navigate, NavigationType, Outlet, Route, Router, RouterProvider, Routes, ScrollRestoration, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, createSearchParams, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, unstable_HistoryRouter, useBlocker, unstable_usePrompt, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, useSearchParams, useSubmit, } from "./react-router-dom";
export type { ActionFunction, ActionFunctionArgs, AwaitProps, BrowserRouterProps, DataStrategyFunction, DataStrategyFunctionArgs, DataStrategyMatch, DataStrategyResult, DataRouteMatch, DataRouteObject, ErrorResponse, Fetcher, FetcherWithComponents, FormEncType, FormMethod, FormProps, FutureConfig, GetScrollRestorationKeyFunction, Hash, HashRouterProps, HistoryRouterProps, IndexRouteObject, IndexRouteProps, JsonFunction, LayoutRouteProps, LinkProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavLinkProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, ParamKeyValuePair, ParamParseKey, Params, Path, PathMatch, PathParam, PathPattern, PathRouteProps, Pathname, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, ScrollRestorationProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, SubmitFunction, SubmitOptions, To, URLSearchParamsInit, UIMatch, Blocker, BlockerFunction, } from "./react-router-dom";
export { AbortedDeferredError, Await, BrowserRouter, Form, HashRouter, Link, MemoryRouter, NavLink, Navigate, NavigationType, Outlet, Route, Router, RouterProvider, Routes, ScrollRestoration, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, createSearchParams, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, renderMatches, resolvePath, unstable_HistoryRouter, useBlocker, unstable_usePrompt, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, useSearchParams, useSubmit, } from "./react-router-dom";
export type { StaticRouterProps } from "./lib/components";
export { CompatRoute, CompatRouter, StaticRouter } from "./lib/components";
/**
* React Router DOM v5 Compat v0.0.0-experimental-d90c8fb3
* React Router DOM v5 Compat v0.0.0-experimental-db3389095
*

@@ -13,4 +13,4 @@ * Copyright (c) Remix Software Inc.

import * as ReactDOM from 'react-dom';
import { UNSAFE_mapRouteProperties, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker, Routes, Route } from 'react-router';
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';
import { UNSAFE_mapRouteProperties, UNSAFE_logV6DeprecationWarnings, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker, Routes, Route } from 'react-router';
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, replace, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';
import { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';

@@ -213,5 +213,20 @@ import { parsePath, Action, createPath as createPath$1 } from 'history';

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"];
const _excluded = ["onClick", "relative", "reloadDocument", "replace", "state", "target", "to", "preventScrollReset", "viewTransition"],
_excluded2 = ["aria-current", "caseSensitive", "className", "end", "style", "to", "viewTransition", "children"],
_excluded3 = ["fetcherKey", "navigate", "reloadDocument", "replace", "state", "method", "action", "onSubmit", "relative", "preventScrollReset", "viewTransition"];
// HEY YOU! DON'T TOUCH THIS VARIABLE!
//
// It is replaced with the proper version at build time via a babel plugin in
// the rollup config.
//
// Export a global property onto the window for React Router detection by the
// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`
// to detect and properly classify live websites as being built with React Router:
// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json
const REACT_ROUTER_VERSION = "0";
try {
window.__reactRouterVersion = REACT_ROUTER_VERSION;
} catch (e) {
// no-op
}
function createBrowserRouter(routes, opts) {

@@ -229,2 +244,4 @@ return createRouter({

mapRouteProperties: UNSAFE_mapRouteProperties,
dataStrategy: opts == null ? void 0 : opts.dataStrategy,
patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,
window: opts == null ? void 0 : opts.window

@@ -245,2 +262,4 @@ }).initialize();

mapRouteProperties: UNSAFE_mapRouteProperties,
dataStrategy: opts == null ? void 0 : opts.dataStrategy,
patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,
window: opts == null ? void 0 : opts.window

@@ -403,6 +422,11 @@ }).initialize();

deletedFetchers,
unstable_flushSync: flushSync,
unstable_viewTransitionOpts: viewTransitionOpts
flushSync: flushSync,
viewTransitionOpts: viewTransitionOpts
} = _ref2;
deletedFetchers.forEach(key => fetcherData.current.delete(key));
console.log("updateState", {
navigationState: newState.navigation.state,
revalidationState: newState.revalidation,
data: newState.loaderData,
viewTransitionOpts
});
newState.fetchers.forEach((fetcher, key) => {

@@ -413,3 +437,4 @@ if (fetcher.data !== undefined) {

});
let isViewTransitionUnavailable = router.window == null || typeof router.window.document.startViewTransition !== "function";
deletedFetchers.forEach(key => fetcherData.current.delete(key));
let isViewTransitionUnavailable = router.window == null || router.window.document == null || typeof router.window.document.startViewTransition !== "function";
// If this isn't a view transition or it's not available in this browser,

@@ -421,2 +446,3 @@ // just update and be done with it

} else {
console.log("setState 1 - no view transition enabled");
optInStartTransition(() => setStateImpl(newState));

@@ -466,2 +492,3 @@ }

transition.skipTransition();
console.log("setInterruption - viewTransition enabled and transition in progress");
setInterruption({

@@ -474,2 +501,3 @@ state: newState,

// Completed navigation update with opted-in view transitions, let 'er rip
console.log("setPendingState/setVtContext - beginning a new viewTransition");
setPendingState(newState);

@@ -491,2 +519,3 @@ setVtContext({

if (vtContext.isTransitioning && !vtContext.flushSync) {
console.log("creating a new renderDfd for a transition");
setRenderDfd(new Deferred());

@@ -502,7 +531,11 @@ }

let renderPromise = renderDfd.promise;
console.log("calling window.document.startViewTransition");
let transition = router.window.document.startViewTransition(async () => {
console.log("setState 2 - inside of startViewTransition");
optInStartTransition(() => setStateImpl(newState));
await renderPromise;
console.log("renderPromise resolved");
});
transition.finished.finally(() => {
console.log("transition finished, resetting");
setRenderDfd(undefined);

@@ -522,2 +555,3 @@ setTransition(undefined);

if (renderDfd && pendingState && state.location.key === pendingState.location.key) {
console.log("resolving renderDfd");
renderDfd.resolve();

@@ -530,2 +564,3 @@ }

if (!vtContext.isTransitioning && interruption) {
console.log("processing interruption with setPendingState");
setPendingState(interruption.state);

@@ -569,2 +604,6 @@ setVtContext({

}), [router, navigator, basename]);
let routerFuture = React.useMemo(() => ({
v7_relativeSplatPath: router.future.v7_relativeSplatPath
}), [router.future.v7_relativeSplatPath]);
React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future, router.future), [future, router.future]);
// The fragment and {null} here are important! We need them to keep React 18's

@@ -589,6 +628,4 @@ // useId happy when we are server-rendering since we may have a <script> here

navigator: navigator,
future: {
v7_relativeSplatPath: router.future.v7_relativeSplatPath
}
}, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {
future: routerFuture
}, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(MemoizedDataRoutes, {
routes: router.routes,

@@ -599,2 +636,4 @@ future: router.future,

}
// Memoize to avoid re-renders when updating `ViewTransitionContext`
const MemoizedDataRoutes = /*#__PURE__*/React.memo(DataRoutes);
function DataRoutes(_ref3) {

@@ -637,2 +676,3 @@ let {

React.useLayoutEffect(() => history.listen(setState), [history, setState]);
React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);
return /*#__PURE__*/React.createElement(Router, {

@@ -677,2 +717,3 @@ basename: basename,

React.useLayoutEffect(() => history.listen(setState), [history, setState]);
React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);
return /*#__PURE__*/React.createElement(Router, {

@@ -711,2 +752,3 @@ basename: basename,

React.useLayoutEffect(() => history.listen(setState), [history, setState]);
React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);
return /*#__PURE__*/React.createElement(Router, {

@@ -739,3 +781,3 @@ basename: basename,

preventScrollReset,
unstable_viewTransition
viewTransition
} = _ref7,

@@ -780,3 +822,3 @@ rest = _objectWithoutPropertiesLoose(_ref7, _excluded);

relative,
unstable_viewTransition
viewTransition
});

@@ -814,3 +856,3 @@ function handleClick(event) {

to,
unstable_viewTransition,
viewTransition,
children

@@ -831,3 +873,3 @@ } = _ref8,

// eslint-disable-next-line react-hooks/rules-of-hooks
useViewTransitionState(path) && unstable_viewTransition === true;
useViewTransitionState(path) && viewTransition === true;
let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;

@@ -876,3 +918,3 @@ let locationPathname = location.pathname;

to: to,
unstable_viewTransition: unstable_viewTransition
viewTransition: viewTransition
}), typeof children === "function" ? children(renderProps) : children);

@@ -901,3 +943,3 @@ });

preventScrollReset,
unstable_viewTransition
viewTransition
} = _ref9,

@@ -924,3 +966,3 @@ props = _objectWithoutPropertiesLoose(_ref9, _excluded3);

preventScrollReset,
unstable_viewTransition
viewTransition
});

@@ -976,3 +1018,3 @@ };

function getDataRouterConsoleError(hookName) {
return hookName + " must be used within a data router. See https://reactrouter.com/routers/picking-a-router.";
return hookName + " must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.";
}

@@ -1002,3 +1044,3 @@ function useDataRouterContext(hookName) {

relative,
unstable_viewTransition
viewTransition
} = _temp === void 0 ? {} : _temp;

@@ -1021,6 +1063,6 @@ let navigate = useNavigate();

relative,
unstable_viewTransition
viewTransition
});
}
}, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, unstable_viewTransition]);
}, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, viewTransition]);
}

@@ -1032,3 +1074,3 @@ /**

function useSearchParams(defaultInit) {
process.env.NODE_ENV !== "production" ? UNSAFE_warning(typeof URLSearchParams !== "undefined", "You cannot use the `useSearchParams` hook in a browser that does not " + "support the URLSearchParams API. If you need to support Internet " + "Explorer 11, we recommend you load a polyfill such as " + "https://github.com/ungap/url-search-params\n\n" + "If you're unsure how to load polyfills, we recommend you check out " + "https://polyfill.io/v3/ which provides some recommendations about how " + "to load polyfills only for users that need them, instead of for every " + "user.") : void 0;
process.env.NODE_ENV !== "production" ? UNSAFE_warning(typeof URLSearchParams !== "undefined", "You cannot use the `useSearchParams` hook in a browser that does not " + "support the URLSearchParams API. If you need to support Internet " + "Explorer 11, we recommend you load a polyfill such as " + "https://github.com/ungap/url-search-params.") : void 0;
let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));

@@ -1089,3 +1131,3 @@ let hasSetSearchParamsRef = React.useRef(false);

formEncType: options.encType || encType,
unstable_flushSync: options.unstable_flushSync
flushSync: options.flushSync
});

@@ -1102,4 +1144,4 @@ } else {

fromRouteId: currentRouteId,
unstable_flushSync: options.unstable_flushSync,
unstable_viewTransition: options.unstable_viewTransition
flushSync: options.flushSync,
viewTransition: options.viewTransition
});

@@ -1138,5 +1180,9 @@ }

let params = new URLSearchParams(path.search);
if (params.has("index") && params.get("index") === "") {
let indexValues = params.getAll("index");
let hasNakedIndexParam = indexValues.some(v => v === "");
if (hasNakedIndexParam) {
params.delete("index");
path.search = params.toString() ? "?" + params.toString() : "";
indexValues.filter(v => v).forEach(v => params.append("index", v));
let qs = params.toString();
path.search = qs ? "?" + qs : "";
}

@@ -1432,3 +1478,3 @@ }

let vtContext = React.useContext(ViewTransitionContext);
!(vtContext != null) ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, "`unstable_useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. " + "Did you accidentally import `RouterProvider` from `react-router`?") : UNSAFE_invariant(false) : void 0;
!(vtContext != null) ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, "`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. " + "Did you accidentally import `RouterProvider` from `react-router`?") : UNSAFE_invariant(false) : void 0;
let {

@@ -1449,7 +1495,7 @@ basename

//
// <NavLink to="/details/1" unstable_viewTransition>
// <NavLink to="/details/1" viewTransition>
//
// If you click the breadcrumb back to the list view:
//
// <NavLink to="/list" unstable_viewTransition>
// <NavLink to="/list" viewTransition>
//

@@ -1524,3 +1570,3 @@ // We should apply the transition because it's indicated as active going

hash: locationProp.hash || "",
state: locationProp.state || null,
state: locationProp.state != null ? locationProp.state : null,
key: locationProp.key || "default"

@@ -1534,2 +1580,6 @@ };

let href = typeof to === "string" ? to : createPath$1(to);
// Treating this as a full URL will strip any trailing spaces so we need to
// pre-encode them since they might be part of a matching splat param from
// an ancestor route
href = href.replace(/ $/, "%20");
let encoded = ABSOLUTE_URL_REGEX.test(href) ? new URL(href) : new URL(href, "http://localhost");

@@ -1536,0 +1586,0 @@ return {

/**
* React Router DOM v5 Compat v0.0.0-experimental-d90c8fb3
* React Router DOM v5 Compat v0.0.0-experimental-db3389095
*

@@ -4,0 +4,0 @@ * Copyright (c) Remix Software Inc.

@@ -43,3 +43,6 @@ import type { FormEncType, HTMLFormMethod, RelativeRoutingType } from "@remix-run/router";

export type SubmitTarget = HTMLFormElement | HTMLButtonElement | HTMLInputElement | FormData | URLSearchParams | JsonValue | null;
export interface SubmitOptions {
/**
* Submit options shared by both navigations and fetchers
*/
interface SharedSubmitOptions {
/**

@@ -61,10 +64,27 @@ * The HTTP method used to submit the form. Overrides `<form method>`.

/**
* Indicate a specific fetcherKey to use when using navigate=false
* Determines whether the form action is relative to the route hierarchy or
* the pathname. Use this if you want to opt out of navigating the route
* hierarchy and want to instead route based on /-delimited URL segments
*/
fetcherKey?: string;
relative?: RelativeRoutingType;
/**
* navigate=false will use a fetcher instead of a navigation
* In browser-based environments, prevent resetting scroll after this
* navigation when using the <ScrollRestoration> component
*/
navigate?: boolean;
preventScrollReset?: boolean;
/**
* Enable flushSync for this submission's state updates
*/
flushSync?: boolean;
}
/**
* Submit options available to fetchers
*/
export interface FetcherSubmitOptions extends SharedSubmitOptions {
}
/**
* Submit options available to navigations
*/
export interface SubmitOptions extends FetcherSubmitOptions {
/**
* Set `true` to replace the current entry in the browser's history stack

@@ -80,20 +100,13 @@ * instead of creating a new one (i.e. stay on "the same page"). Defaults

/**
* Determines whether the form action is relative to the route hierarchy or
* the pathname. Use this if you want to opt out of navigating the route
* hierarchy and want to instead route based on /-delimited URL segments
* Indicate a specific fetcherKey to use when using navigate=false
*/
relative?: RelativeRoutingType;
fetcherKey?: string;
/**
* In browser-based environments, prevent resetting scroll after this
* navigation when using the <ScrollRestoration> component
* navigate=false will use a fetcher instead of a navigation
*/
preventScrollReset?: boolean;
navigate?: boolean;
/**
* Enable flushSync for this navigation's state updates
*/
unstable_flushSync?: boolean;
/**
* Enable view transitions on this submission navigation
*/
unstable_viewTransition?: boolean;
viewTransition?: boolean;
}

@@ -100,0 +113,0 @@ export declare function getFormSubmissionInfo(target: SubmitTarget, basename: string): {

@@ -6,10 +6,11 @@ /**

import * as React from "react";
import type { FutureConfig, Location, NavigateOptions, RelativeRoutingType, RouteObject, RouterProviderProps, To } from "react-router";
import type { FutureConfig, Location, NavigateOptions, RelativeRoutingType, RouteObject, RouterProviderProps, To, DataStrategyFunction, PatchRoutesOnNavigationFunction } from "react-router";
import type { Fetcher, FormEncType, FormMethod, FutureConfig as RouterFutureConfig, GetScrollRestorationKeyFunction, History, HTMLFormMethod, HydrationState, Router as RemixRouter, V7_FormMethod, BlockerFunction } from "@remix-run/router";
import type { SubmitOptions, ParamKeyValuePair, URLSearchParamsInit, SubmitTarget } from "./dom";
import { UNSAFE_ErrorResponseImpl as ErrorResponseImpl } from "@remix-run/router";
import type { SubmitOptions, ParamKeyValuePair, URLSearchParamsInit, SubmitTarget, FetcherSubmitOptions } from "./dom";
import { createSearchParams } from "./dom";
export type { FormEncType, FormMethod, GetScrollRestorationKeyFunction, ParamKeyValuePair, SubmitOptions, URLSearchParamsInit, V7_FormMethod, };
export { createSearchParams };
export type { ActionFunction, ActionFunctionArgs, AwaitProps, Blocker, BlockerFunction, DataRouteMatch, DataRouteObject, ErrorResponse, Fetcher, FutureConfig, Hash, IndexRouteObject, IndexRouteProps, JsonFunction, LazyRouteFunction, LayoutRouteProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, Params, ParamParseKey, Path, PathMatch, Pathname, PathParam, PathPattern, PathRouteProps, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, To, UIMatch, } from "react-router";
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, isRouteErrorResponse, generatePath, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, } from "react-router";
export { createSearchParams, ErrorResponseImpl as UNSAFE_ErrorResponseImpl };
export type { ActionFunction, ActionFunctionArgs, AwaitProps, Blocker, BlockerFunction, DataRouteMatch, DataRouteObject, DataStrategyFunction, DataStrategyFunctionArgs, DataStrategyMatch, DataStrategyResult, ErrorResponse, Fetcher, FutureConfig, Hash, IndexRouteObject, IndexRouteProps, JsonFunction, LazyRouteFunction, LayoutRouteProps, LoaderFunction, LoaderFunctionArgs, Location, MemoryRouterProps, NavigateFunction, NavigateOptions, NavigateProps, Navigation, Navigator, NonIndexRouteObject, OutletProps, Params, ParamParseKey, PatchRoutesOnNavigationFunction, PatchRoutesOnNavigationFunctionArgs, Path, PathMatch, Pathname, PathParam, PathPattern, PathRouteProps, RedirectFunction, RelativeRoutingType, RouteMatch, RouteObject, RouteProps, RouterProps, RouterProviderProps, RoutesProps, Search, ShouldRevalidateFunction, ShouldRevalidateFunctionArgs, To, UIMatch, } from "react-router";
export { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, isRouteErrorResponse, generatePath, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, } from "react-router";
/** @internal */

@@ -19,2 +20,3 @@ export { UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_NavigationContext, UNSAFE_LocationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, } from "react-router";

var __staticRouterHydrationData: HydrationState | undefined;
var __reactRouterVersion: string;
interface Document {

@@ -28,2 +30,4 @@ startViewTransition(cb: () => Promise<void> | void): ViewTransition;

hydrationData?: HydrationState;
dataStrategy?: DataStrategyFunction;
patchRoutesOnNavigation?: PatchRoutesOnNavigationFunction;
window?: Window;

@@ -101,3 +105,3 @@ }

to: To;
unstable_viewTransition?: boolean;
viewTransition?: boolean;
}

@@ -108,3 +112,3 @@ /**

export declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
type NavLinkRenderProps = {
export type NavLinkRenderProps = {
isActive: boolean;

@@ -125,3 +129,6 @@ isPending: boolean;

export declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
export interface FetcherFormProps extends React.FormHTMLAttributes<HTMLFormElement> {
/**
* Form props shared by navigations and fetchers
*/
interface SharedFormProps extends React.FormHTMLAttributes<HTMLFormElement> {
/**

@@ -158,3 +165,11 @@ * The HTTP verb to use when the form is submit. Supports "get", "post",

}
export interface FormProps extends FetcherFormProps {
/**
* Form props available to fetchers
*/
export interface FetcherFormProps extends SharedFormProps {
}
/**
* Form props available to navigations
*/
export interface FormProps extends SharedFormProps {
/**

@@ -185,3 +200,3 @@ * Indicate a specific fetcherKey to use when using navigate=false

*/
unstable_viewTransition?: boolean;
viewTransition?: boolean;
}

@@ -212,3 +227,3 @@ /**

*/
export declare function useLinkClickHandler<E extends Element = HTMLAnchorElement>(to: To, { target, replace: replaceProp, state, preventScrollReset, relative, unstable_viewTransition, }?: {
export declare function useLinkClickHandler<E extends Element = HTMLAnchorElement>(to: To, { target, replace: replaceProp, state, preventScrollReset, relative, viewTransition, }?: {
target?: React.HTMLAttributeAnchorTarget;

@@ -219,3 +234,3 @@ replace?: boolean;

relative?: RelativeRoutingType;
unstable_viewTransition?: boolean;
viewTransition?: boolean;
}): (event: React.MouseEvent<E, MouseEvent>) => void;

@@ -252,3 +267,3 @@ /**

export interface FetcherSubmitFunction {
(target: SubmitTarget, options?: Omit<SubmitOptions, "replace" | "state">): void;
(target: SubmitTarget, options?: FetcherSubmitOptions): void;
}

@@ -267,3 +282,3 @@ /**

load: (href: string, opts?: {
unstable_flushSync?: boolean;
flushSync?: boolean;
}) => void;

@@ -328,2 +343,2 @@ };

}): boolean;
export { useViewTransitionState as unstable_useViewTransitionState };
export { useViewTransitionState as useViewTransitionState };
/**
* React Router DOM v5 Compat v0.0.0-experimental-d90c8fb3
* React Router DOM v5 Compat v0.0.0-experimental-db3389095
*

@@ -11,3 +11,3 @@ * Copyright (c) Remix Software Inc.

*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("react-router"),require("@remix-run/router"),require("history"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","react-router","@remix-run/router","history","react-router-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouterDOMv5Compat={},e.React,e.ReactDOM,e.ReactRouter,e.RemixRouter,e.HistoryLibrary,e.ReactRouterDOM)}(this,(function(e,t,n,r,o,a,i){"use strict";function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=u(t),c=u(n);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function f(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}const d="get",m="application/x-www-form-urlencoded";function p(e){return null!=e&&"string"==typeof e.tagName}function h(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}let b=null;const v=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function y(e){return null==e||v.has(e)?e:null}function g(e,t){let n,r,a,i,u;if(p(s=e)&&"form"===s.tagName.toLowerCase()){let u=e.getAttribute("action");r=u?o.stripBasename(u,t):null,n=e.getAttribute("method")||d,a=y(e.getAttribute("enctype"))||m,i=new FormData(e)}else if(function(e){return p(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return p(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let u=e.form;if(null==u)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||u.getAttribute("action");if(r=s?o.stripBasename(s,t):null,n=e.getAttribute("formmethod")||u.getAttribute("method")||d,a=y(e.getAttribute("formenctype"))||y(u.getAttribute("enctype"))||m,i=new FormData(u,e),!function(){if(null===b)try{new FormData(document.createElement("form"),0),b=!1}catch(e){b=!0}return b}()){let{name:t,type:n,value:r}=e;if("image"===n){let e=t?t+".":"";i.append(e+"x","0"),i.append(e+"y","0")}else t&&i.append(t,r)}}else{if(p(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=d,r=null,a=m,u=e}var s;return i&&"text/plain"===a&&(u=i,i=void 0),{action:r,method:n.toLowerCase(),encType:a,formData:i,body:u}}const w=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],R=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],S=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","unstable_viewTransition"];function E(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=l({},t,{errors:P(t.errors)})),t}function P(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)n[e]=new o.UNSAFE_ErrorResponseImpl(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let o=new t(r.message);o.stack="",n[e]=o}catch(e){}}if(null==n[e]){let t=new Error(r.message);t.stack="",n[e]=t}}else n[e]=r;return n}const _=s.createContext({isTransitioning:!1}),O=s.createContext(new Map),C=s.startTransition,L=c.flushSync,j=s.useId;function x(e){L?L(e):e()}class A{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}}function N(e){let{routes:t,future:n,state:o}=e;return r.UNSAFE_useRoutesImpl(t,void 0,o,n)}const T="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,F=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,U=s.forwardRef((function(e,t){let n,{onClick:a,relative:i,reloadDocument:u,replace:c,state:d,target:m,to:p,preventScrollReset:h,unstable_viewTransition:b}=e,v=f(e,w),{basename:y}=s.useContext(r.UNSAFE_NavigationContext),g=!1;if("string"==typeof p&&F.test(p)&&(n=p,T))try{let e=new URL(window.location.href),t=p.startsWith("//")?new URL(e.protocol+p):new URL(p),n=o.stripBasename(t.pathname,y);t.origin===e.origin&&null!=n?p=n+t.search+t.hash:g=!0}catch(e){}let R=r.useHref(p,{relative:i}),S=I(p,{replace:c,state:d,target:m,preventScrollReset:h,relative:i,unstable_viewTransition:b});return s.createElement("a",l({},v,{href:n||R,onClick:g||u?a:function(e){a&&a(e),e.defaultPrevented||S(e)},ref:t,target:m}))})),D=s.forwardRef((function(e,t){let{"aria-current":n="page",caseSensitive:a=!1,className:i="",end:u=!1,style:c,to:d,unstable_viewTransition:m,children:p}=e,h=f(e,R),b=r.useResolvedPath(d,{relative:h.relative}),v=r.useLocation(),y=s.useContext(r.UNSAFE_DataRouterStateContext),{navigator:g,basename:w}=s.useContext(r.UNSAFE_NavigationContext),S=null!=y&&function(e,t){void 0===t&&(t={});let n=s.useContext(_);null==n&&o.UNSAFE_invariant(!1);let{basename:a}=B(M.useViewTransitionState),i=r.useResolvedPath(e,{relative:t.relative});if(!n.isTransitioning)return!1;let u=o.stripBasename(n.currentLocation.pathname,a)||n.currentLocation.pathname,c=o.stripBasename(n.nextLocation.pathname,a)||n.nextLocation.pathname;return null!=o.matchPath(i.pathname,c)||null!=o.matchPath(i.pathname,u)}(b)&&!0===m,E=g.encodeLocation?g.encodeLocation(b).pathname:b.pathname,P=v.pathname,O=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;a||(P=P.toLowerCase(),O=O?O.toLowerCase():null,E=E.toLowerCase()),O&&w&&(O=o.stripBasename(O,w)||O);const C="/"!==E&&E.endsWith("/")?E.length-1:E.length;let L,j=P===E||!u&&P.startsWith(E)&&"/"===P.charAt(C),x=null!=O&&(O===E||!u&&O.startsWith(E)&&"/"===O.charAt(E.length)),A={isActive:j,isPending:x,isTransitioning:S},N=j?n:void 0;L="function"==typeof i?i(A):[i,j?"active":null,x?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let T="function"==typeof c?c(A):c;return s.createElement(U,l({},h,{"aria-current":N,className:L,ref:t,style:T,to:d,unstable_viewTransition:m}),"function"==typeof p?p(A):p)})),k=s.forwardRef(((e,t)=>{let{fetcherKey:n,navigate:r,reloadDocument:o,replace:a,state:i,method:u=d,action:c,onSubmit:m,relative:p,preventScrollReset:h,unstable_viewTransition:b}=e,v=f(e,S),y=Y(),g=q(c,{relative:p}),w="get"===u.toLowerCase()?"get":"post";return s.createElement("form",l({ref:t,method:w,action:g,onSubmit:o?m:e=>{if(m&&m(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,o=(null==t?void 0:t.getAttribute("formmethod"))||u;y(t||e.currentTarget,{fetcherKey:n,method:o,navigate:r,replace:a,state:i,relative:p,preventScrollReset:h,unstable_viewTransition:b})}},v))}));var M=function(e){return e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState",e}(M||{}),H=function(e){return e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration",e}(H||{});function B(e){let t=s.useContext(r.UNSAFE_DataRouterContext);return t||o.UNSAFE_invariant(!1),t}function K(e){let t=s.useContext(r.UNSAFE_DataRouterStateContext);return t||o.UNSAFE_invariant(!1),t}function I(e,t){let{target:n,replace:o,state:a,preventScrollReset:i,relative:u,unstable_viewTransition:c}=void 0===t?{}:t,l=r.useNavigate(),f=r.useLocation(),d=r.useResolvedPath(e,{relative:u});return s.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,n)){t.preventDefault();let n=void 0!==o?o:r.createPath(f)===r.createPath(d);l(e,{replace:n,state:a,preventScrollReset:i,relative:u,unstable_viewTransition:c})}}),[f,l,d,o,a,n,e,i,u,c])}let V=0,z=()=>"__"+String(++V)+"__";function Y(){let{router:e}=B(M.UseSubmit),{basename:t}=s.useContext(r.UNSAFE_NavigationContext),n=r.UNSAFE_useRouteId();return s.useCallback((function(r,o){void 0===o&&(o={}),function(){if("undefined"==typeof document)throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}();let{action:a,method:i,encType:u,formData:s,body:c}=g(r,t);if(!1===o.navigate){let t=o.fetcherKey||z();e.fetch(t,n,o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,unstable_flushSync:o.unstable_flushSync})}else e.navigate(o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,replace:o.replace,state:o.state,fromRouteId:n,unstable_flushSync:o.unstable_flushSync,unstable_viewTransition:o.unstable_viewTransition})}),[e,t,n])}function q(e,t){let{relative:n}=void 0===t?{}:t,{basename:a}=s.useContext(r.UNSAFE_NavigationContext),i=s.useContext(r.UNSAFE_RouteContext);i||o.UNSAFE_invariant(!1);let[u]=i.matches.slice(-1),c=l({},r.useResolvedPath(e||".",{relative:n})),f=r.useLocation();if(null==e){c.search=f.search;let e=new URLSearchParams(c.search);e.has("index")&&""===e.get("index")&&(e.delete("index"),c.search=e.toString()?"?"+e.toString():"")}return e&&"."!==e||!u.route.index||(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),"/"!==a&&(c.pathname="/"===c.pathname?a:o.joinPaths([a,c.pathname])),r.createPath(c)}const J="react-router-scroll-positions";let W={};function G(e){let{getKey:t,storageKey:n}=void 0===e?{}:e,{router:a}=B(M.UseScrollRestoration),{restoreScrollPosition:i,preventScrollReset:u}=K(H.UseScrollRestoration),{basename:c}=s.useContext(r.UNSAFE_NavigationContext),f=r.useLocation(),d=r.useMatches(),m=r.useNavigation();s.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,n])}(s.useCallback((()=>{if("idle"===m.state){let e=(t?t(f,d):null)||f.key;W[e]=window.scrollY}try{sessionStorage.setItem(n||J,JSON.stringify(W))}catch(e){}window.history.scrollRestoration="auto"}),[n,t,m.state,f,d])),"undefined"!=typeof document&&(s.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(n||J);e&&(W=JSON.parse(e))}catch(e){}}),[n]),s.useLayoutEffect((()=>{let e=t&&"/"!==c?(e,n)=>t(l({},e,{pathname:o.stripBasename(e.pathname,c)||e.pathname}),n):t,n=null==a?void 0:a.enableScrollRestoration(W,(()=>window.scrollY),e);return()=>n&&n()}),[a,c,t]),s.useLayoutEffect((()=>{if(!1!==i)if("number"!=typeof i){if(f.hash){let e=document.getElementById(decodeURIComponent(f.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==u&&window.scrollTo(0,0)}else window.scrollTo(0,i)}),[f,i,u]))}const Q=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?s.useLayoutEffect:()=>{};const X=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;Object.defineProperty(e,"AbortedDeferredError",{enumerable:!0,get:function(){return r.AbortedDeferredError}}),Object.defineProperty(e,"Await",{enumerable:!0,get:function(){return r.Await}}),Object.defineProperty(e,"MemoryRouter",{enumerable:!0,get:function(){return r.MemoryRouter}}),Object.defineProperty(e,"Navigate",{enumerable:!0,get:function(){return r.Navigate}}),Object.defineProperty(e,"NavigationType",{enumerable:!0,get:function(){return r.NavigationType}}),Object.defineProperty(e,"Outlet",{enumerable:!0,get:function(){return r.Outlet}}),Object.defineProperty(e,"Route",{enumerable:!0,get:function(){return r.Route}}),Object.defineProperty(e,"Router",{enumerable:!0,get:function(){return r.Router}}),Object.defineProperty(e,"Routes",{enumerable:!0,get:function(){return r.Routes}}),Object.defineProperty(e,"UNSAFE_DataRouterContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterContext}}),Object.defineProperty(e,"UNSAFE_DataRouterStateContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterStateContext}}),Object.defineProperty(e,"UNSAFE_LocationContext",{enumerable:!0,get:function(){return r.UNSAFE_LocationContext}}),Object.defineProperty(e,"UNSAFE_NavigationContext",{enumerable:!0,get:function(){return r.UNSAFE_NavigationContext}}),Object.defineProperty(e,"UNSAFE_RouteContext",{enumerable:!0,get:function(){return r.UNSAFE_RouteContext}}),Object.defineProperty(e,"UNSAFE_useRouteId",{enumerable:!0,get:function(){return r.UNSAFE_useRouteId}}),Object.defineProperty(e,"createMemoryRouter",{enumerable:!0,get:function(){return r.createMemoryRouter}}),Object.defineProperty(e,"createPath",{enumerable:!0,get:function(){return r.createPath}}),Object.defineProperty(e,"createRoutesFromChildren",{enumerable:!0,get:function(){return r.createRoutesFromChildren}}),Object.defineProperty(e,"createRoutesFromElements",{enumerable:!0,get:function(){return r.createRoutesFromElements}}),Object.defineProperty(e,"defer",{enumerable:!0,get:function(){return r.defer}}),Object.defineProperty(e,"generatePath",{enumerable:!0,get:function(){return r.generatePath}}),Object.defineProperty(e,"isRouteErrorResponse",{enumerable:!0,get:function(){return r.isRouteErrorResponse}}),Object.defineProperty(e,"json",{enumerable:!0,get:function(){return r.json}}),Object.defineProperty(e,"matchPath",{enumerable:!0,get:function(){return r.matchPath}}),Object.defineProperty(e,"matchRoutes",{enumerable:!0,get:function(){return r.matchRoutes}}),Object.defineProperty(e,"parsePath",{enumerable:!0,get:function(){return r.parsePath}}),Object.defineProperty(e,"redirect",{enumerable:!0,get:function(){return r.redirect}}),Object.defineProperty(e,"redirectDocument",{enumerable:!0,get:function(){return r.redirectDocument}}),Object.defineProperty(e,"renderMatches",{enumerable:!0,get:function(){return r.renderMatches}}),Object.defineProperty(e,"resolvePath",{enumerable:!0,get:function(){return r.resolvePath}}),Object.defineProperty(e,"useActionData",{enumerable:!0,get:function(){return r.useActionData}}),Object.defineProperty(e,"useAsyncError",{enumerable:!0,get:function(){return r.useAsyncError}}),Object.defineProperty(e,"useAsyncValue",{enumerable:!0,get:function(){return r.useAsyncValue}}),Object.defineProperty(e,"useBlocker",{enumerable:!0,get:function(){return r.useBlocker}}),Object.defineProperty(e,"useHref",{enumerable:!0,get:function(){return r.useHref}}),Object.defineProperty(e,"useInRouterContext",{enumerable:!0,get:function(){return r.useInRouterContext}}),Object.defineProperty(e,"useLoaderData",{enumerable:!0,get:function(){return r.useLoaderData}}),Object.defineProperty(e,"useLocation",{enumerable:!0,get:function(){return r.useLocation}}),Object.defineProperty(e,"useMatch",{enumerable:!0,get:function(){return r.useMatch}}),Object.defineProperty(e,"useMatches",{enumerable:!0,get:function(){return r.useMatches}}),Object.defineProperty(e,"useNavigate",{enumerable:!0,get:function(){return r.useNavigate}}),Object.defineProperty(e,"useNavigation",{enumerable:!0,get:function(){return r.useNavigation}}),Object.defineProperty(e,"useNavigationType",{enumerable:!0,get:function(){return r.useNavigationType}}),Object.defineProperty(e,"useOutlet",{enumerable:!0,get:function(){return r.useOutlet}}),Object.defineProperty(e,"useOutletContext",{enumerable:!0,get:function(){return r.useOutletContext}}),Object.defineProperty(e,"useParams",{enumerable:!0,get:function(){return r.useParams}}),Object.defineProperty(e,"useResolvedPath",{enumerable:!0,get:function(){return r.useResolvedPath}}),Object.defineProperty(e,"useRevalidator",{enumerable:!0,get:function(){return r.useRevalidator}}),Object.defineProperty(e,"useRouteError",{enumerable:!0,get:function(){return r.useRouteError}}),Object.defineProperty(e,"useRouteLoaderData",{enumerable:!0,get:function(){return r.useRouteLoaderData}}),Object.defineProperty(e,"useRoutes",{enumerable:!0,get:function(){return r.useRoutes}}),e.BrowserRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createBrowserHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&C?C((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.CompatRoute=function(e){let{location:t,path:n}=e;return e.exact||(n+="/*"),s.createElement(r.Routes,{location:t},s.createElement(r.Route,{path:n,element:s.createElement(i.Route,e)}))},e.CompatRouter=function(e){let{children:t}=e,n=i.useHistory(),[o,a]=s.useState((()=>({location:n.location,action:n.action})));return Q((()=>{n.listen(((e,t)=>a({location:e,action:t})))}),[n]),s.createElement(r.Router,{navigationType:o.action,location:o.location,navigator:n},s.createElement(r.Routes,null,s.createElement(r.Route,{path:"*",element:t})))},e.Form=k,e.HashRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createHashHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&C?C((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.Link=U,e.NavLink=D,e.RouterProvider=function(e){let{fallbackElement:t,router:n,future:o}=e,[a,i]=s.useState(n.state),[u,c]=s.useState(),[l,f]=s.useState({isTransitioning:!1}),[d,m]=s.useState(),[p,h]=s.useState(),[b,v]=s.useState(),y=s.useRef(new Map),{v7_startTransition:g}=o||{},w=s.useCallback((e=>{g?function(e){C?C(e):e()}(e):e()}),[g]),R=s.useCallback(((e,t)=>{let{deletedFetchers:r,unstable_flushSync:o,unstable_viewTransitionOpts:a}=t;r.forEach((e=>y.current.delete(e))),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}));let u=null==n.window||"function"!=typeof n.window.document.startViewTransition;if(a&&!u){if(o){x((()=>{p&&(d&&d.resolve(),p.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:a.currentLocation,nextLocation:a.nextLocation})}));let t=n.window.document.startViewTransition((()=>{x((()=>i(e)))}));return t.finished.finally((()=>{x((()=>{m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})}))})),void x((()=>h(t)))}p?(d&&d.resolve(),p.skipTransition(),v({state:e,currentLocation:a.currentLocation,nextLocation:a.nextLocation})):(c(e),f({isTransitioning:!0,flushSync:!1,currentLocation:a.currentLocation,nextLocation:a.nextLocation}))}else o?x((()=>i(e))):w((()=>i(e)))}),[n.window,p,d,y,w]);s.useLayoutEffect((()=>n.subscribe(R)),[n,R]),s.useEffect((()=>{l.isTransitioning&&!l.flushSync&&m(new A)}),[l]),s.useEffect((()=>{if(d&&u&&n.window){let e=u,t=d.promise,r=n.window.document.startViewTransition((async()=>{w((()=>i(e))),await t}));r.finished.finally((()=>{m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})})),h(r)}}),[w,u,d,n.window]),s.useEffect((()=>{d&&u&&a.location.key===u.location.key&&d.resolve()}),[d,p,a.location,u]),s.useEffect((()=>{!l.isTransitioning&&b&&(c(b.state),f({isTransitioning:!0,flushSync:!1,currentLocation:b.currentLocation,nextLocation:b.nextLocation}),v(void 0))}),[l.isTransitioning,b]),s.useEffect((()=>{}),[]);let S=s.useMemo((()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:e=>n.navigate(e),push:(e,t,r)=>n.navigate(e,{state:t,preventScrollReset:null==r?void 0:r.preventScrollReset}),replace:(e,t,r)=>n.navigate(e,{replace:!0,state:t,preventScrollReset:null==r?void 0:r.preventScrollReset})})),[n]),E=n.basename||"/",P=s.useMemo((()=>({router:n,navigator:S,static:!1,basename:E})),[n,S,E]);return s.createElement(s.Fragment,null,s.createElement(r.UNSAFE_DataRouterContext.Provider,{value:P},s.createElement(r.UNSAFE_DataRouterStateContext.Provider,{value:a},s.createElement(O.Provider,{value:y.current},s.createElement(_.Provider,{value:l},s.createElement(r.Router,{basename:E,location:a.location,navigationType:a.historyAction,navigator:S,future:{v7_relativeSplatPath:n.future.v7_relativeSplatPath}},a.initialized||n.future.v7_partialHydration?s.createElement(N,{routes:n.routes,future:n.future,state:a}):t))))),null)},e.ScrollRestoration=function(e){let{getKey:t,storageKey:n}=e;return G({getKey:t,storageKey:n}),null},e.StaticRouter=function(e){let{basename:t,children:n,location:o="/"}=e;"string"==typeof o&&(o=a.parsePath(o));let i=a.Action.Pop,u={pathname:o.pathname||"/",search:o.search||"",hash:o.hash||"",state:o.state||null,key:o.key||"default"},c={createHref:e=>"string"==typeof e?e:a.createPath(e),encodeLocation(e){let t="string"==typeof e?e:a.createPath(e),n=X.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:n.pathname,search:n.search,hash:n.hash}},push(e){throw new Error("You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+")` somewhere in your app.")},replace(e){throw new Error("You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+", { replace: true })` somewhere in your app.")},go(e){throw new Error("You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+e+")` somewhere in your app.")},back(){throw new Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw new Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}};return s.createElement(r.Router,{basename:t,children:n,location:u,navigationType:i,navigator:c,static:!0})},e.UNSAFE_useScrollRestoration=G,e.createBrowserRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createBrowserHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,window:null==t?void 0:t.window}).initialize()},e.createHashRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createHashHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,window:null==t?void 0:t.window}).initialize()},e.createSearchParams=h,e.unstable_HistoryRouter=function(e){let{basename:t,children:n,future:o,history:a}=e,[i,u]=s.useState({action:a.action,location:a.location}),{v7_startTransition:c}=o||{},l=s.useCallback((e=>{c&&C?C((()=>u(e))):u(e)}),[u,c]);return s.useLayoutEffect((()=>a.listen(l)),[a,l]),s.createElement(r.Router,{basename:t,children:n,location:i.location,navigationType:i.action,navigator:a,future:o})},e.unstable_usePrompt=function(e){let{when:t,message:n}=e,o=r.useBlocker(t);s.useEffect((()=>{if("blocked"===o.state){window.confirm(n)?setTimeout(o.proceed,0):o.reset()}}),[o,n]),s.useEffect((()=>{"blocked"!==o.state||t||o.reset()}),[o,t])},e.useBeforeUnload=function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}}),[e,n])},e.useFetcher=function(e){var t;let{key:n}=void 0===e?{}:e,{router:a}=B(M.UseFetcher),i=K(H.UseFetcher),u=s.useContext(O),c=s.useContext(r.UNSAFE_RouteContext),f=null==(t=c.matches[c.matches.length-1])?void 0:t.route.id;u||o.UNSAFE_invariant(!1),c||o.UNSAFE_invariant(!1),null==f&&o.UNSAFE_invariant(!1);let d=j?j():"",[m,p]=s.useState(n||d);n&&n!==m?p(n):m||p(z()),s.useEffect((()=>(a.getFetcher(m),()=>{a.deleteFetcher(m)})),[a,m]);let h=s.useCallback(((e,t)=>{f||o.UNSAFE_invariant(!1),a.fetch(m,f,e,t)}),[m,f,a]),b=Y(),v=s.useCallback(((e,t)=>{b(e,l({},t,{navigate:!1,fetcherKey:m}))}),[m,b]),y=s.useMemo((()=>s.forwardRef(((e,t)=>s.createElement(k,l({},e,{navigate:!1,fetcherKey:m,ref:t}))))),[m]),g=i.fetchers.get(m)||o.IDLE_FETCHER,w=u.get(m);return s.useMemo((()=>l({Form:y,submit:v,load:h},g,{data:w})),[y,v,h,g,w])},e.useFetchers=function(){let e=K(H.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,n]=e;return l({},n,{key:t})}))},e.useFormAction=q,e.useLinkClickHandler=I,e.useSearchParams=function(e){let t=s.useRef(h(e)),n=s.useRef(!1),o=r.useLocation(),a=s.useMemo((()=>function(e,t){let n=h(e);return t&&t.forEach(((e,r)=>{n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}))})),n}(o.search,n.current?null:t.current)),[o.search]),i=r.useNavigate(),u=s.useCallback(((e,t)=>{const r=h("function"==typeof e?e(a):e);n.current=!0,i("?"+r,t)}),[i,a]);return[a,u]},e.useSubmit=Y,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("react-router"),require("@remix-run/router"),require("history"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","react-router","@remix-run/router","history","react-router-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouterDOMv5Compat={},e.React,e.ReactDOM,e.ReactRouter,e.RemixRouter,e.HistoryLibrary,e.ReactRouterDOM)}(this,(function(e,t,n,r,o,a,i){"use strict";function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=u(t),c=u(n);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function f(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}const d="get",m="application/x-www-form-urlencoded";function p(e){return null!=e&&"string"==typeof e.tagName}function h(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}let v=null;const g=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function b(e){return null==e||g.has(e)?e:null}function y(e,t){let n,r,a,i,u;if(p(s=e)&&"form"===s.tagName.toLowerCase()){let u=e.getAttribute("action");r=u?o.stripBasename(u,t):null,n=e.getAttribute("method")||d,a=b(e.getAttribute("enctype"))||m,i=new FormData(e)}else if(function(e){return p(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return p(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let u=e.form;if(null==u)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||u.getAttribute("action");if(r=s?o.stripBasename(s,t):null,n=e.getAttribute("formmethod")||u.getAttribute("method")||d,a=b(e.getAttribute("formenctype"))||b(u.getAttribute("enctype"))||m,i=new FormData(u,e),!function(){if(null===v)try{new FormData(document.createElement("form"),0),v=!1}catch(e){v=!0}return v}()){let{name:t,type:n,value:r}=e;if("image"===n){let e=t?t+".":"";i.append(e+"x","0"),i.append(e+"y","0")}else t&&i.append(t,r)}}else{if(p(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=d,r=null,a=m,u=e}var s;return i&&"text/plain"===a&&(u=i,i=void 0),{action:r,method:n.toLowerCase(),encType:a,formData:i,body:u}}const w=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],R=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],S=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"];try{window.__reactRouterVersion="0"}catch(e){}function E(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=l({},t,{errors:P(t.errors)})),t}function P(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)n[e]=new o.UNSAFE_ErrorResponseImpl(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let o=new t(r.message);o.stack="",n[e]=o}catch(e){}}if(null==n[e]){let t=new Error(r.message);t.stack="",n[e]=t}}else n[e]=r;return n}const O=s.createContext({isTransitioning:!1}),N=s.createContext(new Map),_=s.startTransition,A=c.flushSync,C=s.useId;function T(e){A?A(e):e()}class j{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}}const x=s.memo(L);function L(e){let{routes:t,future:n,state:o}=e;return r.UNSAFE_useRoutesImpl(t,void 0,o,n)}const F="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,U=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,D=s.forwardRef((function(e,t){let n,{onClick:a,relative:i,reloadDocument:u,replace:c,state:d,target:m,to:p,preventScrollReset:h,viewTransition:v}=e,g=f(e,w),{basename:b}=s.useContext(r.UNSAFE_NavigationContext),y=!1;if("string"==typeof p&&U.test(p)&&(n=p,F))try{let e=new URL(window.location.href),t=p.startsWith("//")?new URL(e.protocol+p):new URL(p),n=o.stripBasename(t.pathname,b);t.origin===e.origin&&null!=n?p=n+t.search+t.hash:y=!0}catch(e){}let R=r.useHref(p,{relative:i}),S=K(p,{replace:c,state:d,target:m,preventScrollReset:h,relative:i,viewTransition:v});return s.createElement("a",l({},g,{href:n||R,onClick:y||u?a:function(e){a&&a(e),e.defaultPrevented||S(e)},ref:t,target:m}))})),k=s.forwardRef((function(e,t){let{"aria-current":n="page",caseSensitive:a=!1,className:i="",end:u=!1,style:c,to:d,viewTransition:m,children:p}=e,h=f(e,R),v=r.useResolvedPath(d,{relative:h.relative}),g=r.useLocation(),b=s.useContext(r.UNSAFE_DataRouterStateContext),{navigator:y,basename:w}=s.useContext(r.UNSAFE_NavigationContext),S=null!=b&&function(e,t){void 0===t&&(t={});let n=s.useContext(O);null==n&&o.UNSAFE_invariant(!1);let{basename:a}=V(H.useViewTransitionState),i=r.useResolvedPath(e,{relative:t.relative});if(!n.isTransitioning)return!1;let u=o.stripBasename(n.currentLocation.pathname,a)||n.currentLocation.pathname,c=o.stripBasename(n.nextLocation.pathname,a)||n.nextLocation.pathname;return null!=o.matchPath(i.pathname,c)||null!=o.matchPath(i.pathname,u)}(v)&&!0===m,E=y.encodeLocation?y.encodeLocation(v).pathname:v.pathname,P=g.pathname,N=b&&b.navigation&&b.navigation.location?b.navigation.location.pathname:null;a||(P=P.toLowerCase(),N=N?N.toLowerCase():null,E=E.toLowerCase()),N&&w&&(N=o.stripBasename(N,w)||N);const _="/"!==E&&E.endsWith("/")?E.length-1:E.length;let A,C=P===E||!u&&P.startsWith(E)&&"/"===P.charAt(_),T=null!=N&&(N===E||!u&&N.startsWith(E)&&"/"===N.charAt(E.length)),j={isActive:C,isPending:T,isTransitioning:S},x=C?n:void 0;A="function"==typeof i?i(j):[i,C?"active":null,T?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let L="function"==typeof c?c(j):c;return s.createElement(D,l({},h,{"aria-current":x,className:A,ref:t,style:L,to:d,viewTransition:m}),"function"==typeof p?p(j):p)})),M=s.forwardRef(((e,t)=>{let{fetcherKey:n,navigate:r,reloadDocument:o,replace:a,state:i,method:u=d,action:c,onSubmit:m,relative:p,preventScrollReset:h,viewTransition:v}=e,g=f(e,S),b=Y(),y=q(c,{relative:p}),w="get"===u.toLowerCase()?"get":"post";return s.createElement("form",l({ref:t,method:w,action:y,onSubmit:o?m:e=>{if(m&&m(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,o=(null==t?void 0:t.getAttribute("formmethod"))||u;b(t||e.currentTarget,{fetcherKey:n,method:o,navigate:r,replace:a,state:i,relative:p,preventScrollReset:h,viewTransition:v})}},g))}));var H=function(e){return e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState",e}(H||{}),B=function(e){return e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration",e}(B||{});function V(e){let t=s.useContext(r.UNSAFE_DataRouterContext);return t||o.UNSAFE_invariant(!1),t}function I(e){let t=s.useContext(r.UNSAFE_DataRouterStateContext);return t||o.UNSAFE_invariant(!1),t}function K(e,t){let{target:n,replace:o,state:a,preventScrollReset:i,relative:u,viewTransition:c}=void 0===t?{}:t,l=r.useNavigate(),f=r.useLocation(),d=r.useResolvedPath(e,{relative:u});return s.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,n)){t.preventDefault();let n=void 0!==o?o:r.createPath(f)===r.createPath(d);l(e,{replace:n,state:a,preventScrollReset:i,relative:u,viewTransition:c})}}),[f,l,d,o,a,n,e,i,u,c])}let z=0,W=()=>"__"+String(++z)+"__";function Y(){let{router:e}=V(H.UseSubmit),{basename:t}=s.useContext(r.UNSAFE_NavigationContext),n=r.UNSAFE_useRouteId();return s.useCallback((function(r,o){void 0===o&&(o={}),function(){if("undefined"==typeof document)throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}();let{action:a,method:i,encType:u,formData:s,body:c}=y(r,t);if(!1===o.navigate){let t=o.fetcherKey||W();e.fetch(t,n,o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,flushSync:o.flushSync})}else e.navigate(o.action||a,{preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||i,formEncType:o.encType||u,replace:o.replace,state:o.state,fromRouteId:n,flushSync:o.flushSync,viewTransition:o.viewTransition})}),[e,t,n])}function q(e,t){let{relative:n}=void 0===t?{}:t,{basename:a}=s.useContext(r.UNSAFE_NavigationContext),i=s.useContext(r.UNSAFE_RouteContext);i||o.UNSAFE_invariant(!1);let[u]=i.matches.slice(-1),c=l({},r.useResolvedPath(e||".",{relative:n})),f=r.useLocation();if(null==e){c.search=f.search;let e=new URLSearchParams(c.search),t=e.getAll("index");if(t.some((e=>""===e))){e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let n=e.toString();c.search=n?"?"+n:""}}return e&&"."!==e||!u.route.index||(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),"/"!==a&&(c.pathname="/"===c.pathname?a:o.joinPaths([a,c.pathname])),r.createPath(c)}const J="react-router-scroll-positions";let $={};function G(e){let{getKey:t,storageKey:n}=void 0===e?{}:e,{router:a}=V(H.UseScrollRestoration),{restoreScrollPosition:i,preventScrollReset:u}=I(B.UseScrollRestoration),{basename:c}=s.useContext(r.UNSAFE_NavigationContext),f=r.useLocation(),d=r.useMatches(),m=r.useNavigation();s.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,n])}(s.useCallback((()=>{if("idle"===m.state){let e=(t?t(f,d):null)||f.key;$[e]=window.scrollY}try{sessionStorage.setItem(n||J,JSON.stringify($))}catch(e){}window.history.scrollRestoration="auto"}),[n,t,m.state,f,d])),"undefined"!=typeof document&&(s.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(n||J);e&&($=JSON.parse(e))}catch(e){}}),[n]),s.useLayoutEffect((()=>{let e=t&&"/"!==c?(e,n)=>t(l({},e,{pathname:o.stripBasename(e.pathname,c)||e.pathname}),n):t,n=null==a?void 0:a.enableScrollRestoration($,(()=>window.scrollY),e);return()=>n&&n()}),[a,c,t]),s.useLayoutEffect((()=>{if(!1!==i)if("number"!=typeof i){if(f.hash){let e=document.getElementById(decodeURIComponent(f.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==u&&window.scrollTo(0,0)}else window.scrollTo(0,i)}),[f,i,u]))}const Q=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?s.useLayoutEffect:()=>{};const X=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;Object.defineProperty(e,"AbortedDeferredError",{enumerable:!0,get:function(){return r.AbortedDeferredError}}),Object.defineProperty(e,"Await",{enumerable:!0,get:function(){return r.Await}}),Object.defineProperty(e,"MemoryRouter",{enumerable:!0,get:function(){return r.MemoryRouter}}),Object.defineProperty(e,"Navigate",{enumerable:!0,get:function(){return r.Navigate}}),Object.defineProperty(e,"NavigationType",{enumerable:!0,get:function(){return r.NavigationType}}),Object.defineProperty(e,"Outlet",{enumerable:!0,get:function(){return r.Outlet}}),Object.defineProperty(e,"Route",{enumerable:!0,get:function(){return r.Route}}),Object.defineProperty(e,"Router",{enumerable:!0,get:function(){return r.Router}}),Object.defineProperty(e,"Routes",{enumerable:!0,get:function(){return r.Routes}}),Object.defineProperty(e,"UNSAFE_DataRouterContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterContext}}),Object.defineProperty(e,"UNSAFE_DataRouterStateContext",{enumerable:!0,get:function(){return r.UNSAFE_DataRouterStateContext}}),Object.defineProperty(e,"UNSAFE_LocationContext",{enumerable:!0,get:function(){return r.UNSAFE_LocationContext}}),Object.defineProperty(e,"UNSAFE_NavigationContext",{enumerable:!0,get:function(){return r.UNSAFE_NavigationContext}}),Object.defineProperty(e,"UNSAFE_RouteContext",{enumerable:!0,get:function(){return r.UNSAFE_RouteContext}}),Object.defineProperty(e,"UNSAFE_useRouteId",{enumerable:!0,get:function(){return r.UNSAFE_useRouteId}}),Object.defineProperty(e,"createMemoryRouter",{enumerable:!0,get:function(){return r.createMemoryRouter}}),Object.defineProperty(e,"createPath",{enumerable:!0,get:function(){return r.createPath}}),Object.defineProperty(e,"createRoutesFromChildren",{enumerable:!0,get:function(){return r.createRoutesFromChildren}}),Object.defineProperty(e,"createRoutesFromElements",{enumerable:!0,get:function(){return r.createRoutesFromElements}}),Object.defineProperty(e,"defer",{enumerable:!0,get:function(){return r.defer}}),Object.defineProperty(e,"generatePath",{enumerable:!0,get:function(){return r.generatePath}}),Object.defineProperty(e,"isRouteErrorResponse",{enumerable:!0,get:function(){return r.isRouteErrorResponse}}),Object.defineProperty(e,"json",{enumerable:!0,get:function(){return r.json}}),Object.defineProperty(e,"matchPath",{enumerable:!0,get:function(){return r.matchPath}}),Object.defineProperty(e,"matchRoutes",{enumerable:!0,get:function(){return r.matchRoutes}}),Object.defineProperty(e,"parsePath",{enumerable:!0,get:function(){return r.parsePath}}),Object.defineProperty(e,"redirect",{enumerable:!0,get:function(){return r.redirect}}),Object.defineProperty(e,"redirectDocument",{enumerable:!0,get:function(){return r.redirectDocument}}),Object.defineProperty(e,"renderMatches",{enumerable:!0,get:function(){return r.renderMatches}}),Object.defineProperty(e,"replace",{enumerable:!0,get:function(){return r.replace}}),Object.defineProperty(e,"resolvePath",{enumerable:!0,get:function(){return r.resolvePath}}),Object.defineProperty(e,"useActionData",{enumerable:!0,get:function(){return r.useActionData}}),Object.defineProperty(e,"useAsyncError",{enumerable:!0,get:function(){return r.useAsyncError}}),Object.defineProperty(e,"useAsyncValue",{enumerable:!0,get:function(){return r.useAsyncValue}}),Object.defineProperty(e,"useBlocker",{enumerable:!0,get:function(){return r.useBlocker}}),Object.defineProperty(e,"useHref",{enumerable:!0,get:function(){return r.useHref}}),Object.defineProperty(e,"useInRouterContext",{enumerable:!0,get:function(){return r.useInRouterContext}}),Object.defineProperty(e,"useLoaderData",{enumerable:!0,get:function(){return r.useLoaderData}}),Object.defineProperty(e,"useLocation",{enumerable:!0,get:function(){return r.useLocation}}),Object.defineProperty(e,"useMatch",{enumerable:!0,get:function(){return r.useMatch}}),Object.defineProperty(e,"useMatches",{enumerable:!0,get:function(){return r.useMatches}}),Object.defineProperty(e,"useNavigate",{enumerable:!0,get:function(){return r.useNavigate}}),Object.defineProperty(e,"useNavigation",{enumerable:!0,get:function(){return r.useNavigation}}),Object.defineProperty(e,"useNavigationType",{enumerable:!0,get:function(){return r.useNavigationType}}),Object.defineProperty(e,"useOutlet",{enumerable:!0,get:function(){return r.useOutlet}}),Object.defineProperty(e,"useOutletContext",{enumerable:!0,get:function(){return r.useOutletContext}}),Object.defineProperty(e,"useParams",{enumerable:!0,get:function(){return r.useParams}}),Object.defineProperty(e,"useResolvedPath",{enumerable:!0,get:function(){return r.useResolvedPath}}),Object.defineProperty(e,"useRevalidator",{enumerable:!0,get:function(){return r.useRevalidator}}),Object.defineProperty(e,"useRouteError",{enumerable:!0,get:function(){return r.useRouteError}}),Object.defineProperty(e,"useRouteLoaderData",{enumerable:!0,get:function(){return r.useRouteLoaderData}}),Object.defineProperty(e,"useRoutes",{enumerable:!0,get:function(){return r.useRoutes}}),e.BrowserRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createBrowserHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&_?_((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.useEffect((()=>r.UNSAFE_logV6DeprecationWarnings(a)),[a]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.CompatRoute=function(e){let{location:t,path:n}=e;return e.exact||(n+="/*"),s.createElement(r.Routes,{location:t},s.createElement(r.Route,{path:n,element:s.createElement(i.Route,e)}))},e.CompatRouter=function(e){let{children:t}=e,n=i.useHistory(),[o,a]=s.useState((()=>({location:n.location,action:n.action})));return Q((()=>{n.listen(((e,t)=>a({location:e,action:t})))}),[n]),s.createElement(r.Router,{navigationType:o.action,location:o.location,navigator:n},s.createElement(r.Routes,null,s.createElement(r.Route,{path:"*",element:t})))},e.Form=M,e.HashRouter=function(e){let{basename:t,children:n,future:a,window:i}=e,u=s.useRef();null==u.current&&(u.current=o.createHashHistory({window:i,v5Compat:!0}));let c=u.current,[l,f]=s.useState({action:c.action,location:c.location}),{v7_startTransition:d}=a||{},m=s.useCallback((e=>{d&&_?_((()=>f(e))):f(e)}),[f,d]);return s.useLayoutEffect((()=>c.listen(m)),[c,m]),s.useEffect((()=>r.UNSAFE_logV6DeprecationWarnings(a)),[a]),s.createElement(r.Router,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:c,future:a})},e.Link=D,e.NavLink=k,e.RouterProvider=function(e){let{fallbackElement:t,router:n,future:o}=e,[a,i]=s.useState(n.state),[u,c]=s.useState(),[l,f]=s.useState({isTransitioning:!1}),[d,m]=s.useState(),[p,h]=s.useState(),[v,g]=s.useState(),b=s.useRef(new Map),{v7_startTransition:y}=o||{},w=s.useCallback((e=>{y?function(e){_?_(e):e()}(e):e()}),[y]),R=s.useCallback(((e,t)=>{let{deletedFetchers:r,flushSync:o,viewTransitionOpts:a}=t;console.log("updateState",{navigationState:e.navigation.state,revalidationState:e.revalidation,data:e.loaderData,viewTransitionOpts:a}),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&b.current.set(t,e.data)})),r.forEach((e=>b.current.delete(e)));let u=null==n.window||null==n.window.document||"function"!=typeof n.window.document.startViewTransition;if(a&&!u){if(o){T((()=>{p&&(d&&d.resolve(),p.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:a.currentLocation,nextLocation:a.nextLocation})}));let t=n.window.document.startViewTransition((()=>{T((()=>i(e)))}));return t.finished.finally((()=>{T((()=>{m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})}))})),void T((()=>h(t)))}p?(d&&d.resolve(),p.skipTransition(),console.log("setInterruption - viewTransition enabled and transition in progress"),g({state:e,currentLocation:a.currentLocation,nextLocation:a.nextLocation})):(console.log("setPendingState/setVtContext - beginning a new viewTransition"),c(e),f({isTransitioning:!0,flushSync:!1,currentLocation:a.currentLocation,nextLocation:a.nextLocation}))}else o?T((()=>i(e))):(console.log("setState 1 - no view transition enabled"),w((()=>i(e))))}),[n.window,p,d,b,w]);s.useLayoutEffect((()=>n.subscribe(R)),[n,R]),s.useEffect((()=>{l.isTransitioning&&!l.flushSync&&(console.log("creating a new renderDfd for a transition"),m(new j))}),[l]),s.useEffect((()=>{if(d&&u&&n.window){let e=u,t=d.promise;console.log("calling window.document.startViewTransition");let r=n.window.document.startViewTransition((async()=>{console.log("setState 2 - inside of startViewTransition"),w((()=>i(e))),await t,console.log("renderPromise resolved")}));r.finished.finally((()=>{console.log("transition finished, resetting"),m(void 0),h(void 0),c(void 0),f({isTransitioning:!1})})),h(r)}}),[w,u,d,n.window]),s.useEffect((()=>{d&&u&&a.location.key===u.location.key&&(console.log("resolving renderDfd"),d.resolve())}),[d,p,a.location,u]),s.useEffect((()=>{!l.isTransitioning&&v&&(console.log("processing interruption with setPendingState"),c(v.state),f({isTransitioning:!0,flushSync:!1,currentLocation:v.currentLocation,nextLocation:v.nextLocation}),g(void 0))}),[l.isTransitioning,v]),s.useEffect((()=>{}),[]);let S=s.useMemo((()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:e=>n.navigate(e),push:(e,t,r)=>n.navigate(e,{state:t,preventScrollReset:null==r?void 0:r.preventScrollReset}),replace:(e,t,r)=>n.navigate(e,{replace:!0,state:t,preventScrollReset:null==r?void 0:r.preventScrollReset})})),[n]),E=n.basename||"/",P=s.useMemo((()=>({router:n,navigator:S,static:!1,basename:E})),[n,S,E]),A=s.useMemo((()=>({v7_relativeSplatPath:n.future.v7_relativeSplatPath})),[n.future.v7_relativeSplatPath]);return s.useEffect((()=>r.UNSAFE_logV6DeprecationWarnings(o,n.future)),[o,n.future]),s.createElement(s.Fragment,null,s.createElement(r.UNSAFE_DataRouterContext.Provider,{value:P},s.createElement(r.UNSAFE_DataRouterStateContext.Provider,{value:a},s.createElement(N.Provider,{value:b.current},s.createElement(O.Provider,{value:l},s.createElement(r.Router,{basename:E,location:a.location,navigationType:a.historyAction,navigator:S,future:A},a.initialized||n.future.v7_partialHydration?s.createElement(x,{routes:n.routes,future:n.future,state:a}):t))))),null)},e.ScrollRestoration=function(e){let{getKey:t,storageKey:n}=e;return G({getKey:t,storageKey:n}),null},e.StaticRouter=function(e){let{basename:t,children:n,location:o="/"}=e;"string"==typeof o&&(o=a.parsePath(o));let i=a.Action.Pop,u={pathname:o.pathname||"/",search:o.search||"",hash:o.hash||"",state:null!=o.state?o.state:null,key:o.key||"default"},c={createHref:e=>"string"==typeof e?e:a.createPath(e),encodeLocation(e){let t="string"==typeof e?e:a.createPath(e);t=t.replace(/ $/,"%20");let n=X.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:n.pathname,search:n.search,hash:n.hash}},push(e){throw new Error("You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+")` somewhere in your app.")},replace(e){throw new Error("You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+JSON.stringify(e)+", { replace: true })` somewhere in your app.")},go(e){throw new Error("You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a `navigate("+e+")` somewhere in your app.")},back(){throw new Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw new Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}};return s.createElement(r.Router,{basename:t,children:n,location:u,navigationType:i,navigator:c,static:!0})},e.UNSAFE_useScrollRestoration=G,e.createBrowserRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createBrowserHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()},e.createHashRouter=function(e,t){return o.createRouter({basename:null==t?void 0:t.basename,future:l({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:o.createHashHistory({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||E(),routes:e,mapRouteProperties:r.UNSAFE_mapRouteProperties,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()},e.createSearchParams=h,e.unstable_HistoryRouter=function(e){let{basename:t,children:n,future:o,history:a}=e,[i,u]=s.useState({action:a.action,location:a.location}),{v7_startTransition:c}=o||{},l=s.useCallback((e=>{c&&_?_((()=>u(e))):u(e)}),[u,c]);return s.useLayoutEffect((()=>a.listen(l)),[a,l]),s.useEffect((()=>r.UNSAFE_logV6DeprecationWarnings(o)),[o]),s.createElement(r.Router,{basename:t,children:n,location:i.location,navigationType:i.action,navigator:a,future:o})},e.unstable_usePrompt=function(e){let{when:t,message:n}=e,o=r.useBlocker(t);s.useEffect((()=>{if("blocked"===o.state){window.confirm(n)?setTimeout(o.proceed,0):o.reset()}}),[o,n]),s.useEffect((()=>{"blocked"!==o.state||t||o.reset()}),[o,t])},e.useBeforeUnload=function(e,t){let{capture:n}=t||{};s.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}}),[e,n])},e.useFetcher=function(e){var t;let{key:n}=void 0===e?{}:e,{router:a}=V(H.UseFetcher),i=I(B.UseFetcher),u=s.useContext(N),c=s.useContext(r.UNSAFE_RouteContext),f=null==(t=c.matches[c.matches.length-1])?void 0:t.route.id;u||o.UNSAFE_invariant(!1),c||o.UNSAFE_invariant(!1),null==f&&o.UNSAFE_invariant(!1);let d=C?C():"",[m,p]=s.useState(n||d);n&&n!==m?p(n):m||p(W()),s.useEffect((()=>(a.getFetcher(m),()=>{a.deleteFetcher(m)})),[a,m]);let h=s.useCallback(((e,t)=>{f||o.UNSAFE_invariant(!1),a.fetch(m,f,e,t)}),[m,f,a]),v=Y(),g=s.useCallback(((e,t)=>{v(e,l({},t,{navigate:!1,fetcherKey:m}))}),[m,v]),b=s.useMemo((()=>s.forwardRef(((e,t)=>s.createElement(M,l({},e,{navigate:!1,fetcherKey:m,ref:t}))))),[m]),y=i.fetchers.get(m)||o.IDLE_FETCHER,w=u.get(m);return s.useMemo((()=>l({Form:b,submit:g,load:h},y,{data:w})),[b,g,h,y,w])},e.useFetchers=function(){let e=I(B.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,n]=e;return l({},n,{key:t})}))},e.useFormAction=q,e.useLinkClickHandler=K,e.useSearchParams=function(e){let t=s.useRef(h(e)),n=s.useRef(!1),o=r.useLocation(),a=s.useMemo((()=>function(e,t){let n=h(e);return t&&t.forEach(((e,r)=>{n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}))})),n}(o.search,n.current?null:t.current)),[o.search]),i=r.useNavigate(),u=s.useCallback(((e,t)=>{const r=h("function"==typeof e?e(a):e);n.current=!0,i("?"+r,t)}),[i,a]);return[a,u]},e.useSubmit=Y,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=react-router-dom-v5-compat.production.min.js.map
{
"name": "react-router-dom-v5-compat",
"version": "0.0.0-experimental-d90c8fb3",
"version": "0.0.0-experimental-db3389095",
"description": "Migration path to React Router v6 from v4/5",

@@ -27,3 +27,4 @@ "keywords": [

"history": "^5.3.0",
"react-router": "0.0.0-experimental-d90c8fb3"
"react-router": "0.0.0-experimental-db3389095",
"@remix-run/router": "0.0.0-experimental-db3389095"
},

@@ -44,2 +45,2 @@ "peerDependencies": {

}
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc