{"ast":null,"code":"import _toConsumableArray from \"C:/Users/user/Desktop/000newport/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _slicedToArray from \"C:/Users/user/Desktop/000newport/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _classCallCheck from \"C:/Users/user/Desktop/000newport/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"C:/Users/user/Desktop/000newport/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport _inherits from \"C:/Users/user/Desktop/000newport/node_modules/@babel/runtime/helpers/esm/inherits.js\";\nimport _createSuper from \"C:/Users/user/Desktop/000newport/node_modules/@babel/runtime/helpers/esm/createSuper.js\";\n/**\n * React Router v6.14.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_getPathContributingMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, resolvePath } from '@remix-run/router';\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nvar DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n  DataRouterContext.displayName = \"DataRouter\";\n}\nvar DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n  DataRouterStateContext.displayName = \"DataRouterState\";\n}\nvar AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n  AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nvar NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n  NavigationContext.displayName = \"Navigation\";\n}\nvar LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n  LocationContext.displayName = \"Location\";\n}\nvar RouteContext = /*#__PURE__*/React.createContext({\n  outlet: null,\n  matches: [],\n  isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n  RouteContext.displayName = \"Route\";\n}\nvar RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n  RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n  var _ref9 = _temp === void 0 ? {} : _temp,\n    relative = _ref9.relative;\n  !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false,\n  // TODO: This error is probably because they somehow have 2 versions of the\n  // router loaded. We can help them understand how to avoid that.\n  \"useHref() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n  var _React$useContext = React.useContext(NavigationContext),\n    basename = _React$useContext.basename,\n    navigator = _React$useContext.navigator;\n  var _useResolvedPath = useResolvedPath(to, {\n      relative: relative\n    }),\n    hash = _useResolvedPath.hash,\n    pathname = _useResolvedPath.pathname,\n    search = _useResolvedPath.search;\n  var joinedPathname = pathname;\n\n  // If we're operating within a basename, prepend it to the pathname prior\n  // to creating the href.  If this is a root navigation, then just use the raw\n  // basename which allows the basename to have full control over the presence\n  // of a trailing slash on root links\n  if (basename !== \"/\") {\n    joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n  }\n  return navigator.createHref({\n    pathname: joinedPathname,\n    search: search,\n    hash: hash\n  });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n  return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n  !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false,\n  // TODO: This error is probably because they somehow have 2 versions of the\n  // router loaded. We can help them understand how to avoid that.\n  \"useLocation() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n  return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n  return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n  !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false,\n  // TODO: This error is probably because they somehow have 2 versions of the\n  // router loaded. We can help them understand how to avoid that.\n  \"useMatch() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n  var _useLocation = useLocation(),\n    pathname = _useLocation.pathname;\n  return React.useMemo(function () {\n    return matchPath(pattern, pathname);\n  }, [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nvar navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n  var isStatic = React.useContext(NavigationContext).static;\n  if (!isStatic) {\n    // We should be able to get rid of this once react 18.3 is released\n    // See: https://github.com/facebook/react/pull/26395\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useLayoutEffect(cb);\n  }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n  var _React$useContext2 = React.useContext(RouteContext),\n    isDataRoute = _React$useContext2.isDataRoute;\n  // Conditional usage is OK here because the usage of a data router is static\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n  !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false,\n  // TODO: This error is probably because they somehow have 2 versions of the\n  // router loaded. We can help them understand how to avoid that.\n  \"useNavigate() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n  var dataRouterContext = React.useContext(DataRouterContext);\n  var _React$useContext3 = React.useContext(NavigationContext),\n    basename = _React$useContext3.basename,\n    navigator = _React$useContext3.navigator;\n  var _React$useContext4 = React.useContext(RouteContext),\n    matches = _React$useContext4.matches;\n  var _useLocation2 = useLocation(),\n    locationPathname = _useLocation2.pathname;\n  var routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(function (match) {\n    return match.pathnameBase;\n  }));\n  var activeRef = React.useRef(false);\n  useIsomorphicLayoutEffect(function () {\n    activeRef.current = true;\n  });\n  var navigate = React.useCallback(function (to, options) {\n    if (options === void 0) {\n      options = {};\n    }\n    process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n    // Short circuit here since if this happens on first render the navigate\n    // is useless because we haven't wired up our history listener yet\n    if (!activeRef.current) return;\n    if (typeof to === \"number\") {\n      navigator.go(to);\n      return;\n    }\n    var path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n    // If we're operating within a basename, prepend it to the pathname prior\n    // to handing off to history (but only if we're not in a data router,\n    // otherwise it'll prepend the basename inside of the router).\n    // If this is a root navigation, then we navigate to the raw basename\n    // which allows the basename to have full control over the presence of a\n    // trailing slash on root links\n    if (dataRouterContext == null && basename !== \"/\") {\n      path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n    }\n    (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n  }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n  return navigate;\n}\nvar OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n  return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n  var outlet = React.useContext(RouteContext).outlet;\n  if (outlet) {\n    return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n      value: context\n    }, outlet);\n  }\n  return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n  var _React$useContext5 = React.useContext(RouteContext),\n    matches = _React$useContext5.matches;\n  var routeMatch = matches[matches.length - 1];\n  return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n  var _ref10 = _temp2 === void 0 ? {} : _temp2,\n    relative = _ref10.relative;\n  var _React$useContext6 = React.useContext(RouteContext),\n    matches = _React$useContext6.matches;\n  var _useLocation3 = useLocation(),\n    locationPathname = _useLocation3.pathname;\n  var routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(function (match) {\n    return match.pathnameBase;\n  }));\n  return React.useMemo(function () {\n    return resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\");\n  }, [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n  return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState) {\n  !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false,\n  // TODO: This error is probably because they somehow have 2 versions of the\n  // router loaded. We can help them understand how to avoid that.\n  \"useRoutes() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n  var _React$useContext7 = React.useContext(NavigationContext),\n    navigator = _React$useContext7.navigator;\n  var _React$useContext8 = React.useContext(RouteContext),\n    parentMatches = _React$useContext8.matches;\n  var routeMatch = parentMatches[parentMatches.length - 1];\n  var parentParams = routeMatch ? routeMatch.params : {};\n  var parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n  var parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n  var parentRoute = routeMatch && routeMatch.route;\n  if (process.env.NODE_ENV !== \"production\") {\n    // You won't get a warning about 2 different <Routes> under a <Route>\n    // without a trailing *, but this is a best-effort warning anyway since we\n    // cannot even give the warning unless they land at the parent route.\n    //\n    // Example:\n    //\n    // <Routes>\n    //   {/* This route path MUST end with /* because otherwise\n    //       it will never match /blog/post/123 */}\n    //   <Route path=\"blog\" element={<Blog />} />\n    //   <Route path=\"blog/feed\" element={<BlogFeed />} />\n    // </Routes>\n    //\n    // function Blog() {\n    //   return (\n    //     <Routes>\n    //       <Route path=\"post/:id\" element={<Post />} />\n    //     </Routes>\n    //   );\n    // }\n    var parentPath = parentRoute && parentRoute.path || \"\";\n    warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant <Routes> (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under <Route path=\\\"\" + parentPath + \"\\\">) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent <Route path=\\\"\" + parentPath + \"\\\"> to <Route \") + (\"path=\\\"\" + (parentPath === \"/\" ? \"*\" : parentPath + \"/*\") + \"\\\">.\"));\n  }\n  var locationFromContext = useLocation();\n  var location;\n  if (locationArg) {\n    var _parsedLocationArg$pa;\n    var parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n    !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `<Routes location>` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n    location = parsedLocationArg;\n  } else {\n    location = locationFromContext;\n  }\n  var pathname = location.pathname || \"/\";\n  var remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n  var matches = matchRoutes(routes, {\n    pathname: remainingPathname\n  });\n  if (process.env.NODE_ENV !== \"production\") {\n    process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n    process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an <Outlet /> with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n  }\n  var renderedMatches = _renderMatches(matches && matches.map(function (match) {\n    return Object.assign({}, match, {\n      params: Object.assign({}, parentParams, match.params),\n      pathname: joinPaths([parentPathnameBase,\n      // Re-encode pathnames that were decoded inside matchRoutes\n      navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n      pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n      // Re-encode pathnames that were decoded inside matchRoutes\n      navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n    });\n  }), parentMatches, dataRouterState);\n\n  // When a user passes in a `locationArg`, the associated routes need to\n  // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n  // to use the scoped location instead of the global location.\n  if (locationArg && renderedMatches) {\n    return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n      value: {\n        location: _extends({\n          pathname: \"/\",\n          search: \"\",\n          hash: \"\",\n          state: null,\n          key: \"default\"\n        }, location),\n        navigationType: Action.Pop\n      }\n    }, renderedMatches);\n  }\n  return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n  var error = useRouteError();\n  var message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n  var stack = error instanceof Error ? error.stack : null;\n  var lightgrey = \"rgba(200,200,200, 0.5)\";\n  var preStyles = {\n    padding: \"0.5rem\",\n    backgroundColor: lightgrey\n  };\n  var codeStyles = {\n    padding: \"2px 4px\",\n    backgroundColor: lightgrey\n  };\n  var devInfo = null;\n  if (process.env.NODE_ENV !== \"production\") {\n    console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n    devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n      style: codeStyles\n    }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n      style: codeStyles\n    }, \"errorElement\"), \" prop on your route.\"));\n  }\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n    style: {\n      fontStyle: \"italic\"\n    }\n  }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n    style: preStyles\n  }, stack) : null, devInfo);\n}\nvar defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nvar RenderErrorBoundary = /*#__PURE__*/function (_React$Component) {\n  _inherits(RenderErrorBoundary, _React$Component);\n  var _super = _createSuper(RenderErrorBoundary);\n  function RenderErrorBoundary(props) {\n    var _this;\n    _classCallCheck(this, RenderErrorBoundary);\n    _this = _super.call(this, props);\n    _this.state = {\n      location: props.location,\n      revalidation: props.revalidation,\n      error: props.error\n    };\n    return _this;\n  }\n  _createClass(RenderErrorBoundary, [{\n    key: \"componentDidCatch\",\n    value: function componentDidCatch(error, errorInfo) {\n      console.error(\"React Router caught the following error during render\", error, errorInfo);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.state.error ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n        value: this.props.routeContext\n      }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n        value: this.state.error,\n        children: this.props.component\n      })) : this.props.children;\n    }\n  }], [{\n    key: \"getDerivedStateFromError\",\n    value: function getDerivedStateFromError(error) {\n      return {\n        error: error\n      };\n    }\n  }, {\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      // When we get into an error state, the user will likely click \"back\" to the\n      // previous page that didn't have an error. Because this wraps the entire\n      // application, that will have no effect--the error page continues to display.\n      // This gives us a mechanism to recover from the error when the location changes.\n      //\n      // Whether we're in an error state or not, we update the location in state\n      // so that when we are in an error state, it gets reset when a new location\n      // comes in and the user recovers from the error.\n      if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n        return {\n          error: props.error,\n          location: props.location,\n          revalidation: props.revalidation\n        };\n      }\n\n      // If we're not changing locations, preserve the location but still surface\n      // any new errors that may come through. We retain the existing error, we do\n      // this because the error provided from the app state may be cleared without\n      // the location changing.\n      return {\n        error: props.error || state.error,\n        location: state.location,\n        revalidation: props.revalidation || state.revalidation\n      };\n    }\n  }]);\n  return RenderErrorBoundary;\n}(React.Component);\nfunction RenderedRoute(_ref) {\n  var routeContext = _ref.routeContext,\n    match = _ref.match,\n    children = _ref.children;\n  var dataRouterContext = React.useContext(DataRouterContext);\n\n  // Track how deep we got in our render pass to emulate SSR componentDidCatch\n  // in a DataStaticRouter\n  if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n    dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n  }\n  return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n    value: routeContext\n  }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState) {\n  var _dataRouterState2;\n  if (parentMatches === void 0) {\n    parentMatches = [];\n  }\n  if (dataRouterState === void 0) {\n    dataRouterState = null;\n  }\n  if (matches == null) {\n    var _dataRouterState;\n    if ((_dataRouterState = dataRouterState) != null && _dataRouterState.errors) {\n      // Don't bail if we have data router errors so we can render them in the\n      // boundary.  Use the pre-matched (or shimmed) matches\n      matches = dataRouterState.matches;\n    } else {\n      return null;\n    }\n  }\n  var renderedMatches = matches;\n\n  // If we have data errors, trim matches to the highest error boundary\n  var errors = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n  if (errors != null) {\n    var errorIndex = renderedMatches.findIndex(function (m) {\n      return m.route.id && (errors == null ? void 0 : errors[m.route.id]);\n    });\n    !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n    renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n  }\n  return renderedMatches.reduceRight(function (outlet, match, index) {\n    var error = match.route.id ? errors == null ? void 0 : errors[match.route.id] : null;\n    // Only data routers handle errors\n    var errorElement = null;\n    if (dataRouterState) {\n      errorElement = match.route.errorElement || defaultErrorElement;\n    }\n    var matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n    var getChildren = function getChildren() {\n      var children;\n      if (error) {\n        children = errorElement;\n      } else if (match.route.Component) {\n        // Note: This is a de-optimized path since React won't re-use the\n        // ReactElement since it's identity changes with each new\n        // React.createElement call.  We keep this so folks can use\n        // `<Route Component={...}>` in `<Routes>` but generally `Component`\n        // usage is only advised in `RouterProvider` when we can convert it to\n        // `element` ahead of time.\n        children = /*#__PURE__*/React.createElement(match.route.Component, null);\n      } else if (match.route.element) {\n        children = match.route.element;\n      } else {\n        children = outlet;\n      }\n      return /*#__PURE__*/React.createElement(RenderedRoute, {\n        match: match,\n        routeContext: {\n          outlet: outlet,\n          matches: matches,\n          isDataRoute: dataRouterState != null\n        },\n        children: children\n      });\n    };\n    // Only wrap in an error boundary within data router usages when we have an\n    // ErrorBoundary/errorElement on this route.  Otherwise let it bubble up to\n    // an ancestor ErrorBoundary/errorElement\n    return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n      location: dataRouterState.location,\n      revalidation: dataRouterState.revalidation,\n      component: errorElement,\n      error: error,\n      children: getChildren(),\n      routeContext: {\n        outlet: null,\n        matches: matches,\n        isDataRoute: true\n      }\n    }) : getChildren();\n  }, null);\n}\nvar DataRouterHook;\n(function (DataRouterHook) {\n  DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n  DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n  DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n})(DataRouterHook || (DataRouterHook = {}));\nvar DataRouterStateHook;\n(function (DataRouterStateHook) {\n  DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n  DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n  DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n  DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n  DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n  DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n  DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n  DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n  DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n  DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\nfunction getDataRouterConsoleError(hookName) {\n  return hookName + \" must be used within a data router.  See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n  var ctx = React.useContext(DataRouterContext);\n  !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n  return ctx;\n}\nfunction useDataRouterState(hookName) {\n  var state = React.useContext(DataRouterStateContext);\n  !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n  return state;\n}\nfunction useRouteContext(hookName) {\n  var route = React.useContext(RouteContext);\n  !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n  return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n  var route = useRouteContext(hookName);\n  var thisRoute = route.matches[route.matches.length - 1];\n  !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n  return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n  return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n  var state = useDataRouterState(DataRouterStateHook.UseNavigation);\n  return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n  var dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n  var state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n  return {\n    revalidate: dataRouterContext.router.revalidate,\n    state: state.revalidation\n  };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n  var _useDataRouterState = useDataRouterState(DataRouterStateHook.UseMatches),\n    matches = _useDataRouterState.matches,\n    loaderData = _useDataRouterState.loaderData;\n  return React.useMemo(function () {\n    return matches.map(function (match) {\n      var pathname = match.pathname,\n        params = match.params;\n      // Note: This structure matches that created by createUseMatchesMatch\n      // in the @remix-run/router , so if you change this please also change\n      // that :)  Eventually we'll DRY this up\n      return {\n        id: match.route.id,\n        pathname: pathname,\n        params: params,\n        data: loaderData[match.route.id],\n        handle: match.route.handle\n      };\n    });\n  }, [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n  var state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n  var routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n  if (state.errors && state.errors[routeId] != null) {\n    console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n    return undefined;\n  }\n  return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n  var state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n  return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n  var state = useDataRouterState(DataRouterStateHook.UseActionData);\n  var route = React.useContext(RouteContext);\n  !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useActionData must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n  return Object.values((state == null ? void 0 : state.actionData) || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error.  This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n  var _state$errors;\n  var error = React.useContext(RouteErrorContext);\n  var state = useDataRouterState(DataRouterStateHook.UseRouteError);\n  var routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n  // If this was a render error, we put it in a RouteError context inside\n  // of RenderErrorBoundary\n  if (error) {\n    return error;\n  }\n\n  // Otherwise look for errors from our data router state\n  return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nfunction useAsyncValue() {\n  var value = React.useContext(AwaitContext);\n  return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nfunction useAsyncError() {\n  var value = React.useContext(AwaitContext);\n  return value == null ? void 0 : value._error;\n}\nvar blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation.  Mostly used to avoid\n * using half-filled form data.  This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n  var _useDataRouterContext = useDataRouterContext(DataRouterHook.UseBlocker),\n    router = _useDataRouterContext.router,\n    basename = _useDataRouterContext.basename;\n  var state = useDataRouterState(DataRouterStateHook.UseBlocker);\n  var _React$useState = React.useState(\"\"),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    blockerKey = _React$useState2[0],\n    setBlockerKey = _React$useState2[1];\n  var blockerFunction = React.useCallback(function (arg) {\n    if (typeof shouldBlock !== \"function\") {\n      return !!shouldBlock;\n    }\n    if (basename === \"/\") {\n      return shouldBlock(arg);\n    }\n\n    // If they provided us a function and we've got an active basename, strip\n    // it from the locations we expose to the user to match the behavior of\n    // useLocation\n    var currentLocation = arg.currentLocation,\n      nextLocation = arg.nextLocation,\n      historyAction = arg.historyAction;\n    return shouldBlock({\n      currentLocation: _extends({}, currentLocation, {\n        pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n      }),\n      nextLocation: _extends({}, nextLocation, {\n        pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n      }),\n      historyAction: historyAction\n    });\n  }, [basename, shouldBlock]);\n\n  // This effect is in charge of blocker key assignment and deletion (which is\n  // tightly coupled to the key)\n  React.useEffect(function () {\n    var key = String(++blockerId);\n    setBlockerKey(key);\n    return function () {\n      return router.deleteBlocker(key);\n    };\n  }, [router]);\n\n  // This effect handles assigning the blockerFunction.  This is to handle\n  // unstable blocker function identities, and happens only after the prior\n  // effect so we don't get an orphaned blockerFunction in the router with a\n  // key of \"\".  Until then we just have the IDLE_BLOCKER.\n  React.useEffect(function () {\n    if (blockerKey !== \"\") {\n      router.getBlocker(blockerKey, blockerFunction);\n    }\n  }, [router, blockerKey, blockerFunction]);\n\n  // Prefer the blocker from `state` not `router.state` since DataRouterContext\n  // is memoized so this ensures we update on blocker state updates\n  return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n  var _useDataRouterContext2 = useDataRouterContext(DataRouterHook.UseNavigateStable),\n    router = _useDataRouterContext2.router;\n  var id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n  var activeRef = React.useRef(false);\n  useIsomorphicLayoutEffect(function () {\n    activeRef.current = true;\n  });\n  var navigate = React.useCallback(function (to, options) {\n    if (options === void 0) {\n      options = {};\n    }\n    process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n    // Short circuit here since if this happens on first render the navigate\n    // is useless because we haven't wired up our router subscriber yet\n    if (!activeRef.current) return;\n    if (typeof to === \"number\") {\n      router.navigate(to);\n    } else {\n      router.navigate(to, _extends({\n        fromRouteId: id\n      }, options));\n    }\n  }, [router, id]);\n  return navigate;\n}\nvar alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n  if (!cond && !alreadyWarned[key]) {\n    alreadyWarned[key] = true;\n    process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n  }\n}\n\n/**\n  Webpack + React 17 fails to compile on any of the following because webpack\n  complains that `startTransition` doesn't exist in `React`:\n  * import { startTransition } from \"react\"\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n  Moving it to a constant such as the following solves the Webpack/React 17 issue:\n  * import * as React from from \"react\";\n    const START_TRANSITION = \"startTransition\";\n    START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n  However, that introduces webpack/terser minification issues in production builds\n  in React 18 where minification/obfuscation ends up removing the call of\n  React.startTransition entirely from the first half of the ternary.  Grabbing\n  this exported reference once up front resolves that issue.\n\n  See https://github.com/remix-run/react-router/issues/10579\n*/\nvar START_TRANSITION = \"startTransition\";\nvar startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n  var fallbackElement = _ref.fallbackElement,\n    router = _ref.router,\n    future = _ref.future;\n  // Need to use a layout effect here so we are subscribed early enough to\n  // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n  var _React$useState3 = React.useState(router.state),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    state = _React$useState4[0],\n    setStateImpl = _React$useState4[1];\n  var _ref11 = future || {},\n    v7_startTransition = _ref11.v7_startTransition;\n  var setState = React.useCallback(function (newState) {\n    v7_startTransition && startTransitionImpl ? startTransitionImpl(function () {\n      return setStateImpl(newState);\n    }) : setStateImpl(newState);\n  }, [setStateImpl, v7_startTransition]);\n  React.useLayoutEffect(function () {\n    return router.subscribe(setState);\n  }, [router, setState]);\n  var navigator = React.useMemo(function () {\n    return {\n      createHref: router.createHref,\n      encodeLocation: router.encodeLocation,\n      go: function go(n) {\n        return router.navigate(n);\n      },\n      push: function push(to, state, opts) {\n        return router.navigate(to, {\n          state: state,\n          preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n        });\n      },\n      replace: function replace(to, state, opts) {\n        return router.navigate(to, {\n          replace: true,\n          state: state,\n          preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n        });\n      }\n    };\n  }, [router]);\n  var basename = router.basename || \"/\";\n  var dataRouterContext = React.useMemo(function () {\n    return {\n      router: router,\n      navigator: navigator,\n      static: false,\n      basename: basename\n    };\n  }, [router, navigator, basename]);\n\n  // The fragment and {null} here are important!  We need them to keep React 18's\n  // useId happy when we are server-rendering since we may have a <script> here\n  // containing the hydrated server-side staticContext (from StaticRouterProvider).\n  // useId relies on the component tree structure to generate deterministic id's\n  // so we need to ensure it remains the same on the client even though\n  // we don't need the <script> tag\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataRouterContext.Provider, {\n    value: dataRouterContext\n  }, /*#__PURE__*/React.createElement(DataRouterStateContext.Provider, {\n    value: state\n  }, /*#__PURE__*/React.createElement(Router, {\n    basename: basename,\n    location: state.location,\n    navigationType: state.historyAction,\n    navigator: navigator\n  }, state.initialized ? /*#__PURE__*/React.createElement(DataRoutes, {\n    routes: router.routes,\n    state: state\n  }) : fallbackElement))), null);\n}\nfunction DataRoutes(_ref2) {\n  var routes = _ref2.routes,\n    state = _ref2.state;\n  return useRoutesImpl(routes, undefined, state);\n}\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nfunction MemoryRouter(_ref3) {\n  var basename = _ref3.basename,\n    children = _ref3.children,\n    initialEntries = _ref3.initialEntries,\n    initialIndex = _ref3.initialIndex,\n    future = _ref3.future;\n  var historyRef = React.useRef();\n  if (historyRef.current == null) {\n    historyRef.current = createMemoryHistory({\n      initialEntries: initialEntries,\n      initialIndex: initialIndex,\n      v5Compat: true\n    });\n  }\n  var history = historyRef.current;\n  var _React$useState5 = React.useState({\n      action: history.action,\n      location: history.location\n    }),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    state = _React$useState6[0],\n    setStateImpl = _React$useState6[1];\n  var _ref12 = future || {},\n    v7_startTransition = _ref12.v7_startTransition;\n  var setState = React.useCallback(function (newState) {\n    v7_startTransition && startTransitionImpl ? startTransitionImpl(function () {\n      return setStateImpl(newState);\n    }) : setStateImpl(newState);\n  }, [setStateImpl, v7_startTransition]);\n  React.useLayoutEffect(function () {\n    return history.listen(setState);\n  }, [history, setState]);\n  return /*#__PURE__*/React.createElement(Router, {\n    basename: basename,\n    children: children,\n    location: state.location,\n    navigationType: state.action,\n    navigator: history\n  });\n}\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nfunction Navigate(_ref4) {\n  var to = _ref4.to,\n    replace = _ref4.replace,\n    state = _ref4.state,\n    relative = _ref4.relative;\n  !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false,\n  // TODO: This error is probably because they somehow have 2 versions of\n  // the router loaded. We can help them understand how to avoid that.\n  \"<Navigate> may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n  process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(!React.useContext(NavigationContext).static, \"<Navigate> must not be used on the initial render in a <StaticRouter>. \" + \"This is a no-op, but you should modify your code so the <Navigate> is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n  var _React$useContext9 = React.useContext(RouteContext),\n    matches = _React$useContext9.matches;\n  var _useLocation4 = useLocation(),\n    locationPathname = _useLocation4.pathname;\n  var navigate = useNavigate();\n\n  // Resolve the path outside of the effect so that when effects run twice in\n  // StrictMode they navigate to the same place\n  var path = resolveTo(to, UNSAFE_getPathContributingMatches(matches).map(function (match) {\n    return match.pathnameBase;\n  }), locationPathname, relative === \"path\");\n  var jsonPath = JSON.stringify(path);\n  React.useEffect(function () {\n    return navigate(JSON.parse(jsonPath), {\n      replace: replace,\n      state: state,\n      relative: relative\n    });\n  }, [navigate, jsonPath, relative, replace, state]);\n  return null;\n}\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nfunction Outlet(props) {\n  return useOutlet(props.context);\n}\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nfunction Route(_props) {\n  process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"A <Route> is only ever to be used as the child of <Routes> element, \" + \"never rendered directly. Please wrap your <Route> in a <Routes>.\") : UNSAFE_invariant(false);\n}\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nfunction Router(_ref5) {\n  var _ref5$basename = _ref5.basename,\n    basenameProp = _ref5$basename === void 0 ? \"/\" : _ref5$basename,\n    _ref5$children = _ref5.children,\n    children = _ref5$children === void 0 ? null : _ref5$children,\n    locationProp = _ref5.location,\n    _ref5$navigationType = _ref5.navigationType,\n    navigationType = _ref5$navigationType === void 0 ? Action.Pop : _ref5$navigationType,\n    navigator = _ref5.navigator,\n    _ref5$static = _ref5.static,\n    staticProp = _ref5$static === void 0 ? false : _ref5$static;\n  !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"You cannot render a <Router> inside another <Router>.\" + \" You should never have more than one in your app.\") : UNSAFE_invariant(false) : void 0;\n\n  // Preserve trailing slashes on basename, so we can let the user control\n  // the enforcement of trailing slashes throughout the app\n  var basename = basenameProp.replace(/^\\/*/, \"/\");\n  var navigationContext = React.useMemo(function () {\n    return {\n      basename: basename,\n      navigator: navigator,\n      static: staticProp\n    };\n  }, [basename, navigator, staticProp]);\n  if (typeof locationProp === \"string\") {\n    locationProp = parsePath(locationProp);\n  }\n  var _locationProp = locationProp,\n    _locationProp$pathnam = _locationProp.pathname,\n    pathname = _locationProp$pathnam === void 0 ? \"/\" : _locationProp$pathnam,\n    _locationProp$search = _locationProp.search,\n    search = _locationProp$search === void 0 ? \"\" : _locationProp$search,\n    _locationProp$hash = _locationProp.hash,\n    hash = _locationProp$hash === void 0 ? \"\" : _locationProp$hash,\n    _locationProp$state = _locationProp.state,\n    state = _locationProp$state === void 0 ? null : _locationProp$state,\n    _locationProp$key = _locationProp.key,\n    key = _locationProp$key === void 0 ? \"default\" : _locationProp$key;\n  var locationContext = React.useMemo(function () {\n    var trailingPathname = stripBasename(pathname, basename);\n    if (trailingPathname == null) {\n      return null;\n    }\n    return {\n      location: {\n        pathname: trailingPathname,\n        search: search,\n        hash: hash,\n        state: state,\n        key: key\n      },\n      navigationType: navigationType\n    };\n  }, [basename, pathname, search, hash, state, key, navigationType]);\n  process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(locationContext != null, \"<Router basename=\\\"\" + basename + \"\\\"> is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the <Router> won't render anything.\") : void 0;\n  if (locationContext == null) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n    value: navigationContext\n  }, /*#__PURE__*/React.createElement(LocationContext.Provider, {\n    children: children,\n    value: locationContext\n  }));\n}\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nfunction Routes(_ref6) {\n  var children = _ref6.children,\n    location = _ref6.location;\n  return useRoutes(createRoutesFromChildren(children), location);\n}\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nfunction Await(_ref7) {\n  var children = _ref7.children,\n    errorElement = _ref7.errorElement,\n    resolve = _ref7.resolve;\n  return /*#__PURE__*/React.createElement(AwaitErrorBoundary, {\n    resolve: resolve,\n    errorElement: errorElement\n  }, /*#__PURE__*/React.createElement(ResolveAwait, null, children));\n}\nvar AwaitRenderStatus;\n(function (AwaitRenderStatus) {\n  AwaitRenderStatus[AwaitRenderStatus[\"pending\"] = 0] = \"pending\";\n  AwaitRenderStatus[AwaitRenderStatus[\"success\"] = 1] = \"success\";\n  AwaitRenderStatus[AwaitRenderStatus[\"error\"] = 2] = \"error\";\n})(AwaitRenderStatus || (AwaitRenderStatus = {}));\nvar neverSettledPromise = new Promise(function () {});\nvar AwaitErrorBoundary = /*#__PURE__*/function (_React$Component2) {\n  _inherits(AwaitErrorBoundary, _React$Component2);\n  var _super2 = _createSuper(AwaitErrorBoundary);\n  function AwaitErrorBoundary(props) {\n    var _this2;\n    _classCallCheck(this, AwaitErrorBoundary);\n    _this2 = _super2.call(this, props);\n    _this2.state = {\n      error: null\n    };\n    return _this2;\n  }\n  _createClass(AwaitErrorBoundary, [{\n    key: \"componentDidCatch\",\n    value: function componentDidCatch(error, errorInfo) {\n      console.error(\"<Await> caught the following error during render\", error, errorInfo);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n        children = _this$props.children,\n        errorElement = _this$props.errorElement,\n        resolve = _this$props.resolve;\n      var promise = null;\n      var status = AwaitRenderStatus.pending;\n      if (!(resolve instanceof Promise)) {\n        // Didn't get a promise - provide as a resolved promise\n        status = AwaitRenderStatus.success;\n        promise = Promise.resolve();\n        Object.defineProperty(promise, \"_tracked\", {\n          get: function get() {\n            return true;\n          }\n        });\n        Object.defineProperty(promise, \"_data\", {\n          get: function get() {\n            return resolve;\n          }\n        });\n      } else if (this.state.error) {\n        // Caught a render error, provide it as a rejected promise\n        status = AwaitRenderStatus.error;\n        var renderError = this.state.error;\n        promise = Promise.reject().catch(function () {}); // Avoid unhandled rejection warnings\n        Object.defineProperty(promise, \"_tracked\", {\n          get: function get() {\n            return true;\n          }\n        });\n        Object.defineProperty(promise, \"_error\", {\n          get: function get() {\n            return renderError;\n          }\n        });\n      } else if (resolve._tracked) {\n        // Already tracked promise - check contents\n        promise = resolve;\n        status = promise._error !== undefined ? AwaitRenderStatus.error : promise._data !== undefined ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n      } else {\n        // Raw (untracked) promise - track it\n        status = AwaitRenderStatus.pending;\n        Object.defineProperty(resolve, \"_tracked\", {\n          get: function get() {\n            return true;\n          }\n        });\n        promise = resolve.then(function (data) {\n          return Object.defineProperty(resolve, \"_data\", {\n            get: function get() {\n              return data;\n            }\n          });\n        }, function (error) {\n          return Object.defineProperty(resolve, \"_error\", {\n            get: function get() {\n              return error;\n            }\n          });\n        });\n      }\n      if (status === AwaitRenderStatus.error && promise._error instanceof AbortedDeferredError) {\n        // Freeze the UI by throwing a never resolved promise\n        throw neverSettledPromise;\n      }\n      if (status === AwaitRenderStatus.error && !errorElement) {\n        // No errorElement, throw to the nearest route-level error boundary\n        throw promise._error;\n      }\n      if (status === AwaitRenderStatus.error) {\n        // Render via our errorElement\n        return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n          value: promise,\n          children: errorElement\n        });\n      }\n      if (status === AwaitRenderStatus.success) {\n        // Render children with resolved value\n        return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n          value: promise,\n          children: children\n        });\n      }\n\n      // Throw to the suspense boundary\n      throw promise;\n    }\n  }], [{\n    key: \"getDerivedStateFromError\",\n    value: function getDerivedStateFromError(error) {\n      return {\n        error: error\n      };\n    }\n  }]);\n  return AwaitErrorBoundary;\n}(React.Component);\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait(_ref8) {\n  var children = _ref8.children;\n  var data = useAsyncValue();\n  var toRender = typeof children === \"function\" ? children(data) : children;\n  return /*#__PURE__*/React.createElement(React.Fragment, null, toRender);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nfunction createRoutesFromChildren(children, parentPath) {\n  if (parentPath === void 0) {\n    parentPath = [];\n  }\n  var routes = [];\n  React.Children.forEach(children, function (element, index) {\n    if (! /*#__PURE__*/React.isValidElement(element)) {\n      // Ignore non-elements. This allows people to more easily inline\n      // conditionals in their route config.\n      return;\n    }\n    var treePath = [].concat(_toConsumableArray(parentPath), [index]);\n    if (element.type === React.Fragment) {\n      // Transparently support React.Fragment and its children.\n      routes.push.apply(routes, createRoutesFromChildren(element.props.children, treePath));\n      return;\n    }\n    !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>\") : UNSAFE_invariant(false) : void 0;\n    !(!element.props.index || !element.props.children) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"An index route cannot have child routes.\") : UNSAFE_invariant(false) : void 0;\n    var route = {\n      id: element.props.id || treePath.join(\"-\"),\n      caseSensitive: element.props.caseSensitive,\n      element: element.props.element,\n      Component: element.props.Component,\n      index: element.props.index,\n      path: element.props.path,\n      loader: element.props.loader,\n      action: element.props.action,\n      errorElement: element.props.errorElement,\n      ErrorBoundary: element.props.ErrorBoundary,\n      hasErrorBoundary: element.props.ErrorBoundary != null || element.props.errorElement != null,\n      shouldRevalidate: element.props.shouldRevalidate,\n      handle: element.props.handle,\n      lazy: element.props.lazy\n    };\n    if (element.props.children) {\n      route.children = createRoutesFromChildren(element.props.children, treePath);\n    }\n    routes.push(route);\n  });\n  return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nfunction renderMatches(matches) {\n  return _renderMatches(matches);\n}\nfunction mapRouteProperties(route) {\n  var updates = {\n    // Note: this check also occurs in createRoutesFromChildren so update\n    // there if you change this -- please and thank you!\n    hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null\n  };\n  if (route.Component) {\n    if (process.env.NODE_ENV !== \"production\") {\n      if (route.element) {\n        process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `Component` and `element` on your route - \" + \"`Component` will be used.\") : void 0;\n      }\n    }\n    Object.assign(updates, {\n      element: /*#__PURE__*/React.createElement(route.Component),\n      Component: undefined\n    });\n  }\n  if (route.ErrorBoundary) {\n    if (process.env.NODE_ENV !== \"production\") {\n      if (route.errorElement) {\n        process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" + \"`ErrorBoundary` will be used.\") : void 0;\n      }\n    }\n    Object.assign(updates, {\n      errorElement: /*#__PURE__*/React.createElement(route.ErrorBoundary),\n      ErrorBoundary: undefined\n    });\n  }\n  return updates;\n}\nfunction createMemoryRouter(routes, opts) {\n  return createRouter({\n    basename: opts == null ? void 0 : opts.basename,\n    future: _extends({}, opts == null ? void 0 : opts.future, {\n      v7_prependBasename: true\n    }),\n    history: createMemoryHistory({\n      initialEntries: opts == null ? void 0 : opts.initialEntries,\n      initialIndex: opts == null ? void 0 : opts.initialIndex\n    }),\n    hydrationData: opts == null ? void 0 : opts.hydrationData,\n    routes: routes,\n    mapRouteProperties: mapRouteProperties\n  }).initialize();\n}\nexport { Await, MemoryRouter, Navigate, Outlet, Route, Router, RouterProvider, Routes, DataRouterContext as UNSAFE_DataRouterContext, DataRouterStateContext as UNSAFE_DataRouterStateContext, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, mapRouteProperties as UNSAFE_mapRouteProperties, useRouteId as UNSAFE_useRouteId, useRoutesImpl as UNSAFE_useRoutesImpl, createMemoryRouter, createRoutesFromChildren, createRoutesFromChildren as createRoutesFromElements, renderMatches, useBlocker as unstable_useBlocker, useActionData, useAsyncError, useAsyncValue, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };","map":{"version":3,"names":["DataRouterContext","React","createContext","process","env","NODE_ENV","displayName","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","matches","isDataRoute","RouteErrorContext","useHref","to","_temp","_ref9","relative","useInRouterContext","UNSAFE_invariant","_React$useContext","useContext","basename","navigator","_useResolvedPath","useResolvedPath","hash","pathname","search","joinedPathname","joinPaths","createHref","useLocation","location","useNavigationType","navigationType","useMatch","pattern","_useLocation","useMemo","matchPath","navigateEffectWarning","useIsomorphicLayoutEffect","cb","isStatic","static","useLayoutEffect","useNavigate","_React$useContext2","useNavigateStable","useNavigateUnstable","dataRouterContext","_React$useContext3","_React$useContext4","_useLocation2","locationPathname","routePathnamesJson","JSON","stringify","UNSAFE_getPathContributingMatches","map","match","pathnameBase","activeRef","useRef","current","navigate","useCallback","options","UNSAFE_warning","go","path","resolveTo","parse","replace","push","state","OutletContext","useOutletContext","useOutlet","context","createElement","Provider","value","useParams","_React$useContext5","routeMatch","length","params","_temp2","_ref10","_React$useContext6","_useLocation3","useRoutes","routes","locationArg","useRoutesImpl","dataRouterState","_React$useContext7","_React$useContext8","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","route","parentPath","warningOnce","endsWith","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parsePath","startsWith","remainingPathname","slice","matchRoutes","element","undefined","Component","renderedMatches","_renderMatches","Object","assign","encodeLocation","_extends","key","Action","Pop","DefaultErrorComponent","error","useRouteError","message","isRouteErrorResponse","status","statusText","Error","stack","lightgrey","preStyles","padding","backgroundColor","codeStyles","devInfo","console","Fragment","style","fontStyle","defaultErrorElement","RenderErrorBoundary","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","revalidation","_createClass","componentDidCatch","errorInfo","render","routeContext","children","component","getDerivedStateFromError","getDerivedStateFromProps","RenderedRoute","_ref","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","id","_dataRouterState2","_dataRouterState","errors","errorIndex","findIndex","m","keys","join","Math","min","reduceRight","index","concat","getChildren","DataRouterHook","DataRouterStateHook","getDataRouterConsoleError","hookName","useDataRouterContext","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","useRouteId","UseRouteId","useNavigation","UseNavigation","navigation","useRevalidator","UseRevalidator","revalidate","router","useMatches","_useDataRouterState","UseMatches","loaderData","data","handle","useLoaderData","UseLoaderData","routeId","useRouteLoaderData","UseRouteLoaderData","useActionData","UseActionData","values","actionData","_state$errors","UseRouteError","useAsyncValue","_data","useAsyncError","_error","blockerId","useBlocker","shouldBlock","_useDataRouterContext","UseBlocker","_React$useState","useState","_React$useState2","_slicedToArray","blockerKey","setBlockerKey","blockerFunction","arg","currentLocation","nextLocation","historyAction","stripBasename","useEffect","String","deleteBlocker","getBlocker","blockers","has","get","IDLE_BLOCKER","_useDataRouterContext2","UseNavigateStable","fromRouteId","alreadyWarned","cond","START_TRANSITION","startTransitionImpl","RouterProvider","fallbackElement","future","_React$useState3","_React$useState4","setStateImpl","_ref11","v7_startTransition","setState","newState","subscribe","n","opts","preventScrollReset","Router","initialized","DataRoutes","_ref2","MemoryRouter","_ref3","initialEntries","initialIndex","historyRef","createMemoryHistory","v5Compat","history","_React$useState5","action","_React$useState6","_ref12","listen","Navigate","_ref4","_React$useContext9","_useLocation4","jsonPath","Outlet","Route","_props","_ref5","_ref5$basename","basenameProp","_ref5$children","locationProp","_ref5$navigationType","_ref5$static","staticProp","navigationContext","_locationProp","_locationProp$pathnam","_locationProp$search","_locationProp$hash","_locationProp$state","_locationProp$key","locationContext","trailingPathname","Routes","_ref6","createRoutesFromChildren","Await","_ref7","resolve","AwaitErrorBoundary","ResolveAwait","AwaitRenderStatus","neverSettledPromise","Promise","_React$Component2","_super2","_this2","_this$props","promise","pending","success","defineProperty","renderError","reject","catch","_tracked","then","AbortedDeferredError","_ref8","toRender","Children","forEach","isValidElement","treePath","_toConsumableArray","type","apply","name","caseSensitive","loader","hasErrorBoundary","shouldRevalidate","lazy","renderMatches","mapRouteProperties","updates","createMemoryRouter","createRouter","v7_prependBasename","hydrationData","initialize"],"sources":["C:\\Users\\user\\Desktop\\000newport\\node_modules\\react-router\\lib\\context.ts","C:\\Users\\user\\Desktop\\000newport\\node_modules\\react-router\\lib\\hooks.tsx","C:\\Users\\user\\Desktop\\000newport\\node_modules\\react-router\\lib\\components.tsx","C:\\Users\\user\\Desktop\\000newport\\node_modules\\react-router\\index.ts"],"sourcesContent":["import * as React from \"react\";\nimport type {\n  AgnosticRouteMatch,\n  AgnosticIndexRouteObject,\n  AgnosticNonIndexRouteObject,\n  History,\n  Location,\n  RelativeRoutingType,\n  Router,\n  StaticHandlerContext,\n  To,\n  TrackedPromise,\n  LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n  caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n  path?: AgnosticIndexRouteObject[\"path\"];\n  id?: AgnosticIndexRouteObject[\"id\"];\n  loader?: AgnosticIndexRouteObject[\"loader\"];\n  action?: AgnosticIndexRouteObject[\"action\"];\n  hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n  handle?: AgnosticIndexRouteObject[\"handle\"];\n  index: true;\n  children?: undefined;\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n  lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n  caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n  path?: AgnosticNonIndexRouteObject[\"path\"];\n  id?: AgnosticNonIndexRouteObject[\"id\"];\n  loader?: AgnosticNonIndexRouteObject[\"loader\"];\n  action?: AgnosticNonIndexRouteObject[\"action\"];\n  hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n  handle?: AgnosticNonIndexRouteObject[\"handle\"];\n  index?: false;\n  children?: RouteObject[];\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n  lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n  children?: DataRouteObject[];\n  id: string;\n};\n\nexport interface RouteMatch<\n  ParamKey extends string = string,\n  RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n  router: Router;\n  staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n  React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n  DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n  Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n  DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n  AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n  replace?: boolean;\n  state?: any;\n  preventScrollReset?: boolean;\n  relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n  createHref: History[\"createHref\"];\n  // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n  encodeLocation?: History[\"encodeLocation\"];\n  go: History[\"go\"];\n  push(to: To, state?: any, opts?: NavigateOptions): void;\n  replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n  basename: string;\n  navigator: Navigator;\n  static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n  null!\n);\n\nif (__DEV__) {\n  NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n  location: Location;\n  navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n  null!\n);\n\nif (__DEV__) {\n  LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n  outlet: React.ReactElement | null;\n  matches: RouteMatch[];\n  isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n  outlet: null,\n  matches: [],\n  isDataRoute: false,\n});\n\nif (__DEV__) {\n  RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n  RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n  Blocker,\n  BlockerFunction,\n  Location,\n  ParamParseKey,\n  Params,\n  Path,\n  PathMatch,\n  PathPattern,\n  RelativeRoutingType,\n  Router as RemixRouter,\n  RevalidationState,\n  To,\n} from \"@remix-run/router\";\nimport {\n  Action as NavigationType,\n  UNSAFE_invariant as invariant,\n  isRouteErrorResponse,\n  joinPaths,\n  matchPath,\n  matchRoutes,\n  parsePath,\n  resolveTo,\n  stripBasename,\n  IDLE_BLOCKER,\n  UNSAFE_getPathContributingMatches as getPathContributingMatches,\n  UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n  NavigateOptions,\n  RouteContextObject,\n  RouteMatch,\n  RouteObject,\n  DataRouteMatch,\n} from \"./context\";\nimport {\n  DataRouterContext,\n  DataRouterStateContext,\n  LocationContext,\n  NavigationContext,\n  RouteContext,\n  RouteErrorContext,\n  AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n  to: To,\n  { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useHref() may be used only in the context of a <Router> component.`\n  );\n\n  let { basename, navigator } = React.useContext(NavigationContext);\n  let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n  let joinedPathname = pathname;\n\n  // If we're operating within a basename, prepend it to the pathname prior\n  // to creating the href.  If this is a root navigation, then just use the raw\n  // basename which allows the basename to have full control over the presence\n  // of a trailing slash on root links\n  if (basename !== \"/\") {\n    joinedPathname =\n      pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n  }\n\n  return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n  return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useLocation() may be used only in the context of a <Router> component.`\n  );\n\n  return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n  return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n  ParamKey extends ParamParseKey<Path>,\n  Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useMatch() may be used only in the context of a <Router> component.`\n  );\n\n  let { pathname } = useLocation();\n  return React.useMemo(\n    () => matchPath<ParamKey, Path>(pattern, pathname),\n    [pathname, pattern]\n  );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n  (to: To, options?: NavigateOptions): void;\n  (delta: number): void;\n}\n\nconst navigateEffectWarning =\n  `You should call navigate() in a React.useEffect(), not when ` +\n  `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n  cb: Parameters<typeof React.useLayoutEffect>[0]\n) {\n  let isStatic = React.useContext(NavigationContext).static;\n  if (!isStatic) {\n    // We should be able to get rid of this once react 18.3 is released\n    // See: https://github.com/facebook/react/pull/26395\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useLayoutEffect(cb);\n  }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n  let { isDataRoute } = React.useContext(RouteContext);\n  // Conditional usage is OK here because the usage of a data router is static\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useNavigate() may be used only in the context of a <Router> component.`\n  );\n\n  let dataRouterContext = React.useContext(DataRouterContext);\n  let { basename, navigator } = React.useContext(NavigationContext);\n  let { matches } = React.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n\n  let routePathnamesJson = JSON.stringify(\n    getPathContributingMatches(matches).map((match) => match.pathnameBase)\n  );\n\n  let activeRef = React.useRef(false);\n  useIsomorphicLayoutEffect(() => {\n    activeRef.current = true;\n  });\n\n  let navigate: NavigateFunction = React.useCallback(\n    (to: To | number, options: NavigateOptions = {}) => {\n      warning(activeRef.current, navigateEffectWarning);\n\n      // Short circuit here since if this happens on first render the navigate\n      // is useless because we haven't wired up our history listener yet\n      if (!activeRef.current) return;\n\n      if (typeof to === \"number\") {\n        navigator.go(to);\n        return;\n      }\n\n      let path = resolveTo(\n        to,\n        JSON.parse(routePathnamesJson),\n        locationPathname,\n        options.relative === \"path\"\n      );\n\n      // If we're operating within a basename, prepend it to the pathname prior\n      // to handing off to history (but only if we're not in a data router,\n      // otherwise it'll prepend the basename inside of the router).\n      // If this is a root navigation, then we navigate to the raw basename\n      // which allows the basename to have full control over the presence of a\n      // trailing slash on root links\n      if (dataRouterContext == null && basename !== \"/\") {\n        path.pathname =\n          path.pathname === \"/\"\n            ? basename\n            : joinPaths([basename, path.pathname]);\n      }\n\n      (!!options.replace ? navigator.replace : navigator.push)(\n        path,\n        options.state,\n        options\n      );\n    },\n    [\n      basename,\n      navigator,\n      routePathnamesJson,\n      locationPathname,\n      dataRouterContext,\n    ]\n  );\n\n  return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n  return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n  let outlet = React.useContext(RouteContext).outlet;\n  if (outlet) {\n    return (\n      <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n    );\n  }\n  return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n  ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n  [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n  let { matches } = React.useContext(RouteContext);\n  let routeMatch = matches[matches.length - 1];\n  return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n  to: To,\n  { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n  let { matches } = React.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n\n  let routePathnamesJson = JSON.stringify(\n    getPathContributingMatches(matches).map((match) => match.pathnameBase)\n  );\n\n  return React.useMemo(\n    () =>\n      resolveTo(\n        to,\n        JSON.parse(routePathnamesJson),\n        locationPathname,\n        relative === \"path\"\n      ),\n    [to, routePathnamesJson, locationPathname, relative]\n  );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n  routes: RouteObject[],\n  locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n  return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n  routes: RouteObject[],\n  locationArg?: Partial<Location> | string,\n  dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useRoutes() may be used only in the context of a <Router> component.`\n  );\n\n  let { navigator } = React.useContext(NavigationContext);\n  let { matches: parentMatches } = React.useContext(RouteContext);\n  let routeMatch = parentMatches[parentMatches.length - 1];\n  let parentParams = routeMatch ? routeMatch.params : {};\n  let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n  let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n  let parentRoute = routeMatch && routeMatch.route;\n\n  if (__DEV__) {\n    // You won't get a warning about 2 different <Routes> under a <Route>\n    // without a trailing *, but this is a best-effort warning anyway since we\n    // cannot even give the warning unless they land at the parent route.\n    //\n    // Example:\n    //\n    // <Routes>\n    //   {/* This route path MUST end with /* because otherwise\n    //       it will never match /blog/post/123 */}\n    //   <Route path=\"blog\" element={<Blog />} />\n    //   <Route path=\"blog/feed\" element={<BlogFeed />} />\n    // </Routes>\n    //\n    // function Blog() {\n    //   return (\n    //     <Routes>\n    //       <Route path=\"post/:id\" element={<Post />} />\n    //     </Routes>\n    //   );\n    // }\n    let parentPath = (parentRoute && parentRoute.path) || \"\";\n    warningOnce(\n      parentPathname,\n      !parentRoute || parentPath.endsWith(\"*\"),\n      `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n        `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n        `parent route path has no trailing \"*\". This means if you navigate ` +\n        `deeper, the parent won't match anymore and therefore the child ` +\n        `routes will never render.\\n\\n` +\n        `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n        `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n    );\n  }\n\n  let locationFromContext = useLocation();\n\n  let location;\n  if (locationArg) {\n    let parsedLocationArg =\n      typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n    invariant(\n      parentPathnameBase === \"/\" ||\n        parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n      `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n        `the location pathname must begin with the portion of the URL pathname that was ` +\n        `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n        `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n    );\n\n    location = parsedLocationArg;\n  } else {\n    location = locationFromContext;\n  }\n\n  let pathname = location.pathname || \"/\";\n  let remainingPathname =\n    parentPathnameBase === \"/\"\n      ? pathname\n      : pathname.slice(parentPathnameBase.length) || \"/\";\n\n  let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n  if (__DEV__) {\n    warning(\n      parentRoute || matches != null,\n      `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n    );\n\n    warning(\n      matches == null ||\n        matches[matches.length - 1].route.element !== undefined ||\n        matches[matches.length - 1].route.Component !== undefined,\n      `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n        `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n        `null value by default resulting in an \"empty\" page.`\n    );\n  }\n\n  let renderedMatches = _renderMatches(\n    matches &&\n      matches.map((match) =>\n        Object.assign({}, match, {\n          params: Object.assign({}, parentParams, match.params),\n          pathname: joinPaths([\n            parentPathnameBase,\n            // Re-encode pathnames that were decoded inside matchRoutes\n            navigator.encodeLocation\n              ? navigator.encodeLocation(match.pathname).pathname\n              : match.pathname,\n          ]),\n          pathnameBase:\n            match.pathnameBase === \"/\"\n              ? parentPathnameBase\n              : joinPaths([\n                  parentPathnameBase,\n                  // Re-encode pathnames that were decoded inside matchRoutes\n                  navigator.encodeLocation\n                    ? navigator.encodeLocation(match.pathnameBase).pathname\n                    : match.pathnameBase,\n                ]),\n        })\n      ),\n    parentMatches,\n    dataRouterState\n  );\n\n  // When a user passes in a `locationArg`, the associated routes need to\n  // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n  // to use the scoped location instead of the global location.\n  if (locationArg && renderedMatches) {\n    return (\n      <LocationContext.Provider\n        value={{\n          location: {\n            pathname: \"/\",\n            search: \"\",\n            hash: \"\",\n            state: null,\n            key: \"default\",\n            ...location,\n          },\n          navigationType: NavigationType.Pop,\n        }}\n      >\n        {renderedMatches}\n      </LocationContext.Provider>\n    );\n  }\n\n  return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n  let error = useRouteError();\n  let message = isRouteErrorResponse(error)\n    ? `${error.status} ${error.statusText}`\n    : error instanceof Error\n    ? error.message\n    : JSON.stringify(error);\n  let stack = error instanceof Error ? error.stack : null;\n  let lightgrey = \"rgba(200,200,200, 0.5)\";\n  let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n  let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n  let devInfo = null;\n  if (__DEV__) {\n    console.error(\n      \"Error handled by React Router default ErrorBoundary:\",\n      error\n    );\n\n    devInfo = (\n      <>\n        <p>💿 Hey developer 👋</p>\n        <p>\n          You can provide a way better UX than this when your app throws errors\n          by providing your own <code style={codeStyles}>ErrorBoundary</code> or{\" \"}\n          <code style={codeStyles}>errorElement</code> prop on your route.\n        </p>\n      </>\n    );\n  }\n\n  return (\n    <>\n      <h2>Unexpected Application Error!</h2>\n      <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n      {stack ? <pre style={preStyles}>{stack}</pre> : null}\n      {devInfo}\n    </>\n  );\n}\n\nconst defaultErrorElement = <DefaultErrorComponent />;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n  location: Location;\n  revalidation: RevalidationState;\n  error: any;\n  component: React.ReactNode;\n  routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n  location: Location;\n  revalidation: RevalidationState;\n  error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n  RenderErrorBoundaryProps,\n  RenderErrorBoundaryState\n> {\n  constructor(props: RenderErrorBoundaryProps) {\n    super(props);\n    this.state = {\n      location: props.location,\n      revalidation: props.revalidation,\n      error: props.error,\n    };\n  }\n\n  static getDerivedStateFromError(error: any) {\n    return { error: error };\n  }\n\n  static getDerivedStateFromProps(\n    props: RenderErrorBoundaryProps,\n    state: RenderErrorBoundaryState\n  ) {\n    // When we get into an error state, the user will likely click \"back\" to the\n    // previous page that didn't have an error. Because this wraps the entire\n    // application, that will have no effect--the error page continues to display.\n    // This gives us a mechanism to recover from the error when the location changes.\n    //\n    // Whether we're in an error state or not, we update the location in state\n    // so that when we are in an error state, it gets reset when a new location\n    // comes in and the user recovers from the error.\n    if (\n      state.location !== props.location ||\n      (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n    ) {\n      return {\n        error: props.error,\n        location: props.location,\n        revalidation: props.revalidation,\n      };\n    }\n\n    // If we're not changing locations, preserve the location but still surface\n    // any new errors that may come through. We retain the existing error, we do\n    // this because the error provided from the app state may be cleared without\n    // the location changing.\n    return {\n      error: props.error || state.error,\n      location: state.location,\n      revalidation: props.revalidation || state.revalidation,\n    };\n  }\n\n  componentDidCatch(error: any, errorInfo: any) {\n    console.error(\n      \"React Router caught the following error during render\",\n      error,\n      errorInfo\n    );\n  }\n\n  render() {\n    return this.state.error ? (\n      <RouteContext.Provider value={this.props.routeContext}>\n        <RouteErrorContext.Provider\n          value={this.state.error}\n          children={this.props.component}\n        />\n      </RouteContext.Provider>\n    ) : (\n      this.props.children\n    );\n  }\n}\n\ninterface RenderedRouteProps {\n  routeContext: RouteContextObject;\n  match: RouteMatch<string, RouteObject>;\n  children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n  let dataRouterContext = React.useContext(DataRouterContext);\n\n  // Track how deep we got in our render pass to emulate SSR componentDidCatch\n  // in a DataStaticRouter\n  if (\n    dataRouterContext &&\n    dataRouterContext.static &&\n    dataRouterContext.staticContext &&\n    (match.route.errorElement || match.route.ErrorBoundary)\n  ) {\n    dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n  }\n\n  return (\n    <RouteContext.Provider value={routeContext}>\n      {children}\n    </RouteContext.Provider>\n  );\n}\n\nexport function _renderMatches(\n  matches: RouteMatch[] | null,\n  parentMatches: RouteMatch[] = [],\n  dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n  if (matches == null) {\n    if (dataRouterState?.errors) {\n      // Don't bail if we have data router errors so we can render them in the\n      // boundary.  Use the pre-matched (or shimmed) matches\n      matches = dataRouterState.matches as DataRouteMatch[];\n    } else {\n      return null;\n    }\n  }\n\n  let renderedMatches = matches;\n\n  // If we have data errors, trim matches to the highest error boundary\n  let errors = dataRouterState?.errors;\n  if (errors != null) {\n    let errorIndex = renderedMatches.findIndex(\n      (m) => m.route.id && errors?.[m.route.id]\n    );\n    invariant(\n      errorIndex >= 0,\n      `Could not find a matching route for errors on route IDs: ${Object.keys(\n        errors\n      ).join(\",\")}`\n    );\n    renderedMatches = renderedMatches.slice(\n      0,\n      Math.min(renderedMatches.length, errorIndex + 1)\n    );\n  }\n\n  return renderedMatches.reduceRight((outlet, match, index) => {\n    let error = match.route.id ? errors?.[match.route.id] : null;\n    // Only data routers handle errors\n    let errorElement: React.ReactNode | null = null;\n    if (dataRouterState) {\n      errorElement = match.route.errorElement || defaultErrorElement;\n    }\n    let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n    let getChildren = () => {\n      let children: React.ReactNode;\n      if (error) {\n        children = errorElement;\n      } else if (match.route.Component) {\n        // Note: This is a de-optimized path since React won't re-use the\n        // ReactElement since it's identity changes with each new\n        // React.createElement call.  We keep this so folks can use\n        // `<Route Component={...}>` in `<Routes>` but generally `Component`\n        // usage is only advised in `RouterProvider` when we can convert it to\n        // `element` ahead of time.\n        children = <match.route.Component />;\n      } else if (match.route.element) {\n        children = match.route.element;\n      } else {\n        children = outlet;\n      }\n      return (\n        <RenderedRoute\n          match={match}\n          routeContext={{\n            outlet,\n            matches,\n            isDataRoute: dataRouterState != null,\n          }}\n          children={children}\n        />\n      );\n    };\n    // Only wrap in an error boundary within data router usages when we have an\n    // ErrorBoundary/errorElement on this route.  Otherwise let it bubble up to\n    // an ancestor ErrorBoundary/errorElement\n    return dataRouterState &&\n      (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n      <RenderErrorBoundary\n        location={dataRouterState.location}\n        revalidation={dataRouterState.revalidation}\n        component={errorElement}\n        error={error}\n        children={getChildren()}\n        routeContext={{ outlet: null, matches, isDataRoute: true }}\n      />\n    ) : (\n      getChildren()\n    );\n  }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n  UseBlocker = \"useBlocker\",\n  UseRevalidator = \"useRevalidator\",\n  UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n  UseBlocker = \"useBlocker\",\n  UseLoaderData = \"useLoaderData\",\n  UseActionData = \"useActionData\",\n  UseRouteError = \"useRouteError\",\n  UseNavigation = \"useNavigation\",\n  UseRouteLoaderData = \"useRouteLoaderData\",\n  UseMatches = \"useMatches\",\n  UseRevalidator = \"useRevalidator\",\n  UseNavigateStable = \"useNavigate\",\n  UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n  hookName: DataRouterHook | DataRouterStateHook\n) {\n  return `${hookName} must be used within a data router.  See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n  let ctx = React.useContext(DataRouterContext);\n  invariant(ctx, getDataRouterConsoleError(hookName));\n  return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n  let state = React.useContext(DataRouterStateContext);\n  invariant(state, getDataRouterConsoleError(hookName));\n  return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n  let route = React.useContext(RouteContext);\n  invariant(route, getDataRouterConsoleError(hookName));\n  return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n  let route = useRouteContext(hookName);\n  let thisRoute = route.matches[route.matches.length - 1];\n  invariant(\n    thisRoute.route.id,\n    `${hookName} can only be used on routes that contain a unique \"id\"`\n  );\n  return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n  return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n  let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n  return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n  let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n  let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n  return {\n    revalidate: dataRouterContext.router.revalidate,\n    state: state.revalidation,\n  };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n  let { matches, loaderData } = useDataRouterState(\n    DataRouterStateHook.UseMatches\n  );\n  return React.useMemo(\n    () =>\n      matches.map((match) => {\n        let { pathname, params } = match;\n        // Note: This structure matches that created by createUseMatchesMatch\n        // in the @remix-run/router , so if you change this please also change\n        // that :)  Eventually we'll DRY this up\n        return {\n          id: match.route.id,\n          pathname,\n          params,\n          data: loaderData[match.route.id] as unknown,\n          handle: match.route.handle as unknown,\n        };\n      }),\n    [matches, loaderData]\n  );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n  let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n  let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n  if (state.errors && state.errors[routeId] != null) {\n    console.error(\n      `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n    );\n    return undefined;\n  }\n  return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n  let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n  return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n  let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n  let route = React.useContext(RouteContext);\n  invariant(route, `useActionData must be used inside a RouteContext`);\n\n  return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error.  This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n  let error = React.useContext(RouteErrorContext);\n  let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n  let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n  // If this was a render error, we put it in a RouteError context inside\n  // of RenderErrorBoundary\n  if (error) {\n    return error;\n  }\n\n  // Otherwise look for errors from our data router state\n  return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n  let value = React.useContext(AwaitContext);\n  return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n  let value = React.useContext(AwaitContext);\n  return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation.  Mostly used to avoid\n * using half-filled form data.  This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n  let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n  let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n  let [blockerKey, setBlockerKey] = React.useState(\"\");\n  let blockerFunction = React.useCallback<BlockerFunction>(\n    (arg) => {\n      if (typeof shouldBlock !== \"function\") {\n        return !!shouldBlock;\n      }\n      if (basename === \"/\") {\n        return shouldBlock(arg);\n      }\n\n      // If they provided us a function and we've got an active basename, strip\n      // it from the locations we expose to the user to match the behavior of\n      // useLocation\n      let { currentLocation, nextLocation, historyAction } = arg;\n      return shouldBlock({\n        currentLocation: {\n          ...currentLocation,\n          pathname:\n            stripBasename(currentLocation.pathname, basename) ||\n            currentLocation.pathname,\n        },\n        nextLocation: {\n          ...nextLocation,\n          pathname:\n            stripBasename(nextLocation.pathname, basename) ||\n            nextLocation.pathname,\n        },\n        historyAction,\n      });\n    },\n    [basename, shouldBlock]\n  );\n\n  // This effect is in charge of blocker key assignment and deletion (which is\n  // tightly coupled to the key)\n  React.useEffect(() => {\n    let key = String(++blockerId);\n    setBlockerKey(key);\n    return () => router.deleteBlocker(key);\n  }, [router]);\n\n  // This effect handles assigning the blockerFunction.  This is to handle\n  // unstable blocker function identities, and happens only after the prior\n  // effect so we don't get an orphaned blockerFunction in the router with a\n  // key of \"\".  Until then we just have the IDLE_BLOCKER.\n  React.useEffect(() => {\n    if (blockerKey !== \"\") {\n      router.getBlocker(blockerKey, blockerFunction);\n    }\n  }, [router, blockerKey, blockerFunction]);\n\n  // Prefer the blocker from `state` not `router.state` since DataRouterContext\n  // is memoized so this ensures we update on blocker state updates\n  return blockerKey && state.blockers.has(blockerKey)\n    ? state.blockers.get(blockerKey)!\n    : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n  let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n  let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n  let activeRef = React.useRef(false);\n  useIsomorphicLayoutEffect(() => {\n    activeRef.current = true;\n  });\n\n  let navigate: NavigateFunction = React.useCallback(\n    (to: To | number, options: NavigateOptions = {}) => {\n      warning(activeRef.current, navigateEffectWarning);\n\n      // Short circuit here since if this happens on first render the navigate\n      // is useless because we haven't wired up our router subscriber yet\n      if (!activeRef.current) return;\n\n      if (typeof to === \"number\") {\n        router.navigate(to);\n      } else {\n        router.navigate(to, { fromRouteId: id, ...options });\n      }\n    },\n    [router, id]\n  );\n\n  return navigate;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n  if (!cond && !alreadyWarned[key]) {\n    alreadyWarned[key] = true;\n    warning(false, message);\n  }\n}\n","import * as React from \"react\";\nimport type {\n  TrackedPromise,\n  InitialEntry,\n  Location,\n  MemoryHistory,\n  Router as RemixRouter,\n  To,\n  LazyRouteFunction,\n  RelativeRoutingType,\n  RouterState,\n} from \"@remix-run/router\";\nimport {\n  Action as NavigationType,\n  AbortedDeferredError,\n  createMemoryHistory,\n  UNSAFE_invariant as invariant,\n  parsePath,\n  resolveTo,\n  stripBasename,\n  UNSAFE_warning as warning,\n  UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n  DataRouteObject,\n  IndexRouteObject,\n  RouteMatch,\n  RouteObject,\n  Navigator,\n  NonIndexRouteObject,\n} from \"./context\";\nimport {\n  LocationContext,\n  NavigationContext,\n  DataRouterContext,\n  DataRouterStateContext,\n  AwaitContext,\n  RouteContext,\n} from \"./context\";\nimport {\n  useAsyncValue,\n  useInRouterContext,\n  useNavigate,\n  useOutlet,\n  useRoutes,\n  _renderMatches,\n  useRoutesImpl,\n  useLocation,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n  v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n  fallbackElement?: React.ReactNode;\n  router: RemixRouter;\n  future?: FutureConfig;\n}\n\n/**\n  Webpack + React 17 fails to compile on any of the following because webpack\n  complains that `startTransition` doesn't exist in `React`:\n  * import { startTransition } from \"react\"\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n  * import * as React from from \"react\";\n    \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n  Moving it to a constant such as the following solves the Webpack/React 17 issue:\n  * import * as React from from \"react\";\n    const START_TRANSITION = \"startTransition\";\n    START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n  However, that introduces webpack/terser minification issues in production builds\n  in React 18 where minification/obfuscation ends up removing the call of\n  React.startTransition entirely from the first half of the ternary.  Grabbing\n  this exported reference once up front resolves that issue.\n\n  See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n  fallbackElement,\n  router,\n  future,\n}: RouterProviderProps): React.ReactElement {\n  // Need to use a layout effect here so we are subscribed early enough to\n  // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n  let [state, setStateImpl] = React.useState(router.state);\n  let { v7_startTransition } = future || {};\n  let setState = React.useCallback(\n    (newState: RouterState) => {\n      v7_startTransition && startTransitionImpl\n        ? startTransitionImpl(() => setStateImpl(newState))\n        : setStateImpl(newState);\n    },\n    [setStateImpl, v7_startTransition]\n  );\n  React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n  let navigator = React.useMemo((): Navigator => {\n    return {\n      createHref: router.createHref,\n      encodeLocation: router.encodeLocation,\n      go: (n) => router.navigate(n),\n      push: (to, state, opts) =>\n        router.navigate(to, {\n          state,\n          preventScrollReset: opts?.preventScrollReset,\n        }),\n      replace: (to, state, opts) =>\n        router.navigate(to, {\n          replace: true,\n          state,\n          preventScrollReset: opts?.preventScrollReset,\n        }),\n    };\n  }, [router]);\n\n  let basename = router.basename || \"/\";\n\n  let dataRouterContext = React.useMemo(\n    () => ({\n      router,\n      navigator,\n      static: false,\n      basename,\n    }),\n    [router, navigator, basename]\n  );\n\n  // The fragment and {null} here are important!  We need them to keep React 18's\n  // useId happy when we are server-rendering since we may have a <script> here\n  // containing the hydrated server-side staticContext (from StaticRouterProvider).\n  // useId relies on the component tree structure to generate deterministic id's\n  // so we need to ensure it remains the same on the client even though\n  // we don't need the <script> tag\n  return (\n    <>\n      <DataRouterContext.Provider value={dataRouterContext}>\n        <DataRouterStateContext.Provider value={state}>\n          <Router\n            basename={basename}\n            location={state.location}\n            navigationType={state.historyAction}\n            navigator={navigator}\n          >\n            {state.initialized ? (\n              <DataRoutes routes={router.routes} state={state} />\n            ) : (\n              fallbackElement\n            )}\n          </Router>\n        </DataRouterStateContext.Provider>\n      </DataRouterContext.Provider>\n      {null}\n    </>\n  );\n}\n\nfunction DataRoutes({\n  routes,\n  state,\n}: {\n  routes: DataRouteObject[];\n  state: RouterState;\n}): React.ReactElement | null {\n  return useRoutesImpl(routes, undefined, state);\n}\n\nexport interface MemoryRouterProps {\n  basename?: string;\n  children?: React.ReactNode;\n  initialEntries?: InitialEntry[];\n  initialIndex?: number;\n  future?: FutureConfig;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n  basename,\n  children,\n  initialEntries,\n  initialIndex,\n  future,\n}: MemoryRouterProps): React.ReactElement {\n  let historyRef = React.useRef<MemoryHistory>();\n  if (historyRef.current == null) {\n    historyRef.current = createMemoryHistory({\n      initialEntries,\n      initialIndex,\n      v5Compat: true,\n    });\n  }\n\n  let history = historyRef.current;\n  let [state, setStateImpl] = React.useState({\n    action: history.action,\n    location: history.location,\n  });\n  let { v7_startTransition } = future || {};\n  let setState = React.useCallback(\n    (newState: { action: NavigationType; location: Location }) => {\n      v7_startTransition && startTransitionImpl\n        ? startTransitionImpl(() => setStateImpl(newState))\n        : setStateImpl(newState);\n    },\n    [setStateImpl, v7_startTransition]\n  );\n\n  React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n  return (\n    <Router\n      basename={basename}\n      children={children}\n      location={state.location}\n      navigationType={state.action}\n      navigator={history}\n    />\n  );\n}\n\nexport interface NavigateProps {\n  to: To;\n  replace?: boolean;\n  state?: any;\n  relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n  to,\n  replace,\n  state,\n  relative,\n}: NavigateProps): null {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of\n    // the router loaded. We can help them understand how to avoid that.\n    `<Navigate> may be used only in the context of a <Router> component.`\n  );\n\n  warning(\n    !React.useContext(NavigationContext).static,\n    `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n      `This is a no-op, but you should modify your code so the <Navigate> is ` +\n      `only ever rendered in response to some user interaction or state change.`\n  );\n\n  let { matches } = React.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n  let navigate = useNavigate();\n\n  // Resolve the path outside of the effect so that when effects run twice in\n  // StrictMode they navigate to the same place\n  let path = resolveTo(\n    to,\n    getPathContributingMatches(matches).map((match) => match.pathnameBase),\n    locationPathname,\n    relative === \"path\"\n  );\n  let jsonPath = JSON.stringify(path);\n\n  React.useEffect(\n    () => navigate(JSON.parse(jsonPath), { replace, state, relative }),\n    [navigate, jsonPath, relative, replace, state]\n  );\n\n  return null;\n}\n\nexport interface OutletProps {\n  context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n  return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n  caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n  path?: NonIndexRouteObject[\"path\"];\n  id?: NonIndexRouteObject[\"id\"];\n  lazy?: LazyRouteFunction<NonIndexRouteObject>;\n  loader?: NonIndexRouteObject[\"loader\"];\n  action?: NonIndexRouteObject[\"action\"];\n  hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n  handle?: NonIndexRouteObject[\"handle\"];\n  index?: false;\n  children?: React.ReactNode;\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n  caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n  path?: IndexRouteObject[\"path\"];\n  id?: IndexRouteObject[\"id\"];\n  lazy?: LazyRouteFunction<IndexRouteObject>;\n  loader?: IndexRouteObject[\"loader\"];\n  action?: IndexRouteObject[\"action\"];\n  hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n  shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n  handle?: IndexRouteObject[\"handle\"];\n  index: true;\n  children?: undefined;\n  element?: React.ReactNode | null;\n  errorElement?: React.ReactNode | null;\n  Component?: React.ComponentType | null;\n  ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n  invariant(\n    false,\n    `A <Route> is only ever to be used as the child of <Routes> element, ` +\n      `never rendered directly. Please wrap your <Route> in a <Routes>.`\n  );\n}\n\nexport interface RouterProps {\n  basename?: string;\n  children?: React.ReactNode;\n  location: Partial<Location> | string;\n  navigationType?: NavigationType;\n  navigator: Navigator;\n  static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n  basename: basenameProp = \"/\",\n  children = null,\n  location: locationProp,\n  navigationType = NavigationType.Pop,\n  navigator,\n  static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n  invariant(\n    !useInRouterContext(),\n    `You cannot render a <Router> inside another <Router>.` +\n      ` You should never have more than one in your app.`\n  );\n\n  // Preserve trailing slashes on basename, so we can let the user control\n  // the enforcement of trailing slashes throughout the app\n  let basename = basenameProp.replace(/^\\/*/, \"/\");\n  let navigationContext = React.useMemo(\n    () => ({ basename, navigator, static: staticProp }),\n    [basename, navigator, staticProp]\n  );\n\n  if (typeof locationProp === \"string\") {\n    locationProp = parsePath(locationProp);\n  }\n\n  let {\n    pathname = \"/\",\n    search = \"\",\n    hash = \"\",\n    state = null,\n    key = \"default\",\n  } = locationProp;\n\n  let locationContext = React.useMemo(() => {\n    let trailingPathname = stripBasename(pathname, basename);\n\n    if (trailingPathname == null) {\n      return null;\n    }\n\n    return {\n      location: {\n        pathname: trailingPathname,\n        search,\n        hash,\n        state,\n        key,\n      },\n      navigationType,\n    };\n  }, [basename, pathname, search, hash, state, key, navigationType]);\n\n  warning(\n    locationContext != null,\n    `<Router basename=\"${basename}\"> is not able to match the URL ` +\n      `\"${pathname}${search}${hash}\" because it does not start with the ` +\n      `basename, so the <Router> won't render anything.`\n  );\n\n  if (locationContext == null) {\n    return null;\n  }\n\n  return (\n    <NavigationContext.Provider value={navigationContext}>\n      <LocationContext.Provider children={children} value={locationContext} />\n    </NavigationContext.Provider>\n  );\n}\n\nexport interface RoutesProps {\n  children?: React.ReactNode;\n  location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n  children,\n  location,\n}: RoutesProps): React.ReactElement | null {\n  return useRoutes(createRoutesFromChildren(children), location);\n}\n\nexport interface AwaitResolveRenderFunction {\n  (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n  children: React.ReactNode | AwaitResolveRenderFunction;\n  errorElement?: React.ReactNode;\n  resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n  return (\n    <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n      <ResolveAwait>{children}</ResolveAwait>\n    </AwaitErrorBoundary>\n  );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n  errorElement?: React.ReactNode;\n  resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n  error: any;\n};\n\nenum AwaitRenderStatus {\n  pending,\n  success,\n  error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n  AwaitErrorBoundaryProps,\n  AwaitErrorBoundaryState\n> {\n  constructor(props: AwaitErrorBoundaryProps) {\n    super(props);\n    this.state = { error: null };\n  }\n\n  static getDerivedStateFromError(error: any) {\n    return { error };\n  }\n\n  componentDidCatch(error: any, errorInfo: any) {\n    console.error(\n      \"<Await> caught the following error during render\",\n      error,\n      errorInfo\n    );\n  }\n\n  render() {\n    let { children, errorElement, resolve } = this.props;\n\n    let promise: TrackedPromise | null = null;\n    let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n    if (!(resolve instanceof Promise)) {\n      // Didn't get a promise - provide as a resolved promise\n      status = AwaitRenderStatus.success;\n      promise = Promise.resolve();\n      Object.defineProperty(promise, \"_tracked\", { get: () => true });\n      Object.defineProperty(promise, \"_data\", { get: () => resolve });\n    } else if (this.state.error) {\n      // Caught a render error, provide it as a rejected promise\n      status = AwaitRenderStatus.error;\n      let renderError = this.state.error;\n      promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n      Object.defineProperty(promise, \"_tracked\", { get: () => true });\n      Object.defineProperty(promise, \"_error\", { get: () => renderError });\n    } else if ((resolve as TrackedPromise)._tracked) {\n      // Already tracked promise - check contents\n      promise = resolve;\n      status =\n        promise._error !== undefined\n          ? AwaitRenderStatus.error\n          : promise._data !== undefined\n          ? AwaitRenderStatus.success\n          : AwaitRenderStatus.pending;\n    } else {\n      // Raw (untracked) promise - track it\n      status = AwaitRenderStatus.pending;\n      Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n      promise = resolve.then(\n        (data: any) =>\n          Object.defineProperty(resolve, \"_data\", { get: () => data }),\n        (error: any) =>\n          Object.defineProperty(resolve, \"_error\", { get: () => error })\n      );\n    }\n\n    if (\n      status === AwaitRenderStatus.error &&\n      promise._error instanceof AbortedDeferredError\n    ) {\n      // Freeze the UI by throwing a never resolved promise\n      throw neverSettledPromise;\n    }\n\n    if (status === AwaitRenderStatus.error && !errorElement) {\n      // No errorElement, throw to the nearest route-level error boundary\n      throw promise._error;\n    }\n\n    if (status === AwaitRenderStatus.error) {\n      // Render via our errorElement\n      return <AwaitContext.Provider value={promise} children={errorElement} />;\n    }\n\n    if (status === AwaitRenderStatus.success) {\n      // Render children with resolved value\n      return <AwaitContext.Provider value={promise} children={children} />;\n    }\n\n    // Throw to the suspense boundary\n    throw promise;\n  }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n  children,\n}: {\n  children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n  let data = useAsyncValue();\n  let toRender = typeof children === \"function\" ? children(data) : children;\n  return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n  children: React.ReactNode,\n  parentPath: number[] = []\n): RouteObject[] {\n  let routes: RouteObject[] = [];\n\n  React.Children.forEach(children, (element, index) => {\n    if (!React.isValidElement(element)) {\n      // Ignore non-elements. This allows people to more easily inline\n      // conditionals in their route config.\n      return;\n    }\n\n    let treePath = [...parentPath, index];\n\n    if (element.type === React.Fragment) {\n      // Transparently support React.Fragment and its children.\n      routes.push.apply(\n        routes,\n        createRoutesFromChildren(element.props.children, treePath)\n      );\n      return;\n    }\n\n    invariant(\n      element.type === Route,\n      `[${\n        typeof element.type === \"string\" ? element.type : element.type.name\n      }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n    );\n\n    invariant(\n      !element.props.index || !element.props.children,\n      \"An index route cannot have child routes.\"\n    );\n\n    let route: RouteObject = {\n      id: element.props.id || treePath.join(\"-\"),\n      caseSensitive: element.props.caseSensitive,\n      element: element.props.element,\n      Component: element.props.Component,\n      index: element.props.index,\n      path: element.props.path,\n      loader: element.props.loader,\n      action: element.props.action,\n      errorElement: element.props.errorElement,\n      ErrorBoundary: element.props.ErrorBoundary,\n      hasErrorBoundary:\n        element.props.ErrorBoundary != null ||\n        element.props.errorElement != null,\n      shouldRevalidate: element.props.shouldRevalidate,\n      handle: element.props.handle,\n      lazy: element.props.lazy,\n    };\n\n    if (element.props.children) {\n      route.children = createRoutesFromChildren(\n        element.props.children,\n        treePath\n      );\n    }\n\n    routes.push(route);\n  });\n\n  return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n  matches: RouteMatch[] | null\n): React.ReactElement | null {\n  return _renderMatches(matches);\n}\n","import * as React from \"react\";\nimport type {\n  ActionFunction,\n  ActionFunctionArgs,\n  Blocker,\n  BlockerFunction,\n  Fetcher,\n  HydrationState,\n  JsonFunction,\n  LoaderFunction,\n  LoaderFunctionArgs,\n  Location,\n  Navigation,\n  Params,\n  ParamParseKey,\n  Path,\n  PathMatch,\n  PathPattern,\n  RedirectFunction,\n  RelativeRoutingType,\n  Router as RemixRouter,\n  ShouldRevalidateFunction,\n  To,\n  InitialEntry,\n  LazyRouteFunction,\n  FutureConfig as RouterFutureConfig,\n} from \"@remix-run/router\";\nimport {\n  AbortedDeferredError,\n  Action as NavigationType,\n  createMemoryHistory,\n  createPath,\n  createRouter,\n  defer,\n  generatePath,\n  isRouteErrorResponse,\n  json,\n  matchPath,\n  matchRoutes,\n  parsePath,\n  redirect,\n  resolvePath,\n  UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n  AwaitProps,\n  MemoryRouterProps,\n  NavigateProps,\n  OutletProps,\n  RouteProps,\n  PathRouteProps,\n  LayoutRouteProps,\n  IndexRouteProps,\n  RouterProps,\n  RoutesProps,\n  RouterProviderProps,\n  FutureConfig,\n} from \"./lib/components\";\nimport {\n  createRoutesFromChildren,\n  renderMatches,\n  Await,\n  MemoryRouter,\n  Navigate,\n  Outlet,\n  Route,\n  Router,\n  RouterProvider,\n  Routes,\n} from \"./lib/components\";\nimport type {\n  DataRouteMatch,\n  DataRouteObject,\n  IndexRouteObject,\n  Navigator,\n  NavigateOptions,\n  NonIndexRouteObject,\n  RouteMatch,\n  RouteObject,\n} from \"./lib/context\";\nimport {\n  DataRouterContext,\n  DataRouterStateContext,\n  LocationContext,\n  NavigationContext,\n  RouteContext,\n} from \"./lib/context\";\nimport type { NavigateFunction } from \"./lib/hooks\";\nimport {\n  useBlocker,\n  useHref,\n  useInRouterContext,\n  useLocation,\n  useMatch,\n  useNavigationType,\n  useNavigate,\n  useOutlet,\n  useOutletContext,\n  useParams,\n  useResolvedPath,\n  useRoutes,\n  useActionData,\n  useAsyncError,\n  useAsyncValue,\n  useRouteId,\n  useLoaderData,\n  useMatches,\n  useNavigation,\n  useRevalidator,\n  useRouteError,\n  useRouteLoaderData,\n  useRoutesImpl,\n} from \"./lib/hooks\";\n\n// Exported for backwards compatibility, but not being used internally anymore\ntype Hash = string;\ntype Pathname = string;\ntype Search = string;\n\n// Expose react-router public API\nexport type {\n  ActionFunction,\n  ActionFunctionArgs,\n  AwaitProps,\n  Blocker as unstable_Blocker,\n  BlockerFunction as unstable_BlockerFunction,\n  DataRouteMatch,\n  DataRouteObject,\n  Fetcher,\n  FutureConfig,\n  Hash,\n  IndexRouteObject,\n  IndexRouteProps,\n  JsonFunction,\n  LazyRouteFunction,\n  LayoutRouteProps,\n  LoaderFunction,\n  LoaderFunctionArgs,\n  Location,\n  MemoryRouterProps,\n  NavigateFunction,\n  NavigateOptions,\n  NavigateProps,\n  Navigation,\n  Navigator,\n  NonIndexRouteObject,\n  OutletProps,\n  Params,\n  ParamParseKey,\n  Path,\n  PathMatch,\n  Pathname,\n  PathPattern,\n  PathRouteProps,\n  RedirectFunction,\n  RelativeRoutingType,\n  RouteMatch,\n  RouteObject,\n  RouteProps,\n  RouterProps,\n  RouterProviderProps,\n  RoutesProps,\n  Search,\n  ShouldRevalidateFunction,\n  To,\n};\nexport {\n  AbortedDeferredError,\n  Await,\n  MemoryRouter,\n  Navigate,\n  NavigationType,\n  Outlet,\n  Route,\n  Router,\n  RouterProvider,\n  Routes,\n  createPath,\n  createRoutesFromChildren,\n  createRoutesFromChildren as createRoutesFromElements,\n  defer,\n  isRouteErrorResponse,\n  generatePath,\n  json,\n  matchPath,\n  matchRoutes,\n  parsePath,\n  redirect,\n  renderMatches,\n  resolvePath,\n  useActionData,\n  useAsyncError,\n  useAsyncValue,\n  useBlocker as unstable_useBlocker,\n  useHref,\n  useInRouterContext,\n  useLoaderData,\n  useLocation,\n  useMatch,\n  useMatches,\n  useNavigate,\n  useNavigation,\n  useNavigationType,\n  useOutlet,\n  useOutletContext,\n  useParams,\n  useResolvedPath,\n  useRevalidator,\n  useRouteError,\n  useRouteLoaderData,\n  useRoutes,\n};\n\nfunction mapRouteProperties(route: RouteObject) {\n  let updates: Partial<RouteObject> & { hasErrorBoundary: boolean } = {\n    // Note: this check also occurs in createRoutesFromChildren so update\n    // there if you change this -- please and thank you!\n    hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null,\n  };\n\n  if (route.Component) {\n    if (__DEV__) {\n      if (route.element) {\n        warning(\n          false,\n          \"You should not include both `Component` and `element` on your route - \" +\n            \"`Component` will be used.\"\n        );\n      }\n    }\n    Object.assign(updates, {\n      element: React.createElement(route.Component),\n      Component: undefined,\n    });\n  }\n\n  if (route.ErrorBoundary) {\n    if (__DEV__) {\n      if (route.errorElement) {\n        warning(\n          false,\n          \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" +\n            \"`ErrorBoundary` will be used.\"\n        );\n      }\n    }\n    Object.assign(updates, {\n      errorElement: React.createElement(route.ErrorBoundary),\n      ErrorBoundary: undefined,\n    });\n  }\n\n  return updates;\n}\n\nexport function createMemoryRouter(\n  routes: RouteObject[],\n  opts?: {\n    basename?: string;\n    future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n    hydrationData?: HydrationState;\n    initialEntries?: InitialEntry[];\n    initialIndex?: number;\n  }\n): RemixRouter {\n  return createRouter({\n    basename: opts?.basename,\n    future: {\n      ...opts?.future,\n      v7_prependBasename: true,\n    },\n    history: createMemoryHistory({\n      initialEntries: opts?.initialEntries,\n      initialIndex: opts?.initialIndex,\n    }),\n    hydrationData: opts?.hydrationData,\n    routes,\n    mapRouteProperties,\n  }).initialize();\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n  NavigationContext as UNSAFE_NavigationContext,\n  LocationContext as UNSAFE_LocationContext,\n  RouteContext as UNSAFE_RouteContext,\n  DataRouterContext as UNSAFE_DataRouterContext,\n  DataRouterStateContext as UNSAFE_DataRouterStateContext,\n  mapRouteProperties as UNSAFE_mapRouteProperties,\n  useRouteId as UNSAFE_useRouteId,\n  useRoutesImpl as UNSAFE_useRoutesImpl,\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}