zudoku 0.0.0-fed343e → 0.0.0-ff27e7ea
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +141 -0
- package/cli.js +12 -2
- package/client.d.ts +7 -0
- package/dist/app/ZuploBuildConfig.d.ts +45 -0
- package/dist/app/ZuploBuildConfig.js +29 -0
- package/dist/app/ZuploBuildConfig.js.map +1 -0
- package/dist/app/demo.js +23 -10
- package/dist/app/demo.js.map +1 -1
- package/dist/app/entry.client.d.ts +6 -2
- package/dist/app/entry.client.js +56 -7
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.d.ts +9 -8
- package/dist/app/entry.server.js +36 -18
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/env.d.ts +33 -0
- package/dist/app/env.js +37 -0
- package/dist/app/env.js.map +1 -0
- package/dist/app/main.d.ts +94 -2
- package/dist/app/main.js +64 -70
- package/dist/app/main.js.map +1 -1
- package/dist/app/sentry.d.ts +3 -0
- package/dist/app/sentry.js +19 -0
- package/dist/app/sentry.js.map +1 -0
- package/dist/app/standalone.js +12 -11
- package/dist/app/standalone.js.map +1 -1
- package/dist/cli/build/handler.d.ts +1 -3
- package/dist/cli/build/handler.js +18 -2
- package/dist/cli/build/handler.js.map +1 -1
- package/dist/cli/cli.d.ts +9 -0
- package/dist/cli/cli.js +23 -15
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/cmds/build.d.ts +11 -3
- package/dist/cli/cmds/build.js +21 -13
- package/dist/cli/cmds/build.js.map +1 -1
- package/dist/cli/cmds/dev.d.ts +1 -1
- package/dist/cli/cmds/dev.js +5 -0
- package/dist/cli/cmds/dev.js.map +1 -1
- package/dist/cli/cmds/preview.d.ts +16 -0
- package/dist/cli/cmds/preview.js +25 -0
- package/dist/cli/cmds/preview.js.map +1 -0
- package/dist/cli/common/analytics/lib.js +1 -1
- package/dist/cli/common/analytics/lib.js.map +1 -1
- package/dist/cli/common/logger.js +8 -0
- package/dist/cli/common/logger.js.map +1 -1
- package/dist/cli/common/machine-id/lib.js +3 -1
- package/dist/cli/common/machine-id/lib.js.map +1 -1
- package/dist/cli/common/outdated.js +4 -2
- package/dist/cli/common/outdated.js.map +1 -1
- package/dist/cli/common/output.js +2 -3
- package/dist/cli/common/output.js.map +1 -1
- package/dist/cli/common/utils/box.js +2 -2
- package/dist/cli/common/utils/box.js.map +1 -1
- package/dist/cli/common/utils/ports.d.ts +1 -1
- package/dist/cli/common/utils/ports.js +16 -15
- package/dist/cli/common/utils/ports.js.map +1 -1
- package/dist/cli/common/validators/lib.js +1 -1
- package/dist/cli/common/validators/lib.js.map +1 -1
- package/dist/cli/common/version-check.d.ts +2 -0
- package/dist/cli/common/version-check.js +58 -0
- package/dist/cli/common/version-check.js.map +1 -0
- package/dist/cli/dev/handler.d.ts +1 -0
- package/dist/cli/dev/handler.js +15 -16
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/cli/preview/handler.d.ts +3 -0
- package/dist/cli/preview/handler.js +35 -0
- package/dist/cli/preview/handler.js.map +1 -0
- package/dist/codegen.d.ts +3 -0
- package/dist/codegen.js +45 -0
- package/dist/codegen.js.map +1 -0
- package/dist/config/config.d.ts +21 -35
- package/dist/config/file-exists.d.ts +1 -0
- package/dist/config/file-exists.js +5 -0
- package/dist/config/file-exists.js.map +1 -0
- package/dist/config/loader.d.ts +21 -0
- package/dist/config/loader.js +141 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/validators/BuildSchema.d.ts +44 -0
- package/dist/config/validators/BuildSchema.js +42 -0
- package/dist/config/validators/BuildSchema.js.map +1 -0
- package/dist/config/validators/InputNavigationSchema.d.ts +7646 -0
- package/dist/config/validators/InputNavigationSchema.js +78 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js +146 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -0
- package/dist/config/validators/NavigationSchema.d.ts +44 -0
- package/dist/config/validators/NavigationSchema.js +98 -0
- package/dist/config/validators/NavigationSchema.js.map +1 -0
- package/dist/config/validators/ProtectedRoutesSchema.d.ts +13 -0
- package/dist/config/validators/ProtectedRoutesSchema.js +10 -0
- package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
- package/dist/config/validators/auth.d.ts +2 -2
- package/dist/config/validators/auth.js +1 -1
- package/dist/config/validators/auth.js.map +1 -1
- package/dist/config/validators/icon-types.d.ts +2 -0
- package/dist/config/validators/icon-types.js +1873 -0
- package/dist/config/validators/icon-types.js.map +1 -0
- package/dist/config/validators/validate.d.ts +864 -1311
- package/dist/config/validators/validate.js +418 -131
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/config/validators/validate.test.js +183 -0
- package/dist/config/validators/validate.test.js.map +1 -0
- package/dist/flat-config.d.ts +379 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/MissingIcon.d.ts +2 -0
- package/dist/lib/MissingIcon.js +7 -0
- package/dist/lib/MissingIcon.js.map +1 -0
- package/dist/lib/assets/language-icons/c.d.ts +3 -0
- package/dist/lib/assets/language-icons/c.js +4 -0
- package/dist/lib/assets/language-icons/c.js.map +1 -0
- package/dist/lib/assets/language-icons/commonlisp.d.ts +3 -0
- package/dist/lib/assets/language-icons/commonlisp.js +4 -0
- package/dist/lib/assets/language-icons/commonlisp.js.map +1 -0
- package/dist/lib/assets/language-icons/cpp.d.ts +3 -0
- package/dist/lib/assets/language-icons/cpp.js +4 -0
- package/dist/lib/assets/language-icons/cpp.js.map +1 -0
- package/dist/lib/assets/language-icons/csharp.d.ts +3 -0
- package/dist/lib/assets/language-icons/csharp.js +4 -0
- package/dist/lib/assets/language-icons/csharp.js.map +1 -0
- package/dist/lib/assets/language-icons/css.d.ts +3 -0
- package/dist/lib/assets/language-icons/css.js +4 -0
- package/dist/lib/assets/language-icons/css.js.map +1 -0
- package/dist/lib/assets/language-icons/dart.d.ts +3 -0
- package/dist/lib/assets/language-icons/dart.js +4 -0
- package/dist/lib/assets/language-icons/dart.js.map +1 -0
- package/dist/lib/assets/language-icons/elixir.d.ts +3 -0
- package/dist/lib/assets/language-icons/elixir.js +4 -0
- package/dist/lib/assets/language-icons/elixir.js.map +1 -0
- package/dist/lib/assets/language-icons/go.d.ts +3 -0
- package/dist/lib/assets/language-icons/go.js +4 -0
- package/dist/lib/assets/language-icons/go.js.map +1 -0
- package/dist/lib/assets/language-icons/graphql.d.ts +3 -0
- package/dist/lib/assets/language-icons/graphql.js +4 -0
- package/dist/lib/assets/language-icons/graphql.js.map +1 -0
- package/dist/lib/assets/language-icons/html.d.ts +3 -0
- package/dist/lib/assets/language-icons/html.js +4 -0
- package/dist/lib/assets/language-icons/html.js.map +1 -0
- package/dist/lib/assets/language-icons/java.d.ts +3 -0
- package/dist/lib/assets/language-icons/java.js +4 -0
- package/dist/lib/assets/language-icons/java.js.map +1 -0
- package/dist/lib/assets/language-icons/javascript.d.ts +3 -0
- package/dist/lib/assets/language-icons/javascript.js +4 -0
- package/dist/lib/assets/language-icons/javascript.js.map +1 -0
- package/dist/lib/assets/language-icons/json.d.ts +3 -0
- package/dist/lib/assets/language-icons/json.js +4 -0
- package/dist/lib/assets/language-icons/json.js.map +1 -0
- package/dist/lib/assets/language-icons/kotlin.d.ts +3 -0
- package/dist/lib/assets/language-icons/kotlin.js +4 -0
- package/dist/lib/assets/language-icons/kotlin.js.map +1 -0
- package/dist/lib/assets/language-icons/markdown.d.ts +3 -0
- package/dist/lib/assets/language-icons/markdown.js +4 -0
- package/dist/lib/assets/language-icons/markdown.js.map +1 -0
- package/dist/lib/assets/language-icons/mdx.d.ts +3 -0
- package/dist/lib/assets/language-icons/mdx.js +4 -0
- package/dist/lib/assets/language-icons/mdx.js.map +1 -0
- package/dist/lib/assets/language-icons/objectivec.d.ts +3 -0
- package/dist/lib/assets/language-icons/objectivec.js +4 -0
- package/dist/lib/assets/language-icons/objectivec.js.map +1 -0
- package/dist/lib/assets/language-icons/ocaml.d.ts +3 -0
- package/dist/lib/assets/language-icons/ocaml.js +4 -0
- package/dist/lib/assets/language-icons/ocaml.js.map +1 -0
- package/dist/lib/assets/language-icons/php.d.ts +3 -0
- package/dist/lib/assets/language-icons/php.js +4 -0
- package/dist/lib/assets/language-icons/php.js.map +1 -0
- package/dist/lib/assets/language-icons/powershell.d.ts +3 -0
- package/dist/lib/assets/language-icons/powershell.js +4 -0
- package/dist/lib/assets/language-icons/powershell.js.map +1 -0
- package/dist/lib/assets/language-icons/python.d.ts +3 -0
- package/dist/lib/assets/language-icons/python.js +4 -0
- package/dist/lib/assets/language-icons/python.js.map +1 -0
- package/dist/lib/assets/language-icons/react.d.ts +3 -0
- package/dist/lib/assets/language-icons/react.js +4 -0
- package/dist/lib/assets/language-icons/react.js.map +1 -0
- package/dist/lib/assets/language-icons/ruby.d.ts +3 -0
- package/dist/lib/assets/language-icons/ruby.js +4 -0
- package/dist/lib/assets/language-icons/ruby.js.map +1 -0
- package/dist/lib/assets/language-icons/rust.d.ts +3 -0
- package/dist/lib/assets/language-icons/rust.js +4 -0
- package/dist/lib/assets/language-icons/rust.js.map +1 -0
- package/dist/lib/assets/language-icons/scala.d.ts +3 -0
- package/dist/lib/assets/language-icons/scala.js +4 -0
- package/dist/lib/assets/language-icons/scala.js.map +1 -0
- package/dist/lib/assets/language-icons/shell.d.ts +3 -0
- package/dist/lib/assets/language-icons/shell.js +4 -0
- package/dist/lib/assets/language-icons/shell.js.map +1 -0
- package/dist/lib/assets/language-icons/swift.d.ts +3 -0
- package/dist/lib/assets/language-icons/swift.js +4 -0
- package/dist/lib/assets/language-icons/swift.js.map +1 -0
- package/dist/lib/assets/language-icons/toml.d.ts +3 -0
- package/dist/lib/assets/language-icons/toml.js +4 -0
- package/dist/lib/assets/language-icons/toml.js.map +1 -0
- package/dist/lib/assets/language-icons/typescript.d.ts +3 -0
- package/dist/lib/assets/language-icons/typescript.js +4 -0
- package/dist/lib/assets/language-icons/typescript.js.map +1 -0
- package/dist/lib/assets/language-icons/xml.d.ts +3 -0
- package/dist/lib/assets/language-icons/xml.js +4 -0
- package/dist/lib/assets/language-icons/xml.js.map +1 -0
- package/dist/lib/assets/language-icons/yaml.d.ts +3 -0
- package/dist/lib/assets/language-icons/yaml.js +4 -0
- package/dist/lib/assets/language-icons/yaml.js.map +1 -0
- package/dist/lib/assets/language-icons/zig.d.ts +3 -0
- package/dist/lib/assets/language-icons/zig.js +4 -0
- package/dist/lib/assets/language-icons/zig.js.map +1 -0
- package/dist/lib/auth/issuer.d.ts +2 -0
- package/dist/lib/auth/issuer.js +40 -0
- package/dist/lib/auth/issuer.js.map +1 -0
- package/dist/lib/auth/issuer.test.js +95 -0
- package/dist/lib/auth/issuer.test.js.map +1 -0
- package/dist/lib/authentication/AuthenticationPlugin.d.ts +6 -4
- package/dist/lib/authentication/AuthenticationPlugin.js +4 -1
- package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +22 -15
- package/dist/lib/authentication/components/CallbackHandler.js +27 -31
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
- package/dist/lib/authentication/components/SignIn.d.ts +1 -1
- package/dist/lib/authentication/components/SignIn.js +12 -7
- package/dist/lib/authentication/components/SignIn.js.map +1 -1
- package/dist/lib/authentication/components/SignOut.js +6 -6
- package/dist/lib/authentication/components/SignOut.js.map +1 -1
- package/dist/lib/authentication/components/SignUp.d.ts +1 -1
- package/dist/lib/authentication/components/SignUp.js +8 -5
- package/dist/lib/authentication/components/SignUp.js.map +1 -1
- package/dist/lib/authentication/errors.d.ts +6 -12
- package/dist/lib/authentication/errors.js +2 -1
- package/dist/lib/authentication/errors.js.map +1 -1
- package/dist/lib/authentication/hook.d.ts +15 -5
- package/dist/lib/authentication/hook.js +19 -7
- package/dist/lib/authentication/hook.js.map +1 -1
- package/dist/lib/authentication/providers/auth0.d.ts +2 -2
- package/dist/lib/authentication/providers/auth0.js +25 -14
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/authentication/providers/azureb2c.d.ts +28 -0
- package/dist/lib/authentication/providers/azureb2c.js +147 -0
- package/dist/lib/authentication/providers/azureb2c.js.map +1 -0
- package/dist/lib/authentication/providers/clerk.d.ts +2 -2
- package/dist/lib/authentication/providers/clerk.js +111 -49
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/firebase.d.ts +4 -0
- package/dist/lib/authentication/providers/firebase.js +215 -0
- package/dist/lib/authentication/providers/firebase.js.map +1 -0
- package/dist/lib/authentication/providers/openid.d.ts +29 -24
- package/dist/lib/authentication/providers/openid.js +115 -74
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.d.ts +8 -0
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js +39 -0
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js.map +1 -0
- package/dist/lib/authentication/providers/supabase.d.ts +4 -0
- package/dist/lib/authentication/providers/supabase.js +108 -0
- package/dist/lib/authentication/providers/supabase.js.map +1 -0
- package/dist/lib/authentication/state.d.ts +22 -3
- package/dist/lib/authentication/state.js +35 -2
- package/dist/lib/authentication/state.js.map +1 -1
- package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +24 -0
- package/dist/lib/authentication/ui/ZudokuAuthUi.js +124 -0
- package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Apple.js +4 -0
- package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
- package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Github.js +4 -0
- package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Google.js +4 -0
- package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
- package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
- package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/X.js +4 -0
- package/dist/lib/authentication/ui/icons/X.js.map +1 -0
- package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
- package/dist/lib/authentication/use-broadcast/shared.js +243 -0
- package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
- package/dist/lib/components/AnchorLink.d.ts +2 -2
- package/dist/lib/components/AnchorLink.js +9 -5
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Autocomplete.d.ts +15 -0
- package/dist/lib/components/Autocomplete.js +51 -0
- package/dist/lib/components/Autocomplete.js.map +1 -0
- package/dist/lib/components/Banner.js +8 -2
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/Bootstrap.d.ts +5 -3
- package/dist/lib/components/Bootstrap.js +13 -6
- package/dist/lib/components/Bootstrap.js.map +1 -1
- package/dist/lib/components/BuildCheck.d.ts +5 -0
- package/dist/lib/components/BuildCheck.js +45 -0
- package/dist/lib/components/BuildCheck.js.map +1 -0
- package/dist/lib/components/CategoryHeading.js +1 -1
- package/dist/lib/components/CategoryHeading.js.map +1 -1
- package/dist/lib/components/ClientOnly.d.ts +4 -2
- package/dist/lib/components/ClientOnly.js +1 -1
- package/dist/lib/components/ClientOnly.js.map +1 -1
- package/dist/lib/components/DeveloperHint.js +2 -1
- package/dist/lib/components/DeveloperHint.js.map +1 -1
- package/dist/lib/components/ErrorPage.js +2 -3
- package/dist/lib/components/ErrorPage.js.map +1 -1
- package/dist/lib/components/Footer.d.ts +1 -0
- package/dist/lib/components/Footer.js +32 -0
- package/dist/lib/components/Footer.js.map +1 -0
- package/dist/lib/components/Framed.d.ts +7 -0
- package/dist/lib/components/Framed.js +26 -0
- package/dist/lib/components/Framed.js.map +1 -0
- package/dist/lib/components/Header.js +32 -14
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +10 -6
- package/dist/lib/components/Heading.js +4 -3
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/InlineCode.d.ts +3 -1
- package/dist/lib/components/InlineCode.js +2 -1
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/LanguageIcon.d.ts +3 -0
- package/dist/lib/components/LanguageIcon.js +163 -0
- package/dist/lib/components/LanguageIcon.js.map +1 -0
- package/dist/lib/components/Layout.js +11 -24
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Main.d.ts +2 -0
- package/dist/lib/components/Main.js +18 -0
- package/dist/lib/components/Main.js.map +1 -0
- package/dist/lib/components/Markdown.d.ts +4 -3
- package/dist/lib/components/Markdown.js +14 -14
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/Meta.d.ts +2 -0
- package/dist/lib/components/Meta.js +11 -0
- package/dist/lib/components/Meta.js.map +1 -0
- package/dist/lib/components/MobileTopNavigation.js +20 -7
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/NotFoundPage.js +3 -3
- package/dist/lib/components/NotFoundPage.js.map +1 -1
- package/dist/lib/components/PageProgress.d.ts +1 -0
- package/dist/lib/components/PageProgress.js +20 -0
- package/dist/lib/components/PageProgress.js.map +1 -0
- package/dist/lib/components/Pagination.d.ts +11 -0
- package/dist/lib/components/Pagination.js +10 -0
- package/dist/lib/components/Pagination.js.map +1 -0
- package/dist/lib/components/PathRenderer.d.ts +11 -0
- package/dist/lib/components/PathRenderer.js +28 -0
- package/dist/lib/components/PathRenderer.js.map +1 -0
- package/dist/lib/components/Search.d.ts +3 -1
- package/dist/lib/components/Search.js +10 -4
- package/dist/lib/components/Search.js.map +1 -1
- package/dist/lib/components/Slot.d.ts +17 -0
- package/dist/lib/components/Slot.js +24 -0
- package/dist/lib/components/Slot.js.map +1 -0
- package/dist/lib/components/Slot.test.d.ts +1 -0
- package/dist/lib/components/Slot.test.js +172 -0
- package/dist/lib/components/Slot.test.js.map +1 -0
- package/dist/lib/components/StatusPage.d.ts +7 -0
- package/dist/lib/components/StatusPage.js +75 -0
- package/dist/lib/components/StatusPage.js.map +1 -0
- package/dist/lib/components/ThemeSwitch.d.ts +1 -0
- package/dist/lib/components/ThemeSwitch.js +16 -0
- package/dist/lib/components/ThemeSwitch.js.map +1 -0
- package/dist/lib/components/TopNavigation.d.ts +7 -0
- package/dist/lib/components/TopNavigation.js +60 -9
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Typography.d.ts +5 -0
- package/dist/lib/components/Typography.js +8 -0
- package/dist/lib/components/Typography.js.map +1 -0
- package/dist/lib/components/Zudoku.d.ts +7 -0
- package/dist/lib/components/Zudoku.js +58 -0
- package/dist/lib/components/Zudoku.js.map +1 -0
- package/dist/lib/components/cache.d.ts +15 -0
- package/dist/lib/components/cache.js +18 -0
- package/dist/lib/components/cache.js.map +1 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.d.ts +1 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js +3 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js.map +1 -0
- package/dist/lib/components/context/ComponentsContext.js.map +1 -1
- package/dist/lib/components/context/RouterEventsEmitter.d.ts +1 -0
- package/dist/lib/components/context/RouterEventsEmitter.js +17 -0
- package/dist/lib/components/context/RouterEventsEmitter.js.map +1 -0
- package/dist/lib/components/context/SlotProvider.d.ts +26 -0
- package/dist/lib/components/context/SlotProvider.js +83 -0
- package/dist/lib/components/context/SlotProvider.js.map +1 -0
- package/dist/lib/components/context/ViewportAnchorContext.d.ts +2 -4
- package/dist/lib/components/context/ViewportAnchorContext.js +30 -24
- package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +9 -17
- package/dist/lib/components/context/ZudokuContext.js +74 -27
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
- package/dist/lib/components/context/ZudokuProvider.js +2 -1
- package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +65 -23
- package/dist/lib/components/index.js +31 -15
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/Navigation.d.ts +5 -0
- package/dist/lib/components/navigation/Navigation.js +12 -0
- package/dist/lib/components/navigation/Navigation.js.map +1 -0
- package/dist/lib/components/navigation/NavigationBadge.d.ts +26 -0
- package/dist/lib/components/navigation/NavigationBadge.js +26 -0
- package/dist/lib/components/navigation/NavigationBadge.js.map +1 -0
- package/dist/lib/components/navigation/NavigationCategory.d.ts +5 -0
- package/dist/lib/components/navigation/NavigationCategory.js +66 -0
- package/dist/lib/components/navigation/NavigationCategory.js.map +1 -0
- package/dist/lib/components/navigation/NavigationItem.d.ts +6 -0
- package/dist/lib/components/navigation/NavigationItem.js +55 -0
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -0
- package/dist/lib/components/navigation/NavigationWrapper.d.ts +7 -0
- package/dist/lib/components/navigation/NavigationWrapper.js +21 -0
- package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -0
- package/dist/lib/components/navigation/PoweredByZudoku.d.ts +3 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js +7 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -0
- package/dist/lib/components/navigation/Toc.js +46 -0
- package/dist/lib/components/navigation/Toc.js.map +1 -0
- package/dist/lib/components/navigation/ZudokuLogo.d.ts +6 -0
- package/dist/lib/components/navigation/ZudokuLogo.js +5 -0
- package/dist/lib/components/navigation/ZudokuLogo.js.map +1 -0
- package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
- package/dist/lib/components/navigation/ZuploLogo.js +4 -0
- package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
- package/dist/lib/components/navigation/utils.d.ts +16 -8
- package/dist/lib/components/navigation/utils.js +60 -33
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/RouteGuard.d.ts +2 -0
- package/dist/lib/core/RouteGuard.js +44 -0
- package/dist/lib/core/RouteGuard.js.map +1 -0
- package/dist/lib/core/ZudokuContext.d.ts +116 -0
- package/dist/lib/core/ZudokuContext.js +106 -0
- package/dist/lib/core/ZudokuContext.js.map +1 -0
- package/dist/lib/core/__internal.d.ts +37 -0
- package/dist/lib/core/__internal.js +26 -0
- package/dist/lib/core/__internal.js.map +1 -0
- package/dist/lib/core/plugins.d.ts +37 -18
- package/dist/lib/core/plugins.js +4 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/core/router.d.ts +1 -0
- package/dist/lib/core/router.js +2 -0
- package/dist/lib/core/router.js.map +1 -0
- package/dist/lib/errors/ErrorAlert.d.ts +1 -1
- package/dist/lib/errors/ErrorAlert.js +12 -4
- package/dist/lib/errors/ErrorAlert.js.map +1 -1
- package/dist/lib/errors/RouterError.d.ts +3 -1
- package/dist/lib/errors/RouterError.js +4 -3
- package/dist/lib/errors/RouterError.js.map +1 -1
- package/dist/lib/errors/TopLevelError.d.ts +2 -2
- package/dist/lib/errors/TopLevelError.js +1 -2
- package/dist/lib/errors/TopLevelError.js.map +1 -1
- package/dist/lib/hooks/index.d.ts +28 -0
- package/dist/lib/hooks/index.js +16 -0
- package/dist/lib/hooks/index.js.map +1 -0
- package/dist/lib/hooks/useEvent.d.ts +11 -0
- package/dist/lib/hooks/useEvent.js +19 -0
- package/dist/lib/hooks/useEvent.js.map +1 -0
- package/dist/lib/hooks/useEvent.test.d.ts +1 -0
- package/dist/lib/hooks/useEvent.test.js +102 -0
- package/dist/lib/hooks/useEvent.test.js.map +1 -0
- package/dist/lib/hooks/useHotkey.d.ts +4 -0
- package/dist/lib/hooks/useHotkey.js +58 -0
- package/dist/lib/hooks/useHotkey.js.map +1 -0
- package/dist/lib/icons.d.ts +1 -0
- package/dist/lib/icons.js +1 -0
- package/dist/lib/icons.js.map +1 -1
- package/dist/lib/oas/graphql/circular.d.ts +3 -0
- package/dist/lib/oas/graphql/circular.js +43 -0
- package/dist/lib/oas/graphql/circular.js.map +1 -0
- package/dist/lib/oas/graphql/index.d.ts +26 -1
- package/dist/lib/oas/graphql/index.js +266 -75
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/index.js +10 -4
- package/dist/lib/oas/parser/dereference/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/resolveRef.js +3 -3
- package/dist/lib/oas/parser/dereference/resolveRef.js.map +1 -1
- package/dist/lib/oas/parser/index.d.ts +9 -3
- package/dist/lib/oas/parser/index.js +12 -24
- package/dist/lib/oas/parser/index.js.map +1 -1
- package/dist/lib/oas/parser/upgrade/index.d.ts +3 -2
- package/dist/lib/oas/parser/upgrade/index.js +84 -31
- package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
- package/dist/lib/plugins/api-catalog/Catalog.d.ts +4 -0
- package/dist/lib/plugins/api-catalog/Catalog.js +32 -0
- package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -0
- package/dist/lib/plugins/api-catalog/index.d.ts +31 -0
- package/dist/lib/plugins/api-catalog/index.js +46 -0
- package/dist/lib/plugins/api-catalog/index.js.map +1 -0
- package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
- package/dist/lib/plugins/api-keys/CreateApiKey.js +26 -8
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.d.ts +11 -0
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js +9 -0
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js.map +1 -0
- package/dist/lib/plugins/api-keys/ProtectedRoute.js +5 -2
- package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +146 -27
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +33 -18
- package/dist/lib/plugins/api-keys/index.js +65 -31
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +8 -0
- package/dist/lib/plugins/custom-pages/index.js +19 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -0
- package/dist/lib/plugins/markdown/MdxPage.d.ts +10 -2
- package/dist/lib/plugins/markdown/MdxPage.js +68 -11
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.d.ts +2 -0
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js +3 -0
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js.map +1 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.d.ts +2 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.js +3 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.js.map +1 -0
- package/dist/lib/plugins/markdown/index.d.ts +19 -7
- package/dist/lib/plugins/markdown/index.js +14 -3
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +6 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.js +26 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -0
- package/dist/lib/plugins/openapi/ColorizedParam.d.ts +10 -2
- package/dist/lib/plugins/openapi/ColorizedParam.js +32 -14
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -3
- package/dist/lib/plugins/openapi/Endpoint.js +43 -8
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.d.ts +5 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.js +56 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.js.map +1 -0
- package/dist/lib/plugins/openapi/OasProvider.d.ts +8 -0
- package/dist/lib/plugins/openapi/OasProvider.js +30 -0
- package/dist/lib/plugins/openapi/OasProvider.js.map +1 -0
- package/dist/lib/plugins/openapi/OperationList.d.ts +5 -4
- package/dist/lib/plugins/openapi/OperationList.js +135 -31
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.d.ts +6 -3
- package/dist/lib/plugins/openapi/OperationListItem.js +22 -8
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParamInfos.d.ts +6 -0
- package/dist/lib/plugins/openapi/ParamInfos.js +47 -0
- package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -0
- package/dist/lib/plugins/openapi/ParameterList.d.ts +4 -3
- package/dist/lib/plugins/openapi/ParameterList.js +10 -6
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.d.ts +2 -3
- package/dist/lib/plugins/openapi/ParameterListItem.js +30 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +6 -4
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +15 -4
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +11 -5
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +8 -9
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +5 -6
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +27 -8
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
- package/dist/lib/plugins/openapi/SchemaList.js +52 -0
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
- package/dist/lib/plugins/openapi/Sidecar.d.ts +6 -5
- package/dist/lib/plugins/openapi/Sidecar.js +120 -114
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
- package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.d.ts +14 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js +57 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -0
- package/dist/lib/plugins/openapi/SimpleSelect.d.ts +2 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
- package/dist/lib/plugins/openapi/StaggeredRender.d.ts +1 -1
- package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +8 -0
- package/dist/lib/plugins/openapi/client/GraphQLClient.js +43 -0
- package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.d.ts +7 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.js +5 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.js.map +1 -0
- package/dist/lib/plugins/openapi/client/createServer.d.ts +3 -1
- package/dist/lib/plugins/openapi/client/createServer.js +6 -4
- package/dist/lib/plugins/openapi/client/createServer.js.map +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +14 -0
- package/dist/lib/plugins/openapi/client/useCreateQuery.js +20 -0
- package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -0
- package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
- package/dist/lib/plugins/openapi/components/EnumValues.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js +15 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js +20 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js +16 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js.map +1 -0
- package/dist/lib/plugins/openapi/context.d.ts +3 -3
- package/dist/lib/plugins/openapi/graphql/fragment-masking.d.ts +3 -3
- package/dist/lib/plugins/openapi/graphql/fragment-masking.js +3 -4
- package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +11 -41
- package/dist/lib/plugins/openapi/graphql/gql.js +8 -14
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +179 -27
- package/dist/lib/plugins/openapi/graphql/graphql.js +250 -575
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +11 -8
- package/dist/lib/plugins/openapi/index.js +107 -109
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +75 -4
- package/dist/lib/plugins/openapi/playground/BodyPanel.d.ts +5 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js +78 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +11 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +6 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +9 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Headers.d.ts +5 -4
- package/dist/lib/plugins/openapi/playground/Headers.js +50 -9
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/IdentityDialog.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js +15 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +17 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +12 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/PathParams.d.ts +3 -2
- package/dist/lib/plugins/openapi/playground/PathParams.js +4 -8
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +40 -2
- package/dist/lib/plugins/openapi/playground/Playground.js +211 -80
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +6 -3
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +4 -4
- package/dist/lib/plugins/openapi/playground/QueryParams.js +22 -25
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +16 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Spinner.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js +63 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/createUrl.js +3 -1
- package/dist/lib/plugins/openapi/playground/createUrl.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js +22 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +19 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js +11 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.d.ts +3 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js +13 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +12 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +12 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +71 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +14 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +117 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +15 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.d.ts +10 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js +32 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js +56 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.d.ts +18 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +12 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.d.ts +8 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.js +16 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.js +195 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.d.ts +12 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.js +66 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.js +160 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.d.ts +13 -0
- package/dist/lib/plugins/openapi/processors/removePaths.js +33 -0
- package/dist/lib/plugins/openapi/processors/removePaths.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js +144 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/traverse.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/traverse.js +2 -0
- package/dist/lib/plugins/openapi/processors/traverse.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +15 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +8 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +45 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +4 -3
- package/dist/lib/plugins/openapi/schema/SchemaView.js +50 -50
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/UnionView.d.ts +5 -0
- package/dist/lib/plugins/openapi/schema/UnionView.js +33 -0
- package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.d.ts +28 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.js +71 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/utils.d.ts +7 -7
- package/dist/lib/plugins/openapi/schema/utils.js +16 -10
- package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
- package/dist/lib/plugins/openapi/state.d.ts +27 -0
- package/dist/lib/plugins/openapi/state.js +18 -0
- package/dist/lib/plugins/openapi/state.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.d.ts +11 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js +89 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.d.ts +9 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.js +25 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.js.map +1 -0
- package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +2 -3
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js +77 -39
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
- package/dist/lib/plugins/openapi/util/getRoutes.d.ts +10 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js +117 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +2 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js +10 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodToColor.d.ts +20 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js +24 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js.map +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.d.ts +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js +27 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js.map +1 -0
- package/dist/lib/plugins/redirect/index.d.ts +4 -7
- package/dist/lib/plugins/redirect/index.js +2 -2
- package/dist/lib/plugins/redirect/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/index.d.ts +8 -6
- package/dist/lib/plugins/search-inkeep/index.js +49 -7
- package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/inkeep.d.ts +2 -19
- package/dist/lib/plugins/search-inkeep/inkeep.js +10 -19
- package/dist/lib/plugins/search-inkeep/inkeep.js.map +1 -1
- package/dist/lib/plugins/search-pagefind/PagefindSearch.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js +80 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/ResultList.d.ts +8 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js +42 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/get-results.d.ts +10 -0
- package/dist/lib/plugins/search-pagefind/get-results.js +41 -0
- package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/index.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/index.js +9 -0
- package/dist/lib/plugins/search-pagefind/index.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/types.d.ts +85 -0
- package/dist/lib/plugins/search-pagefind/types.js +2 -0
- package/dist/lib/plugins/search-pagefind/types.js.map +1 -0
- package/dist/lib/shiki.d.ts +32 -0
- package/dist/lib/shiki.js +124 -0
- package/dist/lib/shiki.js.map +1 -0
- package/dist/lib/ui/Accordion.d.ts +7 -0
- package/dist/lib/ui/Accordion.js +14 -0
- package/dist/lib/ui/Accordion.js.map +1 -0
- package/dist/lib/ui/ActionButton.d.ts +4 -0
- package/dist/lib/ui/ActionButton.js +10 -0
- package/dist/lib/ui/ActionButton.js.map +1 -0
- package/dist/lib/ui/Alert.d.ts +9 -0
- package/dist/lib/ui/Alert.js +25 -0
- package/dist/lib/ui/Alert.js.map +1 -0
- package/dist/lib/ui/AlertDialog.d.ts +20 -0
- package/dist/lib/ui/AlertDialog.js +27 -0
- package/dist/lib/ui/AlertDialog.js.map +1 -0
- package/dist/lib/ui/AspectRatio.d.ts +3 -0
- package/dist/lib/ui/AspectRatio.js +4 -0
- package/dist/lib/ui/AspectRatio.js.map +1 -0
- package/dist/lib/ui/Badge.d.ts +9 -0
- package/dist/lib/ui/Badge.js +24 -0
- package/dist/lib/ui/Badge.js.map +1 -0
- package/dist/lib/ui/Breadcrumb.d.ts +19 -0
- package/dist/lib/ui/Breadcrumb.js +24 -0
- package/dist/lib/ui/Breadcrumb.js.map +1 -0
- package/dist/lib/ui/Button.d.ts +4 -5
- package/dist/lib/ui/Button.js +10 -6
- package/dist/lib/ui/Button.js.map +1 -1
- package/dist/lib/ui/Callout.d.ts +38 -36
- package/dist/lib/ui/Callout.js +8 -7
- package/dist/lib/ui/Callout.js.map +1 -1
- package/dist/lib/ui/Card.js +1 -1
- package/dist/lib/ui/Card.js.map +1 -1
- package/dist/lib/ui/Carousel.d.ts +18 -0
- package/dist/lib/ui/Carousel.js +99 -0
- package/dist/lib/ui/Carousel.js.map +1 -0
- package/dist/lib/ui/Checkbox.d.ts +4 -0
- package/dist/lib/ui/Checkbox.js +9 -0
- package/dist/lib/ui/Checkbox.js.map +1 -0
- package/dist/lib/ui/CodeBlock.d.ts +14 -0
- package/dist/lib/ui/CodeBlock.js +18 -0
- package/dist/lib/ui/CodeBlock.js.map +1 -0
- package/dist/lib/ui/Collapsible.d.ts +5 -0
- package/dist/lib/ui/Collapsible.js +13 -0
- package/dist/lib/ui/Collapsible.js.map +1 -0
- package/dist/lib/ui/Command.d.ts +94 -0
- package/dist/lib/ui/Command.js +31 -0
- package/dist/lib/ui/Command.js.map +1 -0
- package/dist/lib/ui/Dialog.d.ts +15 -0
- package/dist/lib/ui/Dialog.js +36 -0
- package/dist/lib/ui/Dialog.js.map +1 -0
- package/dist/lib/ui/Drawer.d.ts +8 -10
- package/dist/lib/ui/Drawer.js.map +1 -1
- package/dist/lib/ui/DropdownMenu.js +4 -4
- package/dist/lib/ui/DropdownMenu.js.map +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.d.ts +16 -0
- package/dist/lib/ui/EmbeddedCodeBlock.js +19 -0
- package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -0
- package/dist/lib/ui/Form.d.ts +23 -0
- package/dist/lib/ui/Form.js +63 -0
- package/dist/lib/ui/Form.js.map +1 -0
- package/dist/lib/ui/Frame.d.ts +8 -0
- package/dist/lib/ui/Frame.js +22 -0
- package/dist/lib/ui/Frame.js.map +1 -0
- package/dist/lib/ui/HoverCard.d.ts +6 -0
- package/dist/lib/ui/HoverCard.js +10 -0
- package/dist/lib/ui/HoverCard.js.map +1 -0
- package/dist/lib/ui/Input.d.ts +1 -2
- package/dist/lib/ui/Input.js +1 -1
- package/dist/lib/ui/Input.js.map +1 -1
- package/dist/lib/ui/Item.d.ts +23 -0
- package/dist/lib/ui/Item.js +67 -0
- package/dist/lib/ui/Item.js.map +1 -0
- package/dist/lib/ui/Label.d.ts +5 -0
- package/dist/lib/ui/Label.js +10 -0
- package/dist/lib/ui/Label.js.map +1 -0
- package/dist/lib/ui/NativeSelect.d.ts +5 -0
- package/dist/lib/ui/NativeSelect.js +14 -0
- package/dist/lib/ui/NativeSelect.js.map +1 -0
- package/dist/lib/ui/Pagination.d.ts +28 -0
- package/dist/lib/ui/Pagination.js +24 -0
- package/dist/lib/ui/Pagination.js.map +1 -0
- package/dist/lib/ui/Popover.d.ts +6 -0
- package/dist/lib/ui/Popover.js +10 -0
- package/dist/lib/ui/Popover.js.map +1 -0
- package/dist/lib/ui/Progress.d.ts +4 -0
- package/dist/lib/ui/Progress.js +8 -0
- package/dist/lib/ui/Progress.js.map +1 -0
- package/dist/lib/ui/RadioGroup.d.ts +5 -0
- package/dist/lib/ui/RadioGroup.js +15 -0
- package/dist/lib/ui/RadioGroup.js.map +1 -0
- package/dist/lib/ui/ReactComponentDoc.d.ts +20 -0
- package/dist/lib/ui/ReactComponentDoc.js +10 -0
- package/dist/lib/ui/ReactComponentDoc.js.map +1 -0
- package/dist/lib/ui/ScrollArea.d.ts +5 -0
- package/dist/lib/ui/ScrollArea.js +12 -0
- package/dist/lib/ui/ScrollArea.js.map +1 -0
- package/dist/lib/ui/Secret.d.ts +18 -0
- package/dist/lib/ui/Secret.js +26 -0
- package/dist/lib/ui/Secret.js.map +1 -0
- package/dist/lib/ui/Select.d.ts +15 -0
- package/dist/lib/ui/Select.js +38 -0
- package/dist/lib/ui/Select.js.map +1 -0
- package/dist/lib/ui/Separator.d.ts +4 -0
- package/dist/lib/ui/Separator.js +8 -0
- package/dist/lib/ui/Separator.js.map +1 -0
- package/dist/lib/ui/Skeleton.d.ts +2 -0
- package/dist/lib/ui/Skeleton.js +7 -0
- package/dist/lib/ui/Skeleton.js.map +1 -0
- package/dist/lib/ui/Slider.d.ts +4 -0
- package/dist/lib/ui/Slider.js +8 -0
- package/dist/lib/ui/Slider.js.map +1 -0
- package/dist/lib/ui/Stepper.d.ts +3 -0
- package/dist/lib/ui/Stepper.js +7 -0
- package/dist/lib/ui/Stepper.js.map +1 -0
- package/dist/lib/ui/Switch.d.ts +4 -0
- package/dist/lib/ui/Switch.js +8 -0
- package/dist/lib/ui/Switch.js.map +1 -0
- package/dist/lib/ui/SyntaxHighlight.d.ts +13 -0
- package/dist/lib/ui/SyntaxHighlight.js +15 -0
- package/dist/lib/ui/SyntaxHighlight.js.map +1 -0
- package/dist/lib/ui/Tabs.js +2 -2
- package/dist/lib/ui/Tabs.js.map +1 -1
- package/dist/lib/ui/Textarea.d.ts +4 -0
- package/dist/lib/ui/Textarea.js +9 -0
- package/dist/lib/ui/Textarea.js.map +1 -0
- package/dist/lib/ui/Toggle.d.ts +12 -0
- package/dist/lib/ui/Toggle.js +26 -0
- package/dist/lib/ui/Toggle.js.map +1 -0
- package/dist/lib/ui/ToggleGroup.d.ts +12 -0
- package/dist/lib/ui/ToggleGroup.js +21 -0
- package/dist/lib/ui/ToggleGroup.js.map +1 -0
- package/dist/lib/ui/Tooltip.d.ts +8 -0
- package/dist/lib/ui/Tooltip.js +18 -0
- package/dist/lib/ui/Tooltip.js.map +1 -0
- package/dist/lib/ui/Value.d.ts +5 -0
- package/dist/lib/ui/Value.js +13 -0
- package/dist/lib/ui/Value.js.map +1 -0
- package/dist/lib/ui/util.d.ts +2 -0
- package/dist/lib/ui/util.js +3 -0
- package/dist/lib/ui/util.js.map +1 -0
- package/dist/lib/util/MdxComponents.d.ts +39 -21
- package/dist/lib/util/MdxComponents.js +24 -17
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/cn.js.map +1 -1
- package/dist/lib/util/createVariantComponent.d.ts +7 -4
- package/dist/lib/util/createVariantComponent.js +5 -2
- package/dist/lib/util/createVariantComponent.js.map +1 -1
- package/dist/lib/util/detectOS.d.ts +1 -0
- package/dist/lib/util/detectOS.js +11 -0
- package/dist/lib/util/detectOS.js.map +1 -0
- package/dist/lib/util/ensureArray.d.ts +1 -0
- package/dist/lib/util/ensureArray.js +2 -0
- package/dist/lib/util/ensureArray.js.map +1 -0
- package/dist/lib/util/flattenAllOf.d.ts +4 -0
- package/dist/lib/util/flattenAllOf.js +65 -0
- package/dist/lib/util/flattenAllOf.js.map +1 -0
- package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
- package/dist/lib/util/flattenAllOf.test.js +532 -0
- package/dist/lib/util/flattenAllOf.test.js.map +1 -0
- package/dist/lib/util/groupBy.js +1 -0
- package/dist/lib/util/groupBy.js.map +1 -1
- package/dist/lib/util/humanFileSize.d.ts +6 -0
- package/dist/lib/util/humanFileSize.js +14 -0
- package/dist/lib/util/humanFileSize.js.map +1 -0
- package/dist/lib/util/humanFileSize.test.d.ts +1 -0
- package/dist/lib/util/humanFileSize.test.js +22 -0
- package/dist/lib/util/humanFileSize.test.js.map +1 -0
- package/dist/lib/util/invariant.d.ts +10 -0
- package/dist/lib/util/invariant.js +10 -4
- package/dist/lib/util/invariant.js.map +1 -1
- package/dist/lib/util/joinPath.d.ts +3 -0
- package/dist/lib/util/joinPath.js +3 -0
- package/dist/lib/util/joinPath.js.map +1 -1
- package/dist/lib/util/joinUrl.d.ts +1 -0
- package/dist/lib/util/joinUrl.js +40 -0
- package/dist/lib/util/joinUrl.js.map +1 -0
- package/dist/lib/util/joinUrl.test.d.ts +1 -0
- package/dist/lib/util/joinUrl.test.js +43 -0
- package/dist/lib/util/joinUrl.test.js.map +1 -0
- package/dist/lib/util/os.d.ts +2 -0
- package/dist/lib/util/os.js +21 -0
- package/dist/lib/util/os.js.map +1 -0
- package/dist/lib/util/pastellize.js +4 -4
- package/dist/lib/util/pastellize.js.map +1 -1
- package/dist/lib/util/scrollIntoViewIfNeeded.d.ts +1 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js +14 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js.map +1 -0
- package/dist/lib/util/syncZustandState.d.ts +5 -0
- package/dist/lib/util/syncZustandState.js +14 -0
- package/dist/lib/util/syncZustandState.js.map +1 -0
- package/dist/lib/util/traverse.d.ts +4 -0
- package/dist/lib/util/traverse.js +48 -0
- package/dist/lib/util/traverse.js.map +1 -0
- package/dist/lib/util/types.d.ts +7 -0
- package/dist/lib/util/types.js +2 -0
- package/dist/lib/util/types.js.map +1 -0
- package/dist/lib/util/url.d.ts +4 -0
- package/dist/lib/util/url.js +13 -0
- package/dist/lib/util/url.js.map +1 -0
- package/dist/lib/util/url.test.d.ts +1 -0
- package/dist/lib/util/url.test.js +26 -0
- package/dist/lib/util/url.test.js.map +1 -0
- package/dist/lib/util/useCopyToClipboard.d.ts +1 -0
- package/dist/lib/util/useCopyToClipboard.js +11 -0
- package/dist/lib/util/useCopyToClipboard.js.map +1 -0
- package/dist/lib/util/useExposedProps.d.ts +9 -0
- package/dist/lib/util/useExposedProps.js +9 -0
- package/dist/lib/util/useExposedProps.js.map +1 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.js +4 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/lib/util/useLatest.d.ts +1 -0
- package/dist/lib/util/useLatest.js +15 -0
- package/dist/lib/util/useLatest.js.map +1 -0
- package/dist/lib/util/useOnScreen.d.ts +5 -0
- package/dist/lib/util/useOnScreen.js +19 -0
- package/dist/lib/util/useOnScreen.js.map +1 -0
- package/dist/lib/util/useScrollToAnchor.d.ts +1 -0
- package/dist/lib/util/useScrollToAnchor.js +45 -38
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/lib/util/useScrollToTop.js +7 -5
- package/dist/lib/util/useScrollToTop.js.map +1 -1
- package/dist/ts.js +3 -3
- package/dist/ts.js.map +1 -1
- package/dist/vite/api/SchemaManager.d.ts +38 -0
- package/dist/vite/api/SchemaManager.js +152 -0
- package/dist/vite/api/SchemaManager.js.map +1 -0
- package/dist/vite/api/SchemaManager.test.d.ts +1 -0
- package/dist/vite/api/SchemaManager.test.js +106 -0
- package/dist/vite/api/SchemaManager.test.js.map +1 -0
- package/dist/vite/api/schema-codegen.d.ts +12 -0
- package/dist/vite/api/schema-codegen.js +134 -0
- package/dist/vite/api/schema-codegen.js.map +1 -0
- package/dist/vite/api/schema-codegen.test.d.ts +1 -0
- package/dist/vite/api/schema-codegen.test.js +468 -0
- package/dist/vite/api/schema-codegen.test.js.map +1 -0
- package/dist/vite/build.js +63 -14
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +1 -15
- package/dist/vite/config.js +128 -149
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.js +12 -6
- package/dist/vite/config.test.js.map +1 -1
- package/dist/vite/create-pagefind-index.d.ts +4 -0
- package/dist/vite/create-pagefind-index.js +12 -0
- package/dist/vite/create-pagefind-index.js.map +1 -0
- package/dist/vite/css/collect.d.ts +2 -0
- package/dist/vite/css/collect.js +27 -0
- package/dist/vite/css/collect.js.map +1 -0
- package/dist/vite/css/plugin.d.ts +4 -0
- package/dist/vite/css/plugin.js +91 -0
- package/dist/vite/css/plugin.js.map +1 -0
- package/dist/vite/debug.d.ts +1 -0
- package/dist/vite/debug.js +10 -0
- package/dist/vite/debug.js.map +1 -0
- package/dist/vite/dev-server.d.ts +12 -4
- package/dist/vite/dev-server.js +94 -31
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/error-handler.d.ts +3 -3
- package/dist/vite/error-handler.js +1 -1
- package/dist/vite/error-handler.js.map +1 -1
- package/dist/vite/html.d.ts +7 -3
- package/dist/vite/html.js +15 -11
- package/dist/vite/html.js.map +1 -1
- package/dist/vite/llms.d.ts +12 -0
- package/dist/vite/llms.js +66 -0
- package/dist/vite/llms.js.map +1 -0
- package/dist/vite/mdx/remark-inject-filepath.d.ts +3 -0
- package/dist/vite/mdx/remark-inject-filepath.js +6 -0
- package/dist/vite/mdx/remark-inject-filepath.js.map +1 -0
- package/dist/vite/mdx/remark-last-modified.d.ts +3 -0
- package/dist/vite/mdx/remark-last-modified.js +82 -0
- package/dist/vite/mdx/remark-last-modified.js.map +1 -0
- package/dist/vite/mdx/remark-link-rewrite.d.ts +2 -0
- package/dist/vite/mdx/remark-link-rewrite.js +20 -0
- package/dist/vite/mdx/remark-link-rewrite.js.map +1 -0
- package/dist/vite/mdx/remark-normalize-image-url.d.ts +2 -0
- package/dist/vite/mdx/remark-normalize-image-url.js +12 -0
- package/dist/vite/mdx/remark-normalize-image-url.js.map +1 -0
- package/dist/vite/mdx/remark-static-generation.d.ts +3 -0
- package/dist/vite/mdx/remark-static-generation.js +125 -0
- package/dist/vite/mdx/remark-static-generation.js.map +1 -0
- package/dist/vite/mdx/utils.d.ts +2 -0
- package/dist/vite/mdx/utils.js +31 -0
- package/dist/vite/mdx/utils.js.map +1 -0
- package/dist/vite/output.d.ts +113 -0
- package/dist/vite/output.js +60 -0
- package/dist/vite/output.js.map +1 -0
- package/dist/vite/plugin-api-keys.d.ts +2 -3
- package/dist/vite/plugin-api-keys.js +14 -8
- package/dist/vite/plugin-api-keys.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +1 -2
- package/dist/vite/plugin-api.js +148 -36
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-auth.d.ts +2 -3
- package/dist/vite/plugin-auth.js +11 -7
- package/dist/vite/plugin-auth.js.map +1 -1
- package/dist/vite/plugin-component.d.ts +2 -3
- package/dist/vite/plugin-component.js +25 -15
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-config-reload.d.ts +3 -4
- package/dist/vite/plugin-config-reload.js +31 -20
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-config.d.ts +2 -4
- package/dist/vite/plugin-config.js +28 -3
- package/dist/vite/plugin-config.js.map +1 -1
- package/dist/vite/plugin-custom-pages.d.ts +3 -0
- package/dist/vite/plugin-custom-pages.js +31 -0
- package/dist/vite/plugin-custom-pages.js.map +1 -0
- package/dist/vite/plugin-docs.d.ts +11 -3
- package/dist/vite/plugin-docs.js +100 -39
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-frontmatter.d.ts +2 -0
- package/dist/vite/plugin-frontmatter.js +39 -0
- package/dist/vite/plugin-frontmatter.js.map +1 -0
- package/dist/vite/plugin-markdown-export.d.ts +21 -0
- package/dist/vite/plugin-markdown-export.js +141 -0
- package/dist/vite/plugin-markdown-export.js.map +1 -0
- package/dist/vite/plugin-mdx.d.ts +2 -9
- package/dist/vite/plugin-mdx.js +92 -36
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-metadata.d.ts +1 -1
- package/dist/vite/plugin-navigation.d.ts +4 -0
- package/dist/vite/plugin-navigation.js +67 -0
- package/dist/vite/plugin-navigation.js.map +1 -0
- package/dist/vite/plugin-redirect.d.ts +2 -3
- package/dist/vite/plugin-redirect.js +7 -6
- package/dist/vite/plugin-redirect.js.map +1 -1
- package/dist/vite/plugin-search.d.ts +2 -0
- package/dist/vite/plugin-search.js +31 -0
- package/dist/vite/plugin-search.js.map +1 -0
- package/dist/vite/plugin-shiki-register.d.ts +2 -0
- package/dist/vite/plugin-shiki-register.js +39 -0
- package/dist/vite/plugin-shiki-register.js.map +1 -0
- package/dist/vite/plugin-theme.d.ts +8 -0
- package/dist/vite/plugin-theme.js +283 -0
- package/dist/vite/plugin-theme.js.map +1 -0
- package/dist/vite/plugin-theme.test.d.ts +1 -0
- package/dist/vite/plugin-theme.test.js +314 -0
- package/dist/vite/plugin-theme.test.js.map +1 -0
- package/dist/vite/plugin.d.ts +2 -4
- package/dist/vite/plugin.js +30 -21
- package/dist/vite/plugin.js.map +1 -1
- package/dist/vite/prerender/FileWritingResponse.d.ts +25 -0
- package/dist/vite/prerender/FileWritingResponse.js +53 -0
- package/dist/vite/prerender/FileWritingResponse.js.map +1 -0
- package/dist/vite/prerender/InMemoryResponse.d.ts +16 -0
- package/dist/vite/prerender/InMemoryResponse.js +34 -0
- package/dist/vite/prerender/InMemoryResponse.js.map +1 -0
- package/dist/vite/prerender/PrerenderResponse.d.ts +10 -0
- package/dist/vite/prerender/PrerenderResponse.js +2 -0
- package/dist/vite/prerender/PrerenderResponse.js.map +1 -0
- package/dist/vite/prerender/prerender.d.ts +15 -0
- package/dist/vite/prerender/prerender.js +142 -0
- package/dist/vite/prerender/prerender.js.map +1 -0
- package/dist/vite/prerender/worker.d.ts +13 -0
- package/dist/vite/prerender/worker.js +63 -0
- package/dist/vite/prerender/worker.js.map +1 -0
- package/dist/vite/reporter.d.ts +3 -0
- package/dist/vite/reporter.js +33 -0
- package/dist/vite/reporter.js.map +1 -0
- package/dist/vite/shadcn-registry.d.ts +20 -0
- package/dist/vite/shadcn-registry.js +29 -0
- package/dist/vite/shadcn-registry.js.map +1 -0
- package/dist/vite/sitemap.d.ts +1 -1
- package/dist/vite/sitemap.js +16 -14
- package/dist/vite/sitemap.js.map +1 -1
- package/dist/zuplo/enrich-with-zuplo-mcp.d.ts +4 -0
- package/dist/zuplo/enrich-with-zuplo-mcp.js +117 -0
- package/dist/zuplo/enrich-with-zuplo-mcp.js.map +1 -0
- package/dist/zuplo/enrich-with-zuplo.d.ts +6 -0
- package/dist/zuplo/enrich-with-zuplo.js +185 -0
- package/dist/zuplo/enrich-with-zuplo.js.map +1 -0
- package/dist/zuplo/policy-types.d.ts +33 -0
- package/dist/zuplo/policy-types.js +7 -0
- package/dist/zuplo/policy-types.js.map +1 -0
- package/dist/zuplo/with-zuplo-processors.d.ts +3 -0
- package/dist/zuplo/with-zuplo-processors.js +28 -0
- package/dist/zuplo/with-zuplo-processors.js.map +1 -0
- package/dist/zuplo/with-zuplo.d.ts +6 -0
- package/dist/zuplo/with-zuplo.js +10 -0
- package/dist/zuplo/with-zuplo.js.map +1 -0
- package/lib/Button-B3ucvvQw.js +52 -0
- package/lib/Button-B3ucvvQw.js.map +1 -0
- package/lib/Card-KFniaZn5.js +61 -0
- package/lib/Card-KFniaZn5.js.map +1 -0
- package/lib/CategoryHeading-DhmodDcq.js +17 -0
- package/lib/CategoryHeading-DhmodDcq.js.map +1 -0
- package/lib/ClientOnly-E7hGysn1.js +11 -0
- package/lib/ClientOnly-E7hGysn1.js.map +1 -0
- package/lib/Command-CUcrW3qs.js +134 -0
- package/lib/Command-CUcrW3qs.js.map +1 -0
- package/lib/Dialog-BQciPiHN.js +144 -0
- package/lib/Dialog-BQciPiHN.js.map +1 -0
- package/lib/Drawer-Ci7XwhqT.js +1133 -0
- package/lib/Drawer-Ci7XwhqT.js.map +1 -0
- package/lib/DropdownMenu-BZ2NKQ3K.js +126 -0
- package/lib/DropdownMenu-BZ2NKQ3K.js.map +1 -0
- package/lib/ErrorAlert-_1Zmhr68.js +15475 -0
- package/lib/ErrorAlert-_1Zmhr68.js.map +1 -0
- package/lib/MdxPage-B2t1EShN.js +240 -0
- package/lib/MdxPage-B2t1EShN.js.map +1 -0
- package/lib/OAuthErrorPage-DnKnq4xK.js +150 -0
- package/lib/OAuthErrorPage-DnKnq4xK.js.map +1 -0
- package/lib/OasProvider-Df8i4LN9.js +36 -0
- package/lib/OasProvider-Df8i4LN9.js.map +1 -0
- package/lib/OperationList-BGhUll5h.js +5688 -0
- package/lib/OperationList-BGhUll5h.js.map +1 -0
- package/lib/Pagination-hk-llhpw.js +37 -0
- package/lib/Pagination-hk-llhpw.js.map +1 -0
- package/lib/RouteGuard-Brz95MSt.js +77 -0
- package/lib/RouteGuard-Brz95MSt.js.map +1 -0
- package/lib/RouterError-CMaIfdjb.js +42 -0
- package/lib/RouterError-CMaIfdjb.js.map +1 -0
- package/lib/SchemaList-1BwTDYj4.js +150 -0
- package/lib/SchemaList-1BwTDYj4.js.map +1 -0
- package/lib/SchemaView-iAxsr0Pr.js +572 -0
- package/lib/SchemaView-iAxsr0Pr.js.map +1 -0
- package/lib/Select-DFRCS31-.js +399 -0
- package/lib/Select-DFRCS31-.js.map +1 -0
- package/lib/SignUp-sGYAsj2K.js +50 -0
- package/lib/SignUp-sGYAsj2K.js.map +1 -0
- package/lib/Spinner-CI6bRyZw.js +7 -0
- package/lib/Spinner-CI6bRyZw.js.map +1 -0
- package/lib/SyntaxHighlight-C19vH0V_.js +10352 -0
- package/lib/SyntaxHighlight-C19vH0V_.js.map +1 -0
- package/lib/Toc-DbWS75JZ.js +92 -0
- package/lib/Toc-DbWS75JZ.js.map +1 -0
- package/lib/ZudokuContext-BUZ5hkWB.js +1508 -0
- package/lib/ZudokuContext-BUZ5hkWB.js.map +1 -0
- package/lib/c-B-NUhs61.js +46 -0
- package/lib/c-B-NUhs61.js.map +1 -0
- package/lib/chunk-PVWAREVJ-BMhpCH5D.js +7965 -0
- package/lib/chunk-PVWAREVJ-BMhpCH5D.js.map +1 -0
- package/lib/circular-KI-MGwIg.js +15341 -0
- package/lib/circular-KI-MGwIg.js.map +1 -0
- package/lib/clsx-OuTLNxxd.js +17 -0
- package/lib/clsx-OuTLNxxd.js.map +1 -0
- package/lib/cn-dYga0KKN.js +2731 -0
- package/lib/cn-dYga0KKN.js.map +1 -0
- package/lib/commonlisp-De080z23.js +28 -0
- package/lib/commonlisp-De080z23.js.map +1 -0
- package/lib/cpp-79Paht7T.js +53 -0
- package/lib/cpp-79Paht7T.js.map +1 -0
- package/lib/createServer-CBgHAqRV.js +13018 -0
- package/lib/createServer-CBgHAqRV.js.map +1 -0
- package/lib/csharp-D8MIL50B.js +53 -0
- package/lib/csharp-D8MIL50B.js.map +1 -0
- package/lib/css-Bt6hr1td.js +54 -0
- package/lib/css-Bt6hr1td.js.map +1 -0
- package/lib/dart-B0vy1jWB.js +60 -0
- package/lib/dart-B0vy1jWB.js.map +1 -0
- package/lib/elixir-Ds8r0sF8.js +25 -0
- package/lib/elixir-Ds8r0sF8.js.map +1 -0
- package/lib/errors-CD873hrG.js +45 -0
- package/lib/errors-CD873hrG.js.map +1 -0
- package/lib/go-D2VsmIOS.js +25 -0
- package/lib/go-D2VsmIOS.js.map +1 -0
- package/lib/graphql-BtA6M4m5.js +25 -0
- package/lib/graphql-BtA6M4m5.js.map +1 -0
- package/lib/hook-CMeoxziF.js +40 -0
- package/lib/hook-CMeoxziF.js.map +1 -0
- package/lib/html-MGnI2uzP.js +33 -0
- package/lib/html-MGnI2uzP.js.map +1 -0
- package/lib/index-BK0jKRrX.js +2210 -0
- package/lib/index-BK0jKRrX.js.map +1 -0
- package/lib/index-CrcNWbel.js +316 -0
- package/lib/index-CrcNWbel.js.map +1 -0
- package/lib/index-CscynaXA.js +3680 -0
- package/lib/index-CscynaXA.js.map +1 -0
- package/lib/index-DI5SPFK9.js +36 -0
- package/lib/index-DI5SPFK9.js.map +1 -0
- package/lib/index-nGbmHh_A.js +4827 -0
- package/lib/index-nGbmHh_A.js.map +1 -0
- package/lib/index-pMMX55GH.js +1059 -0
- package/lib/index-pMMX55GH.js.map +1 -0
- package/lib/index.esm-BYObtETB.js +1294 -0
- package/lib/index.esm-BYObtETB.js.map +1 -0
- package/lib/index.esm-BnYHxCYC.js +683 -0
- package/lib/index.esm-BnYHxCYC.js.map +1 -0
- package/lib/invariant-Bm-FVUQE.js +44 -0
- package/lib/invariant-Bm-FVUQE.js.map +1 -0
- package/lib/java-CVLzHfb1.js +53 -0
- package/lib/java-CVLzHfb1.js.map +1 -0
- package/lib/javascript-CcmIpL4G.js +10 -0
- package/lib/javascript-CcmIpL4G.js.map +1 -0
- package/lib/json-4AyP4uiY.js +25 -0
- package/lib/json-4AyP4uiY.js.map +1 -0
- package/lib/jsx-runtime-BzflLqGi.js +283 -0
- package/lib/jsx-runtime-BzflLqGi.js.map +1 -0
- package/lib/kotlin-v2plddBQ.js +37 -0
- package/lib/kotlin-v2plddBQ.js.map +1 -0
- package/lib/markdown-DYGWCmGQ.js +25 -0
- package/lib/markdown-DYGWCmGQ.js.map +1 -0
- package/lib/mdx-CHwYvXd4.js +32 -0
- package/lib/mdx-CHwYvXd4.js.map +1 -0
- package/lib/mutation-BSU0xu4m.js +196 -0
- package/lib/mutation-BSU0xu4m.js.map +1 -0
- package/lib/objectivec-HZY8shkd.js +32 -0
- package/lib/objectivec-HZY8shkd.js.map +1 -0
- package/lib/ocaml-DqsdDdwb.js +52 -0
- package/lib/ocaml-DqsdDdwb.js.map +1 -0
- package/lib/php-rQXzo7K_.js +25 -0
- package/lib/php-rQXzo7K_.js.map +1 -0
- package/lib/powershell-CQje9pm1.js +39 -0
- package/lib/powershell-CQje9pm1.js.map +1 -0
- package/lib/processors/removeExtensions.js +11 -0
- package/lib/processors/removeExtensions.js.map +1 -0
- package/lib/processors/removeParameters.js +47 -0
- package/lib/processors/removeParameters.js.map +1 -0
- package/lib/processors/removePaths.js +28 -0
- package/lib/processors/removePaths.js.map +1 -0
- package/lib/processors/traverse.js +17 -0
- package/lib/processors/traverse.js.map +1 -0
- package/lib/python-QIQAE5Ei.js +32 -0
- package/lib/python-QIQAE5Ei.js.map +1 -0
- package/lib/react-DHpVpxRv.js +24 -0
- package/lib/react-DHpVpxRv.js.map +1 -0
- package/lib/ruby-B2dU8Ny5.js +25 -0
- package/lib/ruby-B2dU8Ny5.js.map +1 -0
- package/lib/rust-DYnLHAi2.js +25 -0
- package/lib/rust-DYnLHAi2.js.map +1 -0
- package/lib/scala-CeKInBR8.js +25 -0
- package/lib/scala-CeKInBR8.js.map +1 -0
- package/lib/shell-HUv9oVtp.js +25 -0
- package/lib/shell-HUv9oVtp.js.map +1 -0
- package/lib/swift-B4z6ig1Z.js +25 -0
- package/lib/swift-B4z6ig1Z.js.map +1 -0
- package/lib/toml-Co9mpdct.js +32 -0
- package/lib/toml-Co9mpdct.js.map +1 -0
- package/lib/typescript-C26xdBDC.js +32 -0
- package/lib/typescript-C26xdBDC.js.map +1 -0
- package/lib/ui/Accordion.js +47 -0
- package/lib/ui/Accordion.js.map +1 -0
- package/lib/ui/ActionButton.js +25 -0
- package/lib/ui/ActionButton.js.map +1 -0
- package/lib/ui/Alert.js +67 -0
- package/lib/ui/Alert.js.map +1 -0
- package/lib/ui/AlertDialog.js +114 -0
- package/lib/ui/AlertDialog.js.map +1 -0
- package/lib/ui/AspectRatio.js +6 -0
- package/lib/ui/AspectRatio.js.map +1 -0
- package/lib/ui/Badge.js +42 -0
- package/lib/ui/Badge.js.map +1 -0
- package/lib/ui/Breadcrumb.js +95 -0
- package/lib/ui/Breadcrumb.js.map +1 -0
- package/lib/ui/Button.js +53 -0
- package/lib/ui/Button.js.map +1 -0
- package/lib/ui/Callout.js +97 -0
- package/lib/ui/Callout.js.map +1 -0
- package/lib/ui/Card.js +62 -0
- package/lib/ui/Card.js.map +1 -0
- package/lib/ui/Carousel.js +1416 -0
- package/lib/ui/Carousel.js.map +1 -0
- package/lib/ui/Checkbox.js +32 -0
- package/lib/ui/Checkbox.js.map +1 -0
- package/lib/ui/CodeBlock.js +220 -0
- package/lib/ui/CodeBlock.js.map +1 -0
- package/lib/ui/Collapsible.js +35 -0
- package/lib/ui/Collapsible.js.map +1 -0
- package/lib/ui/Command.js +150 -0
- package/lib/ui/Command.js.map +1 -0
- package/lib/ui/Dialog.js +146 -0
- package/lib/ui/Dialog.js.map +1 -0
- package/lib/ui/Drawer.js +17 -0
- package/lib/ui/Drawer.js.map +1 -0
- package/lib/ui/DropdownMenu.js +145 -0
- package/lib/ui/DropdownMenu.js.map +1 -0
- package/lib/ui/EmbeddedCodeBlock.js +84 -0
- package/lib/ui/EmbeddedCodeBlock.js.map +1 -0
- package/lib/ui/Form.js +95 -0
- package/lib/ui/Form.js.map +1 -0
- package/lib/ui/Frame.js +81 -0
- package/lib/ui/Frame.js.map +1 -0
- package/lib/ui/HoverCard.js +24 -0
- package/lib/ui/HoverCard.js.map +1 -0
- package/lib/ui/Input.js +22 -0
- package/lib/ui/Input.js.map +1 -0
- package/lib/ui/Item.js +188 -0
- package/lib/ui/Item.js.map +1 -0
- package/lib/ui/Label.js +20 -0
- package/lib/ui/Label.js.map +1 -0
- package/lib/ui/NativeSelect.js +57 -0
- package/lib/ui/NativeSelect.js.map +1 -0
- package/lib/ui/Pagination.js +105 -0
- package/lib/ui/Pagination.js.map +1 -0
- package/lib/ui/Popover.js +24 -0
- package/lib/ui/Popover.js.map +1 -0
- package/lib/ui/Progress.js +27 -0
- package/lib/ui/Progress.js.map +1 -0
- package/lib/ui/RadioGroup.js +32 -0
- package/lib/ui/RadioGroup.js.map +1 -0
- package/lib/ui/ReactComponentDoc.js +28 -0
- package/lib/ui/ReactComponentDoc.js.map +1 -0
- package/lib/ui/ScrollArea.js +39 -0
- package/lib/ui/ScrollArea.js.map +1 -0
- package/lib/ui/Secret.js +106 -0
- package/lib/ui/Secret.js.map +1 -0
- package/lib/ui/Select.js +172 -0
- package/lib/ui/Select.js.map +1 -0
- package/lib/ui/Separator.js +27 -0
- package/lib/ui/Separator.js.map +1 -0
- package/lib/ui/Skeleton.js +18 -0
- package/lib/ui/Skeleton.js.map +1 -0
- package/lib/ui/Slider.js +24 -0
- package/lib/ui/Slider.js.map +1 -0
- package/lib/ui/Stepper.js +6 -0
- package/lib/ui/Stepper.js.map +1 -0
- package/lib/ui/Switch.js +28 -0
- package/lib/ui/Switch.js.map +1 -0
- package/lib/ui/SyntaxHighlight.js +11 -0
- package/lib/ui/SyntaxHighlight.js.map +1 -0
- package/lib/ui/Tabs.js +47 -0
- package/lib/ui/Tabs.js.map +1 -0
- package/lib/ui/Textarea.js +21 -0
- package/lib/ui/Textarea.js.map +1 -0
- package/lib/ui/Toggle.js +38 -0
- package/lib/ui/Toggle.js.map +1 -0
- package/lib/ui/ToggleGroup.js +42 -0
- package/lib/ui/ToggleGroup.js.map +1 -0
- package/lib/ui/Tooltip.js +58 -0
- package/lib/ui/Tooltip.js.map +1 -0
- package/lib/ui/Value.js +39 -0
- package/lib/ui/Value.js.map +1 -0
- package/lib/ui/util.js +6 -0
- package/lib/ui/util.js.map +1 -0
- package/lib/useCopyToClipboard-B_085nfO.js +14 -0
- package/lib/useCopyToClipboard-B_085nfO.js.map +1 -0
- package/lib/useExposedProps-U3pmsHaG.js +113 -0
- package/lib/useExposedProps-U3pmsHaG.js.map +1 -0
- package/lib/useLatest-hmRS46UF.js +11 -0
- package/lib/useLatest-hmRS46UF.js.map +1 -0
- package/lib/xml-BQOOC04j.js +25 -0
- package/lib/xml-BQOOC04j.js.map +1 -0
- package/lib/yaml-BGsJItKv.js +32 -0
- package/lib/yaml-BGsJItKv.js.map +1 -0
- package/lib/zig-CUV2sTct.js +35 -0
- package/lib/zig-CUV2sTct.js.map +1 -0
- package/lib/zudoku.__internal.js +3084 -0
- package/lib/zudoku.__internal.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +32 -29
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +136 -0
- package/lib/zudoku.auth-azureb2c.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +112 -61
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +644 -664
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.auth-supabase.js +154 -0
- package/lib/zudoku.auth-supabase.js.map +1 -0
- package/lib/zudoku.components.js +27 -3360
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +27 -0
- package/lib/zudoku.hooks.js.map +1 -0
- package/lib/zudoku.icons.js +10 -0
- package/lib/zudoku.icons.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +124 -0
- package/lib/zudoku.plugin-api-catalog.js.map +1 -0
- package/lib/zudoku.plugin-api-keys.js +635 -200
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +19 -0
- package/lib/zudoku.plugin-custom-pages.js.map +1 -0
- package/lib/zudoku.plugin-markdown.js +22 -25
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +8 -12
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/lib/zudoku.plugin-redirect.js +2 -2
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +61 -40
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +324 -0
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -0
- package/lib/zudoku.plugins.js +15 -0
- package/lib/zudoku.plugins.js.map +1 -0
- package/lib/zudoku.router.js +2507 -0
- package/lib/zudoku.router.js.map +1 -0
- package/package.json +230 -109
- package/src/app/ZuploBuildConfig.ts +33 -0
- package/src/app/defaultTheme.css +73 -0
- package/src/app/demo-cdn.html +31 -31
- package/src/app/demo.html +1 -1
- package/src/app/demo.tsx +26 -12
- package/src/app/entry.client.tsx +75 -8
- package/src/app/entry.server.tsx +97 -68
- package/src/app/env.ts +43 -0
- package/src/app/font.geist.css +73 -0
- package/src/app/main.css +232 -134
- package/src/app/main.tsx +100 -80
- package/src/app/sentry.ts +24 -0
- package/src/app/standalone.tsx +15 -13
- package/src/lib/MissingIcon.tsx +22 -0
- package/src/lib/assets/language-icons/c.tsx +31 -0
- package/src/lib/assets/language-icons/commonlisp.tsx +22 -0
- package/src/lib/assets/language-icons/cpp.tsx +35 -0
- package/src/lib/assets/language-icons/csharp.tsx +35 -0
- package/src/lib/assets/language-icons/css.tsx +36 -0
- package/src/lib/assets/language-icons/dart.tsx +39 -0
- package/src/lib/assets/language-icons/elixir.tsx +19 -0
- package/src/lib/assets/language-icons/go.tsx +19 -0
- package/src/lib/assets/language-icons/graphql.tsx +19 -0
- package/src/lib/assets/language-icons/html.tsx +24 -0
- package/src/lib/assets/language-icons/java.tsx +35 -0
- package/src/lib/assets/language-icons/javascript.tsx +11 -0
- package/src/lib/assets/language-icons/json.tsx +19 -0
- package/src/lib/assets/language-icons/kotlin.tsx +30 -0
- package/src/lib/assets/language-icons/markdown.tsx +19 -0
- package/src/lib/assets/language-icons/mdx.tsx +23 -0
- package/src/lib/assets/language-icons/objectivec.tsx +23 -0
- package/src/lib/assets/language-icons/ocaml.tsx +34 -0
- package/src/lib/assets/language-icons/php.tsx +19 -0
- package/src/lib/assets/language-icons/powershell.tsx +27 -0
- package/src/lib/assets/language-icons/python.tsx +23 -0
- package/src/lib/assets/language-icons/react.tsx +21 -0
- package/src/lib/assets/language-icons/ruby.tsx +19 -0
- package/src/lib/assets/language-icons/rust.tsx +19 -0
- package/src/lib/assets/language-icons/scala.tsx +19 -0
- package/src/lib/assets/language-icons/shell.tsx +19 -0
- package/src/lib/assets/language-icons/swift.tsx +19 -0
- package/src/lib/assets/language-icons/toml.tsx +23 -0
- package/src/lib/assets/language-icons/typescript.tsx +23 -0
- package/src/lib/assets/language-icons/xml.tsx +19 -0
- package/src/lib/assets/language-icons/yaml.tsx +23 -0
- package/src/lib/assets/language-icons/zig.tsx +32 -0
- package/src/lib/auth/issuer.test.ts +121 -0
- package/src/lib/auth/issuer.ts +44 -0
- package/src/lib/authentication/AuthenticationPlugin.tsx +6 -3
- package/src/lib/authentication/authentication.ts +29 -12
- package/src/lib/authentication/components/CallbackHandler.tsx +36 -50
- package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
- package/src/lib/authentication/components/SignIn.tsx +35 -7
- package/src/lib/authentication/components/SignOut.tsx +8 -6
- package/src/lib/authentication/components/SignUp.tsx +36 -5
- package/src/lib/authentication/errors.ts +27 -13
- package/src/lib/authentication/hook.ts +29 -7
- package/src/lib/authentication/providers/auth0.tsx +39 -19
- package/src/lib/authentication/providers/azureb2c.tsx +208 -0
- package/src/lib/authentication/providers/clerk.tsx +138 -54
- package/src/lib/authentication/providers/firebase.tsx +284 -0
- package/src/lib/authentication/providers/openid.tsx +175 -89
- package/src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx +75 -0
- package/src/lib/authentication/providers/supabase.tsx +162 -0
- package/src/lib/authentication/state.ts +65 -7
- package/src/lib/authentication/ui/ZudokuAuthUi.tsx +335 -0
- package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
- package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
- package/src/lib/authentication/ui/icons/Github.tsx +16 -0
- package/src/lib/authentication/ui/icons/Google.tsx +16 -0
- package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
- package/src/lib/authentication/ui/icons/X.tsx +10 -0
- package/src/lib/authentication/use-broadcast/LICENSE.md +18 -0
- package/src/lib/authentication/use-broadcast/shared.ts +372 -0
- package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
- package/src/lib/components/AnchorLink.tsx +13 -8
- package/src/lib/components/Autocomplete.tsx +123 -0
- package/src/lib/components/Banner.tsx +15 -5
- package/src/lib/components/Bootstrap.tsx +44 -16
- package/src/lib/components/BuildCheck.tsx +88 -0
- package/src/lib/components/CategoryHeading.tsx +4 -1
- package/src/lib/components/ClientOnly.tsx +6 -3
- package/src/lib/components/DeveloperHint.tsx +6 -1
- package/src/lib/components/ErrorPage.tsx +3 -5
- package/src/lib/components/Footer.tsx +136 -0
- package/src/lib/components/Framed.tsx +51 -0
- package/src/lib/components/Header.tsx +122 -66
- package/src/lib/components/Heading.tsx +22 -19
- package/src/lib/components/InlineCode.tsx +15 -8
- package/src/lib/components/LanguageIcon.tsx +181 -0
- package/src/lib/components/Layout.tsx +28 -69
- package/src/lib/components/Main.tsx +51 -0
- package/src/lib/components/Markdown.tsx +45 -30
- package/src/lib/components/Meta.tsx +45 -0
- package/src/lib/components/MobileTopNavigation.tsx +98 -28
- package/src/lib/components/NotFoundPage.tsx +7 -6
- package/src/lib/components/PageProgress.tsx +28 -0
- package/src/lib/components/Pagination.tsx +45 -0
- package/src/lib/components/PathRenderer.tsx +61 -0
- package/src/lib/components/Search.tsx +20 -9
- package/src/lib/components/Slot.test.tsx +465 -0
- package/src/lib/components/Slot.tsx +64 -0
- package/src/lib/components/StatusPage.tsx +96 -0
- package/src/lib/components/ThemeSwitch.tsx +46 -0
- package/src/lib/components/TopNavigation.tsx +104 -27
- package/src/lib/components/Typography.tsx +14 -0
- package/src/lib/components/Zudoku.tsx +119 -0
- package/src/lib/components/cache.ts +27 -0
- package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
- package/src/lib/components/context/ComponentsContext.tsx +2 -2
- package/src/lib/components/context/RouterEventsEmitter.tsx +19 -0
- package/src/lib/components/context/SlotProvider.tsx +149 -0
- package/src/lib/components/context/ViewportAnchorContext.tsx +35 -37
- package/src/lib/components/context/ZudokuContext.ts +87 -29
- package/src/lib/components/context/ZudokuProvider.tsx +4 -3
- package/src/lib/components/index.ts +34 -17
- package/src/lib/components/navigation/Navigation.tsx +50 -0
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -0
- package/src/lib/components/navigation/NavigationCategory.tsx +153 -0
- package/src/lib/components/navigation/NavigationItem.tsx +148 -0
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -0
- package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
- package/src/lib/components/navigation/Toc.tsx +126 -0
- package/src/lib/components/navigation/ZudokuLogo.tsx +25 -0
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
- package/src/lib/components/navigation/utils.ts +85 -50
- package/src/lib/core/RouteGuard.tsx +116 -0
- package/src/lib/core/ZudokuContext.ts +249 -0
- package/src/lib/core/__internal.tsx +30 -0
- package/src/lib/core/plugins.ts +56 -23
- package/src/lib/core/router.ts +1 -0
- package/src/lib/errors/ErrorAlert.tsx +29 -17
- package/src/lib/errors/RouterError.tsx +8 -3
- package/src/lib/errors/TopLevelError.tsx +2 -4
- package/src/lib/hooks/index.ts +16 -0
- package/src/lib/hooks/useEvent.test.tsx +151 -0
- package/src/lib/hooks/useEvent.ts +41 -0
- package/src/lib/hooks/useHotkey.ts +70 -0
- package/src/lib/icons.ts +1 -0
- package/src/lib/oas/graphql/circular.ts +58 -0
- package/src/lib/oas/graphql/index.ts +358 -116
- package/src/lib/oas/parser/dereference/index.ts +12 -5
- package/src/lib/oas/parser/dereference/resolveRef.ts +4 -4
- package/src/lib/oas/parser/index.ts +22 -32
- package/src/lib/oas/parser/upgrade/index.ts +105 -39
- package/src/lib/plugins/api-catalog/Catalog.tsx +80 -0
- package/src/lib/plugins/api-catalog/index.tsx +115 -0
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +79 -49
- package/src/lib/plugins/api-keys/CreateApiKeyDialog.tsx +49 -0
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +12 -8
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +441 -122
- package/src/lib/plugins/api-keys/index.tsx +150 -66
- package/src/lib/plugins/custom-pages/index.tsx +32 -0
- package/src/lib/plugins/markdown/MdxPage.tsx +238 -62
- package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -0
- package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -0
- package/src/lib/plugins/markdown/index.tsx +39 -12
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +88 -0
- package/src/lib/plugins/openapi/ColorizedParam.tsx +51 -23
- package/src/lib/plugins/openapi/Endpoint.tsx +83 -22
- package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
- package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -0
- package/src/lib/plugins/openapi/OasProvider.tsx +52 -0
- package/src/lib/plugins/openapi/OperationList.tsx +265 -73
- package/src/lib/plugins/openapi/OperationListItem.tsx +147 -91
- package/src/lib/plugins/openapi/ParamInfos.tsx +91 -0
- package/src/lib/plugins/openapi/ParameterList.tsx +43 -27
- package/src/lib/plugins/openapi/ParameterListItem.tsx +137 -39
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +28 -5
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +52 -28
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +87 -64
- package/src/lib/plugins/openapi/SchemaList.tsx +157 -0
- package/src/lib/plugins/openapi/Sidecar.tsx +236 -174
- package/src/lib/plugins/openapi/SidecarBox.tsx +14 -4
- package/src/lib/plugins/openapi/SidecarExamples.tsx +174 -0
- package/src/lib/plugins/openapi/SimpleSelect.tsx +11 -3
- package/src/lib/plugins/openapi/StaggeredRender.tsx +1 -1
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +65 -0
- package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -0
- package/src/lib/plugins/openapi/client/createServer.ts +9 -4
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +46 -0
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
- package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -0
- package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +114 -0
- package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -0
- package/src/lib/plugins/openapi/context.tsx +2 -2
- package/src/lib/plugins/openapi/graphql/fragment-masking.ts +12 -19
- package/src/lib/plugins/openapi/graphql/gql.ts +46 -30
- package/src/lib/plugins/openapi/graphql/graphql.ts +438 -598
- package/src/lib/plugins/openapi/index.tsx +161 -157
- package/src/lib/plugins/openapi/interfaces.ts +77 -4
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +271 -0
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +51 -0
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +60 -0
- package/src/lib/plugins/openapi/playground/Headers.tsx +173 -58
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +75 -0
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +38 -0
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +45 -0
- package/src/lib/plugins/openapi/playground/PathParams.tsx +36 -70
- package/src/lib/plugins/openapi/playground/Playground.tsx +464 -263
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +24 -30
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +102 -112
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +70 -0
- package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -0
- package/src/lib/plugins/openapi/playground/createUrl.ts +6 -1
- package/src/lib/plugins/openapi/playground/fileUtils.ts +32 -0
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
- package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +25 -0
- package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
- package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
- package/src/lib/plugins/openapi/playground/result-panel/Highlight.tsx +26 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +339 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +102 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.test.ts +64 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -0
- package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -0
- package/src/lib/plugins/openapi/processors/removeExtensions.test.ts +223 -0
- package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -0
- package/src/lib/plugins/openapi/processors/removeParameters.test.ts +183 -0
- package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -0
- package/src/lib/plugins/openapi/processors/removePaths.test.ts +167 -0
- package/src/lib/plugins/openapi/processors/removePaths.ts +57 -0
- package/src/lib/plugins/openapi/processors/traverse.ts +1 -0
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +175 -0
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +140 -139
- package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -0
- package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -0
- package/src/lib/plugins/openapi/schema/utils.ts +30 -13
- package/src/lib/plugins/openapi/state.ts +36 -0
- package/src/lib/plugins/openapi/util/createHttpSnippet.ts +107 -0
- package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -0
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +95 -45
- package/src/lib/plugins/openapi/util/getRoutes.tsx +198 -0
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -0
- package/src/lib/plugins/openapi/util/methodToColor.ts +27 -0
- package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -0
- package/src/lib/plugins/redirect/index.tsx +6 -10
- package/src/lib/plugins/search-inkeep/index.tsx +83 -32
- package/src/lib/plugins/search-inkeep/inkeep.ts +15 -23
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +163 -0
- package/src/lib/plugins/search-pagefind/ResultList.tsx +113 -0
- package/src/lib/plugins/search-pagefind/get-results.tsx +74 -0
- package/src/lib/plugins/search-pagefind/index.tsx +21 -0
- package/src/lib/plugins/search-pagefind/types.ts +118 -0
- package/src/lib/shiki.ts +161 -0
- package/src/lib/ui/Accordion.tsx +56 -0
- package/src/lib/ui/ActionButton.tsx +30 -0
- package/src/lib/ui/Alert.tsx +65 -0
- package/src/lib/ui/AlertDialog.tsx +139 -0
- package/src/lib/ui/AspectRatio.tsx +5 -0
- package/src/lib/ui/Badge.tsx +46 -0
- package/src/lib/ui/Breadcrumb.tsx +116 -0
- package/src/lib/ui/Button.tsx +14 -8
- package/src/lib/ui/Callout.tsx +47 -21
- package/src/lib/ui/Card.tsx +1 -1
- package/src/lib/ui/Carousel.tsx +260 -0
- package/src/lib/ui/Checkbox.tsx +28 -0
- package/src/lib/ui/CodeBlock.tsx +79 -0
- package/src/lib/ui/Collapsible.tsx +31 -0
- package/src/lib/ui/Command.tsx +191 -0
- package/src/lib/ui/Dialog.tsx +138 -0
- package/src/lib/ui/Drawer.tsx +38 -36
- package/src/lib/ui/DropdownMenu.tsx +4 -4
- package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -0
- package/src/lib/ui/Form.tsx +177 -0
- package/src/lib/ui/Frame.tsx +81 -0
- package/src/lib/ui/HoverCard.tsx +27 -0
- package/src/lib/ui/Input.tsx +2 -3
- package/src/lib/ui/Item.tsx +192 -0
- package/src/lib/ui/Label.tsx +24 -0
- package/src/lib/ui/NativeSelect.tsx +47 -0
- package/src/lib/ui/Pagination.tsx +116 -0
- package/src/lib/ui/Popover.tsx +29 -0
- package/src/lib/ui/Progress.tsx +26 -0
- package/src/lib/ui/RadioGroup.tsx +42 -0
- package/src/lib/ui/ReactComponentDoc.tsx +68 -0
- package/src/lib/ui/ScrollArea.tsx +46 -0
- package/src/lib/ui/Secret.tsx +123 -0
- package/src/lib/ui/Select.tsx +184 -0
- package/src/lib/ui/Separator.tsx +25 -0
- package/src/lib/ui/Skeleton.tsx +15 -0
- package/src/lib/ui/Slider.tsx +26 -0
- package/src/lib/ui/Stepper.tsx +8 -0
- package/src/lib/ui/Switch.tsx +27 -0
- package/src/lib/ui/SyntaxHighlight.tsx +40 -0
- package/src/lib/ui/Tabs.tsx +2 -2
- package/src/lib/ui/Textarea.tsx +23 -0
- package/src/lib/ui/Toggle.tsx +43 -0
- package/src/lib/ui/ToggleGroup.tsx +59 -0
- package/src/lib/ui/Tooltip.tsx +65 -0
- package/src/lib/ui/Value.tsx +42 -0
- package/src/lib/ui/util.tsx +3 -0
- package/src/lib/util/MdxComponents.tsx +58 -26
- package/src/lib/util/cn.ts +1 -1
- package/src/lib/util/createVariantComponent.tsx +33 -7
- package/src/lib/util/detectOS.ts +9 -0
- package/src/lib/util/ensureArray.ts +3 -0
- package/src/lib/util/flattenAllOf.test.ts +637 -0
- package/src/lib/util/flattenAllOf.ts +101 -0
- package/src/lib/util/groupBy.ts +1 -0
- package/src/lib/util/humanFileSize.test.ts +24 -0
- package/src/lib/util/humanFileSize.ts +15 -0
- package/src/lib/util/invariant.ts +18 -3
- package/src/lib/util/joinPath.tsx +3 -0
- package/src/lib/util/joinUrl.test.ts +62 -0
- package/src/lib/util/joinUrl.ts +57 -0
- package/src/lib/util/os.ts +18 -0
- package/src/lib/util/pastellize.ts +4 -4
- package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -0
- package/src/lib/util/syncZustandState.ts +22 -0
- package/src/lib/util/traverse.ts +70 -0
- package/src/lib/util/types.ts +7 -0
- package/src/lib/util/url.test.ts +51 -0
- package/src/lib/util/url.ts +18 -0
- package/src/lib/util/useCopyToClipboard.ts +17 -0
- package/src/lib/util/useExposedProps.tsx +27 -0
- package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -0
- package/src/lib/util/useLatest.ts +18 -0
- package/src/lib/util/useOnScreen.ts +34 -0
- package/src/lib/util/useScrollToAnchor.ts +51 -40
- package/src/lib/util/useScrollToTop.ts +9 -4
- package/src/shiki/langs/abap.js +1 -0
- package/src/shiki/langs/actionscript-3.js +1 -0
- package/src/shiki/langs/ada.js +1 -0
- package/src/shiki/langs/angular-expression.js +1 -0
- package/src/shiki/langs/angular-html.js +1 -0
- package/src/shiki/langs/angular-inline-style.js +1 -0
- package/src/shiki/langs/angular-inline-template.js +1 -0
- package/src/shiki/langs/angular-let-declaration.js +1 -0
- package/src/shiki/langs/angular-template-blocks.js +1 -0
- package/src/shiki/langs/angular-template.js +1 -0
- package/src/shiki/langs/angular-ts.js +1 -0
- package/src/shiki/langs/apache.js +1 -0
- package/src/shiki/langs/apex.js +1 -0
- package/src/shiki/langs/apl.js +1 -0
- package/src/shiki/langs/applescript.js +1 -0
- package/src/shiki/langs/ara.js +1 -0
- package/src/shiki/langs/asciidoc.js +1 -0
- package/src/shiki/langs/asm.js +1 -0
- package/src/shiki/langs/astro.js +1 -0
- package/src/shiki/langs/awk.js +1 -0
- package/src/shiki/langs/ballerina.js +1 -0
- package/src/shiki/langs/bat.js +1 -0
- package/src/shiki/langs/beancount.js +1 -0
- package/src/shiki/langs/berry.js +1 -0
- package/src/shiki/langs/bibtex.js +1 -0
- package/src/shiki/langs/bicep.js +1 -0
- package/src/shiki/langs/blade.js +1 -0
- package/src/shiki/langs/bsl.js +1 -0
- package/src/shiki/langs/c.js +1 -0
- package/src/shiki/langs/cadence.js +1 -0
- package/src/shiki/langs/cairo.js +1 -0
- package/src/shiki/langs/clarity.js +1 -0
- package/src/shiki/langs/clojure.js +1 -0
- package/src/shiki/langs/cmake.js +1 -0
- package/src/shiki/langs/cobol.js +1 -0
- package/src/shiki/langs/codeowners.js +1 -0
- package/src/shiki/langs/codeql.js +1 -0
- package/src/shiki/langs/coffee.js +1 -0
- package/src/shiki/langs/common-lisp.js +1 -0
- package/src/shiki/langs/coq.js +1 -0
- package/src/shiki/langs/cpp-macro.js +1 -0
- package/src/shiki/langs/cpp.js +1 -0
- package/src/shiki/langs/crystal.js +1 -0
- package/src/shiki/langs/csharp.js +1 -0
- package/src/shiki/langs/css.js +1 -0
- package/src/shiki/langs/csv.js +1 -0
- package/src/shiki/langs/cue.js +1 -0
- package/src/shiki/langs/cypher.js +1 -0
- package/src/shiki/langs/d.js +1 -0
- package/src/shiki/langs/dart.js +1 -0
- package/src/shiki/langs/dax.js +1 -0
- package/src/shiki/langs/desktop.js +1 -0
- package/src/shiki/langs/diff.js +1 -0
- package/src/shiki/langs/docker.js +1 -0
- package/src/shiki/langs/dotenv.js +1 -0
- package/src/shiki/langs/dream-maker.js +1 -0
- package/src/shiki/langs/edge.js +1 -0
- package/src/shiki/langs/elixir.js +1 -0
- package/src/shiki/langs/elm.js +1 -0
- package/src/shiki/langs/emacs-lisp.js +1 -0
- package/src/shiki/langs/erb.js +1 -0
- package/src/shiki/langs/erlang.js +1 -0
- package/src/shiki/langs/es-tag-css.js +1 -0
- package/src/shiki/langs/es-tag-glsl.js +1 -0
- package/src/shiki/langs/es-tag-html.js +1 -0
- package/src/shiki/langs/es-tag-sql.js +1 -0
- package/src/shiki/langs/es-tag-xml.js +1 -0
- package/src/shiki/langs/fennel.js +1 -0
- package/src/shiki/langs/fish.js +1 -0
- package/src/shiki/langs/fluent.js +1 -0
- package/src/shiki/langs/fortran-fixed-form.js +1 -0
- package/src/shiki/langs/fortran-free-form.js +1 -0
- package/src/shiki/langs/fsharp.js +1 -0
- package/src/shiki/langs/gdresource.js +1 -0
- package/src/shiki/langs/gdscript.js +1 -0
- package/src/shiki/langs/gdshader.js +1 -0
- package/src/shiki/langs/genie.js +1 -0
- package/src/shiki/langs/gherkin.js +1 -0
- package/src/shiki/langs/git-commit.js +1 -0
- package/src/shiki/langs/git-rebase.js +1 -0
- package/src/shiki/langs/gleam.js +1 -0
- package/src/shiki/langs/glimmer-js.js +1 -0
- package/src/shiki/langs/glimmer-ts.js +1 -0
- package/src/shiki/langs/glsl.js +1 -0
- package/src/shiki/langs/gnuplot.js +1 -0
- package/src/shiki/langs/go.js +1 -0
- package/src/shiki/langs/graphql.js +1 -0
- package/src/shiki/langs/groovy.js +1 -0
- package/src/shiki/langs/hack.js +1 -0
- package/src/shiki/langs/haml.js +1 -0
- package/src/shiki/langs/handlebars.js +1 -0
- package/src/shiki/langs/haskell.js +1 -0
- package/src/shiki/langs/haxe.js +1 -0
- package/src/shiki/langs/hcl.js +1 -0
- package/src/shiki/langs/hjson.js +1 -0
- package/src/shiki/langs/hlsl.js +1 -0
- package/src/shiki/langs/html-derivative.js +1 -0
- package/src/shiki/langs/html.js +1 -0
- package/src/shiki/langs/http.js +1 -0
- package/src/shiki/langs/hurl.js +1 -0
- package/src/shiki/langs/hxml.js +1 -0
- package/src/shiki/langs/hy.js +1 -0
- package/src/shiki/langs/imba.js +1 -0
- package/src/shiki/langs/ini.js +1 -0
- package/src/shiki/langs/java.js +1 -0
- package/src/shiki/langs/javascript.js +1 -0
- package/src/shiki/langs/jinja-html.js +1 -0
- package/src/shiki/langs/jinja.js +1 -0
- package/src/shiki/langs/jison.js +1 -0
- package/src/shiki/langs/json.js +1 -0
- package/src/shiki/langs/json5.js +1 -0
- package/src/shiki/langs/jsonc.js +1 -0
- package/src/shiki/langs/jsonl.js +1 -0
- package/src/shiki/langs/jsonnet.js +1 -0
- package/src/shiki/langs/jssm.js +1 -0
- package/src/shiki/langs/jsx.js +1 -0
- package/src/shiki/langs/julia.js +1 -0
- package/src/shiki/langs/kdl.js +1 -0
- package/src/shiki/langs/kotlin.js +1 -0
- package/src/shiki/langs/kusto.js +1 -0
- package/src/shiki/langs/latex.js +1 -0
- package/src/shiki/langs/lean.js +1 -0
- package/src/shiki/langs/less.js +1 -0
- package/src/shiki/langs/liquid.js +1 -0
- package/src/shiki/langs/llvm.js +1 -0
- package/src/shiki/langs/log.js +1 -0
- package/src/shiki/langs/logo.js +1 -0
- package/src/shiki/langs/lua.js +1 -0
- package/src/shiki/langs/luau.js +1 -0
- package/src/shiki/langs/make.js +1 -0
- package/src/shiki/langs/markdown-vue.js +1 -0
- package/src/shiki/langs/markdown.js +1 -0
- package/src/shiki/langs/marko.js +1 -0
- package/src/shiki/langs/matlab.js +1 -0
- package/src/shiki/langs/mdc.js +1 -0
- package/src/shiki/langs/mdx.js +1 -0
- package/src/shiki/langs/mermaid.js +1 -0
- package/src/shiki/langs/mipsasm.js +1 -0
- package/src/shiki/langs/mojo.js +1 -0
- package/src/shiki/langs/move.js +1 -0
- package/src/shiki/langs/narrat.js +1 -0
- package/src/shiki/langs/nextflow.js +1 -0
- package/src/shiki/langs/nginx.js +1 -0
- package/src/shiki/langs/nim.js +1 -0
- package/src/shiki/langs/nix.js +1 -0
- package/src/shiki/langs/nushell.js +1 -0
- package/src/shiki/langs/objective-c.js +1 -0
- package/src/shiki/langs/objective-cpp.js +1 -0
- package/src/shiki/langs/ocaml.js +1 -0
- package/src/shiki/langs/pascal.js +1 -0
- package/src/shiki/langs/perl.js +1 -0
- package/src/shiki/langs/php.js +1 -0
- package/src/shiki/langs/pkl.js +1 -0
- package/src/shiki/langs/plsql.js +1 -0
- package/src/shiki/langs/po.js +1 -0
- package/src/shiki/langs/polar.js +1 -0
- package/src/shiki/langs/postcss.js +1 -0
- package/src/shiki/langs/powerquery.js +1 -0
- package/src/shiki/langs/powershell.js +1 -0
- package/src/shiki/langs/prisma.js +1 -0
- package/src/shiki/langs/prolog.js +1 -0
- package/src/shiki/langs/proto.js +1 -0
- package/src/shiki/langs/pug.js +1 -0
- package/src/shiki/langs/puppet.js +1 -0
- package/src/shiki/langs/purescript.js +1 -0
- package/src/shiki/langs/python.js +1 -0
- package/src/shiki/langs/qml.js +1 -0
- package/src/shiki/langs/qmldir.js +1 -0
- package/src/shiki/langs/qss.js +1 -0
- package/src/shiki/langs/r.js +1 -0
- package/src/shiki/langs/racket.js +1 -0
- package/src/shiki/langs/raku.js +1 -0
- package/src/shiki/langs/razor.js +1 -0
- package/src/shiki/langs/reg.js +1 -0
- package/src/shiki/langs/regexp.js +1 -0
- package/src/shiki/langs/rel.js +1 -0
- package/src/shiki/langs/riscv.js +1 -0
- package/src/shiki/langs/rosmsg.js +1 -0
- package/src/shiki/langs/rst.js +1 -0
- package/src/shiki/langs/ruby.js +1 -0
- package/src/shiki/langs/rust.js +1 -0
- package/src/shiki/langs/sas.js +1 -0
- package/src/shiki/langs/sass.js +1 -0
- package/src/shiki/langs/scala.js +1 -0
- package/src/shiki/langs/scheme.js +1 -0
- package/src/shiki/langs/scss.js +1 -0
- package/src/shiki/langs/sdbl.js +1 -0
- package/src/shiki/langs/shaderlab.js +1 -0
- package/src/shiki/langs/shellscript.js +1 -0
- package/src/shiki/langs/shellsession.js +1 -0
- package/src/shiki/langs/smalltalk.js +1 -0
- package/src/shiki/langs/solidity.js +1 -0
- package/src/shiki/langs/soy.js +1 -0
- package/src/shiki/langs/sparql.js +1 -0
- package/src/shiki/langs/splunk.js +1 -0
- package/src/shiki/langs/sql.js +1 -0
- package/src/shiki/langs/ssh-config.js +1 -0
- package/src/shiki/langs/stata.js +1 -0
- package/src/shiki/langs/stylus.js +1 -0
- package/src/shiki/langs/svelte.js +1 -0
- package/src/shiki/langs/swift.js +1 -0
- package/src/shiki/langs/system-verilog.js +1 -0
- package/src/shiki/langs/systemd.js +1 -0
- package/src/shiki/langs/talonscript.js +1 -0
- package/src/shiki/langs/tasl.js +1 -0
- package/src/shiki/langs/tcl.js +1 -0
- package/src/shiki/langs/templ.js +1 -0
- package/src/shiki/langs/terraform.js +1 -0
- package/src/shiki/langs/tex.js +1 -0
- package/src/shiki/langs/toml.js +1 -0
- package/src/shiki/langs/ts-tags.js +1 -0
- package/src/shiki/langs/tsv.js +1 -0
- package/src/shiki/langs/tsx.js +1 -0
- package/src/shiki/langs/turtle.js +1 -0
- package/src/shiki/langs/twig.js +1 -0
- package/src/shiki/langs/typescript.js +1 -0
- package/src/shiki/langs/typespec.js +1 -0
- package/src/shiki/langs/typst.js +1 -0
- package/src/shiki/langs/v.js +1 -0
- package/src/shiki/langs/vala.js +1 -0
- package/src/shiki/langs/vb.js +1 -0
- package/src/shiki/langs/verilog.js +1 -0
- package/src/shiki/langs/vhdl.js +1 -0
- package/src/shiki/langs/viml.js +1 -0
- package/src/shiki/langs/vue-directives.js +1 -0
- package/src/shiki/langs/vue-html.js +1 -0
- package/src/shiki/langs/vue-interpolations.js +1 -0
- package/src/shiki/langs/vue-sfc-style-variable-injection.js +1 -0
- package/src/shiki/langs/vue-vine.js +1 -0
- package/src/shiki/langs/vue.js +1 -0
- package/src/shiki/langs/vyper.js +1 -0
- package/src/shiki/langs/wasm.js +1 -0
- package/src/shiki/langs/wenyan.js +1 -0
- package/src/shiki/langs/wgsl.js +1 -0
- package/src/shiki/langs/wikitext.js +1 -0
- package/src/shiki/langs/wit.js +1 -0
- package/src/shiki/langs/wolfram.js +1 -0
- package/src/shiki/langs/xml.js +1 -0
- package/src/shiki/langs/xsl.js +1 -0
- package/src/shiki/langs/yaml.js +1 -0
- package/src/shiki/langs/zenscript.js +1 -0
- package/src/shiki/langs/zig.js +1 -0
- package/src/shiki/themes/andromeeda.js +1 -0
- package/src/shiki/themes/aurora-x.js +1 -0
- package/src/shiki/themes/ayu-dark.js +1 -0
- package/src/shiki/themes/catppuccin-frappe.js +1 -0
- package/src/shiki/themes/catppuccin-latte.js +1 -0
- package/src/shiki/themes/catppuccin-macchiato.js +1 -0
- package/src/shiki/themes/catppuccin-mocha.js +1 -0
- package/src/shiki/themes/dark-plus.js +1 -0
- package/src/shiki/themes/dracula-soft.js +1 -0
- package/src/shiki/themes/dracula.js +1 -0
- package/src/shiki/themes/everforest-dark.js +1 -0
- package/src/shiki/themes/everforest-light.js +1 -0
- package/src/shiki/themes/github-dark-default.js +1 -0
- package/src/shiki/themes/github-dark-dimmed.js +1 -0
- package/src/shiki/themes/github-dark-high-contrast.js +1 -0
- package/src/shiki/themes/github-dark.js +1 -0
- package/src/shiki/themes/github-light-default.js +1 -0
- package/src/shiki/themes/github-light-high-contrast.js +1 -0
- package/src/shiki/themes/github-light.js +1 -0
- package/src/shiki/themes/gruvbox-dark-hard.js +1 -0
- package/src/shiki/themes/gruvbox-dark-medium.js +1 -0
- package/src/shiki/themes/gruvbox-dark-soft.js +1 -0
- package/src/shiki/themes/gruvbox-light-hard.js +1 -0
- package/src/shiki/themes/gruvbox-light-medium.js +1 -0
- package/src/shiki/themes/gruvbox-light-soft.js +1 -0
- package/src/shiki/themes/houston.js +1 -0
- package/src/shiki/themes/kanagawa-dragon.js +1 -0
- package/src/shiki/themes/kanagawa-lotus.js +1 -0
- package/src/shiki/themes/kanagawa-wave.js +1 -0
- package/src/shiki/themes/laserwave.js +1 -0
- package/src/shiki/themes/light-plus.js +1 -0
- package/src/shiki/themes/material-theme-darker.js +1 -0
- package/src/shiki/themes/material-theme-lighter.js +1 -0
- package/src/shiki/themes/material-theme-ocean.js +1 -0
- package/src/shiki/themes/material-theme-palenight.js +1 -0
- package/src/shiki/themes/material-theme.js +1 -0
- package/src/shiki/themes/min-dark.js +1 -0
- package/src/shiki/themes/min-light.js +1 -0
- package/src/shiki/themes/monokai.js +1 -0
- package/src/shiki/themes/night-owl.js +1 -0
- package/src/shiki/themes/nord.js +1 -0
- package/src/shiki/themes/one-dark-pro.js +1 -0
- package/src/shiki/themes/one-light.js +1 -0
- package/src/shiki/themes/plastic.js +1 -0
- package/src/shiki/themes/poimandres.js +1 -0
- package/src/shiki/themes/red.js +1 -0
- package/src/shiki/themes/rose-pine-dawn.js +1 -0
- package/src/shiki/themes/rose-pine-moon.js +1 -0
- package/src/shiki/themes/rose-pine.js +1 -0
- package/src/shiki/themes/slack-dark.js +1 -0
- package/src/shiki/themes/slack-ochin.js +1 -0
- package/src/shiki/themes/snazzy-light.js +1 -0
- package/src/shiki/themes/solarized-dark.js +1 -0
- package/src/shiki/themes/solarized-light.js +1 -0
- package/src/shiki/themes/synthwave-84.js +1 -0
- package/src/shiki/themes/tokyo-night.js +1 -0
- package/src/shiki/themes/vesper.js +1 -0
- package/src/shiki/themes/vitesse-black.js +1 -0
- package/src/shiki/themes/vitesse-dark.js +1 -0
- package/src/shiki/themes/vitesse-light.js +1 -0
- package/LICENSE.md +0 -9
- package/dist/app/tailwind.d.ts +0 -3
- package/dist/app/tailwind.js +0 -65
- package/dist/app/tailwind.js.map +0 -1
- package/dist/config/validators/InputSidebarSchema.d.ts +0 -185
- package/dist/config/validators/InputSidebarSchema.js +0 -73
- package/dist/config/validators/InputSidebarSchema.js.map +0 -1
- package/dist/config/validators/SidebarSchema.d.ts +0 -23
- package/dist/config/validators/SidebarSchema.js +0 -82
- package/dist/config/validators/SidebarSchema.js.map +0 -1
- package/dist/internal.d.ts +0 -1
- package/dist/internal.js +0 -2
- package/dist/internal.js.map +0 -1
- package/dist/lib/components/DevPortal.d.ts +0 -7
- package/dist/lib/components/DevPortal.js +0 -54
- package/dist/lib/components/DevPortal.js.map +0 -1
- package/dist/lib/components/Dialog.d.ts +0 -19
- package/dist/lib/components/Dialog.js +0 -23
- package/dist/lib/components/Dialog.js.map +0 -1
- package/dist/lib/components/Select.d.ts +0 -13
- package/dist/lib/components/Select.js +0 -27
- package/dist/lib/components/Select.js.map +0 -1
- package/dist/lib/components/SlotletProvider.d.ts +0 -9
- package/dist/lib/components/SlotletProvider.js +0 -16
- package/dist/lib/components/SlotletProvider.js.map +0 -1
- package/dist/lib/components/SyntaxHighlight.d.ts +0 -11
- package/dist/lib/components/SyntaxHighlight.js +0 -50
- package/dist/lib/components/SyntaxHighlight.js.map +0 -1
- package/dist/lib/components/context/PluginSystem.js +0 -2
- package/dist/lib/components/context/PluginSystem.js.map +0 -1
- package/dist/lib/components/context/ThemeContext.d.ts +0 -2
- package/dist/lib/components/context/ThemeContext.js +0 -7
- package/dist/lib/components/context/ThemeContext.js.map +0 -1
- package/dist/lib/components/context/ThemeProvider.d.ts +0 -4
- package/dist/lib/components/context/ThemeProvider.js +0 -23
- package/dist/lib/components/context/ThemeProvider.js.map +0 -1
- package/dist/lib/components/navigation/Sidebar.d.ts +0 -1
- package/dist/lib/components/navigation/Sidebar.js +0 -14
- package/dist/lib/components/navigation/Sidebar.js.map +0 -1
- package/dist/lib/components/navigation/SidebarBadge.d.ts +0 -23
- package/dist/lib/components/navigation/SidebarBadge.js +0 -24
- package/dist/lib/components/navigation/SidebarBadge.js.map +0 -1
- package/dist/lib/components/navigation/SidebarCategory.d.ts +0 -5
- package/dist/lib/components/navigation/SidebarCategory.js +0 -41
- package/dist/lib/components/navigation/SidebarCategory.js.map +0 -1
- package/dist/lib/components/navigation/SidebarItem.d.ts +0 -12
- package/dist/lib/components/navigation/SidebarItem.js +0 -43
- package/dist/lib/components/navigation/SidebarItem.js.map +0 -1
- package/dist/lib/components/navigation/SidebarWrapper.d.ts +0 -6
- package/dist/lib/components/navigation/SidebarWrapper.js +0 -6
- package/dist/lib/components/navigation/SidebarWrapper.js.map +0 -1
- package/dist/lib/core/DevPortalContext.d.ts +0 -78
- package/dist/lib/core/DevPortalContext.js +0 -49
- package/dist/lib/core/DevPortalContext.js.map +0 -1
- package/dist/lib/plugins/custom-page/index.d.ts +0 -8
- package/dist/lib/plugins/custom-page/index.js +0 -12
- package/dist/lib/plugins/custom-page/index.js.map +0 -1
- package/dist/lib/plugins/markdown/Toc.js +0 -48
- package/dist/lib/plugins/markdown/Toc.js.map +0 -1
- package/dist/lib/plugins/markdown/generateRoutes.d.ts +0 -3
- package/dist/lib/plugins/markdown/generateRoutes.js +0 -19
- package/dist/lib/plugins/markdown/generateRoutes.js.map +0 -1
- package/dist/lib/plugins/openapi/Route.d.ts +0 -6
- package/dist/lib/plugins/openapi/Route.js +0 -8
- package/dist/lib/plugins/openapi/Route.js.map +0 -1
- package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +0 -12
- package/dist/lib/plugins/openapi/client/createMemoryClient.js +0 -46
- package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +0 -1
- package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +0 -10
- package/dist/lib/plugins/openapi/client/createWorkerClient.js +0 -61
- package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +0 -1
- package/dist/lib/plugins/openapi/client/interfaces.d.ts +0 -4
- package/dist/lib/plugins/openapi/client/interfaces.js +0 -2
- package/dist/lib/plugins/openapi/client/interfaces.js.map +0 -1
- package/dist/lib/plugins/openapi/client/worker.js +0 -20
- package/dist/lib/plugins/openapi/client/worker.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.d.ts +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.js +0 -5
- package/dist/lib/plugins/openapi/playground/Editor.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
- package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +0 -42
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/UrlDisplay.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js +0 -22
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +0 -9
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +0 -14
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +0 -6
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +0 -17
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -7
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +0 -10
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.d.ts +0 -13
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js +0 -28
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +0 -1
- package/dist/lib/plugins/openapi/util/urql.d.ts +0 -7
- package/dist/lib/plugins/openapi/util/urql.js +0 -8
- package/dist/lib/plugins/openapi/util/urql.js.map +0 -1
- package/dist/lib/plugins/openapi-worker.d.ts +0 -1
- package/dist/lib/plugins/openapi-worker.js +0 -2
- package/dist/lib/plugins/openapi-worker.js.map +0 -1
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.d.ts +0 -2
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js +0 -3
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js.map +0 -1
- package/dist/lib/themeToggle.d.ts +0 -1
- package/dist/lib/themeToggle.js +0 -7
- package/dist/lib/themeToggle.js.map +0 -1
- package/dist/lib/ui/Note.d.ts +0 -8
- package/dist/lib/ui/Note.js +0 -23
- package/dist/lib/ui/Note.js.map +0 -1
- package/dist/lib/util/createWaitForNotify.d.ts +0 -1
- package/dist/lib/util/createWaitForNotify.js +0 -15
- package/dist/lib/util/createWaitForNotify.js.map +0 -1
- package/dist/lib/util/slugify.d.ts +0 -2
- package/dist/lib/util/slugify.js +0 -3
- package/dist/lib/util/slugify.js.map +0 -1
- package/dist/vite/plugin-custom-css.d.ts +0 -6
- package/dist/vite/plugin-custom-css.js +0 -55
- package/dist/vite/plugin-custom-css.js.map +0 -1
- package/dist/vite/plugin-docs.test.js +0 -30
- package/dist/vite/plugin-docs.test.js.map +0 -1
- package/dist/vite/plugin-html-transform.d.ts +0 -2
- package/dist/vite/plugin-html-transform.js +0 -15
- package/dist/vite/plugin-html-transform.js.map +0 -1
- package/dist/vite/plugin-icons.d.ts +0 -3
- package/dist/vite/plugin-icons.js +0 -47
- package/dist/vite/plugin-icons.js.map +0 -1
- package/dist/vite/plugin-sidebar.d.ts +0 -3
- package/dist/vite/plugin-sidebar.js +0 -33
- package/dist/vite/plugin-sidebar.js.map +0 -1
- package/dist/vite/prerender.d.ts +0 -17
- package/dist/vite/prerender.js +0 -87
- package/dist/vite/prerender.js.map +0 -1
- package/lib/AuthenticationPlugin-Bx9FK124.js +0 -55
- package/lib/AuthenticationPlugin-Bx9FK124.js.map +0 -1
- package/lib/CategoryHeading-XnFqN2lJ.js +0 -10
- package/lib/CategoryHeading-XnFqN2lJ.js.map +0 -1
- package/lib/DeveloperHint-FBb2uXJe.js +0 -16
- package/lib/DeveloperHint-FBb2uXJe.js.map +0 -1
- package/lib/ErrorPage-knunPbKI.js +0 -18
- package/lib/ErrorPage-knunPbKI.js.map +0 -1
- package/lib/InkeepCustomTrigger-CE5-K5ex.js +0 -6
- package/lib/InkeepCustomTrigger-CE5-K5ex.js.map +0 -1
- package/lib/Input-BEDZAKw0.js +0 -2198
- package/lib/Input-BEDZAKw0.js.map +0 -1
- package/lib/Markdown-B4aR03g6.js +0 -20279
- package/lib/Markdown-B4aR03g6.js.map +0 -1
- package/lib/MdxPage-BZyQsH8Z.js +0 -172
- package/lib/MdxPage-BZyQsH8Z.js.map +0 -1
- package/lib/OperationList-2NeWEM0u.js +0 -560
- package/lib/OperationList-2NeWEM0u.js.map +0 -1
- package/lib/Route-BZPewmrN.js +0 -14
- package/lib/Route-BZPewmrN.js.map +0 -1
- package/lib/SidebarBadge-COz0hgfa.js +0 -498
- package/lib/SidebarBadge-COz0hgfa.js.map +0 -1
- package/lib/SlotletProvider-DJMaOUDs.js +0 -238
- package/lib/SlotletProvider-DJMaOUDs.js.map +0 -1
- package/lib/Spinner-3cQDBVGr.js +0 -7
- package/lib/Spinner-3cQDBVGr.js.map +0 -1
- package/lib/ZudokuContext-cr-pTRY1.js +0 -1084
- package/lib/ZudokuContext-cr-pTRY1.js.map +0 -1
- package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
- package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
- package/lib/assets/index-B9EWVYfo.js +0 -4790
- package/lib/assets/index-B9EWVYfo.js.map +0 -1
- package/lib/assets/worker-BvD7B6MG.js +0 -15839
- package/lib/assets/worker-BvD7B6MG.js.map +0 -1
- package/lib/index-1EDgIO6b.js +0 -124
- package/lib/index-1EDgIO6b.js.map +0 -1
- package/lib/index-BG0g4WW0.js +0 -1771
- package/lib/index-BG0g4WW0.js.map +0 -1
- package/lib/index-CLd8ycZz.js +0 -4790
- package/lib/index-CLd8ycZz.js.map +0 -1
- package/lib/index-Dv2KZuEw.js +0 -5685
- package/lib/index-Dv2KZuEw.js.map +0 -1
- package/lib/index-Zezcv0xb.js +0 -2814
- package/lib/index-Zezcv0xb.js.map +0 -1
- package/lib/joinPath-B7kNnUX4.js +0 -8
- package/lib/joinPath-B7kNnUX4.js.map +0 -1
- package/lib/jsx-runtime-B6kdoens.js +0 -635
- package/lib/jsx-runtime-B6kdoens.js.map +0 -1
- package/lib/prism-bash.min-DadFsM4Z.js +0 -7
- package/lib/prism-bash.min-DadFsM4Z.js.map +0 -1
- package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
- package/lib/prism-csharp.min-Yizuc34Y.js.map +0 -1
- package/lib/prism-java.min-d5iT_mOd.js +0 -7
- package/lib/prism-java.min-d5iT_mOd.js.map +0 -1
- package/lib/prism-javascript.min-CEqHqgbm.js +0 -9
- package/lib/prism-javascript.min-CEqHqgbm.js.map +0 -1
- package/lib/prism-json.min-B1GJqK1k.js +0 -2
- package/lib/prism-json.min-B1GJqK1k.js.map +0 -1
- package/lib/prism-markdown.min-F3U-vPBi.js +0 -61
- package/lib/prism-markdown.min-F3U-vPBi.js.map +0 -1
- package/lib/prism-markup-BNGj0Tvm.js +0 -174
- package/lib/prism-markup-BNGj0Tvm.js.map +0 -1
- package/lib/prism-markup-templating-DZrrEs0A.js +0 -62
- package/lib/prism-markup-templating-DZrrEs0A.js.map +0 -1
- package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
- package/lib/prism-objectivec.min-BXSWqpJJ.js.map +0 -1
- package/lib/prism-php.min-o7FpoMP_.js +0 -11
- package/lib/prism-php.min-o7FpoMP_.js.map +0 -1
- package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
- package/lib/prism-ruby.min-C7LwcKyz.js.map +0 -1
- package/lib/prism-typescript.min-oSVeWCAd.js +0 -6
- package/lib/prism-typescript.min-oSVeWCAd.js.map +0 -1
- package/lib/router-D2p7Olpn.js +0 -2971
- package/lib/router-D2p7Olpn.js.map +0 -1
- package/lib/slugify-DbLhpSPt.js +0 -28
- package/lib/slugify-DbLhpSPt.js.map +0 -1
- package/lib/state-lIwt9isb.js +0 -288
- package/lib/state-lIwt9isb.js.map +0 -1
- package/lib/urql-YhcsXYy8.js +0 -1591
- package/lib/urql-YhcsXYy8.js.map +0 -1
- package/lib/utils-ByIc_KIM.js +0 -749
- package/lib/utils-ByIc_KIM.js.map +0 -1
- package/lib/zudoku.openapi-worker.js +0 -16053
- package/lib/zudoku.openapi-worker.js.map +0 -1
- package/lib/zudoku.plugin-custom-page.js +0 -13
- package/lib/zudoku.plugin-custom-page.js.map +0 -1
- package/src/app/tailwind.ts +0 -68
- package/src/lib/components/DevPortal.tsx +0 -111
- package/src/lib/components/Dialog.tsx +0 -119
- package/src/lib/components/Select.tsx +0 -157
- package/src/lib/components/SlotletProvider.tsx +0 -30
- package/src/lib/components/SyntaxHighlight.tsx +0 -122
- package/src/lib/components/context/PluginSystem.ts +0 -0
- package/src/lib/components/context/ThemeContext.tsx +0 -8
- package/src/lib/components/context/ThemeProvider.tsx +0 -27
- package/src/lib/components/navigation/Sidebar.tsx +0 -39
- package/src/lib/components/navigation/SidebarBadge.tsx +0 -43
- package/src/lib/components/navigation/SidebarCategory.tsx +0 -131
- package/src/lib/components/navigation/SidebarItem.tsx +0 -130
- package/src/lib/components/navigation/SidebarWrapper.tsx +0 -26
- package/src/lib/core/DevPortalContext.ts +0 -135
- package/src/lib/plugins/custom-page/index.tsx +0 -22
- package/src/lib/plugins/markdown/Toc.tsx +0 -135
- package/src/lib/plugins/markdown/generateRoutes.tsx +0 -35
- package/src/lib/plugins/openapi/Route.tsx +0 -21
- package/src/lib/plugins/openapi/client/createMemoryClient.ts +0 -56
- package/src/lib/plugins/openapi/client/createWorkerClient.ts +0 -80
- package/src/lib/plugins/openapi/client/interfaces.ts +0 -5
- package/src/lib/plugins/openapi/client/worker.ts +0 -30
- package/src/lib/plugins/openapi/playground/Editor.tsx +0 -4
- package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -77
- package/src/lib/plugins/openapi/playground/UrlDisplay.tsx +0 -32
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +0 -47
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +0 -54
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +0 -30
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +0 -126
- package/src/lib/plugins/openapi/util/urql.ts +0 -8
- package/src/lib/plugins/openapi-worker.ts +0 -1
- package/src/lib/plugins/search-inkeep/InkeepCustomTrigger.tsx +0 -3
- package/src/lib/themeToggle.ts +0 -7
- package/src/lib/ui/Note.tsx +0 -58
- package/src/lib/util/createWaitForNotify.ts +0 -18
- package/src/lib/util/slugify.ts +0 -3
- /package/dist/{lib/components/context/PluginSystem.d.ts → config/validators/InputNavigationSchema.test-d.d.ts} +0 -0
- /package/dist/{lib/plugins/openapi/client/worker.d.ts → config/validators/validate.test.d.ts} +0 -0
- /package/dist/{vite/plugin-docs.test.d.ts → lib/auth/issuer.test.d.ts} +0 -0
- /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-PVWAREVJ-BMhpCH5D.js","sources":["../../../node_modules/.pnpm/react-router@7.8.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/react-router/dist/development/chunk-PVWAREVJ.mjs"],"sourcesContent":["/**\n * react-router v7.8.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 */\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n\n// lib/router/history.ts\nvar Action = /* @__PURE__ */ ((Action2) => {\n Action2[\"Pop\"] = \"POP\";\n Action2[\"Push\"] = \"PUSH\";\n Action2[\"Replace\"] = \"REPLACE\";\n return Action2;\n})(Action || {});\nvar PopStateEventType = \"popstate\";\nfunction createMemoryHistory(options = {}) {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries;\n entries = initialEntries.map(\n (entry, index2) => createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index2 === 0 ? \"default\" : void 0\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = \"POP\" /* Pop */;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state = null, key) {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n function createHref2(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref: createHref2,\n createURL(to) {\n return new URL(createHref2(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = \"PUSH\" /* Push */;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = \"REPLACE\" /* Replace */;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = \"POP\" /* Pop */;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\nfunction createBrowserHistory(options = {}) {\n function createBrowserLocation(window2, globalHistory) {\n let { pathname, search, hash } = window2.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null,\n globalHistory.state && globalHistory.state.key || \"default\"\n );\n }\n function createBrowserHref(window2, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\nfunction createHashHistory(options = {}) {\n function createHashLocation(window2, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window2.location.hash.substring(1));\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null,\n globalHistory.state && globalHistory.state.key || \"default\"\n );\n }\n function createHashHref(window2, to) {\n let base = window2.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window2.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n throw new Error(message);\n } catch (e) {\n }\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substring(2, 10);\n}\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\nfunction createLocation(current, to, state = null, key) {\n let location = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...typeof to === \"string\" ? parsePath(to) : to,\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n };\n return location;\n}\nfunction createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n}) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substring(hashIndex);\n path = path.substring(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substring(searchIndex);\n path = path.substring(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref2, validateLocation, options = {}) {\n let { window: window2 = document.defaultView, v5Compat = false } = options;\n let globalHistory = window2.history;\n let action = \"POP\" /* Pop */;\n let listener = null;\n let index = getIndex();\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n function getIndex() {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n function handlePop() {\n action = \"POP\" /* Pop */;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n function push(to, state) {\n action = \"PUSH\" /* Push */;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n window2.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n function replace2(to, state) {\n action = \"REPLACE\" /* Replace */;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n function createURL(to) {\n return createBrowserURLImpl(to);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window2, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window2.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window2.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref2(window2, to);\n },\n createURL,\n encodeLocation(to) {\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace: replace2,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\nfunction createBrowserURLImpl(to, isAbsolute = false) {\n let base = \"http://localhost\";\n if (typeof window !== \"undefined\") {\n base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n }\n invariant(base, \"No window.location.(origin|href) available to create URL\");\n let href = typeof to === \"string\" ? to : createPath(to);\n href = href.replace(/ $/, \"%20\");\n if (!isAbsolute && href.startsWith(\"//\")) {\n href = base + href;\n }\n return new URL(href, base);\n}\n\n// lib/router/utils.ts\nfunction unstable_createContext(defaultValue) {\n return { defaultValue };\n}\nvar _map;\nvar unstable_RouterContextProvider = class {\n /**\n * Create a new `unstable_RouterContextProvider` instance\n * @param init An optional initial context map to populate the provider with\n */\n constructor(init) {\n __privateAdd(this, _map, /* @__PURE__ */ new Map());\n if (init) {\n for (let [context, value] of init) {\n this.set(context, value);\n }\n }\n }\n /**\n * Access a value from the context. If no value has been set for the context,\n * it will return the context's `defaultValue` if provided, or throw an error\n * if no `defaultValue` was set.\n * @param context The context to get the value for\n * @returns The value for the context, or the context's `defaultValue` if no\n * value was set\n */\n get(context) {\n if (__privateGet(this, _map).has(context)) {\n return __privateGet(this, _map).get(context);\n }\n if (context.defaultValue !== void 0) {\n return context.defaultValue;\n }\n throw new Error(\"No value found for context\");\n }\n /**\n * Set a value for the context. If the context already has a value set, this\n * will overwrite it.\n *\n * @param context The context to set the value for\n * @param value The value to set for the context\n * @returns {void}\n */\n set(context, value) {\n __privateGet(this, _map).set(context, value);\n }\n};\n_map = new WeakMap();\nvar unsupportedLazyRouteObjectKeys = /* @__PURE__ */ new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\"\n]);\nfunction isUnsupportedLazyRouteObjectKey(key) {\n return unsupportedLazyRouteObjectKeys.has(\n key\n );\n}\nvar unsupportedLazyRouteFunctionKeys = /* @__PURE__ */ new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"unstable_middleware\",\n \"children\"\n]);\nfunction isUnsupportedLazyRouteFunctionKey(key) {\n return unsupportedLazyRouteFunctionKeys.has(\n key\n );\n}\nfunction isIndexRoute(route) {\n return route.index === true;\n}\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties2, parentPath = [], manifest = {}, allowInPlaceMutations = false) {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n allowInPlaceMutations || !manifest[id],\n `Found a route id collision on id \"${id}\". Route id's must be globally unique within Data Router usages`\n );\n if (isIndexRoute(route)) {\n let indexRoute = {\n ...route,\n ...mapRouteProperties2(route),\n id\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = {\n ...route,\n ...mapRouteProperties2(route),\n id,\n children: void 0\n };\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties2,\n treePath,\n manifest,\n allowInPlaceMutations\n );\n }\n return pathOrLayoutRoute;\n }\n });\n}\nfunction matchRoutes(routes, locationArg, basename = \"/\") {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n loaderData: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches = [], parentsMeta = [], parentPath = \"\", _hasParentOptionalSegments = false) {\n let flattenRoute = (route, index, hasParentOptionalSegments = _hasParentOptionalSegments, relativePath) => {\n let meta = {\n relativePath: relativePath === void 0 ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n if (!meta.relativePath.startsWith(parentPath) && hasParentOptionalSegments) {\n return;\n }\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path \"${parentPath}\" is not valid. An absolute child route path must start with the combined path of all its parent routes.`\n );\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove all child routes from route path \"${path}\".`\n );\n flattenRoutes(\n route.children,\n branches,\n routesMeta,\n path,\n hasParentOptionalSegments\n );\n }\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, true, exploded);\n }\n }\n });\n return branches;\n}\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n let isOptional = first.endsWith(\"?\");\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n result.push(\n ...restExploded.map(\n (subpath) => subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n if (isOptional) {\n result.push(...restExploded);\n }\n return result.map(\n (exploded) => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\nfunction rankRouteBranches(branches) {\n branches.sort(\n (a, b) => a.score !== b.score ? b.score - a.score : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\nvar paramRe = /^:[\\w-]+$/;\nvar dynamicSegmentValue = 3;\nvar indexRouteValue = 2;\nvar emptySegmentValue = 1;\nvar staticSegmentValue = 10;\nvar splatPenalty = -2;\nvar isSplat = (s) => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter((s) => !isSplat(s)).reduce(\n (score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue),\n initialScore\n );\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? (\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n ) : (\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0\n );\n}\nfunction matchRouteBranch(branch, pathname, allowPartial = false) {\n let { routesMeta } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n },\n remainingPathname\n );\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\nfunction generatePath(originalPath, params = {}) {\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were \"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must always follow a \\`/\\` in the pattern. To get rid of this warning, please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\");\n }\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify2 = (p) => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n return stringify2(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return encodeURIComponent(stringify2(param));\n }\n return segment.replace(/\\?$/g, \"\");\n }).filter((segment) => !!segment);\n return prefix + segments.join(\"/\");\n}\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce(\n (memo2, { paramName, isOptional }, index) => {\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo2[paramName] = void 0;\n } else {\n memo2[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo2;\n },\n {}\n );\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive = false, end = true) {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were \"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must always follow a \\`/\\` in the pattern. To get rid of this warning, please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\").replace(/^\\/*/, \"/\").replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\").replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_, paramName, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n ).replace(/\\/([\\w-]+)\\?(\\/|$)/g, \"(/$1)?$2\");\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" : \"(?:\\\\/(.+)|\\\\/*)$\";\n } else if (end) {\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n }\n let matcher = new RegExp(regexpSource, caseSensitive ? void 0 : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${error}).`\n );\n return value;\n }\n}\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\nfunction prependBasename({\n basename,\n pathname\n}) {\n return pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n}\nfunction resolvePath(to, fromPathname = \"/\") {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return `Cannot include a '${char}' character in a manually specified \\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the \\`to.${dest}\\` field. Alternatively you may provide the full path as a string in <Link to=\"...\"> and the router will parse it for you.`;\n}\nfunction getPathContributingMatches(matches) {\n return matches.filter(\n (match, index) => index === 0 || match.route.path && match.route.path.length > 0\n );\n}\nfunction getResolveToMatches(matches) {\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches.map(\n (match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n}\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative = false) {\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\nvar joinPaths = (paths) => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\nvar normalizePathname = (pathname) => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\nvar normalizeSearch = (search) => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\nvar normalizeHash = (hash) => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\nvar DataWithResponseInit = class {\n constructor(data2, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data2;\n this.init = init || null;\n }\n};\nfunction data(data2, init) {\n return new DataWithResponseInit(\n data2,\n typeof init === \"number\" ? { status: init } : init\n );\n}\nvar redirect = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, { ...responseInit, headers });\n};\nvar redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\nvar replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\nvar ErrorResponseImpl = class {\n constructor(status, statusText, data2, internal = false) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data2 instanceof Error) {\n this.data = data2.toString();\n this.error = data2;\n } else {\n this.data = data2;\n }\n }\n};\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\n// lib/router/router.ts\nvar validMutationMethodsArr = [\n \"POST\",\n \"PUT\",\n \"PATCH\",\n \"DELETE\"\n];\nvar validMutationMethods = new Set(\n validMutationMethodsArr\n);\nvar validRequestMethodsArr = [\n \"GET\",\n ...validMutationMethodsArr\n];\nvar validRequestMethods = new Set(validRequestMethodsArr);\nvar redirectStatusCodes = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);\nvar redirectPreserveMethodStatusCodes = /* @__PURE__ */ new Set([307, 308]);\nvar IDLE_NAVIGATION = {\n state: \"idle\",\n location: void 0,\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0\n};\nvar IDLE_FETCHER = {\n state: \"idle\",\n data: void 0,\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0\n};\nvar IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: void 0,\n reset: void 0,\n location: void 0\n};\nvar ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar isAbsoluteUrl = (url) => ABSOLUTE_URL_REGEX.test(url);\nvar defaultMapRouteProperties = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nvar TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\nvar ResetLoaderDataSymbol = Symbol(\"ResetLoaderData\");\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : void 0;\n const isBrowser2 = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n let hydrationRouteProperties2 = init.hydrationRouteProperties || [];\n let mapRouteProperties2 = init.mapRouteProperties || defaultMapRouteProperties;\n let manifest = {};\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties2,\n void 0,\n manifest\n );\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n if (!basename.startsWith(\"/\")) {\n basename = `/${basename}`;\n }\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategyWithMiddleware;\n let future = {\n ...init.future\n };\n let unlistenHistory = null;\n let subscribers = /* @__PURE__ */ new Set();\n let savedScrollPositions2 = null;\n let getScrollRestorationKey2 = null;\n let getScrollPosition = null;\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors = null;\n let initialized;\n if (initialMatches == null && !init.patchRoutesOnNavigation) {\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialized = true;\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n } else {\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n initialized = true;\n } else {\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors[m.route.id] !== void 0\n );\n initialized = initialMatches.slice(0, idx + 1).every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n }\n }\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: /* @__PURE__ */ new Map(),\n blockers: /* @__PURE__ */ new Map()\n };\n let pendingAction = \"POP\" /* Pop */;\n let pendingPreventScrollReset = false;\n let pendingNavigationController;\n let pendingViewTransitionEnabled = false;\n let appliedViewTransitions = /* @__PURE__ */ new Map();\n let removePageHideEventListener = null;\n let isUninterruptedRevalidation = false;\n let isRevalidationRequired = false;\n let cancelledFetcherLoads = /* @__PURE__ */ new Set();\n let fetchControllers = /* @__PURE__ */ new Map();\n let incrementingLoadId = 0;\n let pendingNavigationLoadId = -1;\n let fetchReloadIds = /* @__PURE__ */ new Map();\n let fetchRedirectIds = /* @__PURE__ */ new Set();\n let fetchLoadMatches = /* @__PURE__ */ new Map();\n let activeFetchers = /* @__PURE__ */ new Map();\n let fetchersQueuedForDeletion = /* @__PURE__ */ new Set();\n let blockerFunctions = /* @__PURE__ */ new Map();\n let unblockBlockerHistoryUpdate = void 0;\n let pendingRevalidationDfd = null;\n function initialize() {\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = void 0;\n return;\n }\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.\"\n );\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: void 0,\n reset: void 0,\n location\n });\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({ blockers });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n }\n );\n if (isBrowser2) {\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n if (!state.initialized) {\n startNavigation(\"POP\" /* Pop */, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n function updateState(newState, opts = {}) {\n if (newState.matches) {\n newState.matches = newState.matches.map((m) => {\n let route = manifest[m.route.id];\n let matchRoute = m.route;\n if (matchRoute.element !== route.element || matchRoute.errorElement !== route.errorElement || matchRoute.hydrateFallbackElement !== route.hydrateFallbackElement) {\n return {\n ...m,\n route\n };\n }\n return m;\n });\n }\n state = {\n ...state,\n ...newState\n };\n let unmountedFetchers = [];\n let mountedFetchers = [];\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (fetchersQueuedForDeletion.has(key)) {\n unmountedFetchers.push(key);\n } else {\n mountedFetchers.push(key);\n }\n }\n });\n fetchersQueuedForDeletion.forEach((key) => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n unmountedFetchers.push(key);\n }\n });\n [...subscribers].forEach(\n (subscriber) => subscriber(state, {\n deletedFetchers: unmountedFetchers,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n })\n );\n unmountedFetchers.forEach((key) => deleteFetcher(key));\n mountedFetchers.forEach((key) => state.fetchers.delete(key));\n }\n function completeNavigation(location, newState, { flushSync } = {}) {\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && location.state?._isRedirect !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n actionData = null;\n }\n } else if (isActionReload) {\n actionData = state.actionData;\n } else {\n actionData = null;\n }\n let loaderData = newState.loaderData ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n ) : state.loaderData;\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n let restoreScrollPosition = isUninterruptedRevalidation ? false : getSavedScrollPosition(location, newState.matches || state.matches);\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && location.state?._isRedirect !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = void 0;\n }\n if (isUninterruptedRevalidation) {\n } else if (pendingAction === \"POP\" /* Pop */) {\n } else if (pendingAction === \"PUSH\" /* Push */) {\n init.history.push(location, location.state);\n } else if (pendingAction === \"REPLACE\" /* Replace */) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n if (pendingAction === \"POP\" /* Pop */) {\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = /* @__PURE__ */ new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(\n {\n ...newState,\n // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition,\n preventScrollReset,\n blockers\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true\n }\n );\n pendingAction = \"POP\" /* Pop */;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n pendingRevalidationDfd?.resolve();\n pendingRevalidationDfd = null;\n }\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n false,\n normalizedPath,\n opts\n );\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation)\n };\n let userReplace = opts && opts.replace != null ? opts.replace : void 0;\n let historyAction = \"PUSH\" /* Push */;\n if (userReplace === true) {\n historyAction = \"REPLACE\" /* Replace */;\n } else if (userReplace === false) {\n } else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n historyAction = \"REPLACE\" /* Replace */;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : void 0;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: void 0,\n reset: void 0,\n location: nextLocation\n });\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({ blockers });\n }\n });\n return;\n }\n await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync\n });\n }\n function revalidate() {\n if (!pendingRevalidationDfd) {\n pendingRevalidationDfd = createDeferred();\n }\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n let promise = pendingRevalidationDfd.promise;\n if (state.navigation.state === \"submitting\") {\n return promise;\n }\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return promise;\n }\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n }\n );\n return promise;\n }\n async function startNavigation(historyAction, location, opts) {\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = opts?.initialHydration && state.matches && state.matches.length > 0 && !initialMatchesIsFOW ? (\n // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches\n ) : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n if (matches && state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n },\n { flushSync }\n );\n return;\n }\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let scopedContext = init.unstable_getContext ? await init.unstable_getContext() : new unstable_RouterContextProvider();\n let pendingActionResult;\n if (opts && opts.pendingError) {\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: \"error\" /* error */, error: opts.pendingError }\n ];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n scopedContext,\n fogOfWar.active,\n opts && opts.initialHydration === true,\n { replace: opts.replace, flushSync }\n );\n if (actionResult.shortCircuited) {\n return;\n }\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n fogOfWar.active = false;\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(\n request,\n location,\n matches,\n scopedContext,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n if (shortCircuited) {\n return;\n }\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors\n });\n }\n async function handleAction(request, location, submission, matches, scopedContext, isFogOfWar, initialHydration, opts = {}) {\n interruptActiveLoads();\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n if (discoverResult.partialMatches.length === 0) {\n let { matches: matches2, route } = getShortCircuitMatches(dataRoutes);\n return {\n matches: matches2,\n pendingActionResult: [\n route.id,\n {\n type: \"error\" /* error */,\n error: discoverResult.error\n }\n ]\n };\n }\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: \"error\" /* error */,\n error: discoverResult.error\n }\n ]\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: \"error\" /* error */,\n error\n }\n ]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: \"error\" /* error */,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n request,\n matches,\n actionMatch,\n initialHydration ? [] : hydrationRouteProperties2,\n scopedContext\n );\n let results = await callDataStrategy(\n request,\n dsMatches,\n scopedContext,\n null\n );\n result = results[actionMatch.route.id];\n if (!result) {\n for (let match of matches) {\n if (results[match.route.id]) {\n result = results[match.route.id];\n break;\n }\n }\n }\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n if (isRedirectResult(result)) {\n let replace2;\n if (opts && opts.replace != null) {\n replace2 = opts.replace;\n } else {\n let location2 = normalizeRedirectLocation(\n result.response.headers.get(\"Location\"),\n new URL(request.url),\n basename\n );\n replace2 = location2 === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace: replace2\n });\n return { shortCircuited: true };\n }\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n if ((opts && opts.replace) !== true) {\n pendingAction = \"PUSH\" /* Push */;\n }\n return {\n matches,\n pendingActionResult: [\n boundaryMatch.route.id,\n result,\n actionMatch.route.id\n ]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n async function handleLoaders(request, location, matches, scopedContext, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace2, initialHydration, flushSync, pendingActionResult) {\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && !initialHydration;\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...actionData !== void 0 ? { actionData } : {}\n },\n {\n flushSync\n }\n );\n }\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n if (discoverResult.partialMatches.length === 0) {\n let { matches: matches2, route } = getShortCircuitMatches(dataRoutes);\n return {\n matches: matches2,\n loaderData: {},\n errors: {\n [route.id]: discoverResult.error\n }\n };\n }\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { dsMatches, revalidatingFetchers } = getMatchesToLoad(\n request,\n scopedContext,\n mapRouteProperties2,\n manifest,\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n initialHydration ? [] : hydrationRouteProperties2,\n initialHydration === true,\n isRevalidationRequired,\n cancelledFetcherLoads,\n fetchersQueuedForDeletion,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n init.patchRoutesOnNavigation != null,\n pendingActionResult\n );\n pendingNavigationLoadId = ++incrementingLoadId;\n if (!init.dataStrategy && !dsMatches.some((m) => m.shouldLoad) && !dsMatches.some((m) => m.route.unstable_middleware) && revalidatingFetchers.length === 0) {\n let updatedFetchers2 = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? { [pendingActionResult[0]]: pendingActionResult[1].error } : null,\n ...getActionDataForCommit(pendingActionResult),\n ...updatedFetchers2 ? { fetchers: new Map(state.fetchers) } : {}\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== void 0) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n revalidatingFetchers.forEach((rf) => {\n abortFetcher(rf.key);\n if (rf.controller) {\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n let { loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(\n dsMatches,\n revalidatingFetchers,\n request,\n scopedContext\n );\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n let redirect2 = findRedirect(loaderResults);\n if (redirect2) {\n await startRedirectNavigation(request, redirect2.result, true, {\n replace: replace2\n });\n return { shortCircuited: true };\n }\n redirect2 = findRedirect(fetcherResults);\n if (redirect2) {\n fetchRedirectIds.add(redirect2.key);\n await startRedirectNavigation(request, redirect2.result, true, {\n replace: replace2\n });\n return { shortCircuited: true };\n }\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults\n );\n if (initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return {\n matches,\n loaderData,\n errors,\n ...shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}\n };\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n void 0,\n fetcher ? fetcher.data : void 0\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n async function fetch2(key, routeId, href, opts) {\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n let { path, submission, error } = normalizeNavigateOptions(\n true,\n normalizedPath,\n opts\n );\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n let scopedContext = init.unstable_getContext ? await init.unstable_getContext() : new unstable_RouterContextProvider();\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n await handleFetcherAction(\n key,\n routeId,\n path,\n matches,\n scopedContext,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n return;\n }\n fetchLoadMatches.set(key, { routeId, path });\n await handleFetcherLoader(\n key,\n routeId,\n path,\n matches,\n scopedContext,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n }\n async function handleFetcherAction(key, routeId, path, requestMatches, scopedContext, isFogOfWar, flushSync, preventScrollReset, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n }\n }\n let match = getTargetMatch(requestMatches, path);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let fetchMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n requestMatches,\n match,\n hydrationRouteProperties2,\n scopedContext\n );\n let actionResults = await callDataStrategy(\n fetchRequest,\n fetchMatches,\n scopedContext,\n key\n );\n let actionResult = actionResults[match.route.id];\n if (fetchRequest.signal.aborted) {\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n if (fetchersQueuedForDeletion.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n }\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let { dsMatches, revalidatingFetchers } = getMatchesToLoad(\n revalidationRequest,\n scopedContext,\n mapRouteProperties2,\n manifest,\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n hydrationRouteProperties2,\n false,\n isRevalidationRequired,\n cancelledFetcherLoads,\n fetchersQueuedForDeletion,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n init.patchRoutesOnNavigation != null,\n [match.route.id, actionResult]\n );\n revalidatingFetchers.filter((rf) => rf.key !== key).forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher2 = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n void 0,\n existingFetcher2 ? existingFetcher2.data : void 0\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({ fetchers: new Map(state.fetchers) });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n let { loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(\n dsMatches,\n revalidatingFetchers,\n revalidationRequest,\n scopedContext\n );\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n let redirect2 = findRedirect(loaderResults);\n if (redirect2) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect2.result,\n false,\n { preventScrollReset }\n );\n }\n redirect2 = findRedirect(fetcherResults);\n if (redirect2) {\n fetchRedirectIds.add(redirect2.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect2.result,\n false,\n { preventScrollReset }\n );\n }\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n void 0,\n revalidatingFetchers,\n fetcherResults\n );\n abortStaleFetchLoads(loadId);\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n async function handleFetcherLoader(key, routeId, path, matches, scopedContext, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : void 0\n ),\n { flushSync }\n );\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n }\n }\n let match = getTargetMatch(matches, path);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n matches,\n match,\n hydrationRouteProperties2,\n scopedContext\n );\n let results = await callDataStrategy(\n fetchRequest,\n dsMatches,\n scopedContext,\n key\n );\n let result = results[match.route.id];\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n if (fetchersQueuedForDeletion.has(key)) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n }\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n async function startRedirectNavigation(request, redirect2, isNavigation, {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace: replace2\n } = {}) {\n if (redirect2.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect2.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser2) {\n let isDocumentReload = false;\n if (redirect2.response.headers.has(\"X-Remix-Reload-Document\")) {\n isDocumentReload = true;\n } else if (isAbsoluteUrl(location)) {\n const url = createBrowserURLImpl(location, true);\n isDocumentReload = // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin || // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace2) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n pendingNavigationController = null;\n let redirectNavigationType = replace2 === true || redirect2.response.headers.has(\"X-Remix-Replace\") ? \"REPLACE\" /* Replace */ : \"PUSH\" /* Push */;\n let { formMethod, formAction, formEncType } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect2.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectNavigationType, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location\n },\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : void 0\n });\n } else {\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectNavigationType, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : void 0\n });\n }\n }\n async function callDataStrategy(request, matches, scopedContext, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n request,\n matches,\n fetcherKey,\n scopedContext,\n false\n );\n } catch (e) {\n matches.filter((m) => m.shouldLoad).forEach((m) => {\n dataResults[m.route.id] = {\n type: \"error\" /* error */,\n error: e\n };\n });\n return dataResults;\n }\n if (request.signal.aborted) {\n return dataResults;\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: \"redirect\" /* redirect */,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename\n )\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(matches, fetchersToLoad, request, scopedContext) {\n let loaderResultsPromise = callDataStrategy(\n request,\n matches,\n scopedContext,\n null\n );\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.request && f.controller) {\n let results = await callDataStrategy(\n f.request,\n f.matches,\n scopedContext,\n f.key\n );\n let result = results[f.match.route.id];\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: \"error\" /* error */,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n })\n );\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n isRevalidationRequired = true;\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts = {}) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n function setFetcherError(key, routeId, error, opts = {}) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n function getFetcher(key) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n if (fetchersQueuedForDeletion.has(key)) {\n fetchersQueuedForDeletion.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n fetchersQueuedForDeletion.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function queueFetcherForDeletion(key) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n fetchersQueuedForDeletion.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n invariant(\n blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\",\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n }) {\n if (blockerFunctions.size === 0) {\n return;\n }\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n return;\n }\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n return { notFoundMatches: matches, route, error };\n }\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions2 = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey2 = getKey || null;\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n return () => {\n savedScrollPositions2 = null;\n getScrollPosition = null;\n getScrollRestorationKey2 = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey2) {\n let key = getScrollRestorationKey2(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions2 && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions2[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions2) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions2[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (init.patchRoutesOnNavigation) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n return { active: false, matches: null };\n }\n async function discoverRoutes(matches, pathname, signal, fetcherKey) {\n if (!init.patchRoutesOnNavigation) {\n return { type: \"success\", matches };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await init.patchRoutesOnNavigation({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties2,\n false\n );\n }\n });\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return { type: \"success\", matches: newMatches };\n }\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every(\n (m, i) => m.route.id === newPartialMatches[i].route.id\n )) {\n return { type: \"success\", matches: null };\n }\n partialMatches = newPartialMatches;\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties2,\n void 0,\n manifest\n );\n }\n function patchRoutes(routeId, children, unstable_allowElementMutations = false) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties2,\n unstable_allowElementMutations\n );\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch: fetch2,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to) => init.history.createHref(to),\n encodeLocation: (to) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: queueFetcherForDeletion,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n _internalSetStateDoNotUseOrYouWillBreakYourApp(newState) {\n updateState(newState);\n }\n };\n return router;\n}\nfunction createStaticHandler(routes, opts) {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties2 = opts?.mapRouteProperties || defaultMapRouteProperties;\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties2,\n void 0,\n manifest\n );\n async function query(request, {\n requestContext,\n filterMatchesToLoad,\n skipLoaderErrorBubbling,\n skipRevalidation,\n dataStrategy,\n unstable_generateMiddlewareResponse: generateMiddlewareResponse\n } = {}) {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n requestContext = requestContext != null ? requestContext : new unstable_RouterContextProvider();\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } = getShortCircuitMatches(dataRoutes);\n let staticContext = {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {}\n };\n return generateMiddlewareResponse ? generateMiddlewareResponse(() => Promise.resolve(staticContext)) : staticContext;\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } = getShortCircuitMatches(dataRoutes);\n let staticContext = {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {}\n };\n return generateMiddlewareResponse ? generateMiddlewareResponse(() => Promise.resolve(staticContext)) : staticContext;\n }\n if (generateMiddlewareResponse) {\n invariant(\n requestContext instanceof unstable_RouterContextProvider,\n \"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `unstable_RouterContextProvider`\"\n );\n try {\n await loadLazyMiddlewareForMatches(\n matches,\n manifest,\n mapRouteProperties2\n );\n let renderedStaticContext;\n let response = await runServerMiddlewarePipeline(\n {\n request,\n matches,\n params: matches[0].params,\n // If we're calling middleware then it must be enabled so we can cast\n // this to the proper type knowing it's not an `AppLoadContext`\n context: requestContext\n },\n async () => {\n let res = await generateMiddlewareResponse(\n async (revalidationRequest, opts2 = {}) => {\n let result2 = await queryImpl(\n revalidationRequest,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null,\n \"filterMatchesToLoad\" in opts2 ? opts2.filterMatchesToLoad ?? null : null,\n skipRevalidation === true\n );\n if (isResponse(result2)) {\n return result2;\n }\n renderedStaticContext = { location, basename, ...result2 };\n return renderedStaticContext;\n }\n );\n return res;\n },\n async (error, routeId) => {\n if (isRedirectResponse(error)) {\n return error;\n }\n if (isResponse(error)) {\n try {\n error = new ErrorResponseImpl(\n error.status,\n error.statusText,\n await parseResponseBody(error)\n );\n } catch (e) {\n error = e;\n }\n }\n if (isDataWithResponseInit(error)) {\n error = dataWithResponseInitToErrorResponse(error);\n }\n if (renderedStaticContext) {\n if (routeId in renderedStaticContext.loaderData) {\n renderedStaticContext.loaderData[routeId] = void 0;\n }\n let staticContext = getStaticContextFromError(\n dataRoutes,\n renderedStaticContext,\n error,\n skipLoaderErrorBubbling ? routeId : findNearestBoundary(matches, routeId).route.id\n );\n return generateMiddlewareResponse(\n () => Promise.resolve(staticContext)\n );\n } else {\n let boundaryRouteId = skipLoaderErrorBubbling ? routeId : findNearestBoundary(\n matches,\n matches.find(\n (m) => m.route.id === routeId || m.route.loader\n )?.route.id || routeId\n ).route.id;\n let staticContext = {\n matches,\n location,\n basename,\n loaderData: {},\n actionData: null,\n errors: {\n [boundaryRouteId]: error\n },\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n actionHeaders: {},\n loaderHeaders: {}\n };\n return generateMiddlewareResponse(\n () => Promise.resolve(staticContext)\n );\n }\n }\n );\n invariant(isResponse(response), \"Expected a response in query()\");\n return response;\n } catch (e) {\n if (isResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null,\n filterMatchesToLoad || null,\n skipRevalidation === true\n );\n if (isResponse(result)) {\n return result;\n }\n return { location, basename, ...result };\n }\n async function queryRoute(request, {\n routeId,\n requestContext,\n dataStrategy,\n unstable_generateMiddlewareResponse: generateMiddlewareResponse\n } = {}) {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n requestContext = requestContext != null ? requestContext : new unstable_RouterContextProvider();\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n let match = routeId ? matches.find((m) => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n if (generateMiddlewareResponse) {\n invariant(\n requestContext instanceof unstable_RouterContextProvider,\n \"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `unstable_RouterContextProvider`\"\n );\n await loadLazyMiddlewareForMatches(matches, manifest, mapRouteProperties2);\n let response = await runServerMiddlewarePipeline(\n {\n request,\n matches,\n params: matches[0].params,\n // If we're calling middleware then it must be enabled so we can cast\n // this to the proper type knowing it's not an `AppLoadContext`\n context: requestContext\n },\n async () => {\n let res = await generateMiddlewareResponse(\n async (innerRequest) => {\n let result2 = await queryImpl(\n innerRequest,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match,\n null,\n false\n );\n let processed = handleQueryResult(result2);\n return isResponse(processed) ? processed : typeof processed === \"string\" ? new Response(processed) : Response.json(processed);\n }\n );\n return res;\n },\n (error) => {\n if (isDataWithResponseInit(error)) {\n return Promise.resolve(dataWithResponseInitToResponse(error));\n }\n if (isResponse(error)) {\n return Promise.resolve(error);\n }\n throw error;\n }\n );\n return response;\n }\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match,\n null,\n false\n );\n return handleQueryResult(result);\n function handleQueryResult(result2) {\n if (isResponse(result2)) {\n return result2;\n }\n let error = result2.errors ? Object.values(result2.errors)[0] : void 0;\n if (error !== void 0) {\n throw error;\n }\n if (result2.actionData) {\n return Object.values(result2.actionData)[0];\n }\n if (result2.loaderData) {\n return Object.values(result2.loaderData)[0];\n }\n return void 0;\n }\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, filterMatchesToLoad, skipRevalidation) {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n try {\n if (isMutationMethod(request.method)) {\n let result2 = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null,\n filterMatchesToLoad,\n skipRevalidation\n );\n return result2;\n }\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch,\n filterMatchesToLoad\n );\n return isResponse(result) ? result : {\n ...result,\n actionData: null,\n actionHeaders: {}\n };\n } catch (e) {\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === \"error\" /* error */) {\n throw e.result;\n }\n return e.result;\n }\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest, filterMatchesToLoad, skipRevalidation) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: \"error\" /* error */,\n error\n };\n } else {\n let dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n request,\n matches,\n actionMatch,\n [],\n requestContext\n );\n let results = await callDataStrategy(\n request,\n dsMatches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest);\n }\n }\n if (isRedirectResult(result)) {\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isRouteRequest) {\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {}\n };\n }\n if (skipRevalidation) {\n if (isErrorResult(result)) {\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n return {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: {\n ...result.headers ? { [actionMatch.route.id]: result.headers } : {}\n },\n matches,\n loaderData: {},\n errors: {\n [boundaryMatch.route.id]: result.error\n },\n loaderHeaders: {}\n };\n } else {\n return {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: result.headers ? { [actionMatch.route.id]: result.headers } : {},\n matches,\n loaderData: {},\n errors: null,\n statusCode: result.statusCode || 200,\n loaderHeaders: {}\n };\n }\n }\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let handlerContext2 = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n filterMatchesToLoad,\n [boundaryMatch.route.id, result]\n );\n return {\n ...handlerContext2,\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: {\n ...result.headers ? { [actionMatch.route.id]: result.headers } : {}\n }\n };\n }\n let handlerContext = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n filterMatchesToLoad\n );\n return {\n ...handlerContext,\n actionData: {\n [actionMatch.route.id]: result.data\n },\n // action status codes take precedence over loader status codes\n ...result.statusCode ? { statusCode: result.statusCode } : {},\n actionHeaders: result.headers ? { [actionMatch.route.id]: result.headers } : {}\n };\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, filterMatchesToLoad, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n if (isRouteRequest && !routeMatch?.route.loader && !routeMatch?.route.lazy) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id\n });\n }\n let dsMatches;\n if (routeMatch) {\n dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n request,\n matches,\n routeMatch,\n [],\n requestContext\n );\n } else {\n let maxIdx = pendingActionResult && isErrorResult(pendingActionResult[1]) ? (\n // Up to but not including the boundary\n matches.findIndex((m) => m.route.id === pendingActionResult[0]) - 1\n ) : void 0;\n dsMatches = matches.map((match, index) => {\n if (maxIdx != null && index > maxIdx) {\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n match,\n [],\n requestContext,\n false\n );\n }\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n match,\n [],\n requestContext,\n (match.route.loader || match.route.lazy) != null && (!filterMatchesToLoad || filterMatchesToLoad(match))\n );\n });\n }\n if (!dataStrategy && !dsMatches.some((m) => m.shouldLoad)) {\n return {\n matches,\n loaderData: {},\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {}\n };\n }\n let results = await callDataStrategy(\n request,\n dsMatches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest);\n }\n let handlerContext = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n true,\n skipLoaderErrorBubbling\n );\n return {\n ...handlerContext,\n matches\n };\n }\n async function callDataStrategy(request, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(\n dataStrategy || defaultDataStrategy,\n request,\n matches,\n null,\n requestContext,\n true\n );\n let dataResults = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResult(result)) {\n let response = result.result;\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename\n );\n }\n if (isRouteRequest) {\n if (isResponse(result.result)) {\n throw result;\n } else if (isDataWithResponseInit(result.result)) {\n throw dataWithResponseInitToResponse(result.result);\n }\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\nfunction getStaticContextFromError(routes, handlerContext, error, boundaryId) {\n let errorBoundaryId = boundaryId || handlerContext._deepestRenderedBoundaryId || routes[0].id;\n return {\n ...handlerContext,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [errorBoundaryId]: error\n }\n };\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest) {\n if (request.signal.reason !== void 0) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted without an \\`AbortSignal.reason\\`: ${request.method} ${request.url}`\n );\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== void 0);\n}\nfunction normalizeTo(location, matches, basename, to, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n if (basename !== \"/\") {\n path.pathname = prependBasename({ basename, pathname: path.pathname });\n }\n return createPath(path);\n}\nfunction normalizeNavigateOptions(isFetcher, path, opts) {\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" })\n });\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = rawFormMethod.toUpperCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== void 0) {\n if (opts.formEncType === \"text/plain\") {\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ? (\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\n`,\n \"\"\n )\n ) : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: void 0,\n json: void 0,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: void 0,\n json,\n text: void 0\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: void 0,\n text: void 0\n };\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n let parsedPath = parsePath(path);\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n return { path: createPath(parsedPath), submission };\n}\nfunction getMatchesToLoad(request, scopedContext, mapRouteProperties2, manifest, history, state, matches, submission, location, lazyRoutePropertiesToSkip, initialHydration, isRevalidationRequired, cancelledFetcherLoads, fetchersQueuedForDeletion, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, hasPatchRoutesOnNavigation, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : void 0;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n let maxIdx;\n if (initialHydration && state.errors) {\n let boundaryId = Object.keys(state.errors)[0];\n maxIdx = matches.findIndex((m) => m.route.id === boundaryId);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n let boundaryId = pendingActionResult[0];\n maxIdx = matches.findIndex((m) => m.route.id === boundaryId) - 1;\n }\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : void 0;\n let shouldSkipRevalidation = actionStatus && actionStatus >= 400;\n let baseShouldRevalidateArgs = {\n currentUrl,\n currentParams: state.matches[0]?.params || {},\n nextUrl,\n nextParams: matches[0].params,\n ...submission,\n actionResult,\n actionStatus\n };\n let dsMatches = matches.map((match, index) => {\n let { route } = match;\n let forceShouldLoad = null;\n if (maxIdx != null && index > maxIdx) {\n forceShouldLoad = false;\n } else if (route.lazy) {\n forceShouldLoad = true;\n } else if (route.loader == null) {\n forceShouldLoad = false;\n } else if (initialHydration) {\n forceShouldLoad = shouldLoadRouteOnHydration(\n route,\n state.loaderData,\n state.errors\n );\n } else if (isNewLoader(state.loaderData, state.matches[index], match)) {\n forceShouldLoad = true;\n }\n if (forceShouldLoad !== null) {\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n match,\n lazyRoutePropertiesToSkip,\n scopedContext,\n forceShouldLoad\n );\n }\n let defaultShouldRevalidate = shouldSkipRevalidation ? false : (\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search || // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(state.matches[index], match)\n );\n let shouldRevalidateArgs = {\n ...baseShouldRevalidateArgs,\n defaultShouldRevalidate\n };\n let shouldLoad = shouldRevalidateLoader(match, shouldRevalidateArgs);\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n match,\n lazyRoutePropertiesToSkip,\n scopedContext,\n shouldLoad,\n shouldRevalidateArgs\n );\n });\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n if (initialHydration || !matches.some((m) => m.route.id === f.routeId) || fetchersQueuedForDeletion.has(key)) {\n return;\n }\n let fetcher = state.fetchers.get(key);\n let isMidInitialLoad = fetcher && fetcher.state !== \"idle\" && fetcher.data === void 0;\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n if (!fetcherMatches) {\n if (hasPatchRoutesOnNavigation && isMidInitialLoad) {\n return;\n }\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n request: null,\n controller: null\n });\n return;\n }\n if (fetchRedirectIds.has(key)) {\n return;\n }\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let fetchController = new AbortController();\n let fetchRequest = createClientSideRequest(\n history,\n f.path,\n fetchController.signal\n );\n let fetcherDsMatches = null;\n if (cancelledFetcherLoads.has(key)) {\n cancelledFetcherLoads.delete(key);\n fetcherDsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n fetcherMatches,\n fetcherMatch,\n lazyRoutePropertiesToSkip,\n scopedContext\n );\n } else if (isMidInitialLoad) {\n if (isRevalidationRequired) {\n fetcherDsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n fetcherMatches,\n fetcherMatch,\n lazyRoutePropertiesToSkip,\n scopedContext\n );\n }\n } else {\n let shouldRevalidateArgs = {\n ...baseShouldRevalidateArgs,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n };\n if (shouldRevalidateLoader(fetcherMatch, shouldRevalidateArgs)) {\n fetcherDsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n fetcherMatches,\n fetcherMatch,\n lazyRoutePropertiesToSkip,\n scopedContext,\n shouldRevalidateArgs\n );\n }\n }\n if (fetcherDsMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherDsMatches,\n match: fetcherMatch,\n request: fetchRequest,\n controller: fetchController\n });\n }\n });\n return { dsMatches, revalidatingFetchers };\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n if (route.lazy) {\n return true;\n }\n if (!route.loader) {\n return false;\n }\n let hasData = loaderData != null && route.id in loaderData;\n let hasError = errors != null && errors[route.id] !== void 0;\n if (!hasData && hasError) {\n return false;\n }\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew = (\n // [a] -> [a, b]\n !currentMatch || // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id\n );\n let isMissingData = !currentLoaderData.hasOwnProperty(match.route.id);\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties2, allowElementMutations) {\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n let uniqueChildren = [];\n let existingChildren = [];\n children.forEach((newRoute) => {\n let existingRoute = childrenToPatch.find(\n (existingRoute2) => isSameRoute(newRoute, existingRoute2)\n );\n if (existingRoute) {\n existingChildren.push({ existingRoute, newRoute });\n } else {\n uniqueChildren.push(newRoute);\n }\n });\n if (uniqueChildren.length > 0) {\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties2,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n childrenToPatch.push(...newRoutes);\n }\n if (allowElementMutations && existingChildren.length > 0) {\n for (let i = 0; i < existingChildren.length; i++) {\n let { existingRoute, newRoute } = existingChildren[i];\n let existingRouteTyped = existingRoute;\n let [newRouteTyped] = convertRoutesToDataRoutes(\n [newRoute],\n mapRouteProperties2,\n [],\n // Doesn't matter for mutated routes since they already have an id\n {},\n // Don't touch the manifest here since we're updating in place\n true\n );\n Object.assign(existingRouteTyped, {\n element: newRouteTyped.element ? newRouteTyped.element : existingRouteTyped.element,\n errorElement: newRouteTyped.errorElement ? newRouteTyped.errorElement : existingRouteTyped.errorElement,\n hydrateFallbackElement: newRouteTyped.hydrateFallbackElement ? newRouteTyped.hydrateFallbackElement : existingRouteTyped.hydrateFallbackElement\n });\n }\n }\n}\nfunction isSameRoute(newRoute, existingRoute) {\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n return newRoute.children.every(\n (aChild, i) => existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n );\n}\nvar lazyRoutePropertyCache = /* @__PURE__ */ new WeakMap();\nvar loadLazyRouteProperty = ({\n key,\n route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n}) => {\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n if (!routeToUpdate.lazy || typeof routeToUpdate.lazy !== \"object\") {\n return;\n }\n let lazyFn = routeToUpdate.lazy[key];\n if (!lazyFn) {\n return;\n }\n let cache = lazyRoutePropertyCache.get(routeToUpdate);\n if (!cache) {\n cache = {};\n lazyRoutePropertyCache.set(routeToUpdate, cache);\n }\n let cachedPromise = cache[key];\n if (cachedPromise) {\n return cachedPromise;\n }\n let propertyPromise = (async () => {\n let isUnsupported = isUnsupportedLazyRouteObjectKey(key);\n let staticRouteValue = routeToUpdate[key];\n let isStaticallyDefined = staticRouteValue !== void 0 && key !== \"hasErrorBoundary\";\n if (isUnsupported) {\n warning(\n !isUnsupported,\n \"Route property \" + key + \" is not a supported lazy route property. This property will be ignored.\"\n );\n cache[key] = Promise.resolve();\n } else if (isStaticallyDefined) {\n warning(\n false,\n `Route \"${routeToUpdate.id}\" has a static property \"${key}\" defined. The lazy property will be ignored.`\n );\n } else {\n let value = await lazyFn();\n if (value != null) {\n Object.assign(routeToUpdate, { [key]: value });\n Object.assign(routeToUpdate, mapRouteProperties2(routeToUpdate));\n }\n }\n if (typeof routeToUpdate.lazy === \"object\") {\n routeToUpdate.lazy[key] = void 0;\n if (Object.values(routeToUpdate.lazy).every((value) => value === void 0)) {\n routeToUpdate.lazy = void 0;\n }\n }\n })();\n cache[key] = propertyPromise;\n return propertyPromise;\n};\nvar lazyRouteFunctionCache = /* @__PURE__ */ new WeakMap();\nfunction loadLazyRoute(route, type, manifest, mapRouteProperties2, lazyRoutePropertiesToSkip) {\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n if (!route.lazy) {\n return {\n lazyRoutePromise: void 0,\n lazyHandlerPromise: void 0\n };\n }\n if (typeof route.lazy === \"function\") {\n let cachedPromise = lazyRouteFunctionCache.get(routeToUpdate);\n if (cachedPromise) {\n return {\n lazyRoutePromise: cachedPromise,\n lazyHandlerPromise: cachedPromise\n };\n }\n let lazyRoutePromise2 = (async () => {\n invariant(\n typeof route.lazy === \"function\",\n \"No lazy route function found\"\n );\n let lazyRoute = await route.lazy();\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let lazyValue = lazyRoute[lazyRouteProperty];\n if (lazyValue === void 0) {\n continue;\n }\n let isUnsupported = isUnsupportedLazyRouteFunctionKey(lazyRouteProperty);\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isStaticallyDefined = staticRouteValue !== void 0 && // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n if (isUnsupported) {\n warning(\n !isUnsupported,\n \"Route property \" + lazyRouteProperty + \" is not a supported property to be returned from a lazy route function. This property will be ignored.\"\n );\n } else if (isStaticallyDefined) {\n warning(\n !isStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" defined but its lazy function is also returning a value for this property. The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n } else {\n routeUpdates[lazyRouteProperty] = lazyValue;\n }\n }\n Object.assign(routeToUpdate, routeUpdates);\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided `mapRouteProperties`\n // function to set the framework-aware properties (`element`/`hasErrorBoundary`)\n // since the logic will differ between frameworks.\n ...mapRouteProperties2(routeToUpdate),\n lazy: void 0\n });\n })();\n lazyRouteFunctionCache.set(routeToUpdate, lazyRoutePromise2);\n lazyRoutePromise2.catch(() => {\n });\n return {\n lazyRoutePromise: lazyRoutePromise2,\n lazyHandlerPromise: lazyRoutePromise2\n };\n }\n let lazyKeys = Object.keys(route.lazy);\n let lazyPropertyPromises = [];\n let lazyHandlerPromise = void 0;\n for (let key of lazyKeys) {\n if (lazyRoutePropertiesToSkip && lazyRoutePropertiesToSkip.includes(key)) {\n continue;\n }\n let promise = loadLazyRouteProperty({\n key,\n route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n });\n if (promise) {\n lazyPropertyPromises.push(promise);\n if (key === type) {\n lazyHandlerPromise = promise;\n }\n }\n }\n let lazyRoutePromise = lazyPropertyPromises.length > 0 ? Promise.all(lazyPropertyPromises).then(() => {\n }) : void 0;\n lazyRoutePromise?.catch(() => {\n });\n lazyHandlerPromise?.catch(() => {\n });\n return {\n lazyRoutePromise,\n lazyHandlerPromise\n };\n}\nfunction isNonNullable(value) {\n return value !== void 0;\n}\nfunction loadLazyMiddlewareForMatches(matches, manifest, mapRouteProperties2) {\n let promises = matches.map(({ route }) => {\n if (typeof route.lazy !== \"object\" || !route.lazy.unstable_middleware) {\n return void 0;\n }\n return loadLazyRouteProperty({\n key: \"unstable_middleware\",\n route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n });\n }).filter(isNonNullable);\n return promises.length > 0 ? Promise.all(promises) : void 0;\n}\nasync function defaultDataStrategy(args) {\n let matchesToLoad = args.matches.filter((m) => m.shouldLoad);\n let keyedResults = {};\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n results.forEach((result, i) => {\n keyedResults[matchesToLoad[i].route.id] = result;\n });\n return keyedResults;\n}\nasync function defaultDataStrategyWithMiddleware(args) {\n if (!args.matches.some((m) => m.route.unstable_middleware)) {\n return defaultDataStrategy(args);\n }\n return runClientMiddlewarePipeline(args, () => defaultDataStrategy(args));\n}\nfunction runServerMiddlewarePipeline(args, handler, errorHandler) {\n return runMiddlewarePipeline(\n args,\n handler,\n processResult,\n isResponse,\n errorHandler\n );\n function processResult(result) {\n return isDataWithResponseInit(result) ? dataWithResponseInitToResponse(result) : result;\n }\n}\nfunction runClientMiddlewarePipeline(args, handler) {\n return runMiddlewarePipeline(\n args,\n handler,\n (r) => r,\n // No post-processing needed on the client\n isDataStrategyResults,\n errorHandler\n );\n function errorHandler(error, routeId, nextResult) {\n if (nextResult) {\n return Promise.resolve(\n Object.assign(nextResult.value, {\n [routeId]: { type: \"error\", result: error }\n })\n );\n } else {\n let { matches } = args;\n let maxBoundaryIdx = Math.min(\n // Throwing route\n matches.findIndex((m) => m.route.id === routeId) || 0,\n // or the shallowest route that needs to load data\n matches.findIndex((m) => m.unstable_shouldCallHandler()) || 0\n );\n let boundaryRouteId = findNearestBoundary(\n matches,\n matches[maxBoundaryIdx].route.id\n ).route.id;\n return Promise.resolve({\n [boundaryRouteId]: { type: \"error\", result: error }\n });\n }\n }\n}\nasync function runMiddlewarePipeline(args, handler, processResult, isResult, errorHandler) {\n let { matches, request, params, context } = args;\n let tuples = matches.flatMap(\n (m) => m.route.unstable_middleware ? m.route.unstable_middleware.map((fn) => [m.route.id, fn]) : []\n );\n let result = await callRouteMiddleware(\n { request, params, context },\n tuples,\n handler,\n processResult,\n isResult,\n errorHandler\n );\n return result;\n}\nasync function callRouteMiddleware(args, middlewares, handler, processResult, isResult, errorHandler, idx = 0) {\n let { request } = args;\n if (request.signal.aborted) {\n throw request.signal.reason ?? new Error(`Request aborted: ${request.method} ${request.url}`);\n }\n let tuple = middlewares[idx];\n if (!tuple) {\n let result = await handler();\n return result;\n }\n let [routeId, middleware] = tuple;\n let nextResult;\n let next = async () => {\n if (nextResult) {\n throw new Error(\"You may only call `next()` once per middleware\");\n }\n try {\n let result = await callRouteMiddleware(\n args,\n middlewares,\n handler,\n processResult,\n isResult,\n errorHandler,\n idx + 1\n );\n nextResult = { value: result };\n return nextResult.value;\n } catch (error) {\n nextResult = { value: await errorHandler(error, routeId, nextResult) };\n return nextResult.value;\n }\n };\n try {\n let value = await middleware(args, next);\n let result = value != null ? processResult(value) : void 0;\n if (isResult(result)) {\n return result;\n } else if (nextResult) {\n return result ?? nextResult.value;\n } else {\n nextResult = { value: await next() };\n return nextResult.value;\n }\n } catch (error) {\n let response = await errorHandler(error, routeId, nextResult);\n return response;\n }\n}\nfunction getDataStrategyMatchLazyPromises(mapRouteProperties2, manifest, request, match, lazyRoutePropertiesToSkip) {\n let lazyMiddlewarePromise = loadLazyRouteProperty({\n key: \"unstable_middleware\",\n route: match.route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n });\n let lazyRoutePromises = loadLazyRoute(\n match.route,\n isMutationMethod(request.method) ? \"action\" : \"loader\",\n manifest,\n mapRouteProperties2,\n lazyRoutePropertiesToSkip\n );\n return {\n middleware: lazyMiddlewarePromise,\n route: lazyRoutePromises.lazyRoutePromise,\n handler: lazyRoutePromises.lazyHandlerPromise\n };\n}\nfunction getDataStrategyMatch(mapRouteProperties2, manifest, request, match, lazyRoutePropertiesToSkip, scopedContext, shouldLoad, unstable_shouldRevalidateArgs = null) {\n let isUsingNewApi = false;\n let _lazyPromises = getDataStrategyMatchLazyPromises(\n mapRouteProperties2,\n manifest,\n request,\n match,\n lazyRoutePropertiesToSkip\n );\n return {\n ...match,\n _lazyPromises,\n shouldLoad,\n unstable_shouldRevalidateArgs,\n unstable_shouldCallHandler(defaultShouldRevalidate) {\n isUsingNewApi = true;\n if (!unstable_shouldRevalidateArgs) {\n return shouldLoad;\n }\n if (typeof defaultShouldRevalidate === \"boolean\") {\n return shouldRevalidateLoader(match, {\n ...unstable_shouldRevalidateArgs,\n defaultShouldRevalidate\n });\n }\n return shouldRevalidateLoader(match, unstable_shouldRevalidateArgs);\n },\n resolve(handlerOverride) {\n if (isUsingNewApi || shouldLoad || handlerOverride && !isMutationMethod(request.method) && (match.route.lazy || match.route.loader)) {\n return callLoaderOrAction({\n request,\n match,\n lazyHandlerPromise: _lazyPromises?.handler,\n lazyRoutePromise: _lazyPromises?.route,\n handlerOverride,\n scopedContext\n });\n }\n return Promise.resolve({ type: \"data\" /* data */, result: void 0 });\n }\n };\n}\nfunction getTargetedDataStrategyMatches(mapRouteProperties2, manifest, request, matches, targetMatch, lazyRoutePropertiesToSkip, scopedContext, shouldRevalidateArgs = null) {\n return matches.map((match) => {\n if (match.route.id !== targetMatch.route.id) {\n return {\n ...match,\n shouldLoad: false,\n unstable_shouldRevalidateArgs: shouldRevalidateArgs,\n unstable_shouldCallHandler: () => false,\n _lazyPromises: getDataStrategyMatchLazyPromises(\n mapRouteProperties2,\n manifest,\n request,\n match,\n lazyRoutePropertiesToSkip\n ),\n resolve: () => Promise.resolve({ type: \"data\", result: void 0 })\n };\n }\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n match,\n lazyRoutePropertiesToSkip,\n scopedContext,\n true,\n shouldRevalidateArgs\n );\n });\n}\nasync function callDataStrategyImpl(dataStrategyImpl, request, matches, fetcherKey, scopedContext, isStaticHandler) {\n if (matches.some((m) => m._lazyPromises?.middleware)) {\n await Promise.all(matches.map((m) => m._lazyPromises?.middleware));\n }\n let dataStrategyArgs = {\n request,\n params: matches[0].params,\n context: scopedContext,\n matches\n };\n let unstable_runClientMiddleware = isStaticHandler ? () => {\n throw new Error(\n \"You cannot call `unstable_runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`\"\n );\n } : (cb) => {\n let typedDataStrategyArgs = dataStrategyArgs;\n return runClientMiddlewarePipeline(typedDataStrategyArgs, () => {\n return cb({\n ...typedDataStrategyArgs,\n fetcherKey,\n unstable_runClientMiddleware: () => {\n throw new Error(\n \"Cannot call `unstable_runClientMiddleware()` from within an `unstable_runClientMiddleware` handler\"\n );\n }\n });\n });\n };\n let results = await dataStrategyImpl({\n ...dataStrategyArgs,\n fetcherKey,\n unstable_runClientMiddleware\n });\n try {\n await Promise.all(\n matches.flatMap((m) => [\n m._lazyPromises?.handler,\n m._lazyPromises?.route\n ])\n );\n } catch (e) {\n }\n return results;\n}\nasync function callLoaderOrAction({\n request,\n match,\n lazyHandlerPromise,\n lazyRoutePromise,\n handlerOverride,\n scopedContext\n}) {\n let result;\n let onReject;\n let isAction = isMutationMethod(request.method);\n let type = isAction ? \"action\" : \"loader\";\n let runHandler = (handler) => {\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = (ctx) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean \"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: scopedContext\n },\n ...ctx !== void 0 ? [ctx] : []\n );\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride((ctx) => actualHandler(ctx)) : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = isAction ? match.route.action : match.route.loader;\n if (lazyHandlerPromise || lazyRoutePromise) {\n if (handler) {\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n // Ensure all lazy route promises are resolved before continuing\n lazyHandlerPromise,\n lazyRoutePromise\n ]);\n if (handlerError !== void 0) {\n throw handlerError;\n }\n result = value;\n } else {\n await lazyHandlerPromise;\n let handler2 = isAction ? match.route.action : match.route.loader;\n if (handler2) {\n [result] = await Promise.all([runHandler(handler2), lazyRoutePromise]);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n return { type: \"data\" /* data */, result: void 0 };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n } catch (e) {\n return { type: \"error\" /* error */, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function parseResponseBody(response) {\n let contentType = response.headers.get(\"Content-Type\");\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n return response.body == null ? null : response.json();\n }\n return response.text();\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let { result, type } = dataStrategyResult;\n if (isResponse(result)) {\n let data2;\n try {\n data2 = await parseResponseBody(result);\n } catch (e) {\n return { type: \"error\" /* error */, error: e };\n }\n if (type === \"error\" /* error */) {\n return {\n type: \"error\" /* error */,\n error: new ErrorResponseImpl(result.status, result.statusText, data2),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: \"data\" /* data */,\n data: data2,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === \"error\" /* error */) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: \"error\" /* error */,\n error: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers ? new Headers(result.init.headers) : void 0\n };\n }\n return {\n type: \"error\" /* error */,\n error: new ErrorResponseImpl(\n result.init?.status || 500,\n void 0,\n result.data\n ),\n statusCode: isRouteErrorResponse(result) ? result.status : void 0,\n headers: result.init?.headers ? new Headers(result.init.headers) : void 0\n };\n }\n return {\n type: \"error\" /* error */,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : void 0\n };\n }\n if (isDataWithResponseInit(result)) {\n return {\n type: \"data\" /* data */,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers ? new Headers(result.init.headers) : void 0\n };\n }\n return { type: \"data\" /* data */, data: result };\n}\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n if (!isAbsoluteUrl(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n location\n );\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename) {\n if (isAbsoluteUrl(location)) {\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = { signal };\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, isStaticHandler = false, skipLoaderErrorBubbling = false) {\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : void 0;\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n if (pendingError !== void 0) {\n error = pendingError;\n pendingError = void 0;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n if (!isStaticHandler) {\n loaderData[id] = ResetLoaderDataSymbol;\n }\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n if (pendingError !== void 0 && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n if (pendingActionResult[2]) {\n loaderData[pendingActionResult[2]] = void 0;\n }\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults) {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult\n );\n revalidatingFetchers.filter((f) => !f.matches || f.matches.some((m) => m.shouldLoad)).forEach((rf) => {\n let { key, match, controller } = rf;\n if (controller && controller.signal.aborted) {\n return;\n }\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return { loaderData, errors };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = Object.entries(newLoaderData).filter(([, v]) => v !== ResetLoaderDataSymbol).reduce((merged, [k, v]) => {\n merged[k] = v;\n return merged;\n }, {});\n for (let match of matches) {\n let id = match.route.id;\n if (!newLoaderData.hasOwnProperty(id) && loaderData.hasOwnProperty(id) && match.route.loader) {\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n let route = routes.length === 1 ? routes[0] : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`\n };\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }\n ],\n route\n };\n}\nfunction getInternalRouterError(status, {\n pathname,\n routeId,\n method,\n type,\n message\n} = {}) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = `You made a ${method} request to \"${pathname}\" but did not provide a \\`loader\\` for route \"${routeId}\", so there is no way to handle the request.`;\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = `You made a ${method.toUpperCase()} request to \"${pathname}\" but did not provide an \\`action\\` for route \"${routeId}\", so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n return true;\n } else if (b.hash !== \"\") {\n return true;\n }\n return false;\n}\nfunction dataWithResponseInitToResponse(data2) {\n return Response.json(data2.data, data2.init ?? void 0);\n}\nfunction dataWithResponseInitToErrorResponse(data2) {\n return new ErrorResponseImpl(\n data2.init?.status ?? 500,\n data2.init?.statusText ?? \"Internal Server Error\",\n data2.data\n );\n}\nfunction isDataStrategyResults(result) {\n return result != null && typeof result === \"object\" && Object.entries(result).every(\n ([key, value]) => typeof key === \"string\" && isDataStrategyResult(value)\n );\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === \"data\" /* data */ || result.type === \"error\" /* error */);\n}\nfunction isRedirectDataStrategyResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isErrorResult(result) {\n return result.type === \"error\" /* error */;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === \"redirect\" /* redirect */;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectStatusCode(statusCode) {\n return redirectStatusCodes.has(statusCode);\n}\nfunction isRedirectResponse(result) {\n return isResponse(result) && isRedirectStatusCode(result.status) && result.headers.has(\"Location\");\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toUpperCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toUpperCase());\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n return matches[matches.length - 1];\n }\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let { formMethod, formAction, formEncType, text, formData, json } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: void 0,\n json: void 0,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: void 0,\n text: void 0\n };\n } else if (json !== void 0) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: void 0,\n json,\n text: void 0\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data2) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: data2\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0,\n data: data2\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : void 0\n };\n return fetcher;\n}\nfunction getDoneFetcher(data2) {\n let fetcher = {\n state: \"idle\",\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0,\n data: data2\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\nfunction createDeferred() {\n let resolve;\n let reject;\n let promise = new Promise((res, rej) => {\n resolve = async (val) => {\n res(val);\n try {\n await promise;\n } catch (e) {\n }\n };\n reject = async (error) => {\n rej(error);\n try {\n await promise;\n } catch (e) {\n }\n };\n });\n return {\n promise,\n //@ts-ignore\n resolve,\n //@ts-ignore\n reject\n };\n}\n\n// lib/context.ts\nimport * as React from \"react\";\nvar DataRouterContext = React.createContext(null);\nDataRouterContext.displayName = \"DataRouter\";\nvar DataRouterStateContext = React.createContext(null);\nDataRouterStateContext.displayName = \"DataRouterState\";\nvar RSCRouterContext = React.createContext(false);\nfunction useIsRSCRouterContext() {\n return React.useContext(RSCRouterContext);\n}\nvar ViewTransitionContext = React.createContext({\n isTransitioning: false\n});\nViewTransitionContext.displayName = \"ViewTransition\";\nvar FetchersContext = React.createContext(\n /* @__PURE__ */ new Map()\n);\nFetchersContext.displayName = \"Fetchers\";\nvar AwaitContext = React.createContext(null);\nAwaitContext.displayName = \"Await\";\nvar NavigationContext = React.createContext(\n null\n);\nNavigationContext.displayName = \"Navigation\";\nvar LocationContext = React.createContext(\n null\n);\nLocationContext.displayName = \"Location\";\nvar RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nRouteContext.displayName = \"Route\";\nvar RouteErrorContext = React.createContext(null);\nRouteErrorContext.displayName = \"RouteError\";\nvar ENABLE_DEV_WARNINGS = true;\n\n// lib/hooks.tsx\nimport * as React2 from \"react\";\nfunction useHref(to, { relative } = {}) {\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 let { basename, navigator } = React2.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\nfunction useInRouterContext() {\n return React2.useContext(LocationContext) != null;\n}\nfunction useLocation() {\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 return React2.useContext(LocationContext).location;\n}\nfunction useNavigationType() {\n return React2.useContext(LocationContext).navigationType;\n}\nfunction useMatch(pattern) {\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 let { pathname } = useLocation();\n return React2.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\nvar navigateEffectWarning = `You should call navigate() in a React.useEffect(), not when your component is first rendered.`;\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React2.useContext(NavigationContext).static;\n if (!isStatic) {\n React2.useLayoutEffect(cb);\n }\n}\nfunction useNavigate() {\n let { isDataRoute } = React2.useContext(RouteContext);\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\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 let dataRouterContext = React2.useContext(DataRouterContext);\n let { basename, navigator } = React2.useContext(NavigationContext);\n let { matches } = React2.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n let activeRef = React2.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React2.useCallback(\n (to, options = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\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 return navigate;\n}\nvar OutletContext = React2.createContext(null);\nfunction useOutletContext() {\n return React2.useContext(OutletContext);\n}\nfunction useOutlet(context) {\n let outlet = React2.useContext(RouteContext).outlet;\n if (outlet) {\n return /* @__PURE__ */ React2.createElement(OutletContext.Provider, { value: context }, outlet);\n }\n return outlet;\n}\nfunction useParams() {\n let { matches } = React2.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\nfunction useResolvedPath(to, { relative } = {}) {\n let { matches } = React2.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n return React2.useMemo(\n () => resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\nfunction useRoutesImpl(routes, locationArg, dataRouterState, unstable_onError, future) {\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 let { navigator } = React2.useContext(NavigationContext);\n let { matches: parentMatches } = React2.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 if (ENABLE_DEV_WARNINGS) {\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\") || parentPath.endsWith(\"*?\"),\n `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\nPlease change the parent <Route path=\"${parentPath}\"> to <Route path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n invariant(\n parentPathnameBase === \"/\" || parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `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.`\n );\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n if (ENABLE_DEV_WARNINGS) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n warning(\n matches == null || matches[matches.length - 1].route.element !== void 0 || matches[matches.length - 1].route.Component !== void 0 || matches[matches.length - 1].route.lazy !== void 0,\n `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.`\n );\n }\n let renderedMatches = _renderMatches(\n matches && matches.map(\n (match) => 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 ? navigator.encodeLocation(match.pathname).pathname : match.pathname\n ]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase\n ])\n })\n ),\n parentMatches,\n dataRouterState,\n unstable_onError,\n future\n );\n if (locationArg && renderedMatches) {\n return /* @__PURE__ */ React2.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location\n },\n navigationType: \"POP\" /* Pop */\n }\n },\n renderedMatches\n );\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? `${error.status} ${error.statusText}` : error instanceof Error ? error.message : 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 let devInfo = null;\n if (ENABLE_DEV_WARNINGS) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n devInfo = /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\"p\", null, \"\\u{1F4BF} Hey developer \\u{1F44B}\"), /* @__PURE__ */ React2.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /* @__PURE__ */ React2.createElement(\"code\", { style: codeStyles }, \"ErrorBoundary\"), \" or\", \" \", /* @__PURE__ */ React2.createElement(\"code\", { style: codeStyles }, \"errorElement\"), \" prop on your route.\"));\n }\n return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\"h2\", null, \"Unexpected Application Error!\"), /* @__PURE__ */ React2.createElement(\"h3\", { style: { fontStyle: \"italic\" } }, message), stack ? /* @__PURE__ */ React2.createElement(\"pre\", { style: preStyles }, stack) : null, devInfo);\n}\nvar defaultErrorElement = /* @__PURE__ */ React2.createElement(DefaultErrorComponent, null);\nvar RenderErrorBoundary = class extends React2.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n static getDerivedStateFromProps(props, state) {\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 return {\n error: props.error !== void 0 ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.unstable_onError) {\n this.props.unstable_onError(error, errorInfo);\n } else {\n console.error(\n \"React Router caught the following error during render\",\n error\n );\n }\n }\n render() {\n return this.state.error !== void 0 ? /* @__PURE__ */ React2.createElement(RouteContext.Provider, { value: this.props.routeContext }, /* @__PURE__ */ React2.createElement(\n RouteErrorContext.Provider,\n {\n value: this.state.error,\n children: this.props.component\n }\n )) : this.props.children;\n }\n};\nfunction RenderedRoute({ routeContext, match, children }) {\n let dataRouterContext = React2.useContext(DataRouterContext);\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /* @__PURE__ */ React2.createElement(RouteContext.Provider, { value: routeContext }, children);\n}\nfunction _renderMatches(matches, parentMatches = [], dataRouterState = null, unstable_onError = null, future = null) {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n matches = dataRouterState.matches;\n } else if (parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== void 0\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 let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let { loaderData, errors: errors2 } = dataRouterState;\n let needsToRunLoader = match.route.loader && !loaderData.hasOwnProperty(match.route.id) && (!errors2 || errors2[match.route.id] === void 0);\n if (match.route.lazy || needsToRunLoader) {\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight(\n (outlet, match, index) => {\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : void 0;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches2 = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n children = /* @__PURE__ */ React2.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__ */ React2.createElement(\n RenderedRoute,\n {\n match,\n routeContext: {\n outlet,\n matches: matches2,\n isDataRoute: dataRouterState != null\n },\n children\n }\n );\n };\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /* @__PURE__ */ React2.createElement(\n RenderErrorBoundary,\n {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error,\n children: getChildren(),\n routeContext: { outlet: null, matches: matches2, isDataRoute: true },\n unstable_onError\n }\n ) : getChildren();\n },\n null\n );\n}\nfunction getDataRouterConsoleError(hookName) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React2.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React2.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React2.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\nfunction useCurrentRouteId(hookName) {\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}\nfunction useRouteId() {\n return useCurrentRouteId(\"useRouteId\" /* UseRouteId */);\n}\nfunction useNavigation() {\n let state = useDataRouterState(\"useNavigation\" /* UseNavigation */);\n return state.navigation;\n}\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(\"useRevalidator\" /* UseRevalidator */);\n let state = useDataRouterState(\"useRevalidator\" /* UseRevalidator */);\n let revalidate = React2.useCallback(async () => {\n await dataRouterContext.router.revalidate();\n }, [dataRouterContext.router]);\n return React2.useMemo(\n () => ({ revalidate, state: state.revalidation }),\n [revalidate, state.revalidation]\n );\n}\nfunction useMatches() {\n let { matches, loaderData } = useDataRouterState(\n \"useMatches\" /* UseMatches */\n );\n return React2.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\nfunction useLoaderData() {\n let state = useDataRouterState(\"useLoaderData\" /* UseLoaderData */);\n let routeId = useCurrentRouteId(\"useLoaderData\" /* UseLoaderData */);\n return state.loaderData[routeId];\n}\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(\"useRouteLoaderData\" /* UseRouteLoaderData */);\n return state.loaderData[routeId];\n}\nfunction useActionData() {\n let state = useDataRouterState(\"useActionData\" /* UseActionData */);\n let routeId = useCurrentRouteId(\"useLoaderData\" /* UseLoaderData */);\n return state.actionData ? state.actionData[routeId] : void 0;\n}\nfunction useRouteError() {\n let error = React2.useContext(RouteErrorContext);\n let state = useDataRouterState(\"useRouteError\" /* UseRouteError */);\n let routeId = useCurrentRouteId(\"useRouteError\" /* UseRouteError */);\n if (error !== void 0) {\n return error;\n }\n return state.errors?.[routeId];\n}\nfunction useAsyncValue() {\n let value = React2.useContext(AwaitContext);\n return value?._data;\n}\nfunction useAsyncError() {\n let value = React2.useContext(AwaitContext);\n return value?._error;\n}\nvar blockerId = 0;\nfunction useBlocker(shouldBlock) {\n let { router, basename } = useDataRouterContext(\"useBlocker\" /* UseBlocker */);\n let state = useDataRouterState(\"useBlocker\" /* UseBlocker */);\n let [blockerKey, setBlockerKey] = React2.useState(\"\");\n let blockerFunction = React2.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n },\n nextLocation: {\n ...nextLocation,\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n },\n historyAction\n });\n },\n [basename, shouldBlock]\n );\n React2.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n React2.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\nfunction useNavigateStable() {\n let { router } = useDataRouterContext(\"useNavigate\" /* UseNavigateStable */);\n let id = useCurrentRouteId(\"useNavigate\" /* UseNavigateStable */);\n let activeRef = React2.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React2.useCallback(\n async (to, options = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n await router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n return navigate;\n}\nvar alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\n// lib/components.tsx\nimport * as React3 from \"react\";\n\n// lib/server-runtime/warnings.ts\nvar alreadyWarned2 = {};\nfunction warnOnce(condition, message) {\n if (!condition && !alreadyWarned2[message]) {\n alreadyWarned2[message] = true;\n console.warn(message);\n }\n}\n\n// lib/components.tsx\nfunction mapRouteProperties(route) {\n let updates = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.hasErrorBoundary || route.ErrorBoundary != null || route.errorElement != null\n };\n if (route.Component) {\n if (ENABLE_DEV_WARNINGS) {\n if (route.element) {\n warning(\n false,\n \"You should not include both `Component` and `element` on your route - `Component` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n element: React3.createElement(route.Component),\n Component: void 0\n });\n }\n if (route.HydrateFallback) {\n if (ENABLE_DEV_WARNINGS) {\n if (route.hydrateFallbackElement) {\n warning(\n false,\n \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: React3.createElement(route.HydrateFallback),\n HydrateFallback: void 0\n });\n }\n if (route.ErrorBoundary) {\n if (ENABLE_DEV_WARNINGS) {\n if (route.errorElement) {\n warning(\n false,\n \"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n errorElement: React3.createElement(route.ErrorBoundary),\n ErrorBoundary: void 0\n });\n }\n return updates;\n}\nvar hydrationRouteProperties = [\n \"HydrateFallback\",\n \"hydrateFallbackElement\"\n];\nfunction createMemoryRouter(routes, opts) {\n return createRouter({\n basename: opts?.basename,\n unstable_getContext: opts?.unstable_getContext,\n future: opts?.future,\n history: createMemoryHistory({\n initialEntries: opts?.initialEntries,\n initialIndex: opts?.initialIndex\n }),\n hydrationData: opts?.hydrationData,\n routes,\n hydrationRouteProperties,\n mapRouteProperties,\n dataStrategy: opts?.dataStrategy,\n patchRoutesOnNavigation: opts?.patchRoutesOnNavigation\n }).initialize();\n}\nvar Deferred = class {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (value) => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = (reason) => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n};\nfunction RouterProvider({\n router,\n flushSync: reactDomFlushSyncImpl,\n unstable_onError\n}) {\n let [state, setStateImpl] = React3.useState(router.state);\n let [pendingState, setPendingState] = React3.useState();\n let [vtContext, setVtContext] = React3.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React3.useState();\n let [transition, setTransition] = React3.useState();\n let [interruption, setInterruption] = React3.useState();\n let fetcherData = React3.useRef(/* @__PURE__ */ new Map());\n let logErrorsAndSetState = React3.useCallback(\n (newState) => {\n setStateImpl((prevState) => {\n if (newState.errors && unstable_onError) {\n Object.entries(newState.errors).forEach(([routeId, error]) => {\n if (prevState.errors?.[routeId] !== error) {\n unstable_onError(error);\n }\n });\n }\n return newState;\n });\n },\n [unstable_onError]\n );\n let setState = React3.useCallback(\n (newState, { deletedFetchers, flushSync, viewTransitionOpts }) => {\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== void 0) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n deletedFetchers.forEach((key) => fetcherData.current.delete(key));\n warnOnce(\n flushSync === false || reactDomFlushSyncImpl != null,\n 'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from \"react-router/dom\"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.'\n );\n let isViewTransitionAvailable = router.window != null && router.window.document != null && typeof router.window.document.startViewTransition === \"function\";\n warnOnce(\n viewTransitionOpts == null || isViewTransitionAvailable,\n \"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available.\"\n );\n if (!viewTransitionOpts || !isViewTransitionAvailable) {\n if (reactDomFlushSyncImpl && flushSync) {\n reactDomFlushSyncImpl(() => logErrorsAndSetState(newState));\n } else {\n React3.startTransition(() => logErrorsAndSetState(newState));\n }\n return;\n }\n if (reactDomFlushSyncImpl && flushSync) {\n reactDomFlushSyncImpl(() => {\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n let t = router.window.document.startViewTransition(() => {\n reactDomFlushSyncImpl(() => logErrorsAndSetState(newState));\n });\n t.finished.finally(() => {\n reactDomFlushSyncImpl(() => {\n setRenderDfd(void 0);\n setTransition(void 0);\n setPendingState(void 0);\n setVtContext({ isTransitioning: false });\n });\n });\n reactDomFlushSyncImpl(() => setTransition(t));\n return;\n }\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n },\n [\n router.window,\n reactDomFlushSyncImpl,\n transition,\n renderDfd,\n logErrorsAndSetState\n ]\n );\n React3.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React3.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n React3.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition2 = router.window.document.startViewTransition(async () => {\n React3.startTransition(() => logErrorsAndSetState(newState));\n await renderPromise;\n });\n transition2.finished.finally(() => {\n setRenderDfd(void 0);\n setTransition(void 0);\n setPendingState(void 0);\n setVtContext({ isTransitioning: false });\n });\n setTransition(transition2);\n }\n }, [pendingState, renderDfd, router.window, logErrorsAndSetState]);\n React3.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n React3.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(void 0);\n }\n }, [vtContext.isTransitioning, interruption]);\n let navigator = React3.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state2, opts) => router.navigate(to, {\n state: state2,\n preventScrollReset: opts?.preventScrollReset\n }),\n replace: (to, state2, opts) => router.navigate(to, {\n replace: true,\n state: state2,\n preventScrollReset: opts?.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React3.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n unstable_onError\n }),\n [router, navigator, basename, unstable_onError]\n );\n return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(DataRouterContext.Provider, { value: dataRouterContext }, /* @__PURE__ */ React3.createElement(DataRouterStateContext.Provider, { value: state }, /* @__PURE__ */ React3.createElement(FetchersContext.Provider, { value: fetcherData.current }, /* @__PURE__ */ React3.createElement(ViewTransitionContext.Provider, { value: vtContext }, /* @__PURE__ */ React3.createElement(\n Router,\n {\n basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator\n },\n /* @__PURE__ */ React3.createElement(\n MemoizedDataRoutes,\n {\n routes: router.routes,\n future: router.future,\n state,\n unstable_onError\n }\n )\n ))))), null);\n}\nvar MemoizedDataRoutes = React3.memo(DataRoutes);\nfunction DataRoutes({\n routes,\n future,\n state,\n unstable_onError\n}) {\n return useRoutesImpl(routes, void 0, state, unstable_onError, future);\n}\nfunction MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex\n}) {\n let historyRef = React3.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React3.useState({\n action: history.action,\n location: history.location\n });\n let setState = React3.useCallback(\n (newState) => {\n React3.startTransition(() => setStateImpl(newState));\n },\n [setStateImpl]\n );\n React3.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React3.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n }\n );\n}\nfunction Navigate({\n to,\n replace: replace2,\n state,\n relative\n}) {\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 let { static: isStatic } = React3.useContext(NavigationContext);\n warning(\n !isStatic,\n `<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.`\n );\n let { matches } = React3.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let navigate = useNavigate();\n let path = resolveTo(\n to,\n getResolveToMatches(matches),\n locationPathname,\n relative === \"path\"\n );\n let jsonPath = JSON.stringify(path);\n React3.useEffect(() => {\n navigate(JSON.parse(jsonPath), { replace: replace2, state, relative });\n }, [navigate, jsonPath, relative, replace2, state]);\n return null;\n}\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\nfunction Route(props) {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\nfunction Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = \"POP\" /* Pop */,\n navigator,\n static: staticProp = false\n}) {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`\n );\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React3.useMemo(\n () => ({\n basename,\n navigator,\n static: staticProp,\n future: {}\n }),\n [basename, navigator, staticProp]\n );\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let locationContext = React3.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n if (trailingPathname == null) {\n return null;\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 warning(\n locationContext != null,\n `<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.`\n );\n if (locationContext == null) {\n return null;\n }\n return /* @__PURE__ */ React3.createElement(NavigationContext.Provider, { value: navigationContext }, /* @__PURE__ */ React3.createElement(LocationContext.Provider, { children, value: locationContext }));\n}\nfunction Routes({\n children,\n location\n}) {\n return useRoutes(createRoutesFromChildren(children), location);\n}\nfunction Await({\n children,\n errorElement,\n resolve\n}) {\n let dataRouterContext = React3.useContext(DataRouterContext);\n return /* @__PURE__ */ React3.createElement(\n AwaitErrorBoundary,\n {\n resolve,\n errorElement,\n unstable_onError: dataRouterContext?.unstable_onError\n },\n /* @__PURE__ */ React3.createElement(ResolveAwait, null, children)\n );\n}\nvar AwaitErrorBoundary = class extends React3.Component {\n constructor(props) {\n super(props);\n this.state = { error: null };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.unstable_onError) {\n this.props.unstable_onError(error, errorInfo);\n } else {\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 let promise = null;\n let status = 0 /* pending */;\n if (!(resolve instanceof Promise)) {\n status = 1 /* 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 status = 2 /* error */;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {\n });\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if (resolve._tracked) {\n promise = resolve;\n status = \"_error\" in promise ? 2 /* error */ : \"_data\" in promise ? 1 /* success */ : 0 /* pending */;\n } else {\n status = 0 /* pending */;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data2) => Object.defineProperty(resolve, \"_data\", { get: () => data2 }),\n (error) => {\n this.props.unstable_onError?.(error);\n Object.defineProperty(resolve, \"_error\", { get: () => error });\n }\n );\n }\n if (status === 2 /* error */ && !errorElement) {\n throw promise._error;\n }\n if (status === 2 /* error */) {\n return /* @__PURE__ */ React3.createElement(AwaitContext.Provider, { value: promise, children: errorElement });\n }\n if (status === 1 /* success */) {\n return /* @__PURE__ */ React3.createElement(AwaitContext.Provider, { value: promise, children });\n }\n throw promise;\n }\n};\nfunction ResolveAwait({\n children\n}) {\n let data2 = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data2) : children;\n return /* @__PURE__ */ React3.createElement(React3.Fragment, null, toRender);\n}\nfunction createRoutesFromChildren(children, parentPath = []) {\n let routes = [];\n React3.Children.forEach(children, (element, index) => {\n if (!React3.isValidElement(element)) {\n return;\n }\n let treePath = [...parentPath, index];\n if (element.type === React3.Fragment) {\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, treePath)\n );\n return;\n }\n invariant(\n element.type === Route,\n `[${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>`\n );\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n let 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 hydrateFallbackElement: element.props.hydrateFallbackElement,\n HydrateFallback: element.props.HydrateFallback,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary: element.props.hasErrorBoundary === true || 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(\n element.props.children,\n treePath\n );\n }\n routes.push(route);\n });\n return routes;\n}\nvar createRoutesFromElements = createRoutesFromChildren;\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\nfunction useRouteComponentProps() {\n return {\n params: useParams(),\n loaderData: useLoaderData(),\n actionData: useActionData(),\n matches: useMatches()\n };\n}\nfunction WithComponentProps({\n children\n}) {\n const props = useRouteComponentProps();\n return React3.cloneElement(children, props);\n}\nfunction withComponentProps(Component4) {\n return function WithComponentProps2() {\n const props = useRouteComponentProps();\n return React3.createElement(Component4, props);\n };\n}\nfunction useHydrateFallbackProps() {\n return {\n params: useParams(),\n loaderData: useLoaderData(),\n actionData: useActionData()\n };\n}\nfunction WithHydrateFallbackProps({\n children\n}) {\n const props = useHydrateFallbackProps();\n return React3.cloneElement(children, props);\n}\nfunction withHydrateFallbackProps(HydrateFallback) {\n return function WithHydrateFallbackProps2() {\n const props = useHydrateFallbackProps();\n return React3.createElement(HydrateFallback, props);\n };\n}\nfunction useErrorBoundaryProps() {\n return {\n params: useParams(),\n loaderData: useLoaderData(),\n actionData: useActionData(),\n error: useRouteError()\n };\n}\nfunction WithErrorBoundaryProps({\n children\n}) {\n const props = useErrorBoundaryProps();\n return React3.cloneElement(children, props);\n}\nfunction withErrorBoundaryProps(ErrorBoundary) {\n return function WithErrorBoundaryProps2() {\n const props = useErrorBoundaryProps();\n return React3.createElement(ErrorBoundary, props);\n };\n}\n\n// lib/dom/dom.ts\nvar defaultMethod = \"get\";\nvar defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event);\n}\nfunction createSearchParams(init = \"\") {\n return new URLSearchParams(\n typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo2, key) => {\n let value = init[key];\n return memo2.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [])\n );\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\nvar _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nvar supportedFormEncTypes = /* @__PURE__ */ new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\"\n]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` and will default to \"${defaultEncType}\"`\n );\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(form, target);\n if (!isFormDataSubmitterSupported()) {\n let { name, type, value } = target;\n if (type === \"image\") {\n let prefix = name ? `${name}.` : \"\";\n formData.append(`${prefix}x`, \"0\");\n formData.append(`${prefix}y`, \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or <input type=\"submit|image\">`\n );\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = void 0;\n }\n return { action, method: method.toLowerCase(), encType, formData, body };\n}\n\n// lib/dom/ssr/single-fetch.tsx\nimport * as React4 from \"react\";\n\n// vendor/turbo-stream-v2/utils.ts\nvar HOLE = -1;\nvar NAN = -2;\nvar NEGATIVE_INFINITY = -3;\nvar NEGATIVE_ZERO = -4;\nvar NULL = -5;\nvar POSITIVE_INFINITY = -6;\nvar UNDEFINED = -7;\nvar TYPE_BIGINT = \"B\";\nvar TYPE_DATE = \"D\";\nvar TYPE_ERROR = \"E\";\nvar TYPE_MAP = \"M\";\nvar TYPE_NULL_OBJECT = \"N\";\nvar TYPE_PROMISE = \"P\";\nvar TYPE_REGEXP = \"R\";\nvar TYPE_SET = \"S\";\nvar TYPE_SYMBOL = \"Y\";\nvar TYPE_URL = \"U\";\nvar TYPE_PREVIOUS_RESOLVED = \"Z\";\nvar Deferred2 = class {\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n};\nfunction createLineSplittingTransform() {\n const decoder = new TextDecoder();\n let leftover = \"\";\n return new TransformStream({\n transform(chunk, controller) {\n const str = decoder.decode(chunk, { stream: true });\n const parts = (leftover + str).split(\"\\n\");\n leftover = parts.pop() || \"\";\n for (const part of parts) {\n controller.enqueue(part);\n }\n },\n flush(controller) {\n if (leftover) {\n controller.enqueue(leftover);\n }\n }\n });\n}\n\n// vendor/turbo-stream-v2/flatten.ts\nfunction flatten(input) {\n const { indices } = this;\n const existing = indices.get(input);\n if (existing) return [existing];\n if (input === void 0) return UNDEFINED;\n if (input === null) return NULL;\n if (Number.isNaN(input)) return NAN;\n if (input === Number.POSITIVE_INFINITY) return POSITIVE_INFINITY;\n if (input === Number.NEGATIVE_INFINITY) return NEGATIVE_INFINITY;\n if (input === 0 && 1 / input < 0) return NEGATIVE_ZERO;\n const index = this.index++;\n indices.set(input, index);\n stringify.call(this, input, index);\n return index;\n}\nfunction stringify(input, index) {\n const { deferred, plugins, postPlugins } = this;\n const str = this.stringified;\n const stack = [[input, index]];\n while (stack.length > 0) {\n const [input2, index2] = stack.pop();\n const partsForObj = (obj) => Object.keys(obj).map((k) => `\"_${flatten.call(this, k)}\":${flatten.call(this, obj[k])}`).join(\",\");\n let error = null;\n switch (typeof input2) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n str[index2] = JSON.stringify(input2);\n break;\n case \"bigint\":\n str[index2] = `[\"${TYPE_BIGINT}\",\"${input2}\"]`;\n break;\n case \"symbol\": {\n const keyFor = Symbol.keyFor(input2);\n if (!keyFor) {\n error = new Error(\n \"Cannot encode symbol unless created with Symbol.for()\"\n );\n } else {\n str[index2] = `[\"${TYPE_SYMBOL}\",${JSON.stringify(keyFor)}]`;\n }\n break;\n }\n case \"object\": {\n if (!input2) {\n str[index2] = `${NULL}`;\n break;\n }\n const isArray = Array.isArray(input2);\n let pluginHandled = false;\n if (!isArray && plugins) {\n for (const plugin of plugins) {\n const pluginResult = plugin(input2);\n if (Array.isArray(pluginResult)) {\n pluginHandled = true;\n const [pluginIdentifier, ...rest] = pluginResult;\n str[index2] = `[${JSON.stringify(pluginIdentifier)}`;\n if (rest.length > 0) {\n str[index2] += `,${rest.map((v) => flatten.call(this, v)).join(\",\")}`;\n }\n str[index2] += \"]\";\n break;\n }\n }\n }\n if (!pluginHandled) {\n let result = isArray ? \"[\" : \"{\";\n if (isArray) {\n for (let i = 0; i < input2.length; i++)\n result += (i ? \",\" : \"\") + (i in input2 ? flatten.call(this, input2[i]) : HOLE);\n str[index2] = `${result}]`;\n } else if (input2 instanceof Date) {\n const dateTime = input2.getTime();\n str[index2] = `[\"${TYPE_DATE}\",${Number.isNaN(dateTime) ? JSON.stringify(\"invalid\") : dateTime}]`;\n } else if (input2 instanceof URL) {\n str[index2] = `[\"${TYPE_URL}\",${JSON.stringify(input2.href)}]`;\n } else if (input2 instanceof RegExp) {\n str[index2] = `[\"${TYPE_REGEXP}\",${JSON.stringify(\n input2.source\n )},${JSON.stringify(input2.flags)}]`;\n } else if (input2 instanceof Set) {\n if (input2.size > 0) {\n str[index2] = `[\"${TYPE_SET}\",${[...input2].map((val) => flatten.call(this, val)).join(\",\")}]`;\n } else {\n str[index2] = `[\"${TYPE_SET}\"]`;\n }\n } else if (input2 instanceof Map) {\n if (input2.size > 0) {\n str[index2] = `[\"${TYPE_MAP}\",${[...input2].flatMap(([k, v]) => [\n flatten.call(this, k),\n flatten.call(this, v)\n ]).join(\",\")}]`;\n } else {\n str[index2] = `[\"${TYPE_MAP}\"]`;\n }\n } else if (input2 instanceof Promise) {\n str[index2] = `[\"${TYPE_PROMISE}\",${index2}]`;\n deferred[index2] = input2;\n } else if (input2 instanceof Error) {\n str[index2] = `[\"${TYPE_ERROR}\",${JSON.stringify(input2.message)}`;\n if (input2.name !== \"Error\") {\n str[index2] += `,${JSON.stringify(input2.name)}`;\n }\n str[index2] += \"]\";\n } else if (Object.getPrototypeOf(input2) === null) {\n str[index2] = `[\"${TYPE_NULL_OBJECT}\",{${partsForObj(input2)}}]`;\n } else if (isPlainObject(input2)) {\n str[index2] = `{${partsForObj(input2)}}`;\n } else {\n error = new Error(\"Cannot encode object with prototype\");\n }\n }\n break;\n }\n default: {\n const isArray = Array.isArray(input2);\n let pluginHandled = false;\n if (!isArray && plugins) {\n for (const plugin of plugins) {\n const pluginResult = plugin(input2);\n if (Array.isArray(pluginResult)) {\n pluginHandled = true;\n const [pluginIdentifier, ...rest] = pluginResult;\n str[index2] = `[${JSON.stringify(pluginIdentifier)}`;\n if (rest.length > 0) {\n str[index2] += `,${rest.map((v) => flatten.call(this, v)).join(\",\")}`;\n }\n str[index2] += \"]\";\n break;\n }\n }\n }\n if (!pluginHandled) {\n error = new Error(\"Cannot encode function or unexpected type\");\n }\n }\n }\n if (error) {\n let pluginHandled = false;\n if (postPlugins) {\n for (const plugin of postPlugins) {\n const pluginResult = plugin(input2);\n if (Array.isArray(pluginResult)) {\n pluginHandled = true;\n const [pluginIdentifier, ...rest] = pluginResult;\n str[index2] = `[${JSON.stringify(pluginIdentifier)}`;\n if (rest.length > 0) {\n str[index2] += `,${rest.map((v) => flatten.call(this, v)).join(\",\")}`;\n }\n str[index2] += \"]\";\n break;\n }\n }\n }\n if (!pluginHandled) {\n throw error;\n }\n }\n }\n}\nvar objectProtoNames = Object.getOwnPropertyNames(Object.prototype).sort().join(\"\\0\");\nfunction isPlainObject(thing) {\n const proto = Object.getPrototypeOf(thing);\n return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join(\"\\0\") === objectProtoNames;\n}\n\n// vendor/turbo-stream-v2/unflatten.ts\nvar globalObj = typeof window !== \"undefined\" ? window : typeof globalThis !== \"undefined\" ? globalThis : void 0;\nfunction unflatten(parsed) {\n const { hydrated, values } = this;\n if (typeof parsed === \"number\") return hydrate.call(this, parsed);\n if (!Array.isArray(parsed) || !parsed.length) throw new SyntaxError();\n const startIndex = values.length;\n for (const value of parsed) {\n values.push(value);\n }\n hydrated.length = values.length;\n return hydrate.call(this, startIndex);\n}\nfunction hydrate(index) {\n const { hydrated, values, deferred, plugins } = this;\n let result;\n const stack = [\n [\n index,\n (v) => {\n result = v;\n }\n ]\n ];\n let postRun = [];\n while (stack.length > 0) {\n const [index2, set] = stack.pop();\n switch (index2) {\n case UNDEFINED:\n set(void 0);\n continue;\n case NULL:\n set(null);\n continue;\n case NAN:\n set(NaN);\n continue;\n case POSITIVE_INFINITY:\n set(Infinity);\n continue;\n case NEGATIVE_INFINITY:\n set(-Infinity);\n continue;\n case NEGATIVE_ZERO:\n set(-0);\n continue;\n }\n if (hydrated[index2]) {\n set(hydrated[index2]);\n continue;\n }\n const value = values[index2];\n if (!value || typeof value !== \"object\") {\n hydrated[index2] = value;\n set(value);\n continue;\n }\n if (Array.isArray(value)) {\n if (typeof value[0] === \"string\") {\n const [type, b, c] = value;\n switch (type) {\n case TYPE_DATE:\n set(hydrated[index2] = new Date(b));\n continue;\n case TYPE_URL:\n set(hydrated[index2] = new URL(b));\n continue;\n case TYPE_BIGINT:\n set(hydrated[index2] = BigInt(b));\n continue;\n case TYPE_REGEXP:\n set(hydrated[index2] = new RegExp(b, c));\n continue;\n case TYPE_SYMBOL:\n set(hydrated[index2] = Symbol.for(b));\n continue;\n case TYPE_SET:\n const newSet = /* @__PURE__ */ new Set();\n hydrated[index2] = newSet;\n for (let i = value.length - 1; i > 0; i--)\n stack.push([\n value[i],\n (v) => {\n newSet.add(v);\n }\n ]);\n set(newSet);\n continue;\n case TYPE_MAP:\n const map = /* @__PURE__ */ new Map();\n hydrated[index2] = map;\n for (let i = value.length - 2; i > 0; i -= 2) {\n const r = [];\n stack.push([\n value[i + 1],\n (v) => {\n r[1] = v;\n }\n ]);\n stack.push([\n value[i],\n (k) => {\n r[0] = k;\n }\n ]);\n postRun.push(() => {\n map.set(r[0], r[1]);\n });\n }\n set(map);\n continue;\n case TYPE_NULL_OBJECT:\n const obj = /* @__PURE__ */ Object.create(null);\n hydrated[index2] = obj;\n for (const key of Object.keys(b).reverse()) {\n const r = [];\n stack.push([\n b[key],\n (v) => {\n r[1] = v;\n }\n ]);\n stack.push([\n Number(key.slice(1)),\n (k) => {\n r[0] = k;\n }\n ]);\n postRun.push(() => {\n obj[r[0]] = r[1];\n });\n }\n set(obj);\n continue;\n case TYPE_PROMISE:\n if (hydrated[b]) {\n set(hydrated[index2] = hydrated[b]);\n } else {\n const d = new Deferred2();\n deferred[b] = d;\n set(hydrated[index2] = d.promise);\n }\n continue;\n case TYPE_ERROR:\n const [, message, errorType] = value;\n let error = errorType && globalObj && globalObj[errorType] ? new globalObj[errorType](message) : new Error(message);\n hydrated[index2] = error;\n set(error);\n continue;\n case TYPE_PREVIOUS_RESOLVED:\n set(hydrated[index2] = hydrated[b]);\n continue;\n default:\n if (Array.isArray(plugins)) {\n const r = [];\n const vals = value.slice(1);\n for (let i = 0; i < vals.length; i++) {\n const v = vals[i];\n stack.push([\n v,\n (v2) => {\n r[i] = v2;\n }\n ]);\n }\n postRun.push(() => {\n for (const plugin of plugins) {\n const result2 = plugin(value[0], ...r);\n if (result2) {\n set(hydrated[index2] = result2.value);\n return;\n }\n }\n throw new SyntaxError();\n });\n continue;\n }\n throw new SyntaxError();\n }\n } else {\n const array = [];\n hydrated[index2] = array;\n for (let i = 0; i < value.length; i++) {\n const n = value[i];\n if (n !== HOLE) {\n stack.push([\n n,\n (v) => {\n array[i] = v;\n }\n ]);\n }\n }\n set(array);\n continue;\n }\n } else {\n const object = {};\n hydrated[index2] = object;\n for (const key of Object.keys(value).reverse()) {\n const r = [];\n stack.push([\n value[key],\n (v) => {\n r[1] = v;\n }\n ]);\n stack.push([\n Number(key.slice(1)),\n (k) => {\n r[0] = k;\n }\n ]);\n postRun.push(() => {\n object[r[0]] = r[1];\n });\n }\n set(object);\n continue;\n }\n }\n while (postRun.length > 0) {\n postRun.pop()();\n }\n return result;\n}\n\n// vendor/turbo-stream-v2/turbo-stream.ts\nasync function decode(readable, options) {\n const { plugins } = options ?? {};\n const done = new Deferred2();\n const reader = readable.pipeThrough(createLineSplittingTransform()).getReader();\n const decoder = {\n values: [],\n hydrated: [],\n deferred: {},\n plugins\n };\n const decoded = await decodeInitial.call(decoder, reader);\n let donePromise = done.promise;\n if (decoded.done) {\n done.resolve();\n } else {\n donePromise = decodeDeferred.call(decoder, reader).then(done.resolve).catch((reason) => {\n for (const deferred of Object.values(decoder.deferred)) {\n deferred.reject(reason);\n }\n done.reject(reason);\n });\n }\n return {\n done: donePromise.then(() => reader.closed),\n value: decoded.value\n };\n}\nasync function decodeInitial(reader) {\n const read = await reader.read();\n if (!read.value) {\n throw new SyntaxError();\n }\n let line;\n try {\n line = JSON.parse(read.value);\n } catch (reason) {\n throw new SyntaxError();\n }\n return {\n done: read.done,\n value: unflatten.call(this, line)\n };\n}\nasync function decodeDeferred(reader) {\n let read = await reader.read();\n while (!read.done) {\n if (!read.value) continue;\n const line = read.value;\n switch (line[0]) {\n case TYPE_PROMISE: {\n const colonIndex = line.indexOf(\":\");\n const deferredId = Number(line.slice(1, colonIndex));\n const deferred = this.deferred[deferredId];\n if (!deferred) {\n throw new Error(`Deferred ID ${deferredId} not found in stream`);\n }\n const lineData = line.slice(colonIndex + 1);\n let jsonLine;\n try {\n jsonLine = JSON.parse(lineData);\n } catch (reason) {\n throw new SyntaxError();\n }\n const value = unflatten.call(this, jsonLine);\n deferred.resolve(value);\n break;\n }\n case TYPE_ERROR: {\n const colonIndex = line.indexOf(\":\");\n const deferredId = Number(line.slice(1, colonIndex));\n const deferred = this.deferred[deferredId];\n if (!deferred) {\n throw new Error(`Deferred ID ${deferredId} not found in stream`);\n }\n const lineData = line.slice(colonIndex + 1);\n let jsonLine;\n try {\n jsonLine = JSON.parse(lineData);\n } catch (reason) {\n throw new SyntaxError();\n }\n const value = unflatten.call(this, jsonLine);\n deferred.reject(value);\n break;\n }\n default:\n throw new SyntaxError();\n }\n read = await reader.read();\n }\n}\nfunction encode(input, options) {\n const { plugins, postPlugins, signal } = options ?? {};\n const encoder = {\n deferred: {},\n index: 0,\n indices: /* @__PURE__ */ new Map(),\n stringified: [],\n plugins,\n postPlugins,\n signal\n };\n const textEncoder = new TextEncoder();\n let lastSentIndex = 0;\n const readable = new ReadableStream({\n async start(controller) {\n const id = flatten.call(encoder, input);\n if (Array.isArray(id)) {\n throw new Error(\"This should never happen\");\n }\n if (id < 0) {\n controller.enqueue(textEncoder.encode(`${id}\n`));\n } else {\n controller.enqueue(\n textEncoder.encode(`[${encoder.stringified.join(\",\")}]\n`)\n );\n lastSentIndex = encoder.stringified.length - 1;\n }\n const seenPromises = /* @__PURE__ */ new WeakSet();\n if (Object.keys(encoder.deferred).length) {\n let raceDone;\n const racePromise = new Promise((resolve, reject) => {\n raceDone = resolve;\n if (signal) {\n const rejectPromise = () => reject(signal.reason || new Error(\"Signal was aborted.\"));\n if (signal.aborted) {\n rejectPromise();\n } else {\n signal.addEventListener(\"abort\", (event) => {\n rejectPromise();\n });\n }\n }\n });\n while (Object.keys(encoder.deferred).length > 0) {\n for (const [deferredId, deferred] of Object.entries(\n encoder.deferred\n )) {\n if (seenPromises.has(deferred)) continue;\n seenPromises.add(\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n encoder.deferred[Number(deferredId)] = Promise.race([\n racePromise,\n deferred\n ]).then(\n (resolved) => {\n const id2 = flatten.call(encoder, resolved);\n if (Array.isArray(id2)) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_PROMISE}${deferredId}:[[\"${TYPE_PREVIOUS_RESOLVED}\",${id2[0]}]]\n`\n )\n );\n encoder.index++;\n lastSentIndex++;\n } else if (id2 < 0) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_PROMISE}${deferredId}:${id2}\n`\n )\n );\n } else {\n const values = encoder.stringified.slice(lastSentIndex + 1).join(\",\");\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_PROMISE}${deferredId}:[${values}]\n`\n )\n );\n lastSentIndex = encoder.stringified.length - 1;\n }\n },\n (reason) => {\n if (!reason || typeof reason !== \"object\" || !(reason instanceof Error)) {\n reason = new Error(\"An unknown error occurred\");\n }\n const id2 = flatten.call(encoder, reason);\n if (Array.isArray(id2)) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_ERROR}${deferredId}:[[\"${TYPE_PREVIOUS_RESOLVED}\",${id2[0]}]]\n`\n )\n );\n encoder.index++;\n lastSentIndex++;\n } else if (id2 < 0) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_ERROR}${deferredId}:${id2}\n`\n )\n );\n } else {\n const values = encoder.stringified.slice(lastSentIndex + 1).join(\",\");\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_ERROR}${deferredId}:[${values}]\n`\n )\n );\n lastSentIndex = encoder.stringified.length - 1;\n }\n }\n ).finally(() => {\n delete encoder.deferred[Number(deferredId)];\n })\n );\n }\n await Promise.race(Object.values(encoder.deferred));\n }\n raceDone();\n }\n await Promise.all(Object.values(encoder.deferred));\n controller.close();\n }\n });\n return readable;\n}\n\n// lib/dom/ssr/data.ts\nasync function createRequestInit(request) {\n let init = { signal: request.signal };\n if (request.method !== \"GET\") {\n init.method = request.method;\n let contentType = request.headers.get(\"Content-Type\");\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n init.headers = { \"Content-Type\": contentType };\n init.body = JSON.stringify(await request.json());\n } else if (contentType && /\\btext\\/plain\\b/.test(contentType)) {\n init.headers = { \"Content-Type\": contentType };\n init.body = await request.text();\n } else if (contentType && /\\bapplication\\/x-www-form-urlencoded\\b/.test(contentType)) {\n init.body = new URLSearchParams(await request.text());\n } else {\n init.body = await request.formData();\n }\n }\n return init;\n}\n\n// lib/dom/ssr/markup.ts\nvar ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n return html.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);\n}\nfunction createHtml(html) {\n return { __html: html };\n}\n\n// lib/dom/ssr/invariant.ts\nfunction invariant2(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\n// lib/dom/ssr/single-fetch.tsx\nvar SingleFetchRedirectSymbol = Symbol(\"SingleFetchRedirect\");\nvar SingleFetchNoResultError = class extends Error {\n};\nvar SINGLE_FETCH_REDIRECT_STATUS = 202;\nvar NO_BODY_STATUS_CODES = /* @__PURE__ */ new Set([100, 101, 204, 205]);\nfunction StreamTransfer({\n context,\n identifier,\n reader,\n textDecoder,\n nonce\n}) {\n if (!context.renderMeta || !context.renderMeta.didRenderScripts) {\n return null;\n }\n if (!context.renderMeta.streamCache) {\n context.renderMeta.streamCache = {};\n }\n let { streamCache } = context.renderMeta;\n let promise = streamCache[identifier];\n if (!promise) {\n promise = streamCache[identifier] = reader.read().then((result) => {\n streamCache[identifier].result = {\n done: result.done,\n value: textDecoder.decode(result.value, { stream: true })\n };\n }).catch((e) => {\n streamCache[identifier].error = e;\n });\n }\n if (promise.error) {\n throw promise.error;\n }\n if (promise.result === void 0) {\n throw promise;\n }\n let { done, value } = promise.result;\n let scriptTag = value ? /* @__PURE__ */ React4.createElement(\n \"script\",\n {\n nonce,\n dangerouslySetInnerHTML: {\n __html: `window.__reactRouterContext.streamController.enqueue(${escapeHtml(\n JSON.stringify(value)\n )});`\n }\n }\n ) : null;\n if (done) {\n return /* @__PURE__ */ React4.createElement(React4.Fragment, null, scriptTag, /* @__PURE__ */ React4.createElement(\n \"script\",\n {\n nonce,\n dangerouslySetInnerHTML: {\n __html: `window.__reactRouterContext.streamController.close();`\n }\n }\n ));\n } else {\n return /* @__PURE__ */ React4.createElement(React4.Fragment, null, scriptTag, /* @__PURE__ */ React4.createElement(React4.Suspense, null, /* @__PURE__ */ React4.createElement(\n StreamTransfer,\n {\n context,\n identifier: identifier + 1,\n reader,\n textDecoder,\n nonce\n }\n )));\n }\n}\nfunction getTurboStreamSingleFetchDataStrategy(getRouter, manifest, routeModules, ssr, basename) {\n let dataStrategy = getSingleFetchDataStrategyImpl(\n getRouter,\n (match) => {\n let manifestRoute = manifest.routes[match.route.id];\n invariant2(manifestRoute, \"Route not found in manifest\");\n let routeModule = routeModules[match.route.id];\n return {\n hasLoader: manifestRoute.hasLoader,\n hasClientLoader: manifestRoute.hasClientLoader,\n hasShouldRevalidate: Boolean(routeModule?.shouldRevalidate)\n };\n },\n fetchAndDecodeViaTurboStream,\n ssr,\n basename\n );\n return async (args) => args.unstable_runClientMiddleware(dataStrategy);\n}\nfunction getSingleFetchDataStrategyImpl(getRouter, getRouteInfo, fetchAndDecode, ssr, basename, shouldAllowOptOut = () => true) {\n return async (args) => {\n let { request, matches, fetcherKey } = args;\n let router = getRouter();\n if (request.method !== \"GET\") {\n return singleFetchActionStrategy(args, fetchAndDecode, basename);\n }\n let foundRevalidatingServerLoader = matches.some((m) => {\n let { hasLoader, hasClientLoader } = getRouteInfo(m);\n return m.unstable_shouldCallHandler() && hasLoader && !hasClientLoader;\n });\n if (!ssr && !foundRevalidatingServerLoader) {\n return nonSsrStrategy(args, getRouteInfo, fetchAndDecode, basename);\n }\n if (fetcherKey) {\n return singleFetchLoaderFetcherStrategy(args, fetchAndDecode, basename);\n }\n return singleFetchLoaderNavigationStrategy(\n args,\n router,\n getRouteInfo,\n fetchAndDecode,\n ssr,\n basename,\n shouldAllowOptOut\n );\n };\n}\nasync function singleFetchActionStrategy(args, fetchAndDecode, basename) {\n let actionMatch = args.matches.find((m) => m.unstable_shouldCallHandler());\n invariant2(actionMatch, \"No action match found\");\n let actionStatus = void 0;\n let result = await actionMatch.resolve(async (handler) => {\n let result2 = await handler(async () => {\n let { data: data2, status } = await fetchAndDecode(args, basename, [\n actionMatch.route.id\n ]);\n actionStatus = status;\n return unwrapSingleFetchResult(data2, actionMatch.route.id);\n });\n return result2;\n });\n if (isResponse(result.result) || isRouteErrorResponse(result.result) || isDataWithResponseInit(result.result)) {\n return { [actionMatch.route.id]: result };\n }\n return {\n [actionMatch.route.id]: {\n type: result.type,\n result: data(result.result, actionStatus)\n }\n };\n}\nasync function nonSsrStrategy(args, getRouteInfo, fetchAndDecode, basename) {\n let matchesToLoad = args.matches.filter(\n (m) => m.unstable_shouldCallHandler()\n );\n let results = {};\n await Promise.all(\n matchesToLoad.map(\n (m) => m.resolve(async (handler) => {\n try {\n let { hasClientLoader } = getRouteInfo(m);\n let routeId = m.route.id;\n let result = hasClientLoader ? await handler(async () => {\n let { data: data2 } = await fetchAndDecode(args, basename, [routeId]);\n return unwrapSingleFetchResult(data2, routeId);\n }) : await handler();\n results[m.route.id] = { type: \"data\", result };\n } catch (e) {\n results[m.route.id] = { type: \"error\", result: e };\n }\n })\n )\n );\n return results;\n}\nasync function singleFetchLoaderNavigationStrategy(args, router, getRouteInfo, fetchAndDecode, ssr, basename, shouldAllowOptOut = () => true) {\n let routesParams = /* @__PURE__ */ new Set();\n let foundOptOutRoute = false;\n let routeDfds = args.matches.map(() => createDeferred2());\n let singleFetchDfd = createDeferred2();\n let results = {};\n let resolvePromise = Promise.all(\n args.matches.map(\n async (m, i) => m.resolve(async (handler) => {\n routeDfds[i].resolve();\n let routeId = m.route.id;\n let { hasLoader, hasClientLoader, hasShouldRevalidate } = getRouteInfo(m);\n let defaultShouldRevalidate = !m.unstable_shouldRevalidateArgs || m.unstable_shouldRevalidateArgs.actionStatus == null || m.unstable_shouldRevalidateArgs.actionStatus < 400;\n let shouldCall = m.unstable_shouldCallHandler(defaultShouldRevalidate);\n if (!shouldCall) {\n foundOptOutRoute || (foundOptOutRoute = m.unstable_shouldRevalidateArgs != null && // This is a revalidation,\n hasLoader && // for a route with a server loader,\n hasShouldRevalidate === true);\n return;\n }\n if (shouldAllowOptOut(m) && hasClientLoader) {\n if (hasLoader) {\n foundOptOutRoute = true;\n }\n try {\n let result = await handler(async () => {\n let { data: data2 } = await fetchAndDecode(args, basename, [routeId]);\n return unwrapSingleFetchResult(data2, routeId);\n });\n results[routeId] = { type: \"data\", result };\n } catch (e) {\n results[routeId] = { type: \"error\", result: e };\n }\n return;\n }\n if (hasLoader) {\n routesParams.add(routeId);\n }\n try {\n let result = await handler(async () => {\n let data2 = await singleFetchDfd.promise;\n return unwrapSingleFetchResult(data2, routeId);\n });\n results[routeId] = { type: \"data\", result };\n } catch (e) {\n results[routeId] = { type: \"error\", result: e };\n }\n })\n )\n );\n await Promise.all(routeDfds.map((d) => d.promise));\n let isInitialLoad = !router.state.initialized && router.state.navigation.state === \"idle\";\n if ((isInitialLoad || routesParams.size === 0) && !window.__reactRouterHdrActive) {\n singleFetchDfd.resolve({ routes: {} });\n } else {\n let targetRoutes = ssr && foundOptOutRoute && routesParams.size > 0 ? [...routesParams.keys()] : void 0;\n try {\n let data2 = await fetchAndDecode(args, basename, targetRoutes);\n singleFetchDfd.resolve(data2.data);\n } catch (e) {\n singleFetchDfd.reject(e);\n }\n }\n await resolvePromise;\n await bubbleMiddlewareErrors(\n singleFetchDfd.promise,\n args.matches,\n routesParams,\n results\n );\n return results;\n}\nasync function bubbleMiddlewareErrors(singleFetchPromise, matches, routesParams, results) {\n try {\n let middlewareError;\n let fetchedData = await singleFetchPromise;\n if (\"routes\" in fetchedData) {\n for (let match of matches) {\n if (match.route.id in fetchedData.routes) {\n let routeResult = fetchedData.routes[match.route.id];\n if (\"error\" in routeResult) {\n middlewareError = routeResult.error;\n if (results[match.route.id]?.result == null) {\n results[match.route.id] = {\n type: \"error\",\n result: middlewareError\n };\n }\n break;\n }\n }\n }\n }\n if (middlewareError !== void 0) {\n Array.from(routesParams.values()).forEach((routeId) => {\n if (results[routeId].result instanceof SingleFetchNoResultError) {\n results[routeId].result = middlewareError;\n }\n });\n }\n } catch (e) {\n }\n}\nasync function singleFetchLoaderFetcherStrategy(args, fetchAndDecode, basename) {\n let fetcherMatch = args.matches.find((m) => m.unstable_shouldCallHandler());\n invariant2(fetcherMatch, \"No fetcher match found\");\n let routeId = fetcherMatch.route.id;\n let result = await fetcherMatch.resolve(\n async (handler) => handler(async () => {\n let { data: data2 } = await fetchAndDecode(args, basename, [routeId]);\n return unwrapSingleFetchResult(data2, routeId);\n })\n );\n return { [fetcherMatch.route.id]: result };\n}\nfunction stripIndexParam(url) {\n let indexValues = url.searchParams.getAll(\"index\");\n url.searchParams.delete(\"index\");\n let indexValuesToKeep = [];\n for (let indexValue of indexValues) {\n if (indexValue) {\n indexValuesToKeep.push(indexValue);\n }\n }\n for (let toKeep of indexValuesToKeep) {\n url.searchParams.append(\"index\", toKeep);\n }\n return url;\n}\nfunction singleFetchUrl(reqUrl, basename, extension) {\n let url = typeof reqUrl === \"string\" ? new URL(\n reqUrl,\n // This can be called during the SSR flow via PrefetchPageLinksImpl so\n // don't assume window is available\n typeof window === \"undefined\" ? \"server://singlefetch/\" : window.location.origin\n ) : reqUrl;\n if (url.pathname === \"/\") {\n url.pathname = `_root.${extension}`;\n } else if (basename && stripBasename(url.pathname, basename) === \"/\") {\n url.pathname = `${basename.replace(/\\/$/, \"\")}/_root.${extension}`;\n } else {\n url.pathname = `${url.pathname.replace(/\\/$/, \"\")}.${extension}`;\n }\n return url;\n}\nasync function fetchAndDecodeViaTurboStream(args, basename, targetRoutes) {\n let { request } = args;\n let url = singleFetchUrl(request.url, basename, \"data\");\n if (request.method === \"GET\") {\n url = stripIndexParam(url);\n if (targetRoutes) {\n url.searchParams.set(\"_routes\", targetRoutes.join(\",\"));\n }\n }\n let res = await fetch(url, await createRequestInit(request));\n if (res.status === 404 && !res.headers.has(\"X-Remix-Response\")) {\n throw new ErrorResponseImpl(404, \"Not Found\", true);\n }\n if (res.status === 204 && res.headers.has(\"X-Remix-Redirect\")) {\n return {\n status: SINGLE_FETCH_REDIRECT_STATUS,\n data: {\n redirect: {\n redirect: res.headers.get(\"X-Remix-Redirect\"),\n status: Number(res.headers.get(\"X-Remix-Status\") || \"302\"),\n revalidate: res.headers.get(\"X-Remix-Revalidate\") === \"true\",\n reload: res.headers.get(\"X-Remix-Reload-Document\") === \"true\",\n replace: res.headers.get(\"X-Remix-Replace\") === \"true\"\n }\n }\n };\n }\n if (NO_BODY_STATUS_CODES.has(res.status)) {\n let routes = {};\n if (targetRoutes && request.method !== \"GET\") {\n routes[targetRoutes[0]] = { data: void 0 };\n }\n return {\n status: res.status,\n data: { routes }\n };\n }\n invariant2(res.body, \"No response body to decode\");\n try {\n let decoded = await decodeViaTurboStream(res.body, window);\n let data2;\n if (request.method === \"GET\") {\n let typed = decoded.value;\n if (SingleFetchRedirectSymbol in typed) {\n data2 = { redirect: typed[SingleFetchRedirectSymbol] };\n } else {\n data2 = { routes: typed };\n }\n } else {\n let typed = decoded.value;\n let routeId = targetRoutes?.[0];\n invariant2(routeId, \"No routeId found for single fetch call decoding\");\n if (\"redirect\" in typed) {\n data2 = { redirect: typed };\n } else {\n data2 = { routes: { [routeId]: typed } };\n }\n }\n return { status: res.status, data: data2 };\n } catch (e) {\n throw new Error(\"Unable to decode turbo-stream response\");\n }\n}\nfunction decodeViaTurboStream(body, global) {\n return decode(body, {\n plugins: [\n (type, ...rest) => {\n if (type === \"SanitizedError\") {\n let [name, message, stack] = rest;\n let Constructor = Error;\n if (name && name in global && typeof global[name] === \"function\") {\n Constructor = global[name];\n }\n let error = new Constructor(message);\n error.stack = stack;\n return { value: error };\n }\n if (type === \"ErrorResponse\") {\n let [data2, status, statusText] = rest;\n return {\n value: new ErrorResponseImpl(status, statusText, data2)\n };\n }\n if (type === \"SingleFetchRedirect\") {\n return { value: { [SingleFetchRedirectSymbol]: rest[0] } };\n }\n if (type === \"SingleFetchClassInstance\") {\n return { value: rest[0] };\n }\n if (type === \"SingleFetchFallback\") {\n return { value: void 0 };\n }\n }\n ]\n });\n}\nfunction unwrapSingleFetchResult(result, routeId) {\n if (\"redirect\" in result) {\n let {\n redirect: location,\n revalidate,\n reload,\n replace: replace2,\n status\n } = result.redirect;\n throw redirect(location, {\n status,\n headers: {\n // Three R's of redirecting (lol Veep)\n ...revalidate ? { \"X-Remix-Revalidate\": \"yes\" } : null,\n ...reload ? { \"X-Remix-Reload-Document\": \"yes\" } : null,\n ...replace2 ? { \"X-Remix-Replace\": \"yes\" } : null\n }\n });\n }\n let routeResult = result.routes[routeId];\n if (routeResult == null) {\n throw new SingleFetchNoResultError(\n `No result found for routeId \"${routeId}\"`\n );\n } else if (\"error\" in routeResult) {\n throw routeResult.error;\n } else if (\"data\" in routeResult) {\n return routeResult.data;\n } else {\n throw new Error(`Invalid response found for routeId \"${routeId}\"`);\n }\n}\nfunction createDeferred2() {\n let resolve;\n let reject;\n let promise = new Promise((res, rej) => {\n resolve = async (val) => {\n res(val);\n try {\n await promise;\n } catch (e) {\n }\n };\n reject = async (error) => {\n rej(error);\n try {\n await promise;\n } catch (e) {\n }\n };\n });\n return {\n promise,\n //@ts-ignore\n resolve,\n //@ts-ignore\n reject\n };\n}\n\n// lib/dom/ssr/errorBoundaries.tsx\nimport * as React9 from \"react\";\n\n// lib/dom/ssr/components.tsx\nimport * as React8 from \"react\";\n\n// lib/dom/ssr/routeModules.ts\nasync function loadRouteModule(route, routeModulesCache) {\n if (route.id in routeModulesCache) {\n return routeModulesCache[route.id];\n }\n try {\n let routeModule = await import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.module\n );\n routeModulesCache[route.id] = routeModule;\n return routeModule;\n } catch (error) {\n console.error(\n `Error loading route module \\`${route.module}\\`, reloading page...`\n );\n console.error(error);\n if (window.__reactRouterContext && window.__reactRouterContext.isSpaMode && // @ts-expect-error\n import.meta.hot) {\n throw error;\n }\n window.location.reload();\n return new Promise(() => {\n });\n }\n}\n\n// lib/dom/ssr/links.ts\nfunction getKeyedLinksForMatches(matches, routeModules, manifest) {\n let descriptors = matches.map((match) => {\n let module = routeModules[match.route.id];\n let route = manifest.routes[match.route.id];\n return [\n route && route.css ? route.css.map((href) => ({ rel: \"stylesheet\", href })) : [],\n module?.links?.() || []\n ];\n }).flat(2);\n let preloads = getModuleLinkHrefs(matches, manifest);\n return dedupeLinkDescriptors(descriptors, preloads);\n}\nfunction getRouteCssDescriptors(route) {\n if (!route.css) return [];\n return route.css.map((href) => ({ rel: \"stylesheet\", href }));\n}\nasync function prefetchRouteCss(route) {\n if (!route.css) return;\n let descriptors = getRouteCssDescriptors(route);\n await Promise.all(descriptors.map(prefetchStyleLink));\n}\nasync function prefetchStyleLinks(route, routeModule) {\n if (!route.css && !routeModule.links || !isPreloadSupported()) return;\n let descriptors = [];\n if (route.css) {\n descriptors.push(...getRouteCssDescriptors(route));\n }\n if (routeModule.links) {\n descriptors.push(...routeModule.links());\n }\n if (descriptors.length === 0) return;\n let styleLinks = [];\n for (let descriptor of descriptors) {\n if (!isPageLinkDescriptor(descriptor) && descriptor.rel === \"stylesheet\") {\n styleLinks.push({\n ...descriptor,\n rel: \"preload\",\n as: \"style\"\n });\n }\n }\n await Promise.all(styleLinks.map(prefetchStyleLink));\n}\nasync function prefetchStyleLink(descriptor) {\n return new Promise((resolve) => {\n if (descriptor.media && !window.matchMedia(descriptor.media).matches || document.querySelector(\n `link[rel=\"stylesheet\"][href=\"${descriptor.href}\"]`\n )) {\n return resolve();\n }\n let link = document.createElement(\"link\");\n Object.assign(link, descriptor);\n function removeLink() {\n if (document.head.contains(link)) {\n document.head.removeChild(link);\n }\n }\n link.onload = () => {\n removeLink();\n resolve();\n };\n link.onerror = () => {\n removeLink();\n resolve();\n };\n document.head.appendChild(link);\n });\n}\nfunction isPageLinkDescriptor(object) {\n return object != null && typeof object.page === \"string\";\n}\nfunction isHtmlLinkDescriptor(object) {\n if (object == null) {\n return false;\n }\n if (object.href == null) {\n return object.rel === \"preload\" && typeof object.imageSrcSet === \"string\" && typeof object.imageSizes === \"string\";\n }\n return typeof object.rel === \"string\" && typeof object.href === \"string\";\n}\nasync function getKeyedPrefetchLinks(matches, manifest, routeModules) {\n let links = await Promise.all(\n matches.map(async (match) => {\n let route = manifest.routes[match.route.id];\n if (route) {\n let mod = await loadRouteModule(route, routeModules);\n return mod.links ? mod.links() : [];\n }\n return [];\n })\n );\n return dedupeLinkDescriptors(\n links.flat(1).filter(isHtmlLinkDescriptor).filter((link) => link.rel === \"stylesheet\" || link.rel === \"preload\").map(\n (link) => link.rel === \"stylesheet\" ? { ...link, rel: \"prefetch\", as: \"style\" } : { ...link, rel: \"prefetch\" }\n )\n );\n}\nfunction getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, location, mode) {\n let isNew = (match, index) => {\n if (!currentMatches[index]) return true;\n return match.route.id !== currentMatches[index].route.id;\n };\n let matchPathChanged = (match, index) => {\n return (\n // param change, /users/123 -> /users/456\n currentMatches[index].pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentMatches[index].route.path?.endsWith(\"*\") && currentMatches[index].params[\"*\"] !== match.params[\"*\"]\n );\n };\n if (mode === \"assets\") {\n return nextMatches.filter(\n (match, index) => isNew(match, index) || matchPathChanged(match, index)\n );\n }\n if (mode === \"data\") {\n return nextMatches.filter((match, index) => {\n let manifestRoute = manifest.routes[match.route.id];\n if (!manifestRoute || !manifestRoute.hasLoader) {\n return false;\n }\n if (isNew(match, index) || matchPathChanged(match, index)) {\n return true;\n }\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl: new URL(\n location.pathname + location.search + location.hash,\n window.origin\n ),\n currentParams: currentMatches[0]?.params || {},\n nextUrl: new URL(page, window.origin),\n nextParams: match.params,\n defaultShouldRevalidate: true\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return true;\n });\n }\n return [];\n}\nfunction getModuleLinkHrefs(matches, manifest, { includeHydrateFallback } = {}) {\n return dedupeHrefs(\n matches.map((match) => {\n let route = manifest.routes[match.route.id];\n if (!route) return [];\n let hrefs = [route.module];\n if (route.clientActionModule) {\n hrefs = hrefs.concat(route.clientActionModule);\n }\n if (route.clientLoaderModule) {\n hrefs = hrefs.concat(route.clientLoaderModule);\n }\n if (includeHydrateFallback && route.hydrateFallbackModule) {\n hrefs = hrefs.concat(route.hydrateFallbackModule);\n }\n if (route.imports) {\n hrefs = hrefs.concat(route.imports);\n }\n return hrefs;\n }).flat(1)\n );\n}\nfunction dedupeHrefs(hrefs) {\n return [...new Set(hrefs)];\n}\nfunction sortKeys(obj) {\n let sorted = {};\n let keys = Object.keys(obj).sort();\n for (let key of keys) {\n sorted[key] = obj[key];\n }\n return sorted;\n}\nfunction dedupeLinkDescriptors(descriptors, preloads) {\n let set = /* @__PURE__ */ new Set();\n let preloadsSet = new Set(preloads);\n return descriptors.reduce((deduped, descriptor) => {\n let alreadyModulePreload = preloads && !isPageLinkDescriptor(descriptor) && descriptor.as === \"script\" && descriptor.href && preloadsSet.has(descriptor.href);\n if (alreadyModulePreload) {\n return deduped;\n }\n let key = JSON.stringify(sortKeys(descriptor));\n if (!set.has(key)) {\n set.add(key);\n deduped.push({ key, link: descriptor });\n }\n return deduped;\n }, []);\n}\nvar _isPreloadSupported;\nfunction isPreloadSupported() {\n if (_isPreloadSupported !== void 0) {\n return _isPreloadSupported;\n }\n let el = document.createElement(\"link\");\n _isPreloadSupported = el.relList.supports(\"preload\");\n el = null;\n return _isPreloadSupported;\n}\n\n// lib/dom/ssr/fog-of-war.ts\nimport * as React7 from \"react\";\n\n// lib/dom/ssr/routes.tsx\nimport * as React6 from \"react\";\n\n// lib/dom/ssr/fallback.tsx\nimport * as React5 from \"react\";\nfunction RemixRootDefaultHydrateFallback() {\n return /* @__PURE__ */ React5.createElement(BoundaryShell, { title: \"Loading...\", renderScripts: true }, ENABLE_DEV_WARNINGS ? /* @__PURE__ */ React5.createElement(\n \"script\",\n {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this \" +\n \"when your app is loading JS modules and/or running \\`clientLoader\\` \" +\n \"functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback \" +\n \"for more information.\"\n );\n `\n }\n }\n ) : null);\n}\n\n// lib/dom/ssr/routes.tsx\nfunction groupRoutesByParentId(manifest) {\n let routes = {};\n Object.values(manifest).forEach((route) => {\n if (route) {\n let parentId = route.parentId || \"\";\n if (!routes[parentId]) {\n routes[parentId] = [];\n }\n routes[parentId].push(route);\n }\n });\n return routes;\n}\nfunction getRouteComponents(route, routeModule, isSpaMode) {\n let Component4 = getRouteModuleComponent(routeModule);\n let HydrateFallback = routeModule.HydrateFallback && (!isSpaMode || route.id === \"root\") ? routeModule.HydrateFallback : route.id === \"root\" ? RemixRootDefaultHydrateFallback : void 0;\n let ErrorBoundary = routeModule.ErrorBoundary ? routeModule.ErrorBoundary : route.id === \"root\" ? () => /* @__PURE__ */ React6.createElement(RemixRootDefaultErrorBoundary, { error: useRouteError() }) : void 0;\n if (route.id === \"root\" && routeModule.Layout) {\n return {\n ...Component4 ? {\n element: /* @__PURE__ */ React6.createElement(routeModule.Layout, null, /* @__PURE__ */ React6.createElement(Component4, null))\n } : { Component: Component4 },\n ...ErrorBoundary ? {\n errorElement: /* @__PURE__ */ React6.createElement(routeModule.Layout, null, /* @__PURE__ */ React6.createElement(ErrorBoundary, null))\n } : { ErrorBoundary },\n ...HydrateFallback ? {\n hydrateFallbackElement: /* @__PURE__ */ React6.createElement(routeModule.Layout, null, /* @__PURE__ */ React6.createElement(HydrateFallback, null))\n } : { HydrateFallback }\n };\n }\n return { Component: Component4, ErrorBoundary, HydrateFallback };\n}\nfunction createServerRoutes(manifest, routeModules, future, isSpaMode, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest), spaModeLazyPromise = Promise.resolve({ Component: () => null })) {\n return (routesByParentId[parentId] || []).map((route) => {\n let routeModule = routeModules[route.id];\n invariant2(\n routeModule,\n \"No `routeModule` available to create server routes\"\n );\n let dataRoute = {\n ...getRouteComponents(route, routeModule, isSpaMode),\n caseSensitive: route.caseSensitive,\n id: route.id,\n index: route.index,\n path: route.path,\n handle: routeModule.handle,\n // For SPA Mode, all routes are lazy except root. However we tell the\n // router root is also lazy here too since we don't need a full\n // implementation - we just need a `lazy` prop to tell the RR rendering\n // where to stop which is always at the root route in SPA mode\n lazy: isSpaMode ? () => spaModeLazyPromise : void 0,\n // For partial hydration rendering, we need to indicate when the route\n // has a loader/clientLoader, but it won't ever be called during the static\n // render, so just give it a no-op function so we can render down to the\n // proper fallback\n loader: route.hasLoader || route.hasClientLoader ? () => null : void 0\n // We don't need middleware/action/shouldRevalidate on these routes since\n // they're for a static render\n };\n let children = createServerRoutes(\n manifest,\n routeModules,\n future,\n isSpaMode,\n route.id,\n routesByParentId,\n spaModeLazyPromise\n );\n if (children.length > 0) dataRoute.children = children;\n return dataRoute;\n });\n}\nfunction createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, manifest, routeModulesCache, initialState, ssr, isSpaMode) {\n return createClientRoutes(\n manifest,\n routeModulesCache,\n initialState,\n ssr,\n isSpaMode,\n \"\",\n groupRoutesByParentId(manifest),\n needsRevalidation\n );\n}\nfunction preventInvalidServerHandlerCall(type, route) {\n if (type === \"loader\" && !route.hasLoader || type === \"action\" && !route.hasAction) {\n let fn = type === \"action\" ? \"serverAction()\" : \"serverLoader()\";\n let msg = `You are trying to call ${fn} on a route that does not have a server ${type} (routeId: \"${route.id}\")`;\n console.error(msg);\n throw new ErrorResponseImpl(400, \"Bad Request\", new Error(msg), true);\n }\n}\nfunction noActionDefinedError(type, routeId) {\n let article = type === \"clientAction\" ? \"a\" : \"an\";\n let msg = `Route \"${routeId}\" does not have ${article} ${type}, but you are trying to submit to it. To fix this, please add ${article} \\`${type}\\` function to the route`;\n console.error(msg);\n throw new ErrorResponseImpl(405, \"Method Not Allowed\", new Error(msg), true);\n}\nfunction createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSpaMode, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest), needsRevalidation) {\n return (routesByParentId[parentId] || []).map((route) => {\n let routeModule = routeModulesCache[route.id];\n function fetchServerHandler(singleFetch) {\n invariant2(\n typeof singleFetch === \"function\",\n \"No single fetch function available for route handler\"\n );\n return singleFetch();\n }\n function fetchServerLoader(singleFetch) {\n if (!route.hasLoader) return Promise.resolve(null);\n return fetchServerHandler(singleFetch);\n }\n function fetchServerAction(singleFetch) {\n if (!route.hasAction) {\n throw noActionDefinedError(\"action\", route.id);\n }\n return fetchServerHandler(singleFetch);\n }\n function prefetchModule(modulePath) {\n import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n modulePath\n );\n }\n function prefetchRouteModuleChunks(route2) {\n if (route2.clientActionModule) {\n prefetchModule(route2.clientActionModule);\n }\n if (route2.clientLoaderModule) {\n prefetchModule(route2.clientLoaderModule);\n }\n }\n async function prefetchStylesAndCallHandler(handler) {\n let cachedModule = routeModulesCache[route.id];\n let linkPrefetchPromise = cachedModule ? prefetchStyleLinks(route, cachedModule) : Promise.resolve();\n try {\n return handler();\n } finally {\n await linkPrefetchPromise;\n }\n }\n let dataRoute = {\n id: route.id,\n index: route.index,\n path: route.path\n };\n if (routeModule) {\n Object.assign(dataRoute, {\n ...dataRoute,\n ...getRouteComponents(route, routeModule, isSpaMode),\n unstable_middleware: routeModule.unstable_clientMiddleware,\n handle: routeModule.handle,\n shouldRevalidate: getShouldRevalidateFunction(\n dataRoute.path,\n routeModule,\n route,\n ssr,\n needsRevalidation\n )\n });\n let hasInitialData = initialState && initialState.loaderData && route.id in initialState.loaderData;\n let initialData = hasInitialData ? initialState?.loaderData?.[route.id] : void 0;\n let hasInitialError = initialState && initialState.errors && route.id in initialState.errors;\n let initialError = hasInitialError ? initialState?.errors?.[route.id] : void 0;\n let isHydrationRequest = needsRevalidation == null && (routeModule.clientLoader?.hydrate === true || !route.hasLoader);\n dataRoute.loader = async ({ request, params, context }, singleFetch) => {\n try {\n let result = await prefetchStylesAndCallHandler(async () => {\n invariant2(\n routeModule,\n \"No `routeModule` available for critical-route loader\"\n );\n if (!routeModule.clientLoader) {\n return fetchServerLoader(singleFetch);\n }\n return routeModule.clientLoader({\n request,\n params,\n context,\n async serverLoader() {\n preventInvalidServerHandlerCall(\"loader\", route);\n if (isHydrationRequest) {\n if (hasInitialData) {\n return initialData;\n }\n if (hasInitialError) {\n throw initialError;\n }\n }\n return fetchServerLoader(singleFetch);\n }\n });\n });\n return result;\n } finally {\n isHydrationRequest = false;\n }\n };\n dataRoute.loader.hydrate = shouldHydrateRouteLoader(\n route.id,\n routeModule.clientLoader,\n route.hasLoader,\n isSpaMode\n );\n dataRoute.action = ({ request, params, context }, singleFetch) => {\n return prefetchStylesAndCallHandler(async () => {\n invariant2(\n routeModule,\n \"No `routeModule` available for critical-route action\"\n );\n if (!routeModule.clientAction) {\n if (isSpaMode) {\n throw noActionDefinedError(\"clientAction\", route.id);\n }\n return fetchServerAction(singleFetch);\n }\n return routeModule.clientAction({\n request,\n params,\n context,\n async serverAction() {\n preventInvalidServerHandlerCall(\"action\", route);\n return fetchServerAction(singleFetch);\n }\n });\n });\n };\n } else {\n if (!route.hasClientLoader) {\n dataRoute.loader = (_, singleFetch) => prefetchStylesAndCallHandler(() => {\n return fetchServerLoader(singleFetch);\n });\n }\n if (!route.hasClientAction) {\n dataRoute.action = (_, singleFetch) => prefetchStylesAndCallHandler(() => {\n if (isSpaMode) {\n throw noActionDefinedError(\"clientAction\", route.id);\n }\n return fetchServerAction(singleFetch);\n });\n }\n let lazyRoutePromise;\n async function getLazyRoute() {\n if (lazyRoutePromise) {\n return await lazyRoutePromise;\n }\n lazyRoutePromise = (async () => {\n if (route.clientLoaderModule || route.clientActionModule) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n }\n let routeModulePromise = loadRouteModuleWithBlockingLinks(\n route,\n routeModulesCache\n );\n prefetchRouteModuleChunks(route);\n return await routeModulePromise;\n })();\n return await lazyRoutePromise;\n }\n dataRoute.lazy = {\n loader: route.hasClientLoader ? async () => {\n let { clientLoader } = route.clientLoaderModule ? await import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.clientLoaderModule\n ) : await getLazyRoute();\n invariant2(clientLoader, \"No `clientLoader` export found\");\n return (args, singleFetch) => clientLoader({\n ...args,\n async serverLoader() {\n preventInvalidServerHandlerCall(\"loader\", route);\n return fetchServerLoader(singleFetch);\n }\n });\n } : void 0,\n action: route.hasClientAction ? async () => {\n let clientActionPromise = route.clientActionModule ? import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.clientActionModule\n ) : getLazyRoute();\n prefetchRouteModuleChunks(route);\n let { clientAction } = await clientActionPromise;\n invariant2(clientAction, \"No `clientAction` export found\");\n return (args, singleFetch) => clientAction({\n ...args,\n async serverAction() {\n preventInvalidServerHandlerCall(\"action\", route);\n return fetchServerAction(singleFetch);\n }\n });\n } : void 0,\n unstable_middleware: route.hasClientMiddleware ? async () => {\n let { unstable_clientMiddleware } = route.clientMiddlewareModule ? await import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.clientMiddlewareModule\n ) : await getLazyRoute();\n invariant2(\n unstable_clientMiddleware,\n \"No `unstable_clientMiddleware` export found\"\n );\n return unstable_clientMiddleware;\n } : void 0,\n shouldRevalidate: async () => {\n let lazyRoute = await getLazyRoute();\n return getShouldRevalidateFunction(\n dataRoute.path,\n lazyRoute,\n route,\n ssr,\n needsRevalidation\n );\n },\n handle: async () => (await getLazyRoute()).handle,\n // No need to wrap these in layout since the root route is never\n // loaded via route.lazy()\n Component: async () => (await getLazyRoute()).Component,\n ErrorBoundary: route.hasErrorBoundary ? async () => (await getLazyRoute()).ErrorBoundary : void 0\n };\n }\n let children = createClientRoutes(\n manifest,\n routeModulesCache,\n initialState,\n ssr,\n isSpaMode,\n route.id,\n routesByParentId,\n needsRevalidation\n );\n if (children.length > 0) dataRoute.children = children;\n return dataRoute;\n });\n}\nfunction getShouldRevalidateFunction(path, route, manifestRoute, ssr, needsRevalidation) {\n if (needsRevalidation) {\n return wrapShouldRevalidateForHdr(\n manifestRoute.id,\n route.shouldRevalidate,\n needsRevalidation\n );\n }\n if (!ssr && manifestRoute.hasLoader && !manifestRoute.hasClientLoader) {\n let myParams = path ? compilePath(path)[1].map((p) => p.paramName) : [];\n const didParamsChange = (opts) => myParams.some((p) => opts.currentParams[p] !== opts.nextParams[p]);\n if (route.shouldRevalidate) {\n let fn = route.shouldRevalidate;\n return (opts) => fn({\n ...opts,\n defaultShouldRevalidate: didParamsChange(opts)\n });\n } else {\n return (opts) => didParamsChange(opts);\n }\n }\n if (ssr && route.shouldRevalidate) {\n let fn = route.shouldRevalidate;\n return (opts) => fn({ ...opts, defaultShouldRevalidate: true });\n }\n return route.shouldRevalidate;\n}\nfunction wrapShouldRevalidateForHdr(routeId, routeShouldRevalidate, needsRevalidation) {\n let handledRevalidation = false;\n return (arg) => {\n if (!handledRevalidation) {\n handledRevalidation = true;\n return needsRevalidation.has(routeId);\n }\n return routeShouldRevalidate ? routeShouldRevalidate(arg) : arg.defaultShouldRevalidate;\n };\n}\nasync function loadRouteModuleWithBlockingLinks(route, routeModules) {\n let routeModulePromise = loadRouteModule(route, routeModules);\n let prefetchRouteCssPromise = prefetchRouteCss(route);\n let routeModule = await routeModulePromise;\n await Promise.all([\n prefetchRouteCssPromise,\n prefetchStyleLinks(route, routeModule)\n ]);\n return {\n Component: getRouteModuleComponent(routeModule),\n ErrorBoundary: routeModule.ErrorBoundary,\n unstable_clientMiddleware: routeModule.unstable_clientMiddleware,\n clientAction: routeModule.clientAction,\n clientLoader: routeModule.clientLoader,\n handle: routeModule.handle,\n links: routeModule.links,\n meta: routeModule.meta,\n shouldRevalidate: routeModule.shouldRevalidate\n };\n}\nfunction getRouteModuleComponent(routeModule) {\n if (routeModule.default == null) return void 0;\n let isEmptyObject = typeof routeModule.default === \"object\" && Object.keys(routeModule.default).length === 0;\n if (!isEmptyObject) {\n return routeModule.default;\n }\n}\nfunction shouldHydrateRouteLoader(routeId, clientLoader, hasLoader, isSpaMode) {\n return isSpaMode && routeId !== \"root\" || clientLoader != null && (clientLoader.hydrate === true || hasLoader !== true);\n}\n\n// lib/dom/ssr/fog-of-war.ts\nvar nextPaths = /* @__PURE__ */ new Set();\nvar discoveredPathsMaxSize = 1e3;\nvar discoveredPaths = /* @__PURE__ */ new Set();\nvar URL_LIMIT = 7680;\nfunction isFogOfWarEnabled(routeDiscovery, ssr) {\n return routeDiscovery.mode === \"lazy\" && ssr === true;\n}\nfunction getPartialManifest({ sri, ...manifest }, router) {\n let routeIds = new Set(router.state.matches.map((m) => m.route.id));\n let segments = router.state.location.pathname.split(\"/\").filter(Boolean);\n let paths = [\"/\"];\n segments.pop();\n while (segments.length > 0) {\n paths.push(`/${segments.join(\"/\")}`);\n segments.pop();\n }\n paths.forEach((path) => {\n let matches = matchRoutes(router.routes, path, router.basename);\n if (matches) {\n matches.forEach((m) => routeIds.add(m.route.id));\n }\n });\n let initialRoutes = [...routeIds].reduce(\n (acc, id) => Object.assign(acc, { [id]: manifest.routes[id] }),\n {}\n );\n return {\n ...manifest,\n routes: initialRoutes,\n sri: sri ? true : void 0\n };\n}\nfunction getPatchRoutesOnNavigationFunction(manifest, routeModules, ssr, routeDiscovery, isSpaMode, basename) {\n if (!isFogOfWarEnabled(routeDiscovery, ssr)) {\n return void 0;\n }\n return async ({ path, patch, signal, fetcherKey }) => {\n if (discoveredPaths.has(path)) {\n return;\n }\n await fetchAndApplyManifestPatches(\n [path],\n fetcherKey ? window.location.href : path,\n manifest,\n routeModules,\n ssr,\n isSpaMode,\n basename,\n routeDiscovery.manifestPath,\n patch,\n signal\n );\n };\n}\nfunction useFogOFWarDiscovery(router, manifest, routeModules, ssr, routeDiscovery, isSpaMode) {\n React7.useEffect(() => {\n if (!isFogOfWarEnabled(routeDiscovery, ssr) || // @ts-expect-error - TS doesn't know about this yet\n window.navigator?.connection?.saveData === true) {\n return;\n }\n function registerElement(el) {\n let path = el.tagName === \"FORM\" ? el.getAttribute(\"action\") : el.getAttribute(\"href\");\n if (!path) {\n return;\n }\n let pathname = el.tagName === \"A\" ? el.pathname : new URL(path, window.location.origin).pathname;\n if (!discoveredPaths.has(pathname)) {\n nextPaths.add(pathname);\n }\n }\n async function fetchPatches() {\n document.querySelectorAll(\"a[data-discover], form[data-discover]\").forEach(registerElement);\n let lazyPaths = Array.from(nextPaths.keys()).filter((path) => {\n if (discoveredPaths.has(path)) {\n nextPaths.delete(path);\n return false;\n }\n return true;\n });\n if (lazyPaths.length === 0) {\n return;\n }\n try {\n await fetchAndApplyManifestPatches(\n lazyPaths,\n null,\n manifest,\n routeModules,\n ssr,\n isSpaMode,\n router.basename,\n routeDiscovery.manifestPath,\n router.patchRoutes\n );\n } catch (e) {\n console.error(\"Failed to fetch manifest patches\", e);\n }\n }\n let debouncedFetchPatches = debounce(fetchPatches, 100);\n fetchPatches();\n let observer = new MutationObserver(() => debouncedFetchPatches());\n observer.observe(document.documentElement, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"data-discover\", \"href\", \"action\"]\n });\n return () => observer.disconnect();\n }, [ssr, isSpaMode, manifest, routeModules, router, routeDiscovery]);\n}\nfunction getManifestPath(_manifestPath, basename) {\n let manifestPath = _manifestPath || \"/__manifest\";\n if (basename == null) {\n return manifestPath;\n }\n return `${basename}${manifestPath}`.replace(/\\/+/g, \"/\");\n}\nvar MANIFEST_VERSION_STORAGE_KEY = \"react-router-manifest-version\";\nasync function fetchAndApplyManifestPatches(paths, errorReloadPath, manifest, routeModules, ssr, isSpaMode, basename, manifestPath, patchRoutes, signal) {\n const searchParams = new URLSearchParams();\n paths.sort().forEach((path) => searchParams.append(\"p\", path));\n searchParams.set(\"version\", manifest.version);\n let url = new URL(\n getManifestPath(manifestPath, basename),\n window.location.origin\n );\n url.search = searchParams.toString();\n if (url.toString().length > URL_LIMIT) {\n nextPaths.clear();\n return;\n }\n let serverPatches;\n try {\n let res = await fetch(url, { signal });\n if (!res.ok) {\n throw new Error(`${res.status} ${res.statusText}`);\n } else if (res.status === 204 && res.headers.has(\"X-Remix-Reload-Document\")) {\n if (!errorReloadPath) {\n console.warn(\n \"Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.\"\n );\n return;\n }\n if (sessionStorage.getItem(MANIFEST_VERSION_STORAGE_KEY) === manifest.version) {\n console.error(\n \"Unable to discover routes due to manifest version mismatch.\"\n );\n return;\n }\n sessionStorage.setItem(MANIFEST_VERSION_STORAGE_KEY, manifest.version);\n window.location.href = errorReloadPath;\n console.warn(\"Detected manifest version mismatch, reloading...\");\n await new Promise(() => {\n });\n } else if (res.status >= 400) {\n throw new Error(await res.text());\n }\n sessionStorage.removeItem(MANIFEST_VERSION_STORAGE_KEY);\n serverPatches = await res.json();\n } catch (e) {\n if (signal?.aborted) return;\n throw e;\n }\n let knownRoutes = new Set(Object.keys(manifest.routes));\n let patches = Object.values(serverPatches).reduce((acc, route) => {\n if (route && !knownRoutes.has(route.id)) {\n acc[route.id] = route;\n }\n return acc;\n }, {});\n Object.assign(manifest.routes, patches);\n paths.forEach((p) => addToFifoQueue(p, discoveredPaths));\n let parentIds = /* @__PURE__ */ new Set();\n Object.values(patches).forEach((patch) => {\n if (patch && (!patch.parentId || !patches[patch.parentId])) {\n parentIds.add(patch.parentId);\n }\n });\n parentIds.forEach(\n (parentId) => patchRoutes(\n parentId || null,\n createClientRoutes(patches, routeModules, null, ssr, isSpaMode, parentId)\n )\n );\n}\nfunction addToFifoQueue(path, queue) {\n if (queue.size >= discoveredPathsMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n}\nfunction debounce(callback, wait) {\n let timeoutId;\n return (...args) => {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(() => callback(...args), wait);\n };\n}\n\n// lib/dom/ssr/components.tsx\nfunction useDataRouterContext2() {\n let context = React8.useContext(DataRouterContext);\n invariant2(\n context,\n \"You must render this element inside a <DataRouterContext.Provider> element\"\n );\n return context;\n}\nfunction useDataRouterStateContext() {\n let context = React8.useContext(DataRouterStateContext);\n invariant2(\n context,\n \"You must render this element inside a <DataRouterStateContext.Provider> element\"\n );\n return context;\n}\nvar FrameworkContext = React8.createContext(void 0);\nFrameworkContext.displayName = \"FrameworkContext\";\nfunction useFrameworkContext() {\n let context = React8.useContext(FrameworkContext);\n invariant2(\n context,\n \"You must render this element inside a <HydratedRouter> element\"\n );\n return context;\n}\nfunction usePrefetchBehavior(prefetch, theirElementProps) {\n let frameworkContext = React8.useContext(FrameworkContext);\n let [maybePrefetch, setMaybePrefetch] = React8.useState(false);\n let [shouldPrefetch, setShouldPrefetch] = React8.useState(false);\n let { onFocus, onBlur, onMouseEnter, onMouseLeave, onTouchStart } = theirElementProps;\n let ref = React8.useRef(null);\n React8.useEffect(() => {\n if (prefetch === \"render\") {\n setShouldPrefetch(true);\n }\n if (prefetch === \"viewport\") {\n let callback = (entries) => {\n entries.forEach((entry) => {\n setShouldPrefetch(entry.isIntersecting);\n });\n };\n let observer = new IntersectionObserver(callback, { threshold: 0.5 });\n if (ref.current) observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }\n }, [prefetch]);\n React8.useEffect(() => {\n if (maybePrefetch) {\n let id = setTimeout(() => {\n setShouldPrefetch(true);\n }, 100);\n return () => {\n clearTimeout(id);\n };\n }\n }, [maybePrefetch]);\n let setIntent = () => {\n setMaybePrefetch(true);\n };\n let cancelIntent = () => {\n setMaybePrefetch(false);\n setShouldPrefetch(false);\n };\n if (!frameworkContext) {\n return [false, ref, {}];\n }\n if (prefetch !== \"intent\") {\n return [shouldPrefetch, ref, {}];\n }\n return [\n shouldPrefetch,\n ref,\n {\n onFocus: composeEventHandlers(onFocus, setIntent),\n onBlur: composeEventHandlers(onBlur, cancelIntent),\n onMouseEnter: composeEventHandlers(onMouseEnter, setIntent),\n onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),\n onTouchStart: composeEventHandlers(onTouchStart, setIntent)\n }\n ];\n}\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return (event) => {\n theirHandler && theirHandler(event);\n if (!event.defaultPrevented) {\n ourHandler(event);\n }\n };\n}\nfunction getActiveMatches(matches, errors, isSpaMode) {\n if (isSpaMode && !isHydrated) {\n return [matches[0]];\n }\n if (errors) {\n let errorIdx = matches.findIndex((m) => errors[m.route.id] !== void 0);\n return matches.slice(0, errorIdx + 1);\n }\n return matches;\n}\nvar CRITICAL_CSS_DATA_ATTRIBUTE = \"data-react-router-critical-css\";\nfunction Links({ nonce }) {\n let { isSpaMode, manifest, routeModules, criticalCss } = useFrameworkContext();\n let { errors, matches: routerMatches } = useDataRouterStateContext();\n let matches = getActiveMatches(routerMatches, errors, isSpaMode);\n let keyedLinks = React8.useMemo(\n () => getKeyedLinksForMatches(matches, routeModules, manifest),\n [matches, routeModules, manifest]\n );\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, typeof criticalCss === \"string\" ? /* @__PURE__ */ React8.createElement(\n \"style\",\n {\n ...{ [CRITICAL_CSS_DATA_ATTRIBUTE]: \"\" },\n dangerouslySetInnerHTML: { __html: criticalCss }\n }\n ) : null, typeof criticalCss === \"object\" ? /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n ...{ [CRITICAL_CSS_DATA_ATTRIBUTE]: \"\" },\n rel: \"stylesheet\",\n href: criticalCss.href,\n nonce\n }\n ) : null, keyedLinks.map(\n ({ key, link }) => isPageLinkDescriptor(link) ? /* @__PURE__ */ React8.createElement(PrefetchPageLinks, { key, nonce, ...link }) : /* @__PURE__ */ React8.createElement(\"link\", { key, nonce, ...link })\n ));\n}\nfunction PrefetchPageLinks({ page, ...linkProps }) {\n let { router } = useDataRouterContext2();\n let matches = React8.useMemo(\n () => matchRoutes(router.routes, page, router.basename),\n [router.routes, page, router.basename]\n );\n if (!matches) {\n return null;\n }\n return /* @__PURE__ */ React8.createElement(PrefetchPageLinksImpl, { page, matches, ...linkProps });\n}\nfunction useKeyedPrefetchLinks(matches) {\n let { manifest, routeModules } = useFrameworkContext();\n let [keyedPrefetchLinks, setKeyedPrefetchLinks] = React8.useState([]);\n React8.useEffect(() => {\n let interrupted = false;\n void getKeyedPrefetchLinks(matches, manifest, routeModules).then(\n (links) => {\n if (!interrupted) {\n setKeyedPrefetchLinks(links);\n }\n }\n );\n return () => {\n interrupted = true;\n };\n }, [matches, manifest, routeModules]);\n return keyedPrefetchLinks;\n}\nfunction PrefetchPageLinksImpl({\n page,\n matches: nextMatches,\n ...linkProps\n}) {\n let location = useLocation();\n let { manifest, routeModules } = useFrameworkContext();\n let { basename } = useDataRouterContext2();\n let { loaderData, matches } = useDataRouterStateContext();\n let newMatchesForData = React8.useMemo(\n () => getNewMatchesForLinks(\n page,\n nextMatches,\n matches,\n manifest,\n location,\n \"data\"\n ),\n [page, nextMatches, matches, manifest, location]\n );\n let newMatchesForAssets = React8.useMemo(\n () => getNewMatchesForLinks(\n page,\n nextMatches,\n matches,\n manifest,\n location,\n \"assets\"\n ),\n [page, nextMatches, matches, manifest, location]\n );\n let dataHrefs = React8.useMemo(() => {\n if (page === location.pathname + location.search + location.hash) {\n return [];\n }\n let routesParams = /* @__PURE__ */ new Set();\n let foundOptOutRoute = false;\n nextMatches.forEach((m) => {\n let manifestRoute = manifest.routes[m.route.id];\n if (!manifestRoute || !manifestRoute.hasLoader) {\n return;\n }\n if (!newMatchesForData.some((m2) => m2.route.id === m.route.id) && m.route.id in loaderData && routeModules[m.route.id]?.shouldRevalidate) {\n foundOptOutRoute = true;\n } else if (manifestRoute.hasClientLoader) {\n foundOptOutRoute = true;\n } else {\n routesParams.add(m.route.id);\n }\n });\n if (routesParams.size === 0) {\n return [];\n }\n let url = singleFetchUrl(page, basename, \"data\");\n if (foundOptOutRoute && routesParams.size > 0) {\n url.searchParams.set(\n \"_routes\",\n nextMatches.filter((m) => routesParams.has(m.route.id)).map((m) => m.route.id).join(\",\")\n );\n }\n return [url.pathname + url.search];\n }, [\n basename,\n loaderData,\n location,\n manifest,\n newMatchesForData,\n nextMatches,\n page,\n routeModules\n ]);\n let moduleHrefs = React8.useMemo(\n () => getModuleLinkHrefs(newMatchesForAssets, manifest),\n [newMatchesForAssets, manifest]\n );\n let keyedPrefetchLinks = useKeyedPrefetchLinks(newMatchesForAssets);\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, dataHrefs.map((href) => /* @__PURE__ */ React8.createElement(\"link\", { key: href, rel: \"prefetch\", as: \"fetch\", href, ...linkProps })), moduleHrefs.map((href) => /* @__PURE__ */ React8.createElement(\"link\", { key: href, rel: \"modulepreload\", href, ...linkProps })), keyedPrefetchLinks.map(({ key, link }) => (\n // these don't spread `linkProps` because they are full link descriptors\n // already with their own props\n /* @__PURE__ */ React8.createElement(\"link\", { key, nonce: linkProps.nonce, ...link })\n )));\n}\nfunction Meta() {\n let { isSpaMode, routeModules } = useFrameworkContext();\n let {\n errors,\n matches: routerMatches,\n loaderData\n } = useDataRouterStateContext();\n let location = useLocation();\n let _matches = getActiveMatches(routerMatches, errors, isSpaMode);\n let error = null;\n if (errors) {\n error = errors[_matches[_matches.length - 1].route.id];\n }\n let meta = [];\n let leafMeta = null;\n let matches = [];\n for (let i = 0; i < _matches.length; i++) {\n let _match = _matches[i];\n let routeId = _match.route.id;\n let data2 = loaderData[routeId];\n let params = _match.params;\n let routeModule = routeModules[routeId];\n let routeMeta = [];\n let match = {\n id: routeId,\n data: data2,\n loaderData: data2,\n meta: [],\n params: _match.params,\n pathname: _match.pathname,\n handle: _match.route.handle,\n error\n };\n matches[i] = match;\n if (routeModule?.meta) {\n routeMeta = typeof routeModule.meta === \"function\" ? routeModule.meta({\n data: data2,\n loaderData: data2,\n params,\n location,\n matches,\n error\n }) : Array.isArray(routeModule.meta) ? [...routeModule.meta] : routeModule.meta;\n } else if (leafMeta) {\n routeMeta = [...leafMeta];\n }\n routeMeta = routeMeta || [];\n if (!Array.isArray(routeMeta)) {\n throw new Error(\n \"The route at \" + _match.route.path + \" returns an invalid value. All route meta functions must return an array of meta objects.\\n\\nTo reference the meta function API, see https://remix.run/route/meta\"\n );\n }\n match.meta = routeMeta;\n matches[i] = match;\n meta = [...routeMeta];\n leafMeta = meta;\n }\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, meta.flat().map((metaProps) => {\n if (!metaProps) {\n return null;\n }\n if (\"tagName\" in metaProps) {\n let { tagName, ...rest } = metaProps;\n if (!isValidMetaTag(tagName)) {\n console.warn(\n `A meta object uses an invalid tagName: ${tagName}. Expected either 'link' or 'meta'`\n );\n return null;\n }\n let Comp = tagName;\n return /* @__PURE__ */ React8.createElement(Comp, { key: JSON.stringify(rest), ...rest });\n }\n if (\"title\" in metaProps) {\n return /* @__PURE__ */ React8.createElement(\"title\", { key: \"title\" }, String(metaProps.title));\n }\n if (\"charset\" in metaProps) {\n metaProps.charSet ?? (metaProps.charSet = metaProps.charset);\n delete metaProps.charset;\n }\n if (\"charSet\" in metaProps && metaProps.charSet != null) {\n return typeof metaProps.charSet === \"string\" ? /* @__PURE__ */ React8.createElement(\"meta\", { key: \"charSet\", charSet: metaProps.charSet }) : null;\n }\n if (\"script:ld+json\" in metaProps) {\n try {\n let json = JSON.stringify(metaProps[\"script:ld+json\"]);\n return /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n key: `script:ld+json:${json}`,\n type: \"application/ld+json\",\n dangerouslySetInnerHTML: { __html: json }\n }\n );\n } catch (err) {\n return null;\n }\n }\n return /* @__PURE__ */ React8.createElement(\"meta\", { key: JSON.stringify(metaProps), ...metaProps });\n }));\n}\nfunction isValidMetaTag(tagName) {\n return typeof tagName === \"string\" && /^(meta|link)$/.test(tagName);\n}\nvar isHydrated = false;\nfunction setIsHydrated() {\n isHydrated = true;\n}\nfunction Scripts(scriptProps) {\n let {\n manifest,\n serverHandoffString,\n isSpaMode,\n renderMeta,\n routeDiscovery,\n ssr\n } = useFrameworkContext();\n let { router, static: isStatic, staticContext } = useDataRouterContext2();\n let { matches: routerMatches } = useDataRouterStateContext();\n let isRSCRouterContext = useIsRSCRouterContext();\n let enableFogOfWar = isFogOfWarEnabled(routeDiscovery, ssr);\n if (renderMeta) {\n renderMeta.didRenderScripts = true;\n }\n let matches = getActiveMatches(routerMatches, null, isSpaMode);\n React8.useEffect(() => {\n setIsHydrated();\n }, []);\n let initialScripts = React8.useMemo(() => {\n if (isRSCRouterContext) {\n return null;\n }\n let streamScript = \"window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());\";\n let contextScript = staticContext ? `window.__reactRouterContext = ${serverHandoffString};${streamScript}` : \" \";\n let routeModulesScript = !isStatic ? \" \" : `${manifest.hmr?.runtime ? `import ${JSON.stringify(manifest.hmr.runtime)};` : \"\"}${!enableFogOfWar ? `import ${JSON.stringify(manifest.url)}` : \"\"};\n${matches.map((match, routeIndex) => {\n let routeVarName = `route${routeIndex}`;\n let manifestEntry = manifest.routes[match.route.id];\n invariant2(manifestEntry, `Route ${match.route.id} not found in manifest`);\n let {\n clientActionModule,\n clientLoaderModule,\n clientMiddlewareModule,\n hydrateFallbackModule,\n module\n } = manifestEntry;\n let chunks = [\n ...clientActionModule ? [\n {\n module: clientActionModule,\n varName: `${routeVarName}_clientAction`\n }\n ] : [],\n ...clientLoaderModule ? [\n {\n module: clientLoaderModule,\n varName: `${routeVarName}_clientLoader`\n }\n ] : [],\n ...clientMiddlewareModule ? [\n {\n module: clientMiddlewareModule,\n varName: `${routeVarName}_clientMiddleware`\n }\n ] : [],\n ...hydrateFallbackModule ? [\n {\n module: hydrateFallbackModule,\n varName: `${routeVarName}_HydrateFallback`\n }\n ] : [],\n { module, varName: `${routeVarName}_main` }\n ];\n if (chunks.length === 1) {\n return `import * as ${routeVarName} from ${JSON.stringify(module)};`;\n }\n let chunkImportsSnippet = chunks.map((chunk) => `import * as ${chunk.varName} from \"${chunk.module}\";`).join(\"\\n\");\n let mergedChunksSnippet = `const ${routeVarName} = {${chunks.map((chunk) => `...${chunk.varName}`).join(\",\")}};`;\n return [chunkImportsSnippet, mergedChunksSnippet].join(\"\\n\");\n }).join(\"\\n\")}\n ${enableFogOfWar ? (\n // Inline a minimal manifest with the SSR matches\n `window.__reactRouterManifest = ${JSON.stringify(\n getPartialManifest(manifest, router),\n null,\n 2\n )};`\n ) : \"\"}\n window.__reactRouterRouteModules = {${matches.map((match, index) => `${JSON.stringify(match.route.id)}:route${index}`).join(\",\")}};\n\nimport(${JSON.stringify(manifest.entry.module)});`;\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n ...scriptProps,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: createHtml(contextScript),\n type: void 0\n }\n ), /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n ...scriptProps,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: createHtml(routeModulesScript),\n type: \"module\",\n async: true\n }\n ));\n }, []);\n let preloads = isHydrated || isRSCRouterContext ? [] : dedupe(\n manifest.entry.imports.concat(\n getModuleLinkHrefs(matches, manifest, {\n includeHydrateFallback: true\n })\n )\n );\n let sri = typeof manifest.sri === \"object\" ? manifest.sri : {};\n warnOnce(\n !isRSCRouterContext,\n \"The <Scripts /> element is a no-op when using RSC and can be safely removed.\"\n );\n return isHydrated || isRSCRouterContext ? null : /* @__PURE__ */ React8.createElement(React8.Fragment, null, typeof manifest.sri === \"object\" ? /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n \"rr-importmap\": \"\",\n type: \"importmap\",\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: JSON.stringify({\n integrity: sri\n })\n }\n }\n ) : null, !enableFogOfWar ? /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n rel: \"modulepreload\",\n href: manifest.url,\n crossOrigin: scriptProps.crossOrigin,\n integrity: sri[manifest.url],\n suppressHydrationWarning: true\n }\n ) : null, /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n rel: \"modulepreload\",\n href: manifest.entry.module,\n crossOrigin: scriptProps.crossOrigin,\n integrity: sri[manifest.entry.module],\n suppressHydrationWarning: true\n }\n ), preloads.map((path) => /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n key: path,\n rel: \"modulepreload\",\n href: path,\n crossOrigin: scriptProps.crossOrigin,\n integrity: sri[path],\n suppressHydrationWarning: true\n }\n )), initialScripts);\n}\nfunction dedupe(array) {\n return [...new Set(array)];\n}\nfunction mergeRefs(...refs) {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n}\n\n// lib/dom/ssr/errorBoundaries.tsx\nvar RemixErrorBoundary = class extends React9.Component {\n constructor(props) {\n super(props);\n this.state = { error: props.error || null, location: props.location };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n static getDerivedStateFromProps(props, state) {\n if (state.location !== props.location) {\n return { error: props.error || null, location: props.location };\n }\n return { error: props.error || state.error, location: state.location };\n }\n render() {\n if (this.state.error) {\n return /* @__PURE__ */ React9.createElement(\n RemixRootDefaultErrorBoundary,\n {\n error: this.state.error,\n isOutsideRemixApp: true\n }\n );\n } else {\n return this.props.children;\n }\n }\n};\nfunction RemixRootDefaultErrorBoundary({\n error,\n isOutsideRemixApp\n}) {\n console.error(error);\n let heyDeveloper = /* @__PURE__ */ React9.createElement(\n \"script\",\n {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information.\"\n );\n `\n }\n }\n );\n if (isRouteErrorResponse(error)) {\n return /* @__PURE__ */ React9.createElement(BoundaryShell, { title: \"Unhandled Thrown Response!\" }, /* @__PURE__ */ React9.createElement(\"h1\", { style: { fontSize: \"24px\" } }, error.status, \" \", error.statusText), ENABLE_DEV_WARNINGS ? heyDeveloper : null);\n }\n let errorInstance;\n if (error instanceof Error) {\n errorInstance = error;\n } else {\n let errorString = error == null ? \"Unknown Error\" : typeof error === \"object\" && \"toString\" in error ? error.toString() : JSON.stringify(error);\n errorInstance = new Error(errorString);\n }\n return /* @__PURE__ */ React9.createElement(\n BoundaryShell,\n {\n title: \"Application Error!\",\n isOutsideRemixApp\n },\n /* @__PURE__ */ React9.createElement(\"h1\", { style: { fontSize: \"24px\" } }, \"Application Error\"),\n /* @__PURE__ */ React9.createElement(\n \"pre\",\n {\n style: {\n padding: \"2rem\",\n background: \"hsla(10, 50%, 50%, 0.1)\",\n color: \"red\",\n overflow: \"auto\"\n }\n },\n errorInstance.stack\n ),\n heyDeveloper\n );\n}\nfunction BoundaryShell({\n title,\n renderScripts,\n isOutsideRemixApp,\n children\n}) {\n let { routeModules } = useFrameworkContext();\n if (routeModules.root?.Layout && !isOutsideRemixApp) {\n return children;\n }\n return /* @__PURE__ */ React9.createElement(\"html\", { lang: \"en\" }, /* @__PURE__ */ React9.createElement(\"head\", null, /* @__PURE__ */ React9.createElement(\"meta\", { charSet: \"utf-8\" }), /* @__PURE__ */ React9.createElement(\n \"meta\",\n {\n name: \"viewport\",\n content: \"width=device-width,initial-scale=1,viewport-fit=cover\"\n }\n ), /* @__PURE__ */ React9.createElement(\"title\", null, title)), /* @__PURE__ */ React9.createElement(\"body\", null, /* @__PURE__ */ React9.createElement(\"main\", { style: { fontFamily: \"system-ui, sans-serif\", padding: \"2rem\" } }, children, renderScripts ? /* @__PURE__ */ React9.createElement(Scripts, null) : null)));\n}\n\n// lib/dom/lib.tsx\nimport * as React10 from \"react\";\nvar isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\ntry {\n if (isBrowser) {\n window.__reactRouterVersion = // @ts-expect-error\n \"7.8.2\";\n }\n} catch (e) {\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts?.basename,\n unstable_getContext: opts?.unstable_getContext,\n future: opts?.future,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n hydrationRouteProperties,\n dataStrategy: opts?.dataStrategy,\n patchRoutesOnNavigation: opts?.patchRoutesOnNavigation,\n window: opts?.window\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts?.basename,\n unstable_getContext: opts?.unstable_getContext,\n future: opts?.future,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n hydrationRouteProperties,\n dataStrategy: opts?.dataStrategy,\n patchRoutesOnNavigation: opts?.patchRoutesOnNavigation,\n window: opts?.window\n }).initialize();\n}\nfunction parseHydrationData() {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors)\n };\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponseImpl(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n let error = new ErrorConstructor(val.message);\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nfunction BrowserRouter({\n basename,\n children,\n window: window2\n}) {\n let historyRef = React10.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window: window2, v5Compat: true });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React10.useState({\n action: history.action,\n location: history.location\n });\n let setState = React10.useCallback(\n (newState) => {\n React10.startTransition(() => setStateImpl(newState));\n },\n [setStateImpl]\n );\n React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React10.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n }\n );\n}\nfunction HashRouter({ basename, children, window: window2 }) {\n let historyRef = React10.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window: window2, v5Compat: true });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React10.useState({\n action: history.action,\n location: history.location\n });\n let setState = React10.useCallback(\n (newState) => {\n React10.startTransition(() => setStateImpl(newState));\n },\n [setStateImpl]\n );\n React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React10.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n }\n );\n}\nfunction HistoryRouter({\n basename,\n children,\n history\n}) {\n let [state, setStateImpl] = React10.useState({\n action: history.action,\n location: history.location\n });\n let setState = React10.useCallback(\n (newState) => {\n React10.startTransition(() => setStateImpl(newState));\n },\n [setStateImpl]\n );\n React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React10.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n }\n );\n}\nHistoryRouter.displayName = \"unstable_HistoryRouter\";\nvar ABSOLUTE_URL_REGEX2 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar Link = React10.forwardRef(\n function LinkWithRef({\n onClick,\n discover = \"render\",\n prefetch = \"none\",\n relative,\n reloadDocument,\n replace: replace2,\n state,\n target,\n to,\n preventScrollReset,\n viewTransition,\n ...rest\n }, forwardedRef) {\n let { basename } = React10.useContext(NavigationContext);\n let isAbsolute = typeof to === \"string\" && ABSOLUTE_URL_REGEX2.test(to);\n let absoluteHref;\n let isExternal = false;\n if (typeof to === \"string\" && isAbsolute) {\n absoluteHref = to;\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n warning(\n false,\n `<Link to=\"${to}\"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`\n );\n }\n }\n }\n let href = useHref(to, { relative });\n let [shouldPrefetch, prefetchRef, prefetchHandlers] = usePrefetchBehavior(\n prefetch,\n rest\n );\n let internalOnClick = useLinkClickHandler(to, {\n replace: replace2,\n state,\n target,\n preventScrollReset,\n relative,\n viewTransition\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n let link = (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n /* @__PURE__ */ React10.createElement(\n \"a\",\n {\n ...rest,\n ...prefetchHandlers,\n href: absoluteHref || href,\n onClick: isExternal || reloadDocument ? onClick : handleClick,\n ref: mergeRefs(forwardedRef, prefetchRef),\n target,\n \"data-discover\": !isAbsolute && discover === \"render\" ? \"true\" : void 0\n }\n )\n );\n return shouldPrefetch && !isAbsolute ? /* @__PURE__ */ React10.createElement(React10.Fragment, null, link, /* @__PURE__ */ React10.createElement(PrefetchPageLinks, { page: href })) : link;\n }\n);\nLink.displayName = \"Link\";\nvar NavLink = React10.forwardRef(\n function NavLinkWithRef({\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n viewTransition,\n children,\n ...rest\n }, ref) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React10.useContext(DataRouterStateContext);\n let { navigator, basename } = React10.useContext(NavigationContext);\n let isTransitioning = routerState != null && // 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 useViewTransitionState(path) && viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : void 0;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n isTransitioning ? \"transitioning\" : null\n ].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /* @__PURE__ */ React10.createElement(\n Link,\n {\n ...rest,\n \"aria-current\": ariaCurrent,\n className,\n ref,\n style,\n to,\n viewTransition\n },\n typeof children === \"function\" ? children(renderProps) : children\n );\n }\n);\nNavLink.displayName = \"NavLink\";\nvar Form = React10.forwardRef(\n ({\n discover = \"render\",\n fetcherKey,\n navigate,\n reloadDocument,\n replace: replace2,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n viewTransition,\n ...props\n }, forwardedRef) => {\n let submit = useSubmit();\n let formAction = useFormAction(action, { relative });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let isAbsolute = typeof action === \"string\" && ABSOLUTE_URL_REGEX2.test(action);\n let submitHandler = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = submitter?.getAttribute(\"formmethod\") || method;\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace: replace2,\n state,\n relative,\n preventScrollReset,\n viewTransition\n });\n };\n return /* @__PURE__ */ React10.createElement(\n \"form\",\n {\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler,\n ...props,\n \"data-discover\": !isAbsolute && discover === \"render\" ? \"true\" : void 0\n }\n );\n }\n);\nForm.displayName = \"Form\";\nfunction ScrollRestoration({\n getKey,\n storageKey,\n ...props\n}) {\n let remixContext = React10.useContext(FrameworkContext);\n let { basename } = React10.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n useScrollRestoration({ getKey, storageKey });\n let ssrKey = React10.useMemo(\n () => {\n if (!remixContext || !getKey) return null;\n let userKey = getScrollRestorationKey(\n location,\n matches,\n basename,\n getKey\n );\n return userKey !== location.key ? userKey : null;\n },\n // Nah, we only need this the first time for the SSR render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n if (!remixContext || remixContext.isSpaMode) {\n return null;\n }\n let restoreScroll = ((storageKey2, restoreKey) => {\n if (!window.history.state || !window.history.state.key) {\n let key = Math.random().toString(32).slice(2);\n window.history.replaceState({ key }, \"\");\n }\n try {\n let positions = JSON.parse(sessionStorage.getItem(storageKey2) || \"{}\");\n let storedY = positions[restoreKey || window.history.state.key];\n if (typeof storedY === \"number\") {\n window.scrollTo(0, storedY);\n }\n } catch (error) {\n console.error(error);\n sessionStorage.removeItem(storageKey2);\n }\n }).toString();\n return /* @__PURE__ */ React10.createElement(\n \"script\",\n {\n ...props,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n )}, ${JSON.stringify(ssrKey)})`\n }\n }\n );\n}\nScrollRestoration.displayName = \"ScrollRestoration\";\nfunction getDataRouterConsoleError2(hookName) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\nfunction useDataRouterContext3(hookName) {\n let ctx = React10.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError2(hookName));\n return ctx;\n}\nfunction useDataRouterState2(hookName) {\n let state = React10.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError2(hookName));\n return state;\n}\nfunction useLinkClickHandler(to, {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n viewTransition\n} = {}) {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n return React10.useCallback(\n (event) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n let replace2 = replaceProp !== void 0 ? replaceProp : createPath(location) === createPath(path);\n navigate(to, {\n replace: replace2,\n state,\n preventScrollReset,\n relative,\n viewTransition\n });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n viewTransition\n ]\n );\n}\nfunction useSearchParams(defaultInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.`\n );\n let defaultSearchParamsRef = React10.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React10.useRef(false);\n let location = useLocation();\n let searchParams = React10.useMemo(\n () => (\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n )\n ),\n [location.search]\n );\n let navigate = useNavigate();\n let setSearchParams = React10.useCallback(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(new URLSearchParams(searchParams)) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n return [searchParams, setSearchParams];\n}\nvar fetcherId = 0;\nvar getUniqueFetcherId = () => `__${String(++fetcherId)}__`;\nfunction useSubmit() {\n let { router } = useDataRouterContext3(\"useSubmit\" /* UseSubmit */);\n let { basename } = React10.useContext(NavigationContext);\n let currentRouteId = useRouteId();\n return React10.useCallback(\n async (target, options = {}) => {\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n await router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n flushSync: options.flushSync\n });\n } else {\n await router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n flushSync: options.flushSync,\n viewTransition: options.viewTransition\n });\n }\n },\n [router, basename, currentRouteId]\n );\n}\nfunction useFormAction(action, { relative } = {}) {\n let { basename } = React10.useContext(NavigationContext);\n let routeContext = React10.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n let [match] = routeContext.matches.slice(-1);\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n let location = useLocation();\n if (action == null) {\n path.search = location.search;\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n let hasNakedIndexParam = indexValues.some((v) => v === \"\");\n if (hasNakedIndexParam) {\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\nfunction useFetcher({\n key\n} = {}) {\n let { router } = useDataRouterContext3(\"useFetcher\" /* UseFetcher */);\n let state = useDataRouterState2(\"useFetcher\" /* UseFetcher */);\n let fetcherData = React10.useContext(FetchersContext);\n let route = React10.useContext(RouteContext);\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n invariant(fetcherData, `useFetcher must be used inside a FetchersContext`);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n let defaultKey = React10.useId();\n let [fetcherKey, setFetcherKey] = React10.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n }\n React10.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => router.deleteFetcher(fetcherKey);\n }, [router, fetcherKey]);\n let load = React10.useCallback(\n async (href, opts) => {\n invariant(routeId, \"No routeId available for fetcher.load()\");\n await router.fetch(fetcherKey, routeId, href, opts);\n },\n [fetcherKey, routeId, router]\n );\n let submitImpl = useSubmit();\n let submit = React10.useCallback(\n async (target, opts) => {\n await submitImpl(target, {\n ...opts,\n navigate: false,\n fetcherKey\n });\n },\n [fetcherKey, submitImpl]\n );\n let FetcherForm = React10.useMemo(() => {\n let FetcherForm2 = React10.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ React10.createElement(Form, { ...props, navigate: false, fetcherKey, ref });\n }\n );\n FetcherForm2.displayName = \"fetcher.Form\";\n return FetcherForm2;\n }, [fetcherKey]);\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data2 = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React10.useMemo(\n () => ({\n Form: FetcherForm,\n submit,\n load,\n ...fetcher,\n data: data2\n }),\n [FetcherForm, submit, load, fetcher, data2]\n );\n return fetcherWithComponents;\n}\nfunction useFetchers() {\n let state = useDataRouterState2(\"useFetchers\" /* UseFetchers */);\n return Array.from(state.fetchers.entries()).map(([key, fetcher]) => ({\n ...fetcher,\n key\n }));\n}\nvar SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nvar savedScrollPositions = {};\nfunction getScrollRestorationKey(location, matches, basename, getKey) {\n let key = null;\n if (getKey) {\n if (basename !== \"/\") {\n key = getKey(\n {\n ...location,\n pathname: stripBasename(location.pathname, basename) || location.pathname\n },\n matches\n );\n } else {\n key = getKey(location, matches);\n }\n }\n if (key == null) {\n key = location.key;\n }\n return key;\n}\nfunction useScrollRestoration({\n getKey,\n storageKey\n} = {}) {\n let { router } = useDataRouterContext3(\"useScrollRestoration\" /* UseScrollRestoration */);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState2(\n \"useScrollRestoration\" /* UseScrollRestoration */\n );\n let { basename } = React10.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n React10.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n usePageHide(\n React10.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = getScrollRestorationKey(location, matches, basename, getKey);\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${error}).`\n );\n }\n window.history.scrollRestoration = \"auto\";\n }, [navigation.state, getKey, basename, location, matches, storageKey])\n );\n if (typeof document !== \"undefined\") {\n React10.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n }\n }, [storageKey]);\n React10.useLayoutEffect(() => {\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKey ? (location2, matches2) => getScrollRestorationKey(location2, matches2, basename, getKey) : void 0\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n React10.useLayoutEffect(() => {\n if (restoreScrollPosition === false) {\n return;\n }\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n try {\n if (location.hash) {\n let el = document.getElementById(\n decodeURIComponent(location.hash.slice(1))\n );\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n } catch {\n warning(\n false,\n `\"${location.hash.slice(\n 1\n )}\" is not a decodable element ID. The view will not scroll to it.`\n );\n }\n if (preventScrollReset === true) {\n return;\n }\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\nfunction useBeforeUnload(callback, options) {\n let { capture } = options || {};\n React10.useEffect(() => {\n let opts = capture != null ? { capture } : void 0;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\nfunction usePageHide(callback, options) {\n let { capture } = options || {};\n React10.useEffect(() => {\n let opts = capture != null ? { capture } : void 0;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\nfunction usePrompt({\n when,\n message\n}) {\n let blocker = useBlocker(when);\n React10.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React10.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\nfunction useViewTransitionState(to, { relative } = {}) {\n let vtContext = React10.useContext(ViewTransitionContext);\n invariant(\n vtContext != null,\n \"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?\"\n );\n let { basename } = useDataRouterContext3(\n \"useViewTransitionState\" /* useViewTransitionState */\n );\n let path = useResolvedPath(to, { relative });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n\n// lib/dom/server.tsx\nimport * as React11 from \"react\";\nfunction StaticRouter({\n basename,\n children,\n location: locationProp = \"/\"\n}) {\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let action = \"POP\" /* Pop */;\n let location = {\n pathname: locationProp.pathname || \"/\",\n search: locationProp.search || \"\",\n hash: locationProp.hash || \"\",\n state: locationProp.state != null ? locationProp.state : null,\n key: locationProp.key || \"default\"\n };\n let staticNavigator = getStatelessNavigator();\n return /* @__PURE__ */ React11.createElement(\n Router,\n {\n basename,\n children,\n location,\n navigationType: action,\n navigator: staticNavigator,\n static: true\n }\n );\n}\nfunction StaticRouterProvider({\n context,\n router,\n hydrate: hydrate2 = true,\n nonce\n}) {\n invariant(\n router && context,\n \"You must provide `router` and `context` to <StaticRouterProvider>\"\n );\n let dataRouterContext = {\n router,\n navigator: getStatelessNavigator(),\n static: true,\n staticContext: context,\n basename: context.basename || \"/\"\n };\n let fetchersContext = /* @__PURE__ */ new Map();\n let hydrateScript = \"\";\n if (hydrate2 !== false) {\n let data2 = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors)\n };\n let json = htmlEscape(JSON.stringify(JSON.stringify(data2)));\n hydrateScript = `window.__staticRouterHydrationData = JSON.parse(${json});`;\n }\n let { state } = dataRouterContext.router;\n return /* @__PURE__ */ React11.createElement(React11.Fragment, null, /* @__PURE__ */ React11.createElement(DataRouterContext.Provider, { value: dataRouterContext }, /* @__PURE__ */ React11.createElement(DataRouterStateContext.Provider, { value: state }, /* @__PURE__ */ React11.createElement(FetchersContext.Provider, { value: fetchersContext }, /* @__PURE__ */ React11.createElement(ViewTransitionContext.Provider, { value: { isTransitioning: false } }, /* @__PURE__ */ React11.createElement(\n Router,\n {\n basename: dataRouterContext.basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: dataRouterContext.navigator,\n static: dataRouterContext.static\n },\n /* @__PURE__ */ React11.createElement(\n DataRoutes2,\n {\n routes: router.routes,\n future: router.future,\n state\n }\n )\n ))))), hydrateScript ? /* @__PURE__ */ React11.createElement(\n \"script\",\n {\n suppressHydrationWarning: true,\n nonce,\n dangerouslySetInnerHTML: { __html: hydrateScript }\n }\n ) : null);\n}\nfunction DataRoutes2({\n routes,\n future,\n state\n}) {\n return useRoutesImpl(routes, void 0, state, void 0, future);\n}\nfunction serializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (isRouteErrorResponse(val)) {\n serialized[key] = { ...val, __type: \"RouteErrorResponse\" };\n } else if (val instanceof Error) {\n serialized[key] = {\n message: val.message,\n __type: \"Error\",\n // If this is a subclass (i.e., ReferenceError), send up the type so we\n // can re-create the same type during hydration.\n ...val.name !== \"Error\" ? {\n __subType: val.name\n } : {}\n };\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nfunction getStatelessNavigator() {\n return {\n createHref,\n encodeLocation,\n push(to) {\n throw new Error(\n `You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${JSON.stringify(to)})\\` somewhere in your app.`\n );\n },\n replace(to) {\n throw new Error(\n `You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${JSON.stringify(to)}, { replace: true })\\` somewhere in your app.`\n );\n },\n go(delta) {\n throw new Error(\n `You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${delta})\\` somewhere in your app.`\n );\n },\n back() {\n throw new Error(\n `You cannot use navigator.back() on the server because it is a stateless environment.`\n );\n },\n forward() {\n throw new Error(\n `You cannot use navigator.forward() on the server because it is a stateless environment.`\n );\n }\n };\n}\nfunction createStaticHandler2(routes, opts) {\n return createStaticHandler(routes, {\n ...opts,\n mapRouteProperties\n });\n}\nfunction createStaticRouter(routes, context, opts = {}) {\n let manifest = {};\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n void 0,\n manifest\n );\n let matches = context.matches.map((match) => {\n let route = manifest[match.route.id] || match.route;\n return {\n ...match,\n route\n };\n });\n let msg = (method) => `You cannot use router.${method}() on the server because it is a stateless environment`;\n return {\n get basename() {\n return context.basename;\n },\n get future() {\n return {\n unstable_middleware: false,\n ...opts?.future\n };\n },\n get state() {\n return {\n historyAction: \"POP\" /* Pop */,\n location: context.location,\n matches,\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: context.errors,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n restoreScrollPosition: null,\n preventScrollReset: false,\n revalidation: \"idle\",\n fetchers: /* @__PURE__ */ new Map(),\n blockers: /* @__PURE__ */ new Map()\n };\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return void 0;\n },\n initialize() {\n throw msg(\"initialize\");\n },\n subscribe() {\n throw msg(\"subscribe\");\n },\n enableScrollRestoration() {\n throw msg(\"enableScrollRestoration\");\n },\n navigate() {\n throw msg(\"navigate\");\n },\n fetch() {\n throw msg(\"fetch\");\n },\n revalidate() {\n throw msg(\"revalidate\");\n },\n createHref,\n encodeLocation,\n getFetcher() {\n return IDLE_FETCHER;\n },\n deleteFetcher() {\n throw msg(\"deleteFetcher\");\n },\n dispose() {\n throw msg(\"dispose\");\n },\n getBlocker() {\n return IDLE_BLOCKER;\n },\n deleteBlocker() {\n throw msg(\"deleteBlocker\");\n },\n patchRoutes() {\n throw msg(\"patchRoutes\");\n },\n _internalFetchControllers: /* @__PURE__ */ new Map(),\n _internalSetRoutes() {\n throw msg(\"_internalSetRoutes\");\n },\n _internalSetStateDoNotUseOrYouWillBreakYourApp() {\n throw msg(\"_internalSetStateDoNotUseOrYouWillBreakYourApp\");\n }\n };\n}\nfunction createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n}\nfunction encodeLocation(to) {\n let href = typeof to === \"string\" ? to : createPath(to);\n href = href.replace(/ $/, \"%20\");\n let encoded = ABSOLUTE_URL_REGEX3.test(href) ? new URL(href) : new URL(href, \"http://localhost\");\n return {\n pathname: encoded.pathname,\n search: encoded.search,\n hash: encoded.hash\n };\n}\nvar ABSOLUTE_URL_REGEX3 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar ESCAPE_LOOKUP2 = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX2 = /[&><\\u2028\\u2029]/g;\nfunction htmlEscape(str) {\n return str.replace(ESCAPE_REGEX2, (match) => ESCAPE_LOOKUP2[match]);\n}\n\nexport {\n Action,\n createBrowserHistory,\n invariant,\n createPath,\n parsePath,\n unstable_createContext,\n unstable_RouterContextProvider,\n convertRoutesToDataRoutes,\n matchRoutes,\n generatePath,\n matchPath,\n stripBasename,\n resolvePath,\n data,\n redirect,\n redirectDocument,\n replace,\n ErrorResponseImpl,\n isRouteErrorResponse,\n IDLE_NAVIGATION,\n IDLE_FETCHER,\n IDLE_BLOCKER,\n createRouter,\n createStaticHandler,\n getStaticContextFromError,\n isDataWithResponseInit,\n isResponse,\n isRedirectStatusCode,\n isRedirectResponse,\n isMutationMethod,\n DataRouterContext,\n DataRouterStateContext,\n RSCRouterContext,\n ViewTransitionContext,\n FetchersContext,\n NavigationContext,\n LocationContext,\n RouteContext,\n ENABLE_DEV_WARNINGS,\n useHref,\n useInRouterContext,\n useLocation,\n useNavigationType,\n useMatch,\n useNavigate,\n useOutletContext,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useNavigation,\n useRevalidator,\n useMatches,\n useLoaderData,\n useRouteLoaderData,\n useActionData,\n useRouteError,\n useAsyncValue,\n useAsyncError,\n useBlocker,\n warnOnce,\n mapRouteProperties,\n hydrationRouteProperties,\n createMemoryRouter,\n RouterProvider,\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n Await,\n createRoutesFromChildren,\n createRoutesFromElements,\n renderMatches,\n WithComponentProps,\n withComponentProps,\n WithHydrateFallbackProps,\n withHydrateFallbackProps,\n WithErrorBoundaryProps,\n withErrorBoundaryProps,\n createSearchParams,\n encode,\n createRequestInit,\n SingleFetchRedirectSymbol,\n SINGLE_FETCH_REDIRECT_STATUS,\n NO_BODY_STATUS_CODES,\n StreamTransfer,\n getTurboStreamSingleFetchDataStrategy,\n getSingleFetchDataStrategyImpl,\n stripIndexParam,\n singleFetchUrl,\n decodeViaTurboStream,\n RemixErrorBoundary,\n createServerRoutes,\n createClientRoutesWithHMRRevalidationOptOut,\n noActionDefinedError,\n createClientRoutes,\n shouldHydrateRouteLoader,\n getPatchRoutesOnNavigationFunction,\n useFogOFWarDiscovery,\n getManifestPath,\n FrameworkContext,\n CRITICAL_CSS_DATA_ATTRIBUTE,\n Links,\n PrefetchPageLinks,\n Meta,\n setIsHydrated,\n Scripts,\n createBrowserRouter,\n createHashRouter,\n BrowserRouter,\n HashRouter,\n HistoryRouter,\n Link,\n NavLink,\n Form,\n ScrollRestoration,\n useLinkClickHandler,\n useSearchParams,\n useSubmit,\n useFormAction,\n useFetcher,\n useFetchers,\n useScrollRestoration,\n useBeforeUnload,\n usePrompt,\n useViewTransitionState,\n StaticRouter,\n StaticRouterProvider,\n createStaticHandler2,\n createStaticRouter\n};\n"],"names":["__typeError","msg","__accessCheck","obj","member","__privateGet","getter","__privateAdd","value","Action","Action2","PopStateEventType","createMemoryHistory","options","initialEntries","initialIndex","v5Compat","entries","entry","index2","createMemoryLocation","index","clampIndex","action","listener","n","getCurrentLocation","to","state","key","location","createLocation","warning","createHref2","createPath","path","parsePath","nextLocation","delta","nextIndex","fn","createBrowserHistory","createBrowserLocation","window2","globalHistory","pathname","search","hash","createBrowserHref","getUrlBasedHistory","createHashHistory","createHashLocation","createHashHref","base","href","url","hashIndex","validateHashLocation","invariant","message","cond","createKey","getHistoryState","current","parsedPath","searchIndex","getLocation","validateLocation","getIndex","handlePop","history","push","historyState","error","replace2","createURL","createBrowserURLImpl","isAbsolute","unstable_createContext","defaultValue","_map","unstable_RouterContextProvider","init","context","unsupportedLazyRouteObjectKeys","isUnsupportedLazyRouteObjectKey","unsupportedLazyRouteFunctionKeys","isUnsupportedLazyRouteFunctionKey","isIndexRoute","route","convertRoutesToDataRoutes","routes","mapRouteProperties2","parentPath","manifest","allowInPlaceMutations","treePath","id","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","rankRouteBranches","matches","i","decoded","decodePath","matchRouteBranch","convertRouteMatchToUiMatch","match","loaderData","params","parentsMeta","_hasParentOptionalSegments","flattenRoute","hasParentOptionalSegments","relativePath","meta","joinPaths","routesMeta","computeScore","exploded","explodeOptionalSegments","segments","first","rest","isOptional","required","restExploded","result","subpath","a","b","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","s","initialScore","score","segment","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","normalizePathname","generatePath","originalPath","prefix","stringify2","p","array","keyMatch","optional","param","pattern","matcher","compiledParams","compilePath","pathnameBase","captureGroups","memo2","paramName","splatValue","caseSensitive","regexpSource","_","v","startIndex","nextChar","prependBasename","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","char","field","dest","getPathContributingMatches","getResolveToMatches","pathMatches","idx","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","DataWithResponseInit","data2","data","redirect","responseInit","headers","redirectDocument","response","replace","ErrorResponseImpl","status","statusText","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","IDLE_FETCHER","IDLE_BLOCKER","ABSOLUTE_URL_REGEX","isAbsoluteUrl","defaultMapRouteProperties","TRANSITIONS_STORAGE_KEY","ResetLoaderDataSymbol","createRouter","routerWindow","isBrowser2","hydrationRouteProperties2","dataRoutes","inFlightDataRoutes","dataStrategyImpl","defaultDataStrategyWithMiddleware","future","unlistenHistory","subscribers","savedScrollPositions2","getScrollRestorationKey2","getScrollPosition","initialScrollRestored","initialMatches","initialMatchesIsFOW","initialErrors","initialized","getInternalRouterError","getShortCircuitMatches","checkFogOfWar","m","errors","shouldLoadRouteOnHydration","fogOfWar","router","pendingAction","pendingPreventScrollReset","pendingNavigationController","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","fetchersQueuedForDeletion","blockerFunctions","unblockBlockerHistoryUpdate","pendingRevalidationDfd","initialize","historyAction","blockerKey","shouldBlockNavigation","nextHistoryUpdatePromise","resolve","updateBlocker","blockers","updateState","startNavigation","restoreAppliedTransitions","_saveAppliedTransitions","persistAppliedTransitions","dispose","deleteFetcher","deleteBlocker","subscribe","newState","opts","matchRoute","unmountedFetchers","mountedFetchers","fetcher","subscriber","completeNavigation","flushSync","isActionReload","isMutationMethod","actionData","mergeLoaderData","k","restoreScrollPosition","getSavedScrollPosition","preventScrollReset","viewTransitionOpts","priorPaths","toPaths","navigate","normalizedPath","normalizeTo","submission","normalizeNavigateOptions","currentLocation","userReplace","revalidate","createDeferred","interruptActiveLoads","promise","saveScrollPosition","routesToUse","loadingNavigation","isHashChangeOnly","notFoundMatches","handleNavigational404","request","createClientSideRequest","scopedContext","pendingActionResult","findNearestBoundary","actionResult","handleAction","routeId","isErrorResult","getLoadingNavigation","shortCircuited","updatedMatches","handleLoaders","getActionDataForCommit","isFogOfWar","initialHydration","navigation","getSubmittingNavigation","discoverResult","discoverRoutes","matches2","boundaryId","actionMatch","getTargetMatch","dsMatches","getTargetedDataStrategyMatches","results","callDataStrategy","isRedirectResult","normalizeRedirectLocation","startRedirectNavigation","boundaryMatch","overrideNavigation","fetcherSubmission","activeSubmission","getSubmissionFromNavigation","shouldUpdateNavigationState","getUpdatedActionData","revalidatingFetchers","getMatchesToLoad","updatedFetchers2","markFetchRedirectsDone","updates","getUpdatedRevalidatingFetchers","rf","abortFetcher","abortPendingFetchRevalidations","f","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect2","findRedirect","processLoaderData","updatedFetchers","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","revalidatingFetcher","getLoadingFetcher","fetch2","setFetcherError","handleFetcherAction","handleFetcherLoader","requestMatches","existingFetcher","updateFetcherState","getSubmittingFetcher","abortController","fetchRequest","originatingLoadId","fetchMatches","getDoneFetcher","revalidationRequest","loadId","loadFetcher","staleKey","existingFetcher2","r","doneFetcher","isNavigation","redirectLocation","isDocumentReload","redirectNavigationType","formMethod","formAction","formEncType","fetcherKey","dataResults","callDataStrategyImpl","e","isRedirectDataStrategyResult","normalizeRelativeRoutingRedirectResponse","convertDataStrategyResultToDataResult","fetchersToLoad","loaderResultsPromise","fetcherResultsPromise","acc","getFetcher","queueFetcherForDeletion","count","controller","markFetchersDone","keys","doneKeys","landedId","yeetedKeys","getBlocker","blocker","newBlocker","blockerFunction","enableScrollRestoration","positions","getPosition","getKey","y","getScrollKey","signal","partialMatches","isNonHMR","localManifest","children","patchRoutesImpl","newMatches","newPartialMatches","_internalSetRoutes","newRoutes","patchRoutes","unstable_allowElementMutations","createStaticHandler","query","requestContext","filterMatchesToLoad","skipLoaderErrorBubbling","skipRevalidation","dataStrategy","generateMiddlewareResponse","method","isValidMethod","methodNotAllowedMatches","staticContext","loadLazyMiddlewareForMatches","renderedStaticContext","runServerMiddlewarePipeline","opts2","result2","queryImpl","isResponse","isRedirectResponse","parseResponseBody","isDataWithResponseInit","dataWithResponseInitToErrorResponse","getStaticContextFromError","boundaryRouteId","queryRoute","innerRequest","processed","handleQueryResult","dataWithResponseInitToResponse","routeMatch","submit","loadRouteData","isDataStrategyResult","isRouteRequest","throwStaticHandlerAbortedError","loaderRequest","maxIdx","getDataStrategyMatch","processRouteLoaderData","defaultDataStrategy","handlerContext","errorBoundaryId","isSubmissionNavigation","fromRouteId","relative","contextualMatches","activeRouteMatch","nakedIndex","hasNakedIndexQuery","indexValues","qs","isFetcher","getInvalidBodyError","stripHashFromPath","text","name","json","searchParams","formData","convertFormDataToSearchParams","convertSearchParamsToFormData","lazyRoutePropertiesToSkip","hasPatchRoutesOnNavigation","currentUrl","nextUrl","actionStatus","shouldSkipRevalidation","baseShouldRevalidateArgs","forceShouldLoad","isNewLoader","defaultShouldRevalidate","isNewRouteInstance","shouldRevalidateArgs","shouldLoad","shouldRevalidateLoader","isMidInitialLoad","fetcherMatches","fetcherMatch","fetchController","fetcherDsMatches","hasData","hasError","currentLoaderData","currentMatch","isNew","isMissingData","currentPath","loaderMatch","arg","routeChoice","allowElementMutations","childrenToPatch","uniqueChildren","existingChildren","newRoute","existingRoute","existingRoute2","isSameRoute","existingRouteTyped","newRouteTyped","aChild","bChild","lazyRoutePropertyCache","loadLazyRouteProperty","routeToUpdate","lazyFn","cache","cachedPromise","propertyPromise","isUnsupported","isStaticallyDefined","lazyRouteFunctionCache","loadLazyRoute","type","lazyRoutePromise2","lazyRoute","routeUpdates","lazyRouteProperty","lazyValue","lazyKeys","lazyPropertyPromises","lazyHandlerPromise","lazyRoutePromise","isNonNullable","promises","args","matchesToLoad","keyedResults","runClientMiddlewarePipeline","handler","errorHandler","runMiddlewarePipeline","processResult","isDataStrategyResults","nextResult","maxBoundaryIdx","isResult","tuples","callRouteMiddleware","middlewares","tuple","middleware","next","getDataStrategyMatchLazyPromises","lazyMiddlewarePromise","lazyRoutePromises","unstable_shouldRevalidateArgs","isUsingNewApi","_lazyPromises","handlerOverride","callLoaderOrAction","targetMatch","isStaticHandler","dataStrategyArgs","cb","typedDataStrategyArgs","onReject","isAction","runHandler","reject","abortPromise","actualHandler","ctx","handlerPromise","handlerError","handler2","contentType","dataStrategyResult","trimmedMatches","normalizedLocation","isSameBasename","statusCode","foundError","loaderHeaders","pendingError","newLoaderData","mergedLoaderData","merged","errorMessage","isRedirectStatusCode","_window","transitions","sessionPositions","res","rej","val","DataRouterContext","React","DataRouterStateContext","RSCRouterContext","useIsRSCRouterContext","ViewTransitionContext","FetchersContext","AwaitContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useHref","useInRouterContext","navigator","React2","useResolvedPath","joinedPathname","useLocation","useNavigationType","useMatch","navigateEffectWarning","useIsomorphicLayoutEffect","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","activeRef","OutletContext","useOutletContext","useOutlet","outlet","useParams","useRoutes","useRoutesImpl","dataRouterState","unstable_onError","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","warningOnce","locationFromContext","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","DefaultErrorComponent","useRouteError","stack","lightgrey","preStyles","codeStyles","devInfo","defaultErrorElement","RenderErrorBoundary","props","errorInfo","RenderedRoute","routeContext","errorIndex","renderFallback","fallbackIndex","errors2","needsToRunLoader","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","getChildren","getDataRouterConsoleError","hookName","useDataRouterContext","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","useRouteId","useNavigation","useRevalidator","useMatches","useLoaderData","useRouteLoaderData","useActionData","useAsyncValue","useAsyncError","blockerId","useBlocker","shouldBlock","setBlockerKey","alreadyWarned","alreadyWarned2","warnOnce","condition","mapRouteProperties","React3","hydrationRouteProperties","createMemoryRouter","Deferred","reason","RouterProvider","reactDomFlushSyncImpl","setStateImpl","pendingState","setPendingState","vtContext","setVtContext","renderDfd","setRenderDfd","transition","setTransition","interruption","setInterruption","fetcherData","logErrorsAndSetState","prevState","setState","deletedFetchers","isViewTransitionAvailable","t","renderPromise","transition2","state2","Router","MemoizedDataRoutes","DataRoutes","MemoryRouter","historyRef","Navigate","isStatic","jsonPath","Outlet","Route","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","Await","AwaitErrorBoundary","ResolveAwait","renderError","toRender","element","createRoutesFromElements","renderMatches","useRouteComponentProps","WithComponentProps","withComponentProps","Component4","useHydrateFallbackProps","WithHydrateFallbackProps","withHydrateFallbackProps","HydrateFallback","useErrorBoundaryProps","WithErrorBoundaryProps","withErrorBoundaryProps","ErrorBoundary","defaultMethod","defaultEncType","isHtmlElement","object","isButtonElement","isFormElement","isInputElement","isModifiedEvent","event","shouldProcessLinkClick","target","createSearchParams","getSearchParamsForLocation","locationSearch","defaultSearchParams","_formDataSupportsSubmitter","isFormDataSubmitterSupported","supportedFormEncTypes","getFormEncType","encType","getFormSubmissionInfo","body","attr","form","HOLE","NAN","NEGATIVE_INFINITY","NEGATIVE_ZERO","NULL","POSITIVE_INFINITY","UNDEFINED","TYPE_BIGINT","TYPE_DATE","TYPE_ERROR","TYPE_MAP","TYPE_NULL_OBJECT","TYPE_PROMISE","TYPE_REGEXP","TYPE_SET","TYPE_SYMBOL","TYPE_URL","TYPE_PREVIOUS_RESOLVED","Deferred2","createLineSplittingTransform","decoder","leftover","chunk","str","parts","part","flatten","input","indices","existing","stringify","deferred","plugins","postPlugins","input2","partsForObj","keyFor","isArray","pluginHandled","plugin","pluginResult","pluginIdentifier","dateTime","isPlainObject","objectProtoNames","thing","proto","globalObj","unflatten","parsed","hydrated","values","hydrate","postRun","set","c","newSet","map","d","errorType","vals","v2","decode","readable","done","reader","decodeInitial","donePromise","decodeDeferred","read","line","colonIndex","deferredId","lineData","jsonLine","encode","encoder","textEncoder","lastSentIndex","seenPromises","raceDone","racePromise","rejectPromise","resolved","id2","createRequestInit","ESCAPE_LOOKUP","ESCAPE_REGEX","escapeHtml","html","createHtml","invariant2","SingleFetchRedirectSymbol","SingleFetchNoResultError","SINGLE_FETCH_REDIRECT_STATUS","NO_BODY_STATUS_CODES","StreamTransfer","identifier","textDecoder","nonce","streamCache","scriptTag","React4","getTurboStreamSingleFetchDataStrategy","getRouter","routeModules","ssr","getSingleFetchDataStrategyImpl","manifestRoute","routeModule","fetchAndDecodeViaTurboStream","getRouteInfo","fetchAndDecode","shouldAllowOptOut","singleFetchActionStrategy","foundRevalidatingServerLoader","hasLoader","hasClientLoader","nonSsrStrategy","singleFetchLoaderFetcherStrategy","singleFetchLoaderNavigationStrategy","unwrapSingleFetchResult","routesParams","foundOptOutRoute","routeDfds","createDeferred2","singleFetchDfd","resolvePromise","hasShouldRevalidate","targetRoutes","bubbleMiddlewareErrors","singleFetchPromise","middlewareError","fetchedData","routeResult","stripIndexParam","indexValuesToKeep","indexValue","toKeep","singleFetchUrl","reqUrl","extension","decodeViaTurboStream","typed","global","Constructor","reload","loadRouteModule","routeModulesCache","getKeyedLinksForMatches","descriptors","module","preloads","getModuleLinkHrefs","dedupeLinkDescriptors","getRouteCssDescriptors","prefetchRouteCss","prefetchStyleLink","prefetchStyleLinks","isPreloadSupported","styleLinks","descriptor","isPageLinkDescriptor","link","removeLink","isHtmlLinkDescriptor","getKeyedPrefetchLinks","links","mod","getNewMatchesForLinks","page","nextMatches","currentMatches","mode","matchPathChanged","includeHydrateFallback","dedupeHrefs","hrefs","sortKeys","sorted","preloadsSet","deduped","_isPreloadSupported","el","RemixRootDefaultHydrateFallback","React5","BoundaryShell","groupRoutesByParentId","parentId","getRouteComponents","isSpaMode","getRouteModuleComponent","React6","RemixRootDefaultErrorBoundary","createServerRoutes","routesByParentId","spaModeLazyPromise","dataRoute","createClientRoutesWithHMRRevalidationOptOut","needsRevalidation","initialState","createClientRoutes","preventInvalidServerHandlerCall","noActionDefinedError","article","fetchServerHandler","singleFetch","fetchServerLoader","fetchServerAction","prefetchModule","modulePath","prefetchRouteModuleChunks","route2","prefetchStylesAndCallHandler","cachedModule","linkPrefetchPromise","getShouldRevalidateFunction","hasInitialData","initialData","hasInitialError","initialError","isHydrationRequest","shouldHydrateRouteLoader","getLazyRoute","routeModulePromise","loadRouteModuleWithBlockingLinks","clientLoader","clientActionPromise","clientAction","unstable_clientMiddleware","wrapShouldRevalidateForHdr","myParams","didParamsChange","routeShouldRevalidate","handledRevalidation","prefetchRouteCssPromise","nextPaths","discoveredPathsMaxSize","discoveredPaths","URL_LIMIT","isFogOfWarEnabled","routeDiscovery","getPartialManifest","sri","routeIds","initialRoutes","getPatchRoutesOnNavigationFunction","patch","fetchAndApplyManifestPatches","useFogOFWarDiscovery","React7","registerElement","fetchPatches","lazyPaths","debouncedFetchPatches","debounce","observer","getManifestPath","_manifestPath","manifestPath","MANIFEST_VERSION_STORAGE_KEY","errorReloadPath","serverPatches","knownRoutes","patches","addToFifoQueue","parentIds","queue","callback","wait","timeoutId","useDataRouterContext2","React8","useDataRouterStateContext","FrameworkContext","useFrameworkContext","usePrefetchBehavior","prefetch","theirElementProps","frameworkContext","maybePrefetch","setMaybePrefetch","shouldPrefetch","setShouldPrefetch","onFocus","onBlur","onMouseEnter","onMouseLeave","onTouchStart","ref","setIntent","cancelIntent","composeEventHandlers","theirHandler","ourHandler","getActiveMatches","isHydrated","errorIdx","CRITICAL_CSS_DATA_ATTRIBUTE","Links","criticalCss","routerMatches","keyedLinks","PrefetchPageLinks","linkProps","PrefetchPageLinksImpl","useKeyedPrefetchLinks","keyedPrefetchLinks","setKeyedPrefetchLinks","interrupted","newMatchesForData","newMatchesForAssets","dataHrefs","m2","moduleHrefs","Meta","_matches","leafMeta","_match","routeMeta","metaProps","tagName","isValidMetaTag","Comp","setIsHydrated","Scripts","scriptProps","serverHandoffString","renderMeta","isRSCRouterContext","enableFogOfWar","initialScripts","contextScript","routeModulesScript","routeIndex","routeVarName","manifestEntry","clientActionModule","clientLoaderModule","clientMiddlewareModule","hydrateFallbackModule","chunks","chunkImportsSnippet","mergedChunksSnippet","dedupe","mergeRefs","refs","RemixErrorBoundary","React9","isOutsideRemixApp","heyDeveloper","errorInstance","errorString","title","renderScripts","isBrowser","createBrowserRouter","parseHydrationData","createHashRouter","deserializeErrors","serialized","ErrorConstructor","BrowserRouter","React10","HashRouter","HistoryRouter","ABSOLUTE_URL_REGEX2","Link","onClick","discover","reloadDocument","viewTransition","forwardedRef","absoluteHref","isExternal","targetUrl","prefetchRef","prefetchHandlers","internalOnClick","useLinkClickHandler","handleClick","NavLink","ariaCurrentProp","classNameProp","styleProp","routerState","isTransitioning","useViewTransitionState","nextLocationPathname","endSlashPosition","isActive","isPending","renderProps","ariaCurrent","className","style","Form","onSubmit","useSubmit","useFormAction","submitHandler","submitter","submitMethod","ScrollRestoration","storageKey","remixContext","useScrollRestoration","ssrKey","userKey","getScrollRestorationKey","restoreScroll","storageKey2","restoreKey","storedY","SCROLL_RESTORATION_STORAGE_KEY","getDataRouterConsoleError2","useDataRouterContext3","useDataRouterState2","replaceProp","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","setSearchParams","nextInit","navigateOptions","newSearchParams","fetcherId","getUniqueFetcherId","currentRouteId","useFetcher","defaultKey","setFetcherKey","load","submitImpl","FetcherForm","FetcherForm2","useFetchers","savedScrollPositions","usePageHide","disableScrollRestoration","location2","useBeforeUnload","capture","usePrompt","when","nextPath","StaticRouter","staticNavigator","getStatelessNavigator","React11","StaticRouterProvider","hydrate2","fetchersContext","hydrateScript","serializeErrors","htmlEscape","DataRoutes2","createHref","encodeLocation","createStaticHandler2","createStaticRouter","encoded","ABSOLUTE_URL_REGEX3","ESCAPE_LOOKUP2","ESCAPE_REGEX2"],"mappings":"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","x_google_ignoreList":[0]}
|