zudoku 0.0.0-ff3bc72 → 0.0.0-zuplo-api-keys.534c6f8
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 +121 -0
- package/cli.js +11 -2
- package/dist/app/ZuploBuildConfig.d.ts +155 -0
- package/dist/app/ZuploBuildConfig.js +29 -0
- package/dist/app/ZuploBuildConfig.js.map +1 -0
- package/dist/app/demo.js +1 -4
- package/dist/app/demo.js.map +1 -1
- package/dist/app/entry.client.d.ts +6 -0
- package/dist/app/entry.client.js +53 -3
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.d.ts +9 -6
- package/dist/app/entry.server.js +21 -14
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/env.d.ts +33 -0
- package/dist/app/env.js +29 -0
- package/dist/app/env.js.map +1 -0
- package/dist/app/main.d.ts +3 -2
- package/dist/app/main.js +50 -61
- 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 +1 -4
- package/dist/app/standalone.js.map +1 -1
- package/dist/cli/build/handler.d.ts +1 -3
- package/dist/cli/build/handler.js +9 -1
- package/dist/cli/build/handler.js.map +1 -1
- package/dist/cli/cli.js +18 -5
- 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/logger.js +9 -0
- package/dist/cli/common/logger.js.map +1 -1
- package/dist/cli/common/machine-id/lib.js +1 -0
- package/dist/cli/common/machine-id/lib.js.map +1 -1
- package/dist/cli/common/outdated.js +2 -1
- package/dist/cli/common/outdated.js.map +1 -1
- package/dist/cli/common/output.js.map +1 -1
- 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/dev/handler.d.ts +1 -0
- package/dist/cli/dev/handler.js +16 -13
- 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 +20 -16
- 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 +19 -0
- package/dist/config/loader.js +135 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/validators/BuildSchema.d.ts +60 -0
- package/dist/config/validators/BuildSchema.js +31 -0
- package/dist/config/validators/BuildSchema.js.map +1 -0
- package/dist/config/validators/InputSidebarSchema.d.ts +63 -32
- package/dist/config/validators/InputSidebarSchema.js +17 -28
- package/dist/config/validators/InputSidebarSchema.js.map +1 -1
- package/dist/config/validators/SidebarSchema.d.ts +24 -1
- package/dist/config/validators/SidebarSchema.js +80 -44
- package/dist/config/validators/SidebarSchema.js.map +1 -1
- package/dist/config/validators/icon-types.d.ts +1 -0
- package/dist/config/validators/icon-types.js +2 -0
- package/dist/config/validators/icon-types.js.map +1 -0
- package/dist/config/validators/validate.d.ts +4690 -332
- package/dist/config/validators/validate.js +273 -82
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.js +4 -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/authentication/AuthenticationPlugin.d.ts +11 -4
- package/dist/lib/authentication/AuthenticationPlugin.js +16 -1
- package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +4 -5
- package/dist/lib/authentication/components/CallbackHandler.js +25 -31
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/authentication/components/SignIn.d.ts +1 -1
- package/dist/lib/authentication/components/SignIn.js +5 -2
- package/dist/lib/authentication/components/SignIn.js.map +1 -1
- package/dist/lib/authentication/components/SignOut.js +2 -2
- 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 +4 -1
- package/dist/lib/authentication/components/SignUp.js.map +1 -1
- package/dist/lib/authentication/hook.d.ts +6 -4
- package/dist/lib/authentication/hook.js +12 -4
- 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 +15 -13
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/authentication/providers/clerk.d.ts +2 -2
- package/dist/lib/authentication/providers/clerk.js +116 -47
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/openid.d.ts +21 -19
- package/dist/lib/authentication/providers/openid.js +62 -69
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/authentication/providers/supabase.d.ts +4 -0
- package/dist/lib/authentication/providers/supabase.js +115 -0
- package/dist/lib/authentication/providers/supabase.js.map +1 -0
- package/dist/lib/authentication/state.d.ts +23 -19
- package/dist/lib/authentication/state.js +34 -7
- package/dist/lib/authentication/state.js.map +1 -1
- 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 +13 -0
- package/dist/lib/components/Autocomplete.js +47 -0
- package/dist/lib/components/Autocomplete.js.map +1 -0
- package/dist/lib/components/Banner.js +1 -1
- 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 +4 -0
- package/dist/lib/components/BuildCheck.js +38 -0
- package/dist/lib/components/BuildCheck.js.map +1 -0
- 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 +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/Header.js +31 -12
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +5 -5
- package/dist/lib/components/Heading.js +1 -1
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/InlineCode.d.ts +2 -1
- package/dist/lib/components/InlineCode.js +2 -9
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/Layout.js +10 -21
- 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 -2
- package/dist/lib/components/Markdown.js +10 -14
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +14 -7
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/NotFoundPage.js +2 -2
- package/dist/lib/components/NotFoundPage.js.map +1 -1
- 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/ReactMarkdown.d.ts +29 -0
- package/dist/lib/components/ReactMarkdown.js +182 -0
- package/dist/lib/components/ReactMarkdown.js.map +1 -0
- package/dist/lib/components/Search.d.ts +3 -1
- package/dist/lib/components/Search.js +9 -3
- 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.js +163 -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 +71 -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 +3 -0
- package/dist/lib/components/TopNavigation.js +53 -8
- package/dist/lib/components/TopNavigation.js.map +1 -1
- 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 +13 -0
- package/dist/lib/components/cache.js +20 -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/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 +29 -23
- package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +10 -14
- package/dist/lib/components/context/ZudokuContext.js +40 -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 +59 -16
- package/dist/lib/components/index.js +27 -6
- package/dist/lib/components/index.js.map +1 -1
- 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/Sidebar.d.ts +5 -1
- package/dist/lib/components/navigation/Sidebar.js +4 -8
- package/dist/lib/components/navigation/Sidebar.js.map +1 -1
- package/dist/lib/components/navigation/SidebarBadge.d.ts +6 -3
- package/dist/lib/components/navigation/SidebarBadge.js +13 -11
- package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.d.ts +3 -3
- package/dist/lib/components/navigation/SidebarCategory.js +32 -14
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarItem.d.ts +3 -4
- package/dist/lib/components/navigation/SidebarItem.js +23 -17
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
- package/dist/lib/components/navigation/SidebarWrapper.d.ts +7 -6
- package/dist/lib/components/navigation/SidebarWrapper.js +18 -3
- package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
- 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 +3 -0
- package/dist/lib/components/navigation/utils.js +19 -15
- 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 +52 -0
- package/dist/lib/core/RouteGuard.js.map +1 -0
- package/dist/lib/core/ZudokuContext.d.ts +112 -0
- package/dist/lib/core/ZudokuContext.js +70 -0
- package/dist/lib/core/ZudokuContext.js.map +1 -0
- package/dist/lib/core/plugins.d.ts +35 -17
- package/dist/lib/core/plugins.js +4 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/errors/ErrorAlert.d.ts +1 -1
- package/dist/lib/errors/ErrorAlert.js +13 -3
- package/dist/lib/errors/ErrorAlert.js.map +1 -1
- package/dist/lib/errors/RouterError.js +1 -1
- package/dist/lib/errors/RouterError.js.map +1 -1
- package/dist/lib/hooks/index.d.ts +3 -0
- package/dist/lib/hooks/index.js +5 -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.js +100 -0
- package/dist/lib/hooks/useEvent.test.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 +25 -1
- package/dist/lib/oas/graphql/index.js +216 -69
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/index.js +8 -3
- package/dist/lib/oas/parser/dereference/index.js.map +1 -1
- package/dist/lib/oas/parser/index.d.ts +8 -3
- package/dist/lib/oas/parser/index.js +7 -23
- 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 +83 -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 +26 -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 +16 -8
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/ProtectedRoute.js +1 -1
- 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 +55 -24
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +23 -13
- package/dist/lib/plugins/api-keys/index.js +48 -32
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/CustomPage.d.ts +2 -0
- package/dist/lib/plugins/custom-pages/CustomPage.js +11 -0
- package/dist/lib/plugins/custom-pages/CustomPage.js.map +1 -0
- package/dist/lib/plugins/custom-pages/index.d.ts +10 -0
- package/dist/lib/plugins/custom-pages/index.js +11 -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 +17 -4
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/index.d.ts +8 -7
- package/dist/lib/plugins/markdown/index.js +31 -3
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/markdown/resolver.d.ts +32 -0
- package/dist/lib/plugins/markdown/resolver.js +46 -0
- package/dist/lib/plugins/markdown/resolver.js.map +1 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +5 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.js +25 -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 +29 -14
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/Endpoint.js +13 -16
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/OasProvider.d.ts +8 -0
- package/dist/lib/plugins/openapi/OasProvider.js +29 -0
- package/dist/lib/plugins/openapi/OasProvider.js.map +1 -0
- package/dist/lib/plugins/openapi/OperationList.d.ts +6 -3
- package/dist/lib/plugins/openapi/OperationList.js +107 -27
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.d.ts +5 -3
- package/dist/lib/plugins/openapi/OperationListItem.js +12 -6
- 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 +45 -0
- package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -0
- package/dist/lib/plugins/openapi/ParameterList.d.ts +2 -1
- package/dist/lib/plugins/openapi/ParameterList.js +3 -2
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +19 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +4 -2
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +12 -3
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +3 -4
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +5 -9
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +4 -6
- 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 +53 -0
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
- package/dist/lib/plugins/openapi/Sidecar.d.ts +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +114 -65
- 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 +9 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js +76 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -0
- package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js.map +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 +5 -2
- 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/ResponseContent.d.ts +12 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -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 +8 -46
- package/dist/lib/plugins/openapi/graphql/gql.js +6 -13
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +141 -25
- package/dist/lib/plugins/openapi/graphql/graphql.js +238 -662
- 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 +74 -104
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +57 -3
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +6 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +8 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Headers.d.ts +4 -4
- package/dist/lib/plugins/openapi/playground/Headers.js +84 -5
- 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 +14 -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 +8 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +9 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +5 -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 +5 -7
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +37 -2
- package/dist/lib/plugins/openapi/playground/Playground.js +133 -70
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +2 -2
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +24 -18
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +8 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/SubmitButton.js +22 -0
- package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +17 -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/result-panel/RequestTab.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +101 -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 +9 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +17 -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/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 +194 -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 +159 -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/LogicalGroup/LogicalGroup.d.ts +1 -2
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +2 -2
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +2 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +2 -2
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +1 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +1 -1
- 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 +11 -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 +2 -2
- package/dist/lib/plugins/openapi/schema/SchemaView.js +38 -49
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/utils.d.ts +8 -1
- package/dist/lib/plugins/openapi/schema/utils.js +15 -4
- package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
- package/dist/lib/plugins/openapi/state.d.ts +25 -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/createSidebarCategory.d.ts +9 -0
- package/dist/lib/plugins/openapi/util/createSidebarCategory.js +23 -0
- package/dist/lib/plugins/openapi/util/createSidebarCategory.js.map +1 -0
- package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +1 -2
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js +80 -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 +24 -5
- package/dist/lib/plugins/search-inkeep/index.js +41 -5
- package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/inkeep.d.ts +3 -4
- 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 +32 -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 +42 -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 +35 -0
- package/dist/lib/shiki.js +103 -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 +8 -0
- package/dist/lib/ui/Alert.js +23 -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 +22 -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 +9 -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 +3 -2
- 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 +16 -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 +6 -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 +35 -0
- package/dist/lib/ui/Command.js.map +1 -0
- package/dist/lib/ui/Dialog.js +23 -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/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/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/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/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/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/Select.js +27 -0
- package/dist/lib/ui/Select.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 +10 -0
- package/dist/lib/ui/SyntaxHighlight.js +14 -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 +7 -0
- package/dist/lib/ui/Tooltip.js +11 -0
- package/dist/lib/ui/Tooltip.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 +30 -21
- package/dist/lib/util/MdxComponents.js +17 -15
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/createVariantComponent.d.ts +2 -2
- 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/invariant.d.ts +9 -0
- package/dist/lib/util/invariant.js +7 -3
- 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/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/traverse.d.ts +3 -0
- package/dist/lib/util/traverse.js +23 -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/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 +42 -37
- 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/vite/api/SchemaManager.d.ts +36 -0
- package/dist/vite/api/SchemaManager.js +122 -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 +85 -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 +313 -0
- package/dist/vite/api/schema-codegen.test.js.map +1 -0
- package/dist/vite/build.js +83 -12
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +2 -15
- package/dist/vite/config.js +121 -144
- 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 +5 -0
- package/dist/vite/css/plugin.js +79 -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 +11 -4
- package/dist/vite/dev-server.js +83 -22
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/error-handler.d.ts +1 -1
- package/dist/vite/error-handler.js +1 -1
- package/dist/vite/error-handler.js.map +1 -1
- package/dist/vite/html.d.ts +6 -2
- package/dist/vite/html.js +11 -10
- package/dist/vite/html.js.map +1 -1
- 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 -2
- package/dist/vite/plugin-api-keys.js +10 -5
- package/dist/vite/plugin-api-keys.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +2 -2
- package/dist/vite/plugin-api.js +145 -32
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-auth.d.ts +2 -2
- package/dist/vite/plugin-auth.js +7 -4
- package/dist/vite/plugin-auth.js.map +1 -1
- package/dist/vite/plugin-component.d.ts +2 -2
- package/dist/vite/plugin-component.js +22 -13
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-config-reload.d.ts +4 -4
- package/dist/vite/plugin-config-reload.js +15 -8
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-config.d.ts +2 -3
- package/dist/vite/plugin-config.js +26 -3
- package/dist/vite/plugin-config.js.map +1 -1
- package/dist/vite/plugin-configure-tailwind.d.ts +3 -0
- package/dist/vite/plugin-configure-tailwind.js +37 -0
- package/dist/vite/plugin-configure-tailwind.js.map +1 -0
- package/dist/vite/plugin-custom-pages.d.ts +4 -0
- package/dist/vite/plugin-custom-pages.js +30 -0
- package/dist/vite/plugin-custom-pages.js.map +1 -0
- package/dist/vite/plugin-docs.d.ts +3 -3
- package/dist/vite/plugin-docs.js +57 -29
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-docs.test.js +15 -23
- package/dist/vite/plugin-docs.test.js.map +1 -1
- package/dist/vite/plugin-frontmatter.d.ts +2 -1
- package/dist/vite/plugin-frontmatter.js +28 -24
- package/dist/vite/plugin-frontmatter.js.map +1 -1
- package/dist/vite/plugin-mdx.d.ts +2 -8
- package/dist/vite/plugin-mdx.js +96 -13
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-redirect.d.ts +2 -2
- package/dist/vite/plugin-redirect.js +3 -3
- package/dist/vite/plugin-redirect.js.map +1 -1
- package/dist/vite/plugin-search.d.ts +3 -0
- package/dist/vite/plugin-search.js +30 -0
- package/dist/vite/plugin-search.js.map +1 -0
- package/dist/vite/plugin-shiki-register.d.ts +3 -0
- package/dist/vite/plugin-shiki-register.js +38 -0
- package/dist/vite/plugin-shiki-register.js.map +1 -0
- package/dist/vite/plugin-sidebar.d.ts +5 -3
- package/dist/vite/plugin-sidebar.js +26 -10
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/plugin-theme-css.d.ts +6 -0
- package/dist/vite/plugin-theme-css.js +118 -0
- package/dist/vite/plugin-theme-css.js.map +1 -0
- package/dist/vite/plugin.d.ts +2 -3
- package/dist/vite/plugin.js +18 -6
- package/dist/vite/plugin.js.map +1 -1
- package/dist/vite/prerender/FileWritingResponse.d.ts +25 -0
- package/dist/vite/prerender/FileWritingResponse.js +51 -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 +32 -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 +109 -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 +59 -0
- package/dist/vite/prerender/worker.js.map +1 -0
- package/dist/vite/remarkStaticGeneration.d.ts +3 -0
- package/dist/vite/remarkStaticGeneration.js +125 -0
- package/dist/vite/remarkStaticGeneration.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/sitemap.d.ts +1 -1
- package/dist/vite/sitemap.js +2 -1
- package/dist/vite/sitemap.js.map +1 -1
- package/dist/zuplo/enrich-with-zuplo.d.ts +5 -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 +8 -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 +26 -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-u7M2QYds.js +51 -0
- package/lib/Button-u7M2QYds.js.map +1 -0
- package/lib/Callout-CtCQJ6Cc.js +230 -0
- package/lib/Callout-CtCQJ6Cc.js.map +1 -0
- package/lib/Card-DkH-AU1V.js +61 -0
- package/lib/Card-DkH-AU1V.js.map +1 -0
- package/lib/CategoryHeading-BA7lKNWz.js +10 -0
- package/lib/CategoryHeading-BA7lKNWz.js.map +1 -0
- package/lib/ClientOnly-E7hGysn1.js +11 -0
- package/lib/ClientOnly-E7hGysn1.js.map +1 -0
- package/lib/Dialog-irKZWXGg.js +99 -0
- package/lib/Dialog-irKZWXGg.js.map +1 -0
- package/lib/Drawer-DZ214i5V.js +1133 -0
- package/lib/Drawer-DZ214i5V.js.map +1 -0
- package/lib/Markdown-BNG8bTDA.js +7691 -0
- package/lib/Markdown-BNG8bTDA.js.map +1 -0
- package/lib/MdxPage-C-P_N-H3.js +84 -0
- package/lib/MdxPage-C-P_N-H3.js.map +1 -0
- package/lib/OasProvider-DjFXGgWa.js +33 -0
- package/lib/OasProvider-DjFXGgWa.js.map +1 -0
- package/lib/OperationList-CchpZz4h.js +5141 -0
- package/lib/OperationList-CchpZz4h.js.map +1 -0
- package/lib/Pagination-BbcrfwgM.js +36 -0
- package/lib/Pagination-BbcrfwgM.js.map +1 -0
- package/lib/RouteGuard-CIyGFkFD.js +55 -0
- package/lib/RouteGuard-CIyGFkFD.js.map +1 -0
- package/lib/SchemaList-CrQd3KiR.js +160 -0
- package/lib/SchemaList-CrQd3KiR.js.map +1 -0
- package/lib/SchemaView-CQ_hMc8m.js +375 -0
- package/lib/SchemaView-CQ_hMc8m.js.map +1 -0
- package/lib/SignUp-DSn8NjRS.js +63 -0
- package/lib/SignUp-DSn8NjRS.js.map +1 -0
- package/lib/Slot-Dw-g06lX.js +160 -0
- package/lib/Slot-Dw-g06lX.js.map +1 -0
- package/lib/Spinner-mNLZ6awP.js +7 -0
- package/lib/Spinner-mNLZ6awP.js.map +1 -0
- package/lib/SyntaxHighlight-DTgNHbGp.js +9107 -0
- package/lib/SyntaxHighlight-DTgNHbGp.js.map +1 -0
- package/lib/Toc-Ccycwd-T.js +92 -0
- package/lib/Toc-Ccycwd-T.js.map +1 -0
- package/lib/chunk-BAXFHI7N-C9WnHsLV.js +1839 -0
- package/lib/chunk-BAXFHI7N-C9WnHsLV.js.map +1 -0
- package/lib/circular-DdByufCW.js +14929 -0
- package/lib/circular-DdByufCW.js.map +1 -0
- package/lib/cn-BOFVZgHd.js +2744 -0
- package/lib/cn-BOFVZgHd.js.map +1 -0
- package/lib/createServer-BL0QaN9q.js +12494 -0
- package/lib/createServer-BL0QaN9q.js.map +1 -0
- package/lib/hook-BpiAQVtd.js +1446 -0
- package/lib/hook-BpiAQVtd.js.map +1 -0
- package/lib/index--oeBayMa.js +86 -0
- package/lib/index--oeBayMa.js.map +1 -0
- package/lib/index-BjB1BHZu.js +3268 -0
- package/lib/index-BjB1BHZu.js.map +1 -0
- package/lib/index-BvvmIczU.js +2094 -0
- package/lib/index-BvvmIczU.js.map +1 -0
- package/lib/index-C1S4w-gl.js +36 -0
- package/lib/index-C1S4w-gl.js.map +1 -0
- package/lib/index-CrcNWbel.js +316 -0
- package/lib/index-CrcNWbel.js.map +1 -0
- package/lib/index-rsSMIHTN.js +4977 -0
- package/lib/index-rsSMIHTN.js.map +1 -0
- package/lib/index-zddirpDj.js +4822 -0
- package/lib/index-zddirpDj.js.map +1 -0
- package/lib/index.esm-BFcSKCe-.js +683 -0
- package/lib/index.esm-BFcSKCe-.js.map +1 -0
- package/lib/index.esm-DSfX_eMP.js +1216 -0
- package/lib/index.esm-DSfX_eMP.js.map +1 -0
- package/lib/invariant-DAFpPywt.js +48 -0
- package/lib/invariant-DAFpPywt.js.map +1 -0
- package/lib/jsx-runtime-C5mzlN2N.js +285 -0
- package/lib/jsx-runtime-C5mzlN2N.js.map +1 -0
- package/lib/mutation-CJrIFMgY.js +196 -0
- package/lib/mutation-CJrIFMgY.js.map +1 -0
- package/lib/objectEntries-yMIkr2mI.js +5 -0
- package/lib/objectEntries-yMIkr2mI.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/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 +51 -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 +28 -0
- package/lib/ui/Badge.js.map +1 -0
- package/lib/ui/Breadcrumb.js +94 -0
- package/lib/ui/Breadcrumb.js.map +1 -0
- package/lib/ui/Button.js +52 -0
- package/lib/ui/Button.js.map +1 -0
- package/lib/ui/Callout.js +96 -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 +29 -0
- package/lib/ui/Checkbox.js.map +1 -0
- package/lib/ui/CodeBlock.js +83 -0
- package/lib/ui/CodeBlock.js.map +1 -0
- package/lib/ui/Collapsible.js +8 -0
- package/lib/ui/Collapsible.js.map +1 -0
- package/lib/ui/Command.js +156 -0
- package/lib/ui/Command.js.map +1 -0
- package/lib/ui/Dialog.js +101 -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/Form.js +95 -0
- package/lib/ui/Form.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/Label.js +20 -0
- package/lib/ui/Label.js.map +1 -0
- package/lib/ui/Pagination.js +106 -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/ScrollArea.js +39 -0
- package/lib/ui/ScrollArea.js.map +1 -0
- package/lib/ui/Select.js +122 -0
- package/lib/ui/Select.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 +10 -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 +24 -0
- package/lib/ui/Tooltip.js.map +1 -0
- package/lib/ui/util.js +6 -0
- package/lib/ui/util.js.map +1 -0
- package/lib/useExposedProps-DG8J6ewJ.js +9 -0
- package/lib/useExposedProps-DG8J6ewJ.js.map +1 -0
- package/lib/useLatest-hmRS46UF.js +11 -0
- package/lib/useLatest-hmRS46UF.js.map +1 -0
- package/lib/useMutation-B2LNwShM.js +97 -0
- package/lib/useMutation-B2LNwShM.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +32 -30
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +115 -58
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +628 -628
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +34 -3364
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +19 -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 +117 -0
- package/lib/zudoku.plugin-api-catalog.js.map +1 -0
- package/lib/zudoku.plugin-api-keys.js +5019 -212
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +22 -0
- package/lib/zudoku.plugin-custom-pages.js.map +1 -0
- package/lib/zudoku.plugin-markdown.js +70 -27
- 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 +52 -28
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +230 -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/package.json +186 -105
- package/src/app/ZuploBuildConfig.ts +33 -0
- package/src/app/defaultTheme.css +54 -0
- package/src/app/demo-cdn.html +31 -31
- package/src/app/demo.html +1 -1
- package/src/app/demo.tsx +1 -5
- package/src/app/entry.client.tsx +71 -3
- package/src/app/entry.server.tsx +81 -60
- package/src/app/env.ts +35 -0
- package/src/app/font.geist.css +73 -0
- package/src/app/main.css +202 -131
- package/src/app/main.tsx +81 -71
- package/src/app/sentry.ts +24 -0
- package/src/app/standalone.tsx +2 -6
- package/src/lib/MissingIcon.tsx +22 -0
- package/src/lib/authentication/AuthenticationPlugin.tsx +22 -5
- package/src/lib/authentication/authentication.ts +5 -6
- package/src/lib/authentication/components/CallbackHandler.tsx +30 -51
- package/src/lib/authentication/components/SignIn.tsx +35 -2
- package/src/lib/authentication/components/SignOut.tsx +3 -2
- package/src/lib/authentication/components/SignUp.tsx +35 -1
- package/src/lib/authentication/hook.ts +13 -4
- package/src/lib/authentication/providers/auth0.tsx +28 -18
- package/src/lib/authentication/providers/clerk.tsx +136 -53
- package/src/lib/authentication/providers/openid.tsx +87 -84
- package/src/lib/authentication/providers/supabase.tsx +157 -0
- package/src/lib/authentication/state.ts +56 -25
- package/src/lib/authentication/use-broadcast/LICENSE.md +9 -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 +113 -0
- package/src/lib/components/Banner.tsx +2 -1
- package/src/lib/components/Bootstrap.tsx +43 -16
- package/src/lib/components/BuildCheck.tsx +75 -0
- package/src/lib/components/ClientOnly.tsx +6 -3
- package/src/lib/components/DeveloperHint.tsx +6 -1
- package/src/lib/components/ErrorPage.tsx +1 -1
- package/src/lib/components/Footer.tsx +136 -0
- package/src/lib/components/Header.tsx +108 -55
- package/src/lib/components/Heading.tsx +14 -14
- package/src/lib/components/InlineCode.tsx +13 -16
- package/src/lib/components/Layout.tsx +36 -59
- package/src/lib/components/Main.tsx +51 -0
- package/src/lib/components/Markdown.tsx +33 -29
- package/src/lib/components/MobileTopNavigation.tsx +43 -28
- package/src/lib/components/NotFoundPage.tsx +2 -2
- package/src/lib/components/Pagination.tsx +44 -0
- package/src/lib/components/PathRenderer.tsx +61 -0
- package/src/lib/components/ReactMarkdown.license.txt +21 -0
- package/src/lib/components/ReactMarkdown.tsx +264 -0
- package/src/lib/components/Search.tsx +19 -8
- package/src/lib/components/Slot.test.tsx +456 -0
- package/src/lib/components/Slot.tsx +64 -0
- package/src/lib/components/StatusPage.tsx +91 -0
- package/src/lib/components/ThemeSwitch.tsx +46 -0
- package/src/lib/components/TopNavigation.tsx +95 -25
- package/src/lib/components/Zudoku.tsx +119 -0
- package/src/lib/components/cache.ts +23 -0
- package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
- 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 +34 -36
- package/src/lib/components/context/ZudokuContext.ts +53 -29
- package/src/lib/components/context/ZudokuProvider.tsx +4 -3
- package/src/lib/components/index.ts +33 -6
- package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
- package/src/lib/components/navigation/Sidebar.tsx +39 -30
- package/src/lib/components/navigation/SidebarBadge.tsx +17 -12
- package/src/lib/components/navigation/SidebarCategory.tsx +67 -54
- package/src/lib/components/navigation/SidebarItem.tsx +38 -51
- package/src/lib/components/navigation/SidebarWrapper.tsx +42 -22
- 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 +24 -17
- package/src/lib/core/RouteGuard.tsx +96 -0
- package/src/lib/core/ZudokuContext.ts +198 -0
- package/src/lib/core/plugins.ts +54 -22
- package/src/lib/errors/ErrorAlert.tsx +36 -15
- package/src/lib/errors/RouterError.tsx +1 -1
- package/src/lib/hooks/index.ts +5 -0
- package/src/lib/hooks/useEvent.test.tsx +149 -0
- package/src/lib/hooks/useEvent.ts +41 -0
- package/src/lib/icons.ts +1 -0
- package/src/lib/oas/graphql/circular.ts +58 -0
- package/src/lib/oas/graphql/index.ts +298 -104
- package/src/lib/oas/parser/dereference/index.ts +10 -4
- package/src/lib/oas/parser/index.ts +14 -30
- package/src/lib/oas/parser/upgrade/index.ts +103 -38
- package/src/lib/plugins/api-catalog/Catalog.tsx +73 -0
- package/src/lib/plugins/api-catalog/index.tsx +115 -0
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +63 -47
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +1 -1
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +293 -113
- package/src/lib/plugins/api-keys/index.tsx +107 -59
- package/src/lib/plugins/custom-pages/CustomPage.tsx +18 -0
- package/src/lib/plugins/custom-pages/index.tsx +24 -0
- package/src/lib/plugins/markdown/MdxPage.tsx +53 -49
- package/src/lib/plugins/markdown/index.tsx +53 -13
- package/src/lib/plugins/markdown/resolver.ts +59 -0
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +86 -0
- package/src/lib/plugins/openapi/ColorizedParam.tsx +49 -23
- package/src/lib/plugins/openapi/Endpoint.tsx +19 -22
- package/src/lib/plugins/openapi/OasProvider.tsx +51 -0
- package/src/lib/plugins/openapi/OperationList.tsx +240 -70
- package/src/lib/plugins/openapi/OperationListItem.tsx +122 -93
- package/src/lib/plugins/openapi/ParamInfos.tsx +90 -0
- package/src/lib/plugins/openapi/ParameterList.tsx +4 -0
- package/src/lib/plugins/openapi/ParameterListItem.tsx +78 -31
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +21 -2
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +15 -33
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +36 -59
- package/src/lib/plugins/openapi/SchemaList.tsx +163 -0
- package/src/lib/plugins/openapi/Sidecar.tsx +181 -114
- package/src/lib/plugins/openapi/SidecarBox.tsx +4 -16
- package/src/lib/plugins/openapi/SidecarExamples.tsx +168 -0
- package/src/lib/plugins/openapi/SimpleSelect.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 +8 -2
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +45 -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/ResponseContent.tsx +104 -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 +11 -18
- package/src/lib/plugins/openapi/graphql/gql.ts +38 -30
- package/src/lib/plugins/openapi/graphql/graphql.ts +386 -682
- package/src/lib/plugins/openapi/index.tsx +111 -138
- package/src/lib/plugins/openapi/interfaces.ts +58 -3
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +52 -0
- package/src/lib/plugins/openapi/playground/Headers.tsx +165 -36
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +74 -0
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +41 -0
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +13 -0
- package/src/lib/plugins/openapi/playground/PathParams.tsx +39 -64
- package/src/lib/plugins/openapi/playground/Playground.tsx +386 -245
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +7 -4
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +87 -89
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +51 -0
- package/src/lib/plugins/openapi/playground/SubmitButton.tsx +75 -0
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
- package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +73 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +230 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +123 -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/processors/removeExtensions.test.ts +222 -0
- package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -0
- package/src/lib/plugins/openapi/processors/removeParameters.test.ts +182 -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/LogicalGroup/LogicalGroup.tsx +1 -8
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +3 -0
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +6 -3
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +160 -0
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +105 -138
- package/src/lib/plugins/openapi/schema/utils.ts +32 -5
- package/src/lib/plugins/openapi/state.ts +36 -0
- package/src/lib/plugins/openapi/util/createSidebarCategory.tsx +37 -0
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +95 -44
- 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 +80 -25
- package/src/lib/plugins/search-inkeep/inkeep.ts +3 -9
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +164 -0
- package/src/lib/plugins/search-pagefind/ResultList.tsx +105 -0
- package/src/lib/plugins/search-pagefind/get-results.tsx +75 -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 +133 -0
- package/src/lib/ui/Accordion.tsx +56 -0
- package/src/lib/ui/ActionButton.tsx +28 -0
- package/src/lib/ui/Alert.tsx +59 -0
- package/src/lib/ui/AlertDialog.tsx +139 -0
- package/src/lib/ui/AspectRatio.tsx +5 -0
- package/src/lib/ui/Badge.tsx +37 -0
- package/src/lib/ui/Breadcrumb.tsx +115 -0
- package/src/lib/ui/Button.tsx +13 -8
- package/src/lib/ui/Callout.tsx +36 -16
- package/src/lib/ui/Card.tsx +1 -1
- package/src/lib/ui/Carousel.tsx +260 -0
- package/src/lib/ui/Checkbox.tsx +29 -0
- package/src/lib/ui/CodeBlock.tsx +102 -0
- package/src/lib/ui/Collapsible.tsx +9 -0
- package/src/lib/ui/Command.tsx +193 -0
- package/src/lib/ui/Dialog.tsx +120 -0
- package/src/lib/ui/Drawer.tsx +38 -36
- package/src/lib/ui/DropdownMenu.tsx +4 -4
- package/src/lib/ui/Form.tsx +177 -0
- package/src/lib/ui/HoverCard.tsx +27 -0
- package/src/lib/ui/Input.tsx +2 -3
- package/src/lib/ui/Label.tsx +24 -0
- package/src/lib/ui/Pagination.tsx +117 -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/ScrollArea.tsx +46 -0
- package/src/lib/ui/Select.tsx +157 -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 +27 -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 +28 -0
- package/src/lib/ui/util.tsx +3 -0
- package/src/lib/util/MdxComponents.tsx +37 -24
- package/src/lib/util/createVariantComponent.tsx +2 -2
- package/src/lib/util/detectOS.ts +9 -0
- package/src/lib/util/ensureArray.ts +3 -0
- package/src/lib/util/invariant.ts +15 -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/scrollIntoViewIfNeeded.ts +18 -0
- package/src/lib/util/traverse.ts +34 -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/useExposedProps.tsx +27 -0
- package/src/lib/util/useIsomorphicLayoutEffect.ts +5 -0
- package/src/lib/util/useLatest.ts +18 -0
- package/src/lib/util/useOnScreen.ts +34 -0
- package/src/lib/util/useScrollToAnchor.ts +48 -39
- 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/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/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/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/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.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/client.d.ts +0 -1
- 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/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.js +0 -23
- package/dist/lib/components/Dialog.js.map +0 -1
- 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/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 -21
- 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/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/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/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-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/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-ovR-zHRq.js +0 -10
- package/lib/CategoryHeading-ovR-zHRq.js.map +0 -1
- package/lib/DeveloperHint-YeWHKvyr.js +0 -16
- package/lib/DeveloperHint-YeWHKvyr.js.map +0 -1
- package/lib/ErrorPage-CsZAN_za.js +0 -16
- package/lib/ErrorPage-CsZAN_za.js.map +0 -1
- package/lib/InkeepCustomTrigger-CE5-K5ex.js +0 -6
- package/lib/InkeepCustomTrigger-CE5-K5ex.js.map +0 -1
- package/lib/Input-CtVUl3eT.js +0 -2198
- package/lib/Input-CtVUl3eT.js.map +0 -1
- package/lib/Markdown-DapSf3wG.js +0 -20281
- package/lib/Markdown-DapSf3wG.js.map +0 -1
- package/lib/MdxPage-BqBWsXZ1.js +0 -172
- package/lib/MdxPage-BqBWsXZ1.js.map +0 -1
- package/lib/OperationList-CYrmxPa8.js +0 -602
- package/lib/OperationList-CYrmxPa8.js.map +0 -1
- package/lib/Route-Q5mqNQrv.js +0 -14
- package/lib/Route-Q5mqNQrv.js.map +0 -1
- package/lib/SidebarBadge-Dx7jtnoA.js +0 -498
- package/lib/SidebarBadge-Dx7jtnoA.js.map +0 -1
- package/lib/SlotletProvider-D3UD5Go3.js +0 -238
- package/lib/SlotletProvider-D3UD5Go3.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-BP8Uzflt.js +0 -17916
- package/lib/assets/worker-BP8Uzflt.js.map +0 -1
- package/lib/index-BG0g4WW0.js +0 -1771
- package/lib/index-BG0g4WW0.js.map +0 -1
- package/lib/index-BlJ2rj99.js +0 -5815
- package/lib/index-BlJ2rj99.js.map +0 -1
- package/lib/index-BngPzhKn.js +0 -124
- package/lib/index-BngPzhKn.js.map +0 -1
- package/lib/index-CLd8ycZz.js +0 -4790
- package/lib/index-CLd8ycZz.js.map +0 -1
- package/lib/index-Dolisrci.js +0 -2814
- package/lib/index-Dolisrci.js.map +0 -1
- package/lib/index-LNp6rxyU.js +0 -2094
- package/lib/index-LNp6rxyU.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/state-hNe1dw4B.js +0 -548
- package/lib/state-hNe1dw4B.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 -16059
- 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/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 -38
- 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/ResponseTab.tsx +0 -76
- 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/dist/lib/components/{context/PluginSystem.d.ts → Slot.test.d.ts} +0 -0
- /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
- /package/dist/lib/{plugins/openapi/client/worker.d.ts → hooks/useEvent.test.d.ts} +0 -0
- /package/dist/lib/{components → ui}/Dialog.d.ts +0 -0
- /package/dist/lib/{components → ui}/Select.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zudoku.components.js","sources":["../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router-dom@6.25.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-router-dom/server.js","../src/lib/components/Bootstrap.tsx","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../node_modules/.pnpm/react-error-boundary@4.0.13_react@18.3.1/node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../src/lib/core/plugins.ts","../src/lib/core/DevPortalContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../../../node_modules/.pnpm/@radix-ui+react-menu@2.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-menu/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-dropdown-menu@2.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18._hfj62zklt5zw6dxs7nv7d5revq/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../src/lib/ui/DropdownMenu.tsx","../src/lib/components/Banner.tsx","../../../node_modules/.pnpm/vaul@0.9.2_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/vaul/dist/index.mjs","../src/lib/ui/Drawer.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Search.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/ThemeProvider.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/DevPortal.tsx","../src/lib/components/navigation/SidebarCategory.tsx","../src/lib/components/navigation/SidebarItem.tsx","../src/lib/util/useScrollToAnchor.ts","../src/lib/util/useScrollToTop.ts","../src/lib/components/navigation/SidebarWrapper.tsx","../src/lib/components/navigation/Sidebar.tsx","../src/lib/components/Layout.tsx","../src/lib/components/index.ts"],"sourcesContent":["import { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function ServerError({ error }: { error: unknown }) {\n return <ErrorAlert error={error} />;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\nvar router = require('@remix-run/router');\nvar reactRouter = require('react-router');\nvar reactRouterDom = require('react-router-dom');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n\n/**\n * A `<Router>` that may not navigate to any other location. This is useful\n * on the server where there is no stateful UI.\n */\nfunction StaticRouter({\n basename,\n children,\n location: locationProp = \"/\",\n future\n}) {\n if (typeof locationProp === \"string\") {\n locationProp = reactRouterDom.parsePath(locationProp);\n }\n let action = router.Action.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__*/React__namespace.createElement(reactRouterDom.Router, {\n basename: basename,\n children: children,\n location: location,\n navigationType: action,\n navigator: staticNavigator,\n future: future,\n static: true\n });\n}\n/**\n * A Data Router that may not navigate to any other location. This is useful\n * on the server where there is no stateful UI.\n */\nfunction StaticRouterProvider({\n context,\n router: router$1,\n hydrate = true,\n nonce\n}) {\n !(router$1 && context) ? process.env.NODE_ENV !== \"production\" ? router.UNSAFE_invariant(false, \"You must provide `router` and `context` to <StaticRouterProvider>\") : router.UNSAFE_invariant(false) : void 0;\n let dataRouterContext = {\n router: router$1,\n navigator: getStatelessNavigator(),\n static: true,\n staticContext: context,\n basename: context.basename || \"/\"\n };\n let fetchersContext = new Map();\n let hydrateScript = \"\";\n if (hydrate !== false) {\n let data = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors)\n };\n // Use JSON.parse here instead of embedding a raw JS object here to speed\n // up parsing on the client. Dual-stringify is needed to ensure all quotes\n // are properly escaped in the resulting string. See:\n // https://v8.dev/blog/cost-of-javascript-2019#json\n let json = htmlEscape(JSON.stringify(JSON.stringify(data)));\n hydrateScript = `window.__staticRouterHydrationData = JSON.parse(${json});`;\n }\n let {\n state\n } = dataRouterContext.router;\n return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_FetchersContext.Provider, {\n value: fetchersContext\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_ViewTransitionContext.Provider, {\n value: {\n isTransitioning: false\n }\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.Router, {\n basename: dataRouterContext.basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: dataRouterContext.navigator,\n static: dataRouterContext.static,\n future: {\n v7_relativeSplatPath: router$1.future.v7_relativeSplatPath\n }\n }, /*#__PURE__*/React__namespace.createElement(DataRoutes, {\n routes: router$1.routes,\n future: router$1.future,\n state: state\n })))))), hydrateScript ? /*#__PURE__*/React__namespace.createElement(\"script\", {\n suppressHydrationWarning: true,\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: hydrateScript\n }\n }) : null);\n}\nfunction DataRoutes({\n routes,\n future,\n state\n}) {\n return reactRouter.UNSAFE_useRoutesImpl(routes, undefined, state, 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 // Hey you! If you change this, please change the corresponding logic in\n // deserializeErrors in react-router-dom/index.tsx :)\n if (router.isRouteErrorResponse(val)) {\n serialized[key] = {\n ...val,\n __type: \"RouteErrorResponse\"\n };\n } else if (val instanceof Error) {\n // Do not serialize stack traces from SSR for security reasons\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(`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 replace(to) {\n throw new Error(`You cannot use navigator.replace() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${JSON.stringify(to)}, { replace: true })\\` somewhere ` + `in your app.`);\n },\n go(delta) {\n throw new Error(`You cannot use navigator.go() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${delta})\\` somewhere in your app.`);\n },\n back() {\n throw new Error(`You cannot use navigator.back() on the server because it is a stateless ` + `environment.`);\n },\n forward() {\n throw new Error(`You cannot use navigator.forward() on the server because it is a stateless ` + `environment.`);\n }\n };\n}\nfunction createStaticHandler(routes, opts) {\n return router.createStaticHandler(routes, {\n ...opts,\n mapRouteProperties: reactRouter.UNSAFE_mapRouteProperties\n });\n}\nfunction createStaticRouter(routes, context, opts = {}) {\n let manifest = {};\n let dataRoutes = router.UNSAFE_convertRoutesToDataRoutes(routes, reactRouter.UNSAFE_mapRouteProperties, undefined, manifest);\n // Because our context matches may be from a framework-agnostic set of\n // routes passed to createStaticHandler(), we update them here with our\n // newly created/enhanced data routes\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 v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: opts.future?.v7_partialHydration === true,\n v7_prependBasename: false,\n v7_relativeSplatPath: opts.future?.v7_relativeSplatPath === true,\n v7_skipActionErrorRevalidation: false\n };\n },\n get state() {\n return {\n historyAction: router.Action.Pop,\n location: context.location,\n matches,\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: context.errors,\n initialized: true,\n navigation: router.IDLE_NAVIGATION,\n restoreScrollPosition: null,\n preventScrollReset: false,\n revalidation: \"idle\",\n fetchers: new Map(),\n blockers: new Map()\n };\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return undefined;\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 router.IDLE_FETCHER;\n },\n deleteFetcher() {\n throw msg(\"deleteFetcher\");\n },\n dispose() {\n throw msg(\"dispose\");\n },\n getBlocker() {\n return router.IDLE_BLOCKER;\n },\n deleteBlocker() {\n throw msg(\"deleteBlocker\");\n },\n patchRoutes() {\n throw msg(\"patchRoutes\");\n },\n _internalFetchControllers: new Map(),\n _internalActiveDeferreds: new Map(),\n _internalSetRoutes() {\n throw msg(\"_internalSetRoutes\");\n }\n };\n}\nfunction createHref(to) {\n return typeof to === \"string\" ? to : reactRouterDom.createPath(to);\n}\nfunction encodeLocation(to) {\n let href = typeof to === \"string\" ? to : reactRouterDom.createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n let encoded = ABSOLUTE_URL_REGEX.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}\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\nconst ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction htmlEscape(str) {\n return str.replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\n\nexports.StaticRouter = StaticRouter;\nexports.StaticRouterProvider = StaticRouterProvider;\nexports.createStaticHandler = createStaticHandler;\nexports.createStaticRouter = createStaticRouter;\n","import { type HelmetData, HelmetProvider } from \"@zudoku/react-helmet-async\";\nimport { StrictMode } from \"react\";\nimport { type createBrowserRouter, RouterProvider } from \"react-router-dom\";\nimport {\n type createStaticRouter,\n type StaticHandlerContext,\n StaticRouterProvider,\n} from \"react-router-dom/server.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\n\nconst Bootstrap = ({\n router,\n hydrate = false,\n}: {\n hydrate?: boolean;\n router: ReturnType<typeof createBrowserRouter>;\n}) => {\n return (\n <StrictMode>\n <HelmetProvider>\n <StaggeredRenderContext.Provider value={{ stagger: !hydrate }}>\n <RouterProvider router={router} />\n </StaggeredRenderContext.Provider>\n </HelmetProvider>\n </StrictMode>\n );\n};\n\nconst BootstrapStatic = ({\n router,\n context,\n helmetContext,\n}: {\n helmetContext: HelmetData[\"context\"];\n context: StaticHandlerContext;\n router: ReturnType<typeof createStaticRouter>;\n}) => (\n <StrictMode>\n <HelmetProvider context={helmetContext}>\n <StaticRouterProvider router={router} context={context} />\n </HelmetProvider>\n </StrictMode>\n);\n\nexport { Bootstrap, BootstrapStatic };\n","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Map();\n this.#mutationId = Date.now();\n }\n #mutations;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n const scope = scopeFor(mutation);\n const mutations = this.#mutations.get(scope) ?? [];\n mutations.push(mutation);\n this.#mutations.set(scope, mutations);\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n const scope = scopeFor(mutation);\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations.get(scope)?.filter((x) => x !== mutation);\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope);\n } else {\n this.#mutations.set(scope, mutations);\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const firstPendingMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m.state.status === \"pending\");\n return !firstPendingMutation || firstPendingMutation === mutation;\n }\n runNext(mutation) {\n const foundMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation);\n });\n });\n }\n getAll() {\n return [...this.#mutations.values()].flat();\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id ?? String(mutation.mutationId);\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const fetchFn = async () => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n const empty = { pages: [], pageParams: [] };\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n let result;\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n result = await fetchPage(\n empty,\n oldPageParams[0] ?? options.initialPageParam\n );\n const remainingPages = pages ?? oldPages.length;\n for (let i = 1; i < remainingPages; i++) {\n const param = getNextPageParam(options, result);\n result = await fetchPage(result, param);\n }\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n );\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams\n );\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const cachedData = this.getQueryData(options.queryKey);\n if (cachedData === void 0)\n return this.fetchQuery(options);\n else {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n cancelQueries(filters = {}, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters = {}, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters.refetchType === \"none\") {\n return Promise.resolve();\n }\n const refetchFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n refetchQueries(filters = {}, options) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.enabled !== true && defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","'use client';\nimport { createContext, Component, createElement, isValidElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback === null || isValidElement(fallback)) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","import { type ReactElement } from \"react\";\nimport { type RouteObject } from \"react-router-dom\";\nimport type { Sidebar } from \"../../config/validators/SidebarSchema.js\";\nimport { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { DevPortalContext, type ApiIdentity } from \"./DevPortalContext.js\";\n\nexport type DevPortalPlugin =\n | CommonPlugin\n | ProfileMenuPlugin\n | NavigationPlugin\n | ApiIdentityPlugin\n | SearchProviderPlugin;\n\nexport interface NavigationPlugin {\n getRoutes: () => RouteObject[];\n getSidebar?: (path: string) => Promise<Sidebar>;\n}\n\nexport interface ApiIdentityPlugin {\n getIdentities: (context: DevPortalContext) => Promise<ApiIdentity[]>;\n}\n\nexport interface SearchProviderPlugin {\n renderSearch: (o: {\n isOpen: boolean;\n onClose: () => void;\n }) => React.JSX.Element | null;\n}\n\nexport interface ProfileMenuPlugin {\n getProfileMenuItems: (context: DevPortalContext) => ProfileNavigationItem[];\n}\n\nexport type ProfileNavigationItem = {\n label: string;\n path?: string;\n children?: ProfileNavigationItem[];\n};\n\nexport interface CommonPlugin {\n initialize?: (\n context: DevPortalContext,\n ) => Promise<void | boolean> | void | boolean;\n getHead?: () => ReactElement | undefined;\n getMdxComponents?: () => MdxComponentsType;\n}\n\nexport const isProfileMenuPlugin = (\n obj: DevPortalPlugin,\n): obj is ProfileMenuPlugin =>\n \"getProfileMenuItems\" in obj && typeof obj.getProfileMenuItems === \"function\";\n\nexport const isNavigationPlugin = (\n obj: DevPortalPlugin,\n): obj is NavigationPlugin =>\n \"getRoutes\" in obj && typeof obj.getRoutes === \"function\";\n\nexport const isSearchPlugin = (\n obj: DevPortalPlugin,\n): obj is SearchProviderPlugin =>\n \"renderSearch\" in obj && typeof obj.renderSearch === \"function\";\n\nexport const needsInitialization = (\n obj: DevPortalPlugin,\n): obj is CommonPlugin =>\n \"initialize\" in obj && typeof obj.initialize === \"function\";\n\nexport const hasHead = (obj: DevPortalPlugin): obj is CommonPlugin =>\n \"getHead\" in obj && typeof obj.getHead === \"function\";\n\nexport const isMdxProviderPlugin = (\n obj: DevPortalPlugin,\n): obj is CommonPlugin =>\n \"getMdxComponents\" in obj && typeof obj.getMdxComponents === \"function\";\n\nexport const isApiIdentityPlugin = (\n obj: DevPortalPlugin,\n): obj is ApiIdentityPlugin =>\n \"getIdentities\" in obj && typeof obj.getIdentities === \"function\";\n","import { QueryClient } from \"@tanstack/react-query\";\nimport { ReactNode } from \"react\";\nimport type { SidebarConfig } from \"../../config/validators/SidebarSchema.js\";\nimport { type AuthenticationProvider } from \"../authentication/authentication.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport { Slotlets } from \"../components/SlotletProvider.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport {\n type DevPortalPlugin,\n isApiIdentityPlugin,\n isNavigationPlugin,\n type NavigationPlugin,\n needsInitialization,\n} from \"./plugins.js\";\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Request;\n label: string;\n id: string;\n}\n\nexport const queryClient = new QueryClient();\n\nexport type ApiKeyCache = \"api-keys\";\nexport type DevPortalCacheKey = ApiKeyCache | string;\n\ntype Metadata = Partial<{\n title: string;\n description: string;\n logo: string;\n favicon: string;\n generator: string;\n applicationName: string;\n referrer: string;\n keywords: string[];\n authors: string[];\n creator: string;\n publisher: string;\n}>;\n\ntype Page = Partial<{\n pageTitle?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string;\n alt?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n}>;\n\nexport type ZudokuContextOptions = {\n metadata?: Metadata;\n page?: Page;\n authentication?: AuthenticationProvider;\n topNavigation?: Array<{ id: string; label: string; default?: string }>;\n sidebars?: SidebarConfig;\n plugins?: DevPortalPlugin[];\n slotlets?: Slotlets;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n};\n\nexport class DevPortalContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public sidebars: NonNullable<ZudokuContextOptions[\"sidebars\"]>;\n public topNavigation: NonNullable<ZudokuContextOptions[\"topNavigation\"]>;\n public meta: ZudokuContextOptions[\"metadata\"];\n public page: ZudokuContextOptions[\"page\"];\n public authentication?: ZudokuContextOptions[\"authentication\"];\n private navigationPlugins: NavigationPlugin[];\n\n constructor(config: ZudokuContextOptions) {\n this.plugins = config.plugins ?? [];\n this.topNavigation = config.topNavigation ?? [];\n this.sidebars = config.sidebars ?? {};\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = config.authentication;\n this.meta = config.metadata;\n this.page = config.page;\n }\n\n initialize = async (): Promise<void> => {\n await Promise.all(\n this.plugins\n .filter(needsInitialization)\n .map((plugin) => plugin.initialize?.(this)),\n );\n };\n\n invalidateCache = async (key: DevPortalCacheKey[]) => {\n await queryClient.invalidateQueries({ queryKey: key });\n };\n\n getApiIdentities = async () => {\n const keys = await Promise.all(\n this.plugins\n .filter(isApiIdentityPlugin)\n .map((plugin) => plugin.getIdentities(this)),\n );\n\n return keys.flat();\n };\n\n getPluginSidebar = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getSidebar?.(joinPath(path)),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n const accessToken = await this.authentication.getAccessToken();\n\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n\n return request;\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","\"use client\";\n\n// packages/react/menu/src/Menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dropdown-menu/src/DropdownMenu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composeRefs(forwardedRef, context.triggerRef),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\n\nimport { CheckIcon, ChevronRightIcon, DotIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <DotIcon className=\"h-4 w-4 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n","import { CircleXIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nconst COLOR_MAP = {\n info: \"bg-blue-500\",\n note: \"bg-gray-500\",\n tip: \"bg-green-600\",\n caution: \"bg-orange-500\",\n danger: \"bg-rose-500\",\n} as const;\n\nexport const Banner = () => {\n const { page } = useZudoku();\n const [isBannerOpen, setIsBannerOpen] = useState(true);\n\n if (!page?.banner || !isBannerOpen) {\n return <style>{`:root { --banner-height: 0px; }`}</style>;\n }\n\n const mappedColor =\n page.banner.color && page.banner.color in COLOR_MAP\n ? COLOR_MAP[page.banner.color as keyof typeof COLOR_MAP]\n : !page.banner.color\n ? \"bg-primary\"\n : undefined;\n\n const style = !mappedColor ? { backgroundColor: page.banner.color } : {};\n\n return (\n <div\n className={cn(\n \"relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center\",\n mappedColor,\n )}\n style={style}\n >\n <div className=\"w-full\">{page.banner.message}</div>\n {page.banner.dismissible && (\n <button\n type=\"button\"\n className=\"md:absolute md:right-4 -m-1.5 p-1.5 hover:bg-accent-foreground/10 rounded-md\"\n onClick={() => setIsBannerOpen(false)}\n >\n <CircleXIcon size={16} />\n </button>\n )}\n </div>\n );\n};\n","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as React from 'react';\nimport React__default, { useLayoutEffect, useEffect } from 'react';\n\nconst DrawerContext = React__default.createContext({\n drawerRef: {\n current: null\n },\n overlayRef: {\n current: null\n },\n scaleBackground: ()=>{},\n onPress: ()=>{},\n onRelease: ()=>{},\n onDrag: ()=>{},\n onNestedDrag: ()=>{},\n onNestedOpenChange: ()=>{},\n onNestedRelease: ()=>{},\n openProp: undefined,\n dismissible: false,\n handleOnly: false,\n isOpen: false,\n isDragging: false,\n keyboardIsOpen: {\n current: false\n },\n snapPointsOffset: null,\n snapPoints: null,\n modal: false,\n shouldFade: false,\n activeSnapPoint: null,\n onOpenChange: ()=>{},\n setActiveSnapPoint: ()=>{},\n visible: false,\n closeDrawer: ()=>{},\n setVisible: ()=>{},\n direction: 'bottom'\n});\nconst useDrawerContext = ()=>{\n const context = React__default.useContext(DrawerContext);\n if (!context) {\n throw new Error('useDrawerContext must be used within a Drawer.Root');\n }\n return context;\n};\n\n__insertCSS(\"[vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1)}[vaul-drawer][vaul-drawer-direction=bottom]{transform:translate3d(0,100%,0)}[vaul-drawer][vaul-drawer-direction=top]{transform:translate3d(0,-100%,0)}[vaul-drawer][vaul-drawer-direction=left]{transform:translate3d(-100%,0,0)}[vaul-drawer][vaul-drawer-direction=right]{transform:translate3d(100%,0,0)}.vaul-dragging .vaul-scrollable [vault-drawer-direction=top]{overflow-y:hidden!important}.vaul-dragging .vaul-scrollable [vault-drawer-direction=bottom]{overflow-y:hidden!important}.vaul-dragging .vaul-scrollable [vault-drawer-direction=left]{overflow-x:hidden!important}.vaul-dragging .vaul-scrollable [vault-drawer-direction=right]{overflow-x:hidden!important}[vaul-drawer][vaul-drawer-visible=true][vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[vaul-drawer][vaul-drawer-visible=true][vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[vaul-drawer][vaul-drawer-visible=true][vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[vaul-drawer][vaul-drawer-visible=true][vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[vaul-overlay]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[vaul-overlay][vaul-drawer-visible=true]{opacity:1}[vaul-drawer]::after{content:'';position:absolute;background:inherit;background-color:inherit}[vaul-drawer][vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[vaul-drawer][vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[vaul-drawer][vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[vaul-drawer][vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[vaul-handle]{display:block;position:relative;opacity:.8;margin-left:auto;margin-right:auto;height:5px;width:56px;border-radius:1rem;touch-action:pan-y;cursor:grab}[vaul-handle]:active,[vaul-handle]:hover{opacity:1}[vaul-handle]:active{cursor:grabbing}[vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}[vaul-overlay][vaul-snap-points=true]:not([vaul-snap-points-overlay=true]):not([data-state=closed]){opacity:0}[vaul-overlay][vaul-snap-points-overlay=true]:not([vaul-drawer-visible=false]){opacity:1}@media (hover:hover) and (pointer:fine){[vaul-drawer]{user-select:none}}@media (pointer:fine){[vaul-handle-hitarea]:{width:100%;height:100%}}\");\n\n// This code comes from https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/overlays/src/usePreventScroll.ts\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nfunction chain(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks){\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\nfunction isMac() {\n return testPlatform(/^Mac/);\n}\nfunction isIPhone() {\n return testPlatform(/^iPhone/);\n}\nfunction isIPad() {\n return testPlatform(/^iPad/) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n isMac() && navigator.maxTouchPoints > 1;\n}\nfunction isIOS() {\n return isIPhone() || isIPad();\n}\nfunction testPlatform(re) {\n return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.platform) : undefined;\n}\n// @ts-ignore\nconst visualViewport = typeof document !== 'undefined' && window.visualViewport;\nfunction isScrollable(node) {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\nfunction getScrollParent(node) {\n if (isScrollable(node)) {\n node = node.parentElement;\n }\n while(node && !isScrollable(node)){\n node = node.parentElement;\n }\n return node || document.scrollingElement || document.documentElement;\n}\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position\nlet preventScrollCount = 0;\nlet restore;\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */ function usePreventScroll(options = {}) {\n let { isDisabled } = options;\n useIsomorphicLayoutEffect(()=>{\n if (isDisabled) {\n return;\n }\n preventScrollCount++;\n if (preventScrollCount === 1) {\n if (isIOS()) {\n restore = preventScrollMobileSafari();\n } else {\n restore = preventScrollStandard();\n }\n }\n return ()=>{\n preventScrollCount--;\n if (preventScrollCount === 0) {\n restore();\n }\n };\n }, [\n isDisabled\n ]);\n}\n// For most browsers, all we need to do is set `overflow: hidden` on the root element, and\n// add some padding to prevent the page from shifting when the scrollbar is hidden.\nfunction preventScrollStandard() {\n return chain(setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`));\n}\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n// top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n let scrollable;\n let lastY = 0;\n let onTouchStart = (e)=>{\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = getScrollParent(e.target);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n lastY = e.changedTouches[0].pageY;\n };\n let onTouchMove = (e)=>{\n // Prevent scrolling the window.\n if (!scrollable || scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead. Unfortunately, this disables bounce scrolling when at\n // the top but it's the best we can do.\n let y = e.changedTouches[0].pageY;\n let scrollTop = scrollable.scrollTop;\n let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n if (bottom === 0) {\n return;\n }\n if (scrollTop <= 0 && y > lastY || scrollTop >= bottom && y < lastY) {\n e.preventDefault();\n }\n lastY = y;\n };\n let onTouchEnd = (e)=>{\n let target = e.target;\n // Apply this change if we're not already focused on the target element\n if (isInput(target) && target !== document.activeElement) {\n e.preventDefault();\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n // be done before the \"focus\" event, so we have to focus the element ourselves.\n target.style.transform = 'translateY(-2000px)';\n target.focus();\n requestAnimationFrame(()=>{\n target.style.transform = '';\n });\n }\n };\n let onFocus = (e)=>{\n let target = e.target;\n if (isInput(target)) {\n // Transform also needs to be applied in the focus event in cases where focus moves\n // other than tapping on an input directly, e.g. the next/previous buttons in the\n // software keyboard. In these cases, it seems applying the transform in the focus event\n // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷♂️\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(()=>{\n target.style.transform = '';\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(()=>{\n scrollIntoView(target);\n });\n } else {\n // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n visualViewport.addEventListener('resize', ()=>scrollIntoView(target), {\n once: true\n });\n }\n }\n });\n }\n };\n let onWindowScroll = ()=>{\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n let restoreStyles = chain(setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`));\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n let removeEvents = chain(addEvent(document, 'touchstart', onTouchStart, {\n passive: false,\n capture: true\n }), addEvent(document, 'touchmove', onTouchMove, {\n passive: false,\n capture: true\n }), addEvent(document, 'touchend', onTouchEnd, {\n passive: false,\n capture: true\n }), addEvent(document, 'focus', onFocus, true), addEvent(window, 'scroll', onWindowScroll));\n return ()=>{\n // Restore styles and scroll the page back to where it was.\n restoreStyles();\n removeEvents();\n window.scrollTo(scrollX, scrollY);\n };\n}\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element, style, value) {\n let cur = element.style[style];\n element.style[style] = value;\n return ()=>{\n element.style[style] = cur;\n };\n}\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent(target, event, handler, options) {\n // @ts-ignore\n target.addEventListener(event, handler, options);\n return ()=>{\n // @ts-ignore\n target.removeEventListener(event, handler, options);\n };\n}\nfunction scrollIntoView(target) {\n let root = document.scrollingElement || document.documentElement;\n while(target && target !== root){\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = getScrollParent(target);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = target.getBoundingClientRect().top;\n let targetBottom = target.getBoundingClientRect().bottom;\n const keyboardHeight = scrollable.getBoundingClientRect().bottom;\n if (targetBottom > keyboardHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n // @ts-ignore\n target = scrollable.parentElement;\n }\n}\nfunction isInput(target) {\n return target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type) || target instanceof HTMLTextAreaElement || target instanceof HTMLElement && target.isContentEditable;\n}\n\n// This code comes from https://github.com/radix-ui/primitives/tree/main/packages/react/compose-refs\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */ function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */ function composeRefs(...refs) {\n return (node)=>refs.forEach((ref)=>setRef(ref, node));\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */ function useComposedRefs(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nlet previousBodyPosition = null;\nfunction usePositionFixed({ isOpen, modal, nested, hasBeenOpened, preventScrollRestoration, noBodyStyles }) {\n const [activeUrl, setActiveUrl] = React__default.useState(()=>typeof window !== 'undefined' ? window.location.href : '');\n const scrollPos = React__default.useRef(0);\n const setPositionFixed = React__default.useCallback(()=>{\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === null && isOpen && !noBodyStyles) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left,\n height: document.body.style.height,\n right: 'unset'\n };\n // Update the dom inside an animation frame\n const { scrollX, innerHeight } = window;\n document.body.style.setProperty('position', 'fixed', 'important');\n Object.assign(document.body.style, {\n top: `${-scrollPos.current}px`,\n left: `${-scrollX}px`,\n right: '0px',\n height: 'auto'\n });\n window.setTimeout(()=>window.requestAnimationFrame(()=>{\n // Attempt to check if the bottom bar appeared due to the position change\n const bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollPos.current >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = `${-(scrollPos.current + bottomBarHeight)}px`;\n }\n }), 300);\n }\n }, [\n isOpen\n ]);\n const restorePositionSetting = React__default.useCallback(()=>{\n if (previousBodyPosition !== null && !noBodyStyles) {\n // Convert the position from \"px\" to Int\n const y = -parseInt(document.body.style.top, 10);\n const x = -parseInt(document.body.style.left, 10);\n // Restore styles\n Object.assign(document.body.style, previousBodyPosition);\n window.requestAnimationFrame(()=>{\n if (preventScrollRestoration && activeUrl !== window.location.href) {\n setActiveUrl(window.location.href);\n return;\n }\n window.scrollTo(x, y);\n });\n previousBodyPosition = null;\n }\n }, [\n activeUrl\n ]);\n React__default.useEffect(()=>{\n function onScroll() {\n scrollPos.current = window.scrollY;\n }\n onScroll();\n window.addEventListener('scroll', onScroll);\n return ()=>{\n window.removeEventListener('scroll', onScroll);\n };\n }, []);\n React__default.useEffect(()=>{\n if (nested || !hasBeenOpened) return;\n // This is needed to force Safari toolbar to show **before** the drawer starts animating to prevent a gnarly shift from happening\n if (isOpen) {\n // avoid for standalone mode (PWA)\n const isStandalone = window.matchMedia('(display-mode: standalone)').matches;\n !isStandalone && setPositionFixed();\n if (!modal) {\n window.setTimeout(()=>{\n restorePositionSetting();\n }, 500);\n }\n } else {\n restorePositionSetting();\n }\n }, [\n isOpen,\n hasBeenOpened,\n activeUrl,\n modal,\n nested,\n setPositionFixed,\n restorePositionSetting\n ]);\n return {\n restorePositionSetting\n };\n}\n\nconst cache = new WeakMap();\nfunction set(el, styles, ignoreCache = false) {\n if (!el || !(el instanceof HTMLElement)) return;\n let originalStyles = {};\n Object.entries(styles).forEach(([key, value])=>{\n if (key.startsWith('--')) {\n el.style.setProperty(key, value);\n return;\n }\n originalStyles[key] = el.style[key];\n el.style[key] = value;\n });\n if (ignoreCache) return;\n cache.set(el, originalStyles);\n}\nfunction reset(el, prop) {\n if (!el || !(el instanceof HTMLElement)) return;\n let originalStyles = cache.get(el);\n if (!originalStyles) {\n return;\n }\n if (prop) {\n el.style[prop] = originalStyles[prop];\n } else {\n Object.entries(originalStyles).forEach(([key, value])=>{\n el.style[key] = value;\n });\n }\n}\nconst isVertical = (direction)=>{\n switch(direction){\n case 'top':\n case 'bottom':\n return true;\n case 'left':\n case 'right':\n return false;\n default:\n return direction;\n }\n};\nfunction getTranslate(element, direction) {\n if (!element) {\n return null;\n }\n const style = window.getComputedStyle(element);\n const transform = // @ts-ignore\n style.transform || style.webkitTransform || style.mozTransform;\n let mat = transform.match(/^matrix3d\\((.+)\\)$/);\n if (mat) {\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix3d\n return parseFloat(mat[1].split(', ')[isVertical(direction) ? 13 : 12]);\n }\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix\n mat = transform.match(/^matrix\\((.+)\\)$/);\n return mat ? parseFloat(mat[1].split(', ')[isVertical(direction) ? 5 : 4]) : null;\n}\nfunction dampenValue(v) {\n return 8 * (Math.log(v + 1) - 2);\n}\n\nconst TRANSITIONS = {\n DURATION: 0.5,\n EASE: [\n 0.32,\n 0.72,\n 0,\n 1\n ]\n};\nconst VELOCITY_THRESHOLD = 0.4;\n\n// This code comes from https://github.com/radix-ui/primitives/blob/main/packages/react/use-controllable-state/src/useControllableState.tsx\nfunction useCallbackRef(callback) {\n const callbackRef = React__default.useRef(callback);\n React__default.useEffect(()=>{\n callbackRef.current = callback;\n });\n // https://github.com/facebook/react/issues/19240\n return React__default.useMemo(()=>(...args)=>callbackRef.current == null ? void 0 : callbackRef.current.call(callbackRef, ...args), []);\n}\nfunction useUncontrolledState({ defaultProp, onChange }) {\n const uncontrolledState = React__default.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React__default.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React__default.useEffect(()=>{\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [\n value,\n prevValueRef,\n handleChange\n ]);\n return uncontrolledState;\n}\nfunction useControllableState({ prop, defaultProp, onChange = ()=>{} }) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React__default.useCallback((nextValue)=>{\n if (isControlled) {\n const setter = nextValue;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value);\n } else {\n setUncontrolledProp(nextValue);\n }\n }, [\n isControlled,\n prop,\n setUncontrolledProp,\n handleChange\n ]);\n return [\n value,\n setValue\n ];\n}\n\nfunction useSnapPoints({ activeSnapPointProp, setActiveSnapPointProp, snapPoints, drawerRef, overlayRef, fadeFromIndex, onSnapPointChange, direction = 'bottom' }) {\n const [activeSnapPoint, setActiveSnapPoint] = useControllableState({\n prop: activeSnapPointProp,\n defaultProp: snapPoints == null ? void 0 : snapPoints[0],\n onChange: setActiveSnapPointProp\n });\n const isLastSnapPoint = React__default.useMemo(()=>activeSnapPoint === (snapPoints == null ? void 0 : snapPoints[snapPoints.length - 1]) || null, [\n snapPoints,\n activeSnapPoint\n ]);\n const shouldFade = snapPoints && snapPoints.length > 0 && (fadeFromIndex || fadeFromIndex === 0) && !Number.isNaN(fadeFromIndex) && snapPoints[fadeFromIndex] === activeSnapPoint || !snapPoints;\n const activeSnapPointIndex = React__default.useMemo(()=>snapPoints == null ? void 0 : snapPoints.findIndex((snapPoint)=>snapPoint === activeSnapPoint), [\n snapPoints,\n activeSnapPoint\n ]);\n const snapPointsOffset = React__default.useMemo(()=>{\n var _snapPoints_map;\n return (_snapPoints_map = snapPoints == null ? void 0 : snapPoints.map((snapPoint)=>{\n const hasWindow = typeof window !== 'undefined';\n const isPx = typeof snapPoint === 'string';\n let snapPointAsNumber = 0;\n if (isPx) {\n snapPointAsNumber = parseInt(snapPoint, 10);\n }\n if (isVertical(direction)) {\n const height = isPx ? snapPointAsNumber : hasWindow ? snapPoint * window.innerHeight : 0;\n if (hasWindow) {\n return direction === 'bottom' ? window.innerHeight - height : -window.innerHeight + height;\n }\n return height;\n }\n const width = isPx ? snapPointAsNumber : hasWindow ? snapPoint * window.innerWidth : 0;\n if (hasWindow) {\n return direction === 'right' ? window.innerWidth - width : -window.innerWidth + width;\n }\n return width;\n })) != null ? _snapPoints_map : [];\n }, [\n snapPoints\n ]);\n const activeSnapPointOffset = React__default.useMemo(()=>activeSnapPointIndex !== null ? snapPointsOffset == null ? void 0 : snapPointsOffset[activeSnapPointIndex] : null, [\n snapPointsOffset,\n activeSnapPointIndex\n ]);\n const snapToPoint = React__default.useCallback((dimension)=>{\n var _snapPointsOffset_findIndex;\n const newSnapPointIndex = (_snapPointsOffset_findIndex = snapPointsOffset == null ? void 0 : snapPointsOffset.findIndex((snapPointDim)=>snapPointDim === dimension)) != null ? _snapPointsOffset_findIndex : null;\n onSnapPointChange(newSnapPointIndex);\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: isVertical(direction) ? `translate3d(0, ${dimension}px, 0)` : `translate3d(${dimension}px, 0, 0)`\n });\n if (snapPointsOffset && newSnapPointIndex !== snapPointsOffset.length - 1 && newSnapPointIndex !== fadeFromIndex) {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '0'\n });\n } else {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '1'\n });\n }\n setActiveSnapPoint(newSnapPointIndex !== null ? snapPoints == null ? void 0 : snapPoints[newSnapPointIndex] : null);\n }, [\n drawerRef.current,\n snapPoints,\n snapPointsOffset,\n fadeFromIndex,\n overlayRef,\n setActiveSnapPoint\n ]);\n React__default.useEffect(()=>{\n if (activeSnapPoint || activeSnapPointProp) {\n var _snapPoints_findIndex;\n const newIndex = (_snapPoints_findIndex = snapPoints == null ? void 0 : snapPoints.findIndex((snapPoint)=>snapPoint === activeSnapPointProp || snapPoint === activeSnapPoint)) != null ? _snapPoints_findIndex : -1;\n if (snapPointsOffset && newIndex !== -1 && typeof snapPointsOffset[newIndex] === 'number') {\n snapToPoint(snapPointsOffset[newIndex]);\n }\n }\n }, [\n activeSnapPoint,\n activeSnapPointProp,\n snapPoints,\n snapPointsOffset,\n snapToPoint\n ]);\n function onRelease({ draggedDistance, closeDrawer, velocity, dismissible }) {\n if (fadeFromIndex === undefined) return;\n const currentPosition = direction === 'bottom' || direction === 'right' ? (activeSnapPointOffset != null ? activeSnapPointOffset : 0) - draggedDistance : (activeSnapPointOffset != null ? activeSnapPointOffset : 0) + draggedDistance;\n const isOverlaySnapPoint = activeSnapPointIndex === fadeFromIndex - 1;\n const isFirst = activeSnapPointIndex === 0;\n const hasDraggedUp = draggedDistance > 0;\n if (isOverlaySnapPoint) {\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n }\n if (velocity > 2 && !hasDraggedUp) {\n if (dismissible) closeDrawer();\n else snapToPoint(snapPointsOffset[0]); // snap to initial point\n return;\n }\n if (velocity > 2 && hasDraggedUp && snapPointsOffset && snapPoints) {\n snapToPoint(snapPointsOffset[snapPoints.length - 1]);\n return;\n }\n // Find the closest snap point to the current position\n const closestSnapPoint = snapPointsOffset == null ? void 0 : snapPointsOffset.reduce((prev, curr)=>{\n if (typeof prev !== 'number' || typeof curr !== 'number') return prev;\n return Math.abs(curr - currentPosition) < Math.abs(prev - currentPosition) ? curr : prev;\n });\n const dim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n if (velocity > VELOCITY_THRESHOLD && Math.abs(draggedDistance) < dim * 0.4) {\n const dragDirection = hasDraggedUp ? 1 : -1; // 1 = up, -1 = down\n // Don't do anything if we swipe upwards while being on the last snap point\n if (dragDirection > 0 && isLastSnapPoint) {\n snapToPoint(snapPointsOffset[snapPoints.length - 1]);\n return;\n }\n if (isFirst && dragDirection < 0 && dismissible) {\n closeDrawer();\n }\n if (activeSnapPointIndex === null) return;\n snapToPoint(snapPointsOffset[activeSnapPointIndex + dragDirection]);\n return;\n }\n snapToPoint(closestSnapPoint);\n }\n function onDrag({ draggedDistance }) {\n if (activeSnapPointOffset === null) return;\n const newValue = direction === 'bottom' || direction === 'right' ? activeSnapPointOffset - draggedDistance : activeSnapPointOffset + draggedDistance;\n // Don't do anything if we exceed the last(biggest) snap point\n if ((direction === 'bottom' || direction === 'right') && newValue < snapPointsOffset[snapPointsOffset.length - 1]) {\n return;\n }\n if ((direction === 'top' || direction === 'left') && newValue > snapPointsOffset[snapPointsOffset.length - 1]) {\n return;\n }\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${newValue}px, 0)` : `translate3d(${newValue}px, 0, 0)`\n });\n }\n function getPercentageDragged(absDraggedDistance, isDraggingDown) {\n if (!snapPoints || typeof activeSnapPointIndex !== 'number' || !snapPointsOffset || fadeFromIndex === undefined) return null;\n // If this is true we are dragging to a snap point that is supposed to have an overlay\n const isOverlaySnapPoint = activeSnapPointIndex === fadeFromIndex - 1;\n const isOverlaySnapPointOrHigher = activeSnapPointIndex >= fadeFromIndex;\n if (isOverlaySnapPointOrHigher && isDraggingDown) {\n return 0;\n }\n // Don't animate, but still use this one if we are dragging away from the overlaySnapPoint\n if (isOverlaySnapPoint && !isDraggingDown) return 1;\n if (!shouldFade && !isOverlaySnapPoint) return null;\n // Either fadeFrom index or the one before\n const targetSnapPointIndex = isOverlaySnapPoint ? activeSnapPointIndex + 1 : activeSnapPointIndex - 1;\n // Get the distance from overlaySnapPoint to the one before or vice-versa to calculate the opacity percentage accordingly\n const snapPointDistance = isOverlaySnapPoint ? snapPointsOffset[targetSnapPointIndex] - snapPointsOffset[targetSnapPointIndex - 1] : snapPointsOffset[targetSnapPointIndex + 1] - snapPointsOffset[targetSnapPointIndex];\n const percentageDragged = absDraggedDistance / Math.abs(snapPointDistance);\n if (isOverlaySnapPoint) {\n return 1 - percentageDragged;\n } else {\n return percentageDragged;\n }\n }\n return {\n isLastSnapPoint,\n activeSnapPoint,\n shouldFade,\n getPercentageDragged,\n setActiveSnapPoint,\n activeSnapPointIndex,\n onRelease,\n onDrag,\n snapPointsOffset\n };\n}\n\nconst CLOSE_THRESHOLD = 0.25;\nconst SCROLL_LOCK_TIMEOUT = 100;\nconst BORDER_RADIUS = 8;\nconst NESTED_DISPLACEMENT = 16;\nconst WINDOW_TOP_OFFSET = 26;\nconst DRAG_CLASS = 'vaul-dragging';\nfunction Root({ open: openProp, onOpenChange, children, shouldScaleBackground, onDrag: onDragProp, onRelease: onReleaseProp, snapPoints, nested = false, setBackgroundColorOnScale = true, closeThreshold = CLOSE_THRESHOLD, scrollLockTimeout = SCROLL_LOCK_TIMEOUT, dismissible = true, handleOnly = false, fadeFromIndex = snapPoints && snapPoints.length - 1, activeSnapPoint: activeSnapPointProp, setActiveSnapPoint: setActiveSnapPointProp, fixed, modal = true, onClose, noBodyStyles, direction = 'bottom', preventScrollRestoration = true, disablePreventScroll = false }) {\n var _drawerRef_current;\n const [isOpen = false, setIsOpen] = React__default.useState(false);\n const [hasBeenOpened, setHasBeenOpened] = React__default.useState(false);\n // Not visible = translateY(100%)\n const [visible, setVisible] = React__default.useState(false);\n const [mounted, setMounted] = React__default.useState(false);\n const [isDragging, setIsDragging] = React__default.useState(false);\n const [justReleased, setJustReleased] = React__default.useState(false);\n const overlayRef = React__default.useRef(null);\n const openTime = React__default.useRef(null);\n const dragStartTime = React__default.useRef(null);\n const dragEndTime = React__default.useRef(null);\n const lastTimeDragPrevented = React__default.useRef(null);\n const isAllowedToDrag = React__default.useRef(false);\n const nestedOpenChangeTimer = React__default.useRef(null);\n const pointerStart = React__default.useRef(0);\n const keyboardIsOpen = React__default.useRef(false);\n const previousDiffFromInitial = React__default.useRef(0);\n const drawerRef = React__default.useRef(null);\n const drawerHeightRef = React__default.useRef(((_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.getBoundingClientRect().height) || 0);\n const initialDrawerHeight = React__default.useRef(0);\n const onSnapPointChange = React__default.useCallback((activeSnapPointIndex)=>{\n // Change openTime ref when we reach the last snap point to prevent dragging for 500ms incase it's scrollable.\n if (snapPoints && activeSnapPointIndex === snapPointsOffset.length - 1) openTime.current = new Date();\n }, []);\n const { activeSnapPoint, activeSnapPointIndex, setActiveSnapPoint, onRelease: onReleaseSnapPoints, snapPointsOffset, onDrag: onDragSnapPoints, shouldFade, getPercentageDragged: getSnapPointsPercentageDragged } = useSnapPoints({\n snapPoints,\n activeSnapPointProp,\n setActiveSnapPointProp,\n drawerRef,\n fadeFromIndex,\n overlayRef,\n onSnapPointChange,\n direction\n });\n usePreventScroll({\n isDisabled: !isOpen || isDragging || !modal || justReleased || !hasBeenOpened || disablePreventScroll\n });\n const { restorePositionSetting } = usePositionFixed({\n isOpen,\n modal,\n nested,\n hasBeenOpened,\n preventScrollRestoration,\n noBodyStyles\n });\n function getScale() {\n return (window.innerWidth - WINDOW_TOP_OFFSET) / window.innerWidth;\n }\n function onPress(event) {\n var _drawerRef_current;\n if (!dismissible && !snapPoints) return;\n if (drawerRef.current && !drawerRef.current.contains(event.target)) return;\n drawerHeightRef.current = ((_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.getBoundingClientRect().height) || 0;\n setIsDragging(true);\n dragStartTime.current = new Date();\n // iOS doesn't trigger mouseUp after scrolling so we need to listen to touched in order to disallow dragging\n if (isIOS()) {\n window.addEventListener('touchend', ()=>isAllowedToDrag.current = false, {\n once: true\n });\n }\n // Ensure we maintain correct pointer capture even when going outside of the drawer\n event.target.setPointerCapture(event.pointerId);\n pointerStart.current = isVertical(direction) ? event.clientY : event.clientX;\n }\n function shouldDrag(el, isDraggingInDirection) {\n var _window_getSelection;\n let element = el;\n const highlightedText = (_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString();\n const swipeAmount = drawerRef.current ? getTranslate(drawerRef.current, direction) : null;\n const date = new Date();\n if (element.hasAttribute('data-vaul-no-drag') || element.closest('[data-vaul-no-drag]')) {\n return false;\n }\n if (direction === 'right' || direction === 'left') {\n return true;\n }\n // Allow scrolling when animating\n if (openTime.current && date.getTime() - openTime.current.getTime() < 500) {\n return false;\n }\n if (swipeAmount !== null) {\n if (direction === 'bottom' ? swipeAmount > 0 : swipeAmount < 0) {\n return true;\n }\n }\n // Don't drag if there's highlighted text\n if (highlightedText && highlightedText.length > 0) {\n return false;\n }\n // Disallow dragging if drawer was scrolled within `scrollLockTimeout`\n if (lastTimeDragPrevented.current && date.getTime() - lastTimeDragPrevented.current.getTime() < scrollLockTimeout && swipeAmount === 0) {\n lastTimeDragPrevented.current = date;\n return false;\n }\n if (isDraggingInDirection) {\n lastTimeDragPrevented.current = date;\n // We are dragging down so we should allow scrolling\n return false;\n }\n // Keep climbing up the DOM tree as long as there's a parent\n while(element){\n // Check if the element is scrollable\n if (element.scrollHeight > element.clientHeight) {\n if (element.scrollTop !== 0) {\n lastTimeDragPrevented.current = new Date();\n // The element is scrollable and not scrolled to the top, so don't drag\n return false;\n }\n if (element.getAttribute('role') === 'dialog') {\n return true;\n }\n }\n // Move up to the parent element\n element = element.parentNode;\n }\n // No scrollable parents not scrolled to the top found, so drag\n return true;\n }\n function onDrag(event) {\n if (!drawerRef.current) {\n return;\n }\n // We need to know how much of the drawer has been dragged in percentages so that we can transform background accordingly\n if (isDragging) {\n const directionMultiplier = direction === 'bottom' || direction === 'right' ? 1 : -1;\n const draggedDistance = (pointerStart.current - (isVertical(direction) ? event.clientY : event.clientX)) * directionMultiplier;\n const isDraggingInDirection = draggedDistance > 0;\n // Pre condition for disallowing dragging in the close direction.\n const noCloseSnapPointsPreCondition = snapPoints && !dismissible && !isDraggingInDirection;\n // Disallow dragging down to close when first snap point is the active one and dismissible prop is set to false.\n if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0) return;\n // We need to capture last time when drag with scroll was triggered and have a timeout between\n const absDraggedDistance = Math.abs(draggedDistance);\n const wrapper = document.querySelector('[vaul-drawer-wrapper]');\n // Calculate the percentage dragged, where 1 is the closed position\n let percentageDragged = absDraggedDistance / drawerHeightRef.current;\n const snapPointPercentageDragged = getSnapPointsPercentageDragged(absDraggedDistance, isDraggingInDirection);\n if (snapPointPercentageDragged !== null) {\n percentageDragged = snapPointPercentageDragged;\n }\n // Disallow close dragging beyond the smallest snap point.\n if (noCloseSnapPointsPreCondition && percentageDragged >= 1) {\n return;\n }\n if (!isAllowedToDrag.current && !shouldDrag(event.target, isDraggingInDirection)) return;\n drawerRef.current.classList.add(DRAG_CLASS);\n // If shouldDrag gave true once after pressing down on the drawer, we set isAllowedToDrag to true and it will remain true until we let go, there's no reason to disable dragging mid way, ever, and that's the solution to it\n isAllowedToDrag.current = true;\n set(drawerRef.current, {\n transition: 'none'\n });\n set(overlayRef.current, {\n transition: 'none'\n });\n if (snapPoints) {\n onDragSnapPoints({\n draggedDistance\n });\n }\n // Run this only if snapPoints are not defined or if we are at the last snap point (highest one)\n if (isDraggingInDirection && !snapPoints) {\n const dampenedDraggedDistance = dampenValue(draggedDistance);\n const translateValue = Math.min(dampenedDraggedDistance * -1, 0) * directionMultiplier;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n return;\n }\n const opacityValue = 1 - percentageDragged;\n if (shouldFade || fadeFromIndex && activeSnapPointIndex === fadeFromIndex - 1) {\n onDragProp == null ? void 0 : onDragProp(event, percentageDragged);\n set(overlayRef.current, {\n opacity: `${opacityValue}`,\n transition: 'none'\n }, true);\n }\n if (wrapper && overlayRef.current && shouldScaleBackground) {\n // Calculate percentageDragged as a fraction (0 to 1)\n const scaleValue = Math.min(getScale() + percentageDragged * (1 - getScale()), 1);\n const borderRadiusValue = 8 - percentageDragged * 8;\n const translateValue = Math.max(0, 14 - percentageDragged * 14);\n set(wrapper, {\n borderRadius: `${borderRadiusValue}px`,\n transform: isVertical(direction) ? `scale(${scaleValue}) translate3d(0, ${translateValue}px, 0)` : `scale(${scaleValue}) translate3d(${translateValue}px, 0, 0)`,\n transition: 'none'\n }, true);\n }\n if (!snapPoints) {\n const translateValue = absDraggedDistance * directionMultiplier;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n }\n }\n }\n React__default.useEffect(()=>{\n return ()=>{\n scaleBackground(false);\n restorePositionSetting();\n };\n }, []);\n React__default.useEffect(()=>{\n var _window_visualViewport;\n function onVisualViewportChange() {\n if (!drawerRef.current) return;\n const focusedElement = document.activeElement;\n if (isInput(focusedElement) || keyboardIsOpen.current) {\n var _window_visualViewport;\n const visualViewportHeight = ((_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.height) || 0;\n // This is the height of the keyboard\n let diffFromInitial = window.innerHeight - visualViewportHeight;\n const drawerHeight = drawerRef.current.getBoundingClientRect().height || 0;\n if (!initialDrawerHeight.current) {\n initialDrawerHeight.current = drawerHeight;\n }\n const offsetFromTop = drawerRef.current.getBoundingClientRect().top;\n // visualViewport height may change due to some subtle changes to the keyboard. Checking if the height changed by 60 or more will make sure that they keyboard really changed its open state.\n if (Math.abs(previousDiffFromInitial.current - diffFromInitial) > 60) {\n keyboardIsOpen.current = !keyboardIsOpen.current;\n }\n if (snapPoints && snapPoints.length > 0 && snapPointsOffset && activeSnapPointIndex) {\n const activeSnapPointHeight = snapPointsOffset[activeSnapPointIndex] || 0;\n diffFromInitial += activeSnapPointHeight;\n }\n previousDiffFromInitial.current = diffFromInitial;\n // We don't have to change the height if the input is in view, when we are here we are in the opened keyboard state so we can correctly check if the input is in view\n if (drawerHeight > visualViewportHeight || keyboardIsOpen.current) {\n const height = drawerRef.current.getBoundingClientRect().height;\n let newDrawerHeight = height;\n if (height > visualViewportHeight) {\n newDrawerHeight = visualViewportHeight - WINDOW_TOP_OFFSET;\n }\n // When fixed, don't move the drawer upwards if there's space, but rather only change it's height so it's fully scrollable when the keyboard is open\n if (fixed) {\n drawerRef.current.style.height = `${height - Math.max(diffFromInitial, 0)}px`;\n } else {\n drawerRef.current.style.height = `${Math.max(newDrawerHeight, visualViewportHeight - offsetFromTop)}px`;\n }\n } else {\n drawerRef.current.style.height = `${initialDrawerHeight.current}px`;\n }\n if (snapPoints && snapPoints.length > 0 && !keyboardIsOpen.current) {\n drawerRef.current.style.bottom = `0px`;\n } else {\n // Negative bottom value would never make sense\n drawerRef.current.style.bottom = `${Math.max(diffFromInitial, 0)}px`;\n }\n }\n }\n (_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.addEventListener('resize', onVisualViewportChange);\n return ()=>{\n var _window_visualViewport;\n return (_window_visualViewport = window.visualViewport) == null ? void 0 : _window_visualViewport.removeEventListener('resize', onVisualViewportChange);\n };\n }, [\n activeSnapPointIndex,\n snapPoints,\n snapPointsOffset\n ]);\n function closeDrawer() {\n if (!drawerRef.current) return;\n cancelDrag();\n onClose == null ? void 0 : onClose();\n set(drawerRef.current, {\n transform: isVertical(direction) ? `translate3d(0, ${direction === 'bottom' ? '100%' : '-100%'}, 0)` : `translate3d(${direction === 'right' ? '100%' : '-100%'}, 0, 0)`,\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n set(overlayRef.current, {\n opacity: '0',\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n scaleBackground(false);\n setTimeout(()=>{\n setVisible(false);\n setIsOpen(false);\n }, 300);\n setTimeout(()=>{\n // reset(document.documentElement, 'scrollBehavior');\n if (snapPoints) {\n setActiveSnapPoint(snapPoints[0]);\n }\n }, TRANSITIONS.DURATION * 1000); // seconds to ms\n }\n React__default.useEffect(()=>{\n if (!isOpen && shouldScaleBackground) {\n // Can't use `onAnimationEnd` as the component will be invisible by then\n const id = setTimeout(()=>{\n reset(document.body);\n }, 200);\n return ()=>clearTimeout(id);\n }\n }, [\n isOpen,\n shouldScaleBackground\n ]);\n // LayoutEffect to prevent extra render where openProp and isOpen are not synced yet\n useIsomorphicLayoutEffect(()=>{\n if (openProp) {\n setIsOpen(true);\n setHasBeenOpened(true);\n } else {\n closeDrawer();\n }\n }, [\n openProp\n ]);\n // This can be done much better\n React__default.useEffect(()=>{\n if (mounted) {\n onOpenChange == null ? void 0 : onOpenChange(isOpen);\n }\n }, [\n isOpen\n ]);\n React__default.useEffect(()=>{\n setMounted(true);\n }, []);\n function resetDrawer() {\n if (!drawerRef.current) return;\n const wrapper = document.querySelector('[vaul-drawer-wrapper]');\n const currentSwipeAmount = getTranslate(drawerRef.current, direction);\n set(drawerRef.current, {\n transform: 'translate3d(0, 0, 0)',\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n set(overlayRef.current, {\n transition: `opacity ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n opacity: '1'\n });\n // Don't reset background if swiped upwards\n if (shouldScaleBackground && currentSwipeAmount && currentSwipeAmount > 0 && isOpen) {\n set(wrapper, {\n borderRadius: `${BORDER_RADIUS}px`,\n overflow: 'hidden',\n ...isVertical(direction) ? {\n transform: `scale(${getScale()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,\n transformOrigin: 'top'\n } : {\n transform: `scale(${getScale()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,\n transformOrigin: 'left'\n },\n transitionProperty: 'transform, border-radius',\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n }, true);\n }\n }\n function cancelDrag() {\n if (!isDragging || !drawerRef.current) return;\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n }\n function onRelease(event) {\n if (!isDragging || !drawerRef.current) return;\n drawerRef.current.classList.remove(DRAG_CLASS);\n isAllowedToDrag.current = false;\n setIsDragging(false);\n dragEndTime.current = new Date();\n const swipeAmount = getTranslate(drawerRef.current, direction);\n if (!shouldDrag(event.target, false) || !swipeAmount || Number.isNaN(swipeAmount)) return;\n if (dragStartTime.current === null) return;\n const timeTaken = dragEndTime.current.getTime() - dragStartTime.current.getTime();\n const distMoved = pointerStart.current - (isVertical(direction) ? event.clientY : event.clientX);\n const velocity = Math.abs(distMoved) / timeTaken;\n if (velocity > 0.05) {\n // `justReleased` is needed to prevent the drawer from focusing on an input when the drag ends, as it's not the intent most of the time.\n setJustReleased(true);\n setTimeout(()=>{\n setJustReleased(false);\n }, 200);\n }\n if (snapPoints) {\n const directionMultiplier = direction === 'bottom' || direction === 'right' ? 1 : -1;\n onReleaseSnapPoints({\n draggedDistance: distMoved * directionMultiplier,\n closeDrawer,\n velocity,\n dismissible\n });\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n return;\n }\n // Moved upwards, don't do anything\n if (direction === 'bottom' || direction === 'right' ? distMoved > 0 : distMoved < 0) {\n resetDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n return;\n }\n if (velocity > VELOCITY_THRESHOLD) {\n closeDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, false);\n return;\n }\n var _drawerRef_current_getBoundingClientRect_height;\n const visibleDrawerHeight = Math.min((_drawerRef_current_getBoundingClientRect_height = drawerRef.current.getBoundingClientRect().height) != null ? _drawerRef_current_getBoundingClientRect_height : 0, window.innerHeight);\n if (swipeAmount >= visibleDrawerHeight * closeThreshold) {\n closeDrawer();\n onReleaseProp == null ? void 0 : onReleaseProp(event, false);\n return;\n }\n onReleaseProp == null ? void 0 : onReleaseProp(event, true);\n resetDrawer();\n }\n React__default.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n if (isOpen) {\n set(document.documentElement, {\n scrollBehavior: 'auto'\n });\n openTime.current = new Date();\n scaleBackground(true);\n }\n }, [\n isOpen\n ]);\n React__default.useEffect(()=>{\n if (drawerRef.current && visible) {\n var _drawerRef_current;\n // Find all scrollable elements inside our drawer and assign a class to it so that we can disable overflow when dragging to prevent pointermove not being captured\n const children = drawerRef == null ? void 0 : (_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.querySelectorAll('*');\n children == null ? void 0 : children.forEach((child)=>{\n const htmlChild = child;\n if (htmlChild.scrollHeight > htmlChild.clientHeight || htmlChild.scrollWidth > htmlChild.clientWidth) {\n htmlChild.classList.add('vaul-scrollable');\n }\n });\n }\n }, [\n visible\n ]);\n function scaleBackground(open) {\n const wrapper = document.querySelector('[vaul-drawer-wrapper]');\n if (!wrapper || !shouldScaleBackground) return;\n if (open) {\n if (setBackgroundColorOnScale) {\n if (!noBodyStyles) {\n // setting original styles initially\n set(document.body, {\n background: document.body.style.backgroundColor || document.body.style.background\n });\n // setting body styles, with cache ignored, so that we can get correct original styles in reset\n set(document.body, {\n background: 'black'\n }, true);\n }\n }\n set(wrapper, {\n borderRadius: `${BORDER_RADIUS}px`,\n overflow: 'hidden',\n ...isVertical(direction) ? {\n transform: `scale(${getScale()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,\n transformOrigin: 'top'\n } : {\n transform: `scale(${getScale()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,\n transformOrigin: 'left'\n },\n transitionProperty: 'transform, border-radius',\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n } else {\n // Exit\n reset(wrapper, 'overflow');\n reset(wrapper, 'transform');\n reset(wrapper, 'borderRadius');\n set(wrapper, {\n transitionProperty: 'transform, border-radius',\n transitionDuration: `${TRANSITIONS.DURATION}s`,\n transitionTimingFunction: `cubic-bezier(${TRANSITIONS.EASE.join(',')})`\n });\n }\n }\n function onNestedOpenChange(o) {\n const scale = o ? (window.innerWidth - NESTED_DISPLACEMENT) / window.innerWidth : 1;\n const y = o ? -NESTED_DISPLACEMENT : 0;\n if (nestedOpenChangeTimer.current) {\n window.clearTimeout(nestedOpenChangeTimer.current);\n }\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: `scale(${scale}) translate3d(0, ${y}px, 0)`\n });\n if (!o && drawerRef.current) {\n nestedOpenChangeTimer.current = setTimeout(()=>{\n const translateValue = getTranslate(drawerRef.current, direction);\n set(drawerRef.current, {\n transition: 'none',\n transform: isVertical(direction) ? `translate3d(0, ${translateValue}px, 0)` : `translate3d(${translateValue}px, 0, 0)`\n });\n }, 500);\n }\n }\n function onNestedDrag(event, percentageDragged) {\n if (percentageDragged < 0) return;\n const initialDim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n const initialScale = (initialDim - NESTED_DISPLACEMENT) / initialDim;\n const newScale = initialScale + percentageDragged * (1 - initialScale);\n const newTranslate = -NESTED_DISPLACEMENT + percentageDragged * NESTED_DISPLACEMENT;\n set(drawerRef.current, {\n transform: isVertical(direction) ? `scale(${newScale}) translate3d(0, ${newTranslate}px, 0)` : `scale(${newScale}) translate3d(${newTranslate}px, 0, 0)`,\n transition: 'none'\n });\n }\n function onNestedRelease(event, o) {\n const dim = isVertical(direction) ? window.innerHeight : window.innerWidth;\n const scale = o ? (dim - NESTED_DISPLACEMENT) / dim : 1;\n const translate = o ? -NESTED_DISPLACEMENT : 0;\n if (o) {\n set(drawerRef.current, {\n transition: `transform ${TRANSITIONS.DURATION}s cubic-bezier(${TRANSITIONS.EASE.join(',')})`,\n transform: isVertical(direction) ? `scale(${scale}) translate3d(0, ${translate}px, 0)` : `scale(${scale}) translate3d(${translate}px, 0, 0)`\n });\n }\n }\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Root, {\n modal: modal,\n onOpenChange: (o)=>{\n if (openProp !== undefined) {\n onOpenChange == null ? void 0 : onOpenChange(o);\n return;\n }\n if (!o) {\n closeDrawer();\n } else {\n setHasBeenOpened(true);\n setIsOpen(o);\n }\n },\n open: isOpen\n }, /*#__PURE__*/ React__default.createElement(DrawerContext.Provider, {\n value: {\n visible,\n activeSnapPoint,\n snapPoints,\n setActiveSnapPoint,\n drawerRef,\n overlayRef,\n scaleBackground,\n onOpenChange,\n onPress,\n setVisible,\n onRelease,\n onDrag,\n dismissible,\n handleOnly,\n isOpen,\n isDragging,\n shouldFade,\n closeDrawer,\n onNestedDrag,\n onNestedOpenChange,\n onNestedRelease,\n keyboardIsOpen,\n openProp,\n modal,\n snapPointsOffset,\n direction\n }\n }, children));\n}\nconst LONG_HANDLE_PRESS_TIMEOUT = 250;\nconst DOUBLE_TAP_TIMEOUT = 120;\nconst Handle = /*#__PURE__*/ React__default.forwardRef(function({ preventCycle = false, children, ...rest }, ref) {\n const { visible, closeDrawer, isDragging, snapPoints, activeSnapPoint, setActiveSnapPoint, dismissible, handleOnly, onPress, onDrag } = useDrawerContext();\n const closeTimeoutIdRef = React__default.useRef(null);\n const shouldCancelInteractionRef = React__default.useRef(false);\n function handleStartCycle() {\n // Stop if this is the second click of a double click\n if (shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n window.setTimeout(()=>{\n handleCycleSnapPoints();\n }, DOUBLE_TAP_TIMEOUT);\n }\n function handleCycleSnapPoints() {\n // Prevent accidental taps while resizing drawer\n if (isDragging || preventCycle || shouldCancelInteractionRef.current) {\n handleCancelInteraction();\n return;\n }\n // Make sure to clear the timeout id if the user releases the handle before the cancel timeout\n handleCancelInteraction();\n if ((!snapPoints || snapPoints.length === 0) && dismissible) {\n closeDrawer();\n return;\n }\n const isLastSnapPoint = activeSnapPoint === snapPoints[snapPoints.length - 1];\n if (isLastSnapPoint && dismissible) {\n closeDrawer();\n return;\n }\n const currentSnapIndex = snapPoints.findIndex((point)=>point === activeSnapPoint);\n if (currentSnapIndex === -1) return; // activeSnapPoint not found in snapPoints\n const nextSnapPoint = snapPoints[currentSnapIndex + 1];\n setActiveSnapPoint(nextSnapPoint);\n }\n function handleStartInteraction() {\n closeTimeoutIdRef.current = window.setTimeout(()=>{\n // Cancel click interaction on a long press\n shouldCancelInteractionRef.current = true;\n }, LONG_HANDLE_PRESS_TIMEOUT);\n }\n function handleCancelInteraction() {\n window.clearTimeout(closeTimeoutIdRef.current);\n shouldCancelInteractionRef.current = false;\n }\n return /*#__PURE__*/ React__default.createElement(\"div\", {\n onClick: handleStartCycle,\n onDoubleClick: ()=>{\n shouldCancelInteractionRef.current = true;\n closeDrawer();\n },\n onPointerCancel: handleCancelInteraction,\n onPointerDown: (e)=>{\n if (handleOnly) onPress(e);\n handleStartInteraction();\n },\n onPointerMove: (e)=>{\n if (handleOnly) onDrag(e);\n },\n // onPointerUp is already handled by the content component\n ref: ref,\n \"vaul-drawer-visible\": visible ? 'true' : 'false',\n \"vaul-handle\": \"\",\n \"aria-hidden\": \"true\",\n ...rest\n }, /*#__PURE__*/ React__default.createElement(\"span\", {\n \"vaul-handle-hitarea\": \"\",\n \"aria-hidden\": \"true\"\n }, children));\n});\nHandle.displayName = 'Drawer.Handle';\nconst Overlay = /*#__PURE__*/ React__default.forwardRef(function({ children, ...rest }, ref) {\n const { overlayRef, snapPoints, onRelease, shouldFade, isOpen, visible } = useDrawerContext();\n const composedRef = useComposedRefs(ref, overlayRef);\n const hasSnapPoints = snapPoints && snapPoints.length > 0;\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Overlay, {\n onMouseUp: onRelease,\n ref: composedRef,\n \"vaul-drawer-visible\": visible ? 'true' : 'false',\n \"vaul-overlay\": \"\",\n \"vaul-snap-points\": isOpen && hasSnapPoints ? 'true' : 'false',\n \"vaul-snap-points-overlay\": isOpen && shouldFade ? 'true' : 'false',\n ...rest\n });\n});\nOverlay.displayName = 'Drawer.Overlay';\nconst Content = /*#__PURE__*/ React__default.forwardRef(function({ onOpenAutoFocus, onPointerDownOutside, onAnimationEnd, style, ...rest }, ref) {\n const { drawerRef, onPress, onRelease, onDrag, dismissible, keyboardIsOpen, snapPointsOffset, visible, closeDrawer, modal, openProp, onOpenChange, setVisible, handleOnly, direction } = useDrawerContext();\n const composedRef = useComposedRefs(ref, drawerRef);\n const pointerStartRef = React__default.useRef(null);\n const wasBeyondThePointRef = React__default.useRef(false);\n const isDeltaInDirection = (delta, direction, threshold = 0)=>{\n if (wasBeyondThePointRef.current) return true;\n const deltaY = Math.abs(delta.y);\n const deltaX = Math.abs(delta.x);\n const isDeltaX = deltaX > deltaY;\n const dFactor = [\n 'bottom',\n 'right'\n ].includes(direction) ? 1 : -1;\n if (direction === 'left' || direction === 'right') {\n const isReverseDirection = delta.x * dFactor < 0;\n if (!isReverseDirection && deltaX >= 0 && deltaX <= threshold) {\n return isDeltaX;\n }\n } else {\n const isReverseDirection = delta.y * dFactor < 0;\n if (!isReverseDirection && deltaY >= 0 && deltaY <= threshold) {\n return !isDeltaX;\n }\n }\n wasBeyondThePointRef.current = true;\n return true;\n };\n React__default.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n setVisible(true);\n }, []);\n return /*#__PURE__*/ React__default.createElement(DialogPrimitive.Content, {\n \"vaul-drawer\": \"\",\n \"vaul-drawer-direction\": direction,\n \"vaul-drawer-visible\": visible ? 'true' : 'false',\n ...rest,\n ref: composedRef,\n style: snapPointsOffset && snapPointsOffset.length > 0 ? {\n '--snap-point-height': `${snapPointsOffset[0]}px`,\n ...style\n } : style,\n onOpenAutoFocus: (e)=>{\n if (onOpenAutoFocus) {\n onOpenAutoFocus(e);\n } else {\n var _drawerRef_current;\n e.preventDefault();\n (_drawerRef_current = drawerRef.current) == null ? void 0 : _drawerRef_current.focus();\n }\n },\n onPointerDown: (event)=>{\n if (handleOnly) return;\n rest.onPointerDown == null ? void 0 : rest.onPointerDown.call(rest, event);\n pointerStartRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n onPress(event);\n },\n onPointerDownOutside: (e)=>{\n onPointerDownOutside == null ? void 0 : onPointerDownOutside(e);\n if (!modal || e.defaultPrevented) {\n e.preventDefault();\n return;\n }\n if (keyboardIsOpen.current) {\n keyboardIsOpen.current = false;\n }\n e.preventDefault();\n onOpenChange == null ? void 0 : onOpenChange(false);\n if (!dismissible || openProp !== undefined) {\n return;\n }\n closeDrawer();\n },\n onFocusOutside: (e)=>{\n if (!modal) {\n e.preventDefault();\n return;\n }\n },\n onEscapeKeyDown: (e)=>{\n if (!modal) {\n e.preventDefault();\n return;\n }\n },\n onPointerMove: (event)=>{\n if (handleOnly) return;\n rest.onPointerMove == null ? void 0 : rest.onPointerMove.call(rest, event);\n if (!pointerStartRef.current) return;\n const yPosition = event.clientY - pointerStartRef.current.y;\n const xPosition = event.clientX - pointerStartRef.current.x;\n const swipeStartThreshold = event.pointerType === 'touch' ? 10 : 2;\n const delta = {\n x: xPosition,\n y: yPosition\n };\n const isAllowedToSwipe = isDeltaInDirection(delta, direction, swipeStartThreshold);\n if (isAllowedToSwipe) onDrag(event);\n else if (Math.abs(xPosition) > swipeStartThreshold || Math.abs(yPosition) > swipeStartThreshold) {\n pointerStartRef.current = null;\n }\n },\n onPointerUp: (event)=>{\n rest.onPointerUp == null ? void 0 : rest.onPointerUp.call(rest, event);\n pointerStartRef.current = null;\n wasBeyondThePointRef.current = false;\n onRelease(event);\n }\n });\n});\nContent.displayName = 'Drawer.Content';\nfunction NestedRoot({ onDrag, onOpenChange, ...rest }) {\n const { onNestedDrag, onNestedOpenChange, onNestedRelease } = useDrawerContext();\n if (!onNestedDrag) {\n throw new Error('Drawer.NestedRoot must be placed in another drawer');\n }\n return /*#__PURE__*/ React__default.createElement(Root, {\n nested: true,\n onClose: ()=>{\n onNestedOpenChange(false);\n },\n onDrag: (e, p)=>{\n onNestedDrag(e, p);\n onDrag == null ? void 0 : onDrag(e, p);\n },\n onOpenChange: (o)=>{\n if (o) {\n onNestedOpenChange(o);\n }\n onOpenChange == null ? void 0 : onOpenChange(o);\n },\n onRelease: onNestedRelease,\n ...rest\n });\n}\nconst Drawer = {\n Root,\n NestedRoot,\n Content,\n Handle,\n Overlay,\n Trigger: DialogPrimitive.Trigger,\n Portal: DialogPrimitive.Portal,\n Close: DialogPrimitive.Close,\n Title: DialogPrimitive.Title,\n Description: DialogPrimitive.Description\n};\n\nexport { Drawer };\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../util/cn.js\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {\n hideBar?: boolean;\n }\n>(({ className, children, hideBar = true, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className,\n )}\n {...props}\n >\n {!hideBar && (\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n )}\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { cx } from \"class-variance-authority\";\nimport { MenuIcon } from \"lucide-react\";\nimport { NavLink } from \"react-router-dom\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const MobileTopNavigation = () => {\n const { topNavigation } = useZudoku();\n return (\n <Drawer direction=\"right\">\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n </div>\n <DrawerContent\n className=\"lg:hidden h-screen right-0 left-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n {topNavigation.map((item) => (\n <li key={item.label}>\n <NavLink\n className={({ isActive }) =>\n cx(\n \"block font-medium border-b-2\",\n isActive\n ? \"border-primary text-foreground\"\n : \"border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25\",\n )\n }\n to={item.id}\n >\n <DrawerClose>{item.label}</DrawerClose>\n </NavLink>\n </li>\n ))}\n </ul>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = () => {\n const ctx = useZudoku();\n const [isOpen, setIsOpen] = useState(false);\n\n const onClose = useCallback(() => setIsOpen(false), []);\n\n useEffect(() => {\n if (isOpen) {\n return;\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setIsOpen(true);\n }\n }\n\n window.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, setIsOpen]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n className=\"flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-40 sm:w-72\"\n >\n <div className=\"flex items-center gap-2 flex-grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <kbd className=\"absolute right-[0.3rem] top-[0.3rem] hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n ⌘K\n </kbd>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </>\n );\n};\n","import { cx } from \"class-variance-authority\";\nimport { NavLink } from \"react-router-dom\";\n\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const TopNavigation = () => {\n const { topNavigation } = useZudoku();\n\n // Hide top nav if there is only one item\n if (topNavigation.length <= 1) {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <nav className=\"hidden lg:block border-b text-sm px-12 h-[--top-nav-height]\">\n <ul className=\"flex flex-row items-center gap-8\">\n {topNavigation.map((item) => (\n <li key={item.label}>\n <NavLink\n className={({ isActive }) =>\n cx(\n \"block py-3.5 font-medium -mb-px border-b-2\",\n isActive\n ? \"border-primary text-foreground\"\n : \"border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25\",\n )\n }\n to={item.id}\n >\n {item.label}\n </NavLink>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n","import { MoonStarIcon, SunIcon } from \"lucide-react\";\nimport { memo } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { isProfileMenuPlugin, ProfileNavigationItem } from \"../core/plugins.js\";\nimport { Button } from \"../ui/Button.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../ui/DropdownMenu.js\";\nimport { cn } from \"../util/cn.js\";\nimport { Banner } from \"./Banner.js\";\nimport { useTheme } from \"./context/ThemeContext.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { Search } from \"./Search.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { TopNavigation } from \"./TopNavigation.js\";\n\nconst RecursiveMenu = ({ item }: { item: ProfileNavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label}>{item.label}</DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const [isDark, toggleTheme] = useTheme();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { page, plugins } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .map((i) => <RecursiveMenu key={i.label} item={i} />);\n\n const ThemeIcon = isDark ? MoonStarIcon : SunIcon;\n\n return (\n <header className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\">\n <Banner />\n <div className=\"max-w-screen-2xl mx-auto\">\n <div className=\"grid grid-cols-2 lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b px-10 lg:px-12 h-[--top-header-height]\">\n <div className=\"flex\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-3.5\">\n {page?.logo && (\n <>\n <img\n src={page.logo.src.light}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className={cn(\"h-10\", isDark && \"hidden\")}\n loading=\"lazy\"\n />\n <img\n src={page.logo.src.dark}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className={cn(\"h-10\", !isDark && \"hidden\")}\n loading=\"lazy\"\n />\n </>\n )}\n <span className=\"font-bold text-2xl text-foreground/85 tracking-wide\">\n {page?.pageTitle}\n </span>\n </div>\n </Link>\n </div>\n <div className=\"grid grid-cols-2 md:grid-cols-[--sidecar-grid-cols] items-center gap-8\">\n <div className=\"w-full justify-center flex\">\n <Search />\n </div>\n\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slotlet name=\"head-navigation-start\" />\n {isAuthEnabled && !isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n accountItems.length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.email ? `${profile.email}` : \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {accountItems}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n <button\n type=\"button\"\n aria-label={\n isDark ? \"Switch to light mode\" : \"Switch to dark mode\"\n }\n className=\"cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full\"\n onClick={toggleTheme}\n >\n <ThemeIcon size={18} />\n </button>\n <Slotlet name=\"head-navigation-end\" />\n </div>\n </div>\n </div>\n <TopNavigation />\n </div>\n </header>\n );\n});\n","import {\n createContext,\n useContext,\n type ComponentProps,\n type ComponentType,\n} from \"react\";\nimport { Header } from \"../Header.js\";\n\nexport const DEFAULT_COMPONENTS = {\n Header,\n};\n\nexport type ComponentsContextType = {\n Header?: ComponentType<ComponentProps<typeof Header>>;\n};\n\nconst ComponentsContext =\n createContext<Required<ComponentsContextType>>(DEFAULT_COMPONENTS);\n\nexport const ComponentsProvider = ComponentsContext.Provider;\n\nexport const useComponents = () => {\n return useContext(ComponentsContext);\n};\n","import { ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { ThemeContext } from \"./ThemeContext.js\";\n\nexport const ThemeProvider = (props: { children: ReactNode }) => {\n const [dark, setDark] = useState(false);\n\n // On mount, read the preferred theme from the persistence\n useEffect(() => {\n const theme = localStorage.getItem(\"theme\");\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const isDark = theme === \"dark\" || (!theme && prefersDark.matches);\n\n setDark(isDark);\n }, [dark]);\n\n // To toggle between dark and light modes\n const toggle = useCallback(() => {\n const toggled = !dark;\n document.documentElement.classList.toggle(\"dark\", toggled);\n localStorage.setItem(\"theme\", toggled ? \"dark\" : \"light\");\n setDark(toggled);\n }, [dark]);\n\n const value = [dark, toggle] as const;\n\n return <ThemeContext.Provider value={value} {...props} />;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport { DevPortalContext } from \"../../core/DevPortalContext.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: DevPortalContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\"],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport {\n Fragment,\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useNavigation } from \"react-router-dom\";\nimport {\n DevPortalContext,\n queryClient,\n ZudokuContextOptions,\n} from \"../core/DevPortalContext.js\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport { TopLevelError } from \"../errors/TopLevelError.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { MdxComponents } from \"../util/MdxComponents.js\";\nimport \"../util/requestIdleCallbackPolyfill.js\";\nimport {\n ComponentsProvider,\n DEFAULT_COMPONENTS,\n} from \"./context/ComponentsContext.js\";\nimport { ThemeProvider } from \"./context/ThemeProvider.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\nimport { SlotletProvider } from \"./SlotletProvider.js\";\n\nconst DevPortalInner = ({\n children,\n ...props\n}: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const mdxComponents = useMemo(() => {\n const componentsFromPlugins = (props.plugins ?? [])\n .filter(isMdxProviderPlugin)\n .flatMap((plugin) =>\n plugin.getMdxComponents ? [plugin.getMdxComponents()] : [],\n );\n\n return {\n ...componentsFromPlugins.reduce((acc, curr) => ({ ...acc, ...curr }), {}),\n ...MdxComponents,\n ...props.mdx?.components,\n };\n }, [props.mdx?.components, props.plugins]);\n const { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n const [devPortalContext] = useState(() => new DevPortalContext(props));\n\n const heads = props.plugins\n ?.filter(hasHead)\n // eslint-disable-next-line react/no-array-index-key\n .map((plugin, i) => <Fragment key={i}>{plugin.getHead?.()}</Fragment>);\n\n return (\n <QueryClientProvider client={queryClient}>\n <Helmet>{heads}</Helmet>\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={devPortalContext}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider>\n <ComponentsProvider value={components}>\n <SlotletProvider slotlets={props.slotlets}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </SlotletProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </QueryClientProvider>\n );\n};\n\nconst Inner = memo(DevPortalInner);\n\nconst DevPortal = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <Inner {...props} />\n </ErrorBoundary>\n );\n};\nDevPortal.displayName = \"DevPortal\";\n\nexport { DevPortal };\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ChevronRightIcon } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport type { SidebarItemCategory } from \"../../../config/validators/SidebarSchema.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { useTopNavigationItem } from \"../context/ZudokuContext.js\";\nimport { navigationListItem, SidebarItem } from \"./SidebarItem.js\";\nimport { useIsCategoryOpen } from \"./utils.js\";\n\nexport const SidebarCategory = ({\n category,\n level,\n}: {\n category: SidebarItemCategory;\n level: number;\n}) => {\n const topNavItem = useTopNavigationItem();\n const isCategoryOpen = useIsCategoryOpen(category);\n const [hasInteracted, setHasInteracted] = useState(false);\n\n const isCollapsible = category.collapsible ?? true;\n const isCollapsed = category.collapsed ?? true;\n const isDefaultOpen = Boolean(\n !isCollapsible || !isCollapsed || isCategoryOpen,\n );\n const [open, setOpen] = useState(isDefaultOpen);\n\n useEffect(() => {\n // this is triggered when an item from the sidebar is clicked\n // and the sidebar, enclosing this item, is not opened\n if (isCategoryOpen) {\n setOpen(true);\n }\n }, [isCategoryOpen]);\n\n const ToggleButton = isCollapsible && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.preventDefault();\n setOpen((prev) => !prev);\n setHasInteracted(true);\n }}\n >\n <ChevronRightIcon\n size={16}\n className={cn(\n hasInteracted && \"transition\",\n \"shrink-0 group-data-[state=open]:rotate-90\",\n )}\n />\n </button>\n );\n\n return (\n <Collapsible.Root\n className={cn(\"flex flex-col\", level === 0 && \"-mx-[--padding-nav-item]\")}\n defaultOpen={isDefaultOpen}\n open={open}\n onOpenChange={() => setOpen(true)}\n >\n <Collapsible.Trigger className=\"group\" asChild disabled={!isCollapsible}>\n <div\n className={cn(\n \"text-start\",\n navigationListItem({ isActive: false, isTopLevel: level === 0 }),\n isCollapsible\n ? \"cursor-pointer\"\n : \"cursor-default hover:bg-transparent\",\n )}\n >\n {category.icon && (\n <category.icon\n size={16}\n className=\"align-[-0.125em] -translate-x-1\"\n />\n )}\n {category.link?.type === \"doc\" ? (\n <NavLink\n to={joinPath(topNavItem?.id, category.link.id)}\n className=\"flex-1\"\n onClick={() => setHasInteracted(true)}\n >\n {({ isActive }) => (\n <div\n className={cn(\n \"flex items-center gap-2 justify-between w-full\",\n isActive\n ? \"text-primary font-medium\"\n : \"text-foreground/80\",\n )}\n >\n <div className=\"truncate\">{category.label}</div>\n {ToggleButton}\n </div>\n )}\n </NavLink>\n ) : (\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"flex gap-2 truncate w-full\">{category.label}</div>\n {ToggleButton}\n </div>\n )}\n </div>\n </Collapsible.Trigger>\n <Collapsible.Content\n className={cn(\n // CollapsibleContent class is used to animate and it should only be applied when the user has triggered the toggle\n hasInteracted && \"CollapsibleContent\",\n \"ms-[calc(var(--padding-nav-item)*1.125)]\",\n )}\n >\n <ul className=\"mt-1 border-l ps-2\">\n {category.items.map((item) => (\n <SidebarItem\n key={\n (\"id\" in item ? item.id : \"\") +\n (\"href\" in item ? item.href : \"\") +\n item.label\n }\n level={level + 1}\n item={item}\n />\n ))}\n </ul>\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import { cva } from \"class-variance-authority\";\nimport { ExternalLinkIcon } from \"lucide-react\";\nimport { NavLink, useSearchParams } from \"react-router-dom\";\n\nimport type { SidebarItem as SidebarItemType } from \"../../../config/validators/SidebarSchema.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { AnchorLink } from \"../AnchorLink.js\";\nimport { useViewportAnchor } from \"../context/ViewportAnchorContext.js\";\nimport { useTopNavigationItem } from \"../context/ZudokuContext.js\";\nimport { SidebarBadge } from \"./SidebarBadge.js\";\nimport { SidebarCategory } from \"./SidebarCategory.js\";\n\nexport const navigationListItem = cva(\n \"flex items-center gap-2 px-[--padding-nav-item] py-1.5 rounded-lg hover:bg-accent transition-colors duration-300\",\n {\n variants: {\n isTopLevel: {\n true: \"font-semibold\",\n },\n isActive: {\n true: \"text-primary font-medium\",\n false: \"text-foreground/80\",\n },\n isMuted: {\n true: \"text-foreground/30\",\n false: \"\",\n },\n },\n },\n);\n\nexport const DATA_ANCHOR_ATTR = \"data-anchor\";\n\nexport const SidebarItem = ({\n item,\n level = 0,\n}: {\n item: SidebarItemType;\n basePath?: string;\n level?: number;\n}) => {\n const topNavItem = useTopNavigationItem();\n const { activeAnchor } = useViewportAnchor();\n const [searchParams] = useSearchParams();\n\n switch (item.type) {\n case \"category\":\n return <SidebarCategory category={item} level={level} />;\n case \"doc\":\n return (\n <NavLink\n className={({ isActive }) =>\n navigationListItem({ isActive, isTopLevel: level === 0 })\n }\n to={joinPath(topNavItem?.id, item.id)}\n >\n {item.icon && <item.icon size={16} className=\"align-[-0.125em]\" />}\n {item.badge ? (\n <>\n <span className=\"truncate\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n item.label\n )}\n </NavLink>\n );\n case \"link\":\n return item.href.startsWith(\"#\") ? (\n <AnchorLink\n to={{ hash: item.href, search: searchParams.toString() }}\n {...{ [DATA_ANCHOR_ATTR]: item.href.slice(1) }}\n className={cn(\n \"flex gap-2.5 justify-between\",\n level === 0 && \"-mx-[--padding-nav-item]\",\n navigationListItem({\n isActive: item.href.slice(1) === activeAnchor,\n }),\n )}\n >\n {item.badge ? (\n <>\n <span className=\"truncate\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n <span className=\"break-all\">{item.label}</span>\n )}\n </AnchorLink>\n ) : !item.href.startsWith(\"http\") ? (\n <NavLink\n className={cn(\"flex gap-2.5 justify-between\", navigationListItem())}\n to={item.href}\n >\n {item.badge ? (\n <>\n <span className=\"truncate\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n <span className=\"break-all\">{item.label}</span>\n )}\n </NavLink>\n ) : (\n <a\n className={cn(\n navigationListItem({ isTopLevel: level === 0 }),\n \"block\",\n )}\n href={item.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span className=\"whitespace-normal\">{item.label}</span>\n {/* This prevents that the icon would be positioned in its own line if the text fills a line entirely */}\n <span className=\"whitespace-nowrap\">\n \n <ExternalLinkIcon className=\"inline ml-1\" size={12} />\n </span>\n </a>\n );\n }\n};\n","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useViewportAnchor } from \"../components/context/ViewportAnchorContext.js\";\nimport { DATA_ANCHOR_ATTR } from \"../components/navigation/SidebarItem.js\";\n\nconst scrollIntoViewIfNeeded = (\n element: Element | null,\n options: ScrollIntoViewOptions = { block: \"center\" },\n) => {\n if (!element) return;\n\n const rect = element.getBoundingClientRect();\n const isInView =\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <=\n (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n\n if (isInView) return;\n\n element.scrollIntoView(options);\n};\n\nexport const useScrollToAnchor = () => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n\n useEffect(() => {\n if (!location.hash) return;\n\n const hash = decodeURIComponent(location.hash.split(\"/\")[0].slice(1));\n\n const scrollToElement = () => {\n const element = document.getElementById(hash);\n const link = document.querySelector(`[${DATA_ANCHOR_ATTR}=\"${hash}\"]`);\n\n if (element) {\n element.scrollIntoView();\n scrollIntoViewIfNeeded(link);\n requestIdleCallback(() => setActiveAnchor(hash));\n return true;\n }\n\n return false;\n };\n\n if (!scrollToElement()) {\n const observer = new MutationObserver((_, obs) => {\n if (!scrollToElement()) return;\n obs.disconnect();\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n }\n }, [location.hash, setActiveAnchor]);\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nexport const useScrollToTop = () => {\n const location = useLocation();\n const previousPath = useRef(location.pathname);\n\n useEffect(() => {\n if (previousPath.current === location.pathname) return;\n window.scrollTo(0, 0);\n previousPath.current = location.pathname;\n }, [location.pathname]);\n};\n","import { forwardRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SidebarWrapper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<{ pushMainContent?: boolean; className?: string }>\n>(({ children, className, pushMainContent }, ref) => (\n <nav\n // this data attribute is used in `Layout.tsx` to determine if side navigation\n // is present for the current page so the main content is pushed to the right\n // it's also important to set `peer` class here.\n // maybe this could be simplified by adjusting the layout\n data-navigation={String(pushMainContent)}\n className={cn(\n \"scrollbar peer hidden lg:flex flex-col fixed text-sm overflow-y-auto shrink-0\",\n \"px-[--padding-nav-item] -mx-[--padding-nav-item] pb-20 mt-[--padding-content-top]\",\n \"w-[--side-nav-width] h-[calc(100%-var(--header-height))] scroll-pt-2 gap-2\",\n className,\n )}\n ref={ref}\n >\n {children}\n </nav>\n));\n\nSidebarWrapper.displayName = \"SidebarWrapper\";\n","import { useRef } from \"react\";\n\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { DrawerContent, DrawerTitle } from \"../../ui/Drawer.js\";\nimport { useNavigation } from \"../context/ZudokuContext.js\";\nimport { Slotlet } from \"../SlotletProvider.js\";\nimport { SidebarItem } from \"./SidebarItem.js\";\nimport { SidebarWrapper } from \"./SidebarWrapper.js\";\n\nexport const Sidebar = () => {\n const navRef = useRef<HTMLDivElement | null>(null);\n const navigation = useNavigation();\n\n return (\n <>\n <SidebarWrapper\n ref={navRef}\n pushMainContent={navigation.data.items.length > 0}\n >\n <Slotlet name=\"zudoku-before-navigation\" />\n {navigation.data.items.map((item) => (\n <SidebarItem key={item.label} item={item} />\n ))}\n <Slotlet name=\"zudoku-after-navigation\" />\n </SidebarWrapper>\n <DrawerContent\n className=\"lg:hidden h-screen left-0 p-6 w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <VisuallyHidden>\n <DrawerTitle>Sidebar</DrawerTitle>\n </VisuallyHidden>\n {navigation.data.items.map((item) => (\n <SidebarItem key={item.label} item={item} />\n ))}\n </DrawerContent>\n </>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport { Suspense, useEffect, useRef, type ReactNode } from \"react\";\nimport { Outlet, useLocation } from \"react-router-dom\";\nimport { Drawer, DrawerTrigger } from \"../ui/Drawer.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useViewportAnchor } from \"./context/ViewportAnchorContext.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Header } from \"./Header.js\";\nimport { Sidebar } from \"./navigation/Sidebar.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n const { meta, authentication } = useZudoku();\n\n useScrollToAnchor();\n useScrollToTop();\n\n const previousLocationPath = useRef(location.pathname);\n\n useEffect(() => {\n // Initialize the authentication plugin\n authentication?.pageLoad?.();\n }, [authentication]);\n\n useEffect(() => {\n // always reset on location change\n if (location.pathname !== previousLocationPath.current) {\n setActiveAnchor(\"\");\n }\n previousLocationPath.current = location.pathname;\n }, [location.pathname, setActiveAnchor]);\n\n return (\n <>\n {import.meta.env.MODE === \"standalone\" && (\n <style>{`:root { --top-nav-height: 0px; }`}</style>\n )}\n <Helmet titleTemplate={meta?.title}>\n {meta?.description && (\n <meta name=\"description\" content={meta.description} />\n )}\n {meta?.favicon && <link rel=\"icon\" href={meta.favicon} />}\n </Helmet>\n <Slotlet name=\"layout-before-head\" />\n <Header />\n\n <div className=\"w-full max-w-screen-2xl mx-auto px-10 lg:px-12\">\n <Suspense\n fallback={\n <main className=\"grid h-[calc(100vh-var(--header-height))] place-items-center\">\n <Spinner />\n </main>\n }\n >\n <Drawer direction=\"left\">\n <Sidebar />\n <div\n className={cn(\n \"lg:hidden -mx-10 px-10 py-2 sticky bg-background/80 backdrop-blur z-10 top-0 left-0 right-0 border-b\",\n \"peer-data-[navigation=false]:hidden\",\n )}\n >\n <DrawerTrigger className=\"flex items-center gap-2\">\n <PanelLeftIcon size={16} strokeWidth={1.5} />\n <span className=\"text-sm\">Menu</span>\n </DrawerTrigger>\n </div>\n <main\n className={cn(\n \"h-full dark:border-white/10 translate-x-0\",\n \"lg:overflow-visible\",\n // This works in tandem with the `SidebarWrapper` component\n \"lg:peer-data-[navigation=true]:w-[calc(100%-var(--side-nav-width))]\",\n \"lg:peer-data-[navigation=true]:translate-x-[--side-nav-width] lg:peer-data-[navigation=true]:pl-12\",\n )}\n >\n <Slotlet name=\"zudoku-before-content\" />\n {children ?? <Outlet />}\n <Slotlet name=\"zudoku-after-content\" />\n </main>\n </Drawer>\n </Suspense>\n </div>\n </>\n );\n};\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Link as LinkImport } from \"react-router-dom\";\nimport { RouterError as RouterErrorImport } from \"../errors/RouterError.js\";\nimport { ServerError as ServerErrorImport } from \"../errors/ServerError.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport {\n Bootstrap as BootstrapImport,\n BootstrapStatic as BootstrapStaticImport,\n} from \"./Bootstrap.js\";\nimport { DevPortal as DevPortalImport } from \"./DevPortal.js\";\nimport { Layout as LayoutImport } from \"./Layout.js\";\n\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const DevPortal = /*@__PURE__*/ DevPortalImport;\nexport const Layout = /*@__PURE__*/ LayoutImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const RouterError = /*@__PURE__*/ RouterErrorImport;\nexport const ServerError = /*@__PURE__*/ ServerErrorImport;\nexport const Bootstrap = /*@__PURE__*/ BootstrapImport;\nexport const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Head = /*@__PURE__*/ Helmet;\n"],"names":["ServerError","error","jsx","ErrorAlert","server","React","require$$0","router","require$$1","reactRouter","require$$2","reactRouterDom","require$$3","_interopNamespace","n","k","d","React__namespace","StaticRouter","basename","children","locationProp","future","action","location","staticNavigator","getStatelessNavigator","StaticRouterProvider","context","router$1","hydrate","nonce","dataRouterContext","fetchersContext","hydrateScript","data","serializeErrors","htmlEscape","state","DataRoutes","routes","errors","entries","serialized","key","val","createHref","encodeLocation","to","delta","createStaticHandler","opts","createStaticRouter","manifest","dataRoutes","matches","match","route","msg","method","_a","_b","href","encoded","ABSOLUTE_URL_REGEX","ESCAPE_LOOKUP","ESCAPE_REGEX","str","StaticRouterProvider_1","Bootstrap","StrictMode","HelmetProvider","StaggeredRenderContext","RouterProvider","BootstrapStatic","helmetContext","QueryCache","Subscribable","config","__privateAdd","_queries","__privateSet","client","options","queryKey","queryHash","hashQueryKeyByOptions","query","Query","__privateGet","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","_mutations","_mutationId","mutation","Mutation","__privateWrapper","scope","scopeFor","mutations","x","firstPendingMutation","m","foundMutation","matchMutation","pausedMutations","noop","infiniteQueryBehavior","pages","fetchFn","direction","_c","oldPages","_d","oldPageParams","_e","empty","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","param","previous","queryFnContext","page","maxPages","addTo","addToStart","addToEnd","result","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","i","pageParams","lastIndex","QueryClient","_queryCache","_mutationCache","_defaultOptions","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","focusManager","focused","onlineManager","online","cachedData","defaultedOptions","resolveStaleTime","updater","prevData","functionalUpdate","queryCache","refetchFilters","cancelOptions","defaultedCancelOptions","promises","fetchOptions","promise","hashKey","defaults","queryDefault","partialMatchKey","mutationKey","skipToken","ErrorBoundaryContext","createContext","initialState","ErrorBoundary","Component","props","_this$props$onReset","_this$props","_len","args","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","isValidElement","a","b","item","index","isProfileMenuPlugin","obj","isNavigationPlugin","isSearchPlugin","needsInitialization","hasHead","isMdxProviderPlugin","isApiIdentityPlugin","queryClient","DevPortalContext","__publicField","plugin","path","joinPath","nav","request","accessToken","TopLevelError","resetErrorBoundary","root","cb","SELECTION_KEYS","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","SUB_CLOSE_KEYS","MENU_NAME","Collection","useCollection","createCollectionScope","createCollection","createMenuContext","createMenuScope","createContextScope","createPopperScope","createRovingFocusGroupScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","Menu","__scopeMenu","open","dir","onOpenChange","modal","popperScope","content","setContent","isUsingKeyboardRef","handleOpenChange","useCallbackRef","useDirection","handleKeyDown","handlePointer","PopperPrimitive.Root","ANCHOR_NAME","MenuAnchor","forwardedRef","anchorProps","PopperPrimitive.Anchor","PORTAL_NAME","PortalProvider","usePortalContext","MenuPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","MenuContentProvider","useMenuContentContext","MenuContent","portalContext","contentProps","rootContext","MenuRootContentModal","MenuRootContentNonModal","ref","composedRefs","useComposedRefs","hideOthers","MenuContentImpl","composeEventHandlers","loop","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEntryFocus","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","disableOutsideScroll","rovingFocusGroupScope","getItems","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","RemoveScroll","scrollLockWrapperProps","Slot","handleTypeaheadSearch","search","items","currentItem","currentMatch","values","nextMatch","getNextMatch","newItem","updateSearch","value","useFocusGuards","isPointerMovingToSubmenu","isPointerInGraceArea","intent","FocusScope","DismissableLayer","RovingFocusGroup.Root","PopperPrimitive.Content","getOpenState","isKeyDownInside","isModifierKey","isCharacterKey","candidateNodes","focusFirst","whenMouse","target","pointerXHasChanged","newDir","GROUP_NAME","MenuGroup","groupProps","Primitive","LABEL_NAME","MenuLabel","labelProps","ITEM_NAME","ITEM_SELECT","MenuItem","disabled","onSelect","itemProps","contentContext","isPointerDownRef","handleSelect","menuItem","itemSelectEvent","dispatchDiscreteCustomEvent","MenuItemImpl","isTypingAhead","textValue","isFocused","setIsFocused","textContent","setTextContent","RovingFocusGroup.Item","CHECKBOX_ITEM_NAME","MenuCheckboxItem","checked","onCheckedChange","checkboxItemProps","ItemIndicatorProvider","isIndeterminate","getCheckedState","RADIO_GROUP_NAME","RadioGroupProvider","useRadioGroupContext","MenuRadioGroup","onValueChange","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","SEPARATOR_NAME","MenuSeparator","separatorProps","ARROW_NAME","MenuArrow","arrowProps","PopperPrimitive.Arrow","SUB_NAME","MenuSubProvider","useMenuSubContext","MenuSub","parentMenuContext","trigger","setTrigger","useId","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","openTimerRef","onPointerGraceIntentChange","clearOpenTimer","pointerGraceTimer","composeRefs","contentRect","side","rightSide","bleed","contentNearEdge","contentFarEdge","SUB_CONTENT_NAME","MenuSubContent","subContentProps","isCloseKey","candidates","PREVIOUSLY_FOCUSED_ELEMENT","candidate","wrapArray","array","startIndex","_","normalizedSearch","char","currentMatchIndex","wrappedValues","isPointInPolygon","point","polygon","y","inside","j","xi","yi","xj","yj","area","cursorPos","handler","Root3","Anchor2","Portal","Content2","Group","Label","Item2","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow2","Sub","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","createDropdownMenuScope","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenu","__scopeDropdownMenu","openProp","defaultOpen","menuScope","triggerRef","setOpen","useControllableState","prevOpen","MenuPrimitive.Root","TRIGGER_NAME","DropdownMenuTrigger","triggerProps","MenuPrimitive.Anchor","DropdownMenuPortal","portalProps","MenuPrimitive.Portal","DropdownMenuContent","hasInteractedOutsideRef","MenuPrimitive.Content","originalEvent","ctrlLeftClick","isRightClick","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","INDICATOR_NAME","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuArrow","MenuPrimitive.Arrow","DropdownMenuSub","MenuPrimitive.Sub","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Root2","Trigger","Portal2","Label2","CheckboxItem2","RadioItem2","ItemIndicator2","Separator2","Sub2","SubTrigger2","SubContent2","DropdownMenuPrimitive.Root","DropdownMenuPrimitive.Trigger","DropdownMenuPrimitive.Portal","DropdownMenuPrimitive.Sub","className","inset","jsxs","DropdownMenuPrimitive.SubTrigger","cn","ChevronRightIcon","DropdownMenuPrimitive.SubContent","sideOffset","DropdownMenuPrimitive.Content","DropdownMenuPrimitive.Item","DropdownMenuPrimitive.CheckboxItem","DropdownMenuPrimitive.ItemIndicator","CheckIcon","DropdownMenuPrimitive.RadioItem","DotIcon","DropdownMenuPrimitive.Label","DropdownMenuPrimitive.Separator","COLOR_MAP","Banner","useZudoku","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","CircleXIcon","__insertCSS","code","head","DrawerContext","React__default","useDrawerContext","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","chain","callbacks","callback","isMac","testPlatform","isIPhone","isIPad","isIOS","re","visualViewport","isScrollable","node","getScrollParent","nonTextInputTypes","preventScrollCount","restore","usePreventScroll","isDisabled","preventScrollMobileSafari","preventScrollStandard","setStyle","scrollable","lastY","onTouchStart","e","onTouchMove","scrollTop","bottom","onTouchEnd","isInput","onFocus","scrollIntoView","onWindowScroll","scrollX","scrollY","restoreStyles","removeEvents","addEvent","element","cur","scrollableTop","targetTop","targetBottom","keyboardHeight","setRef","refs","previousBodyPosition","usePositionFixed","isOpen","nested","hasBeenOpened","preventScrollRestoration","noBodyStyles","activeUrl","setActiveUrl","scrollPos","setPositionFixed","innerHeight","bottomBarHeight","restorePositionSetting","onScroll","cache","set","el","styles","ignoreCache","originalStyles","reset","prop","isVertical","getTranslate","transform","mat","dampenValue","v","TRANSITIONS","VELOCITY_THRESHOLD","callbackRef","useUncontrolledState","defaultProp","onChange","uncontrolledState","prevValueRef","handleChange","uncontrolledProp","setUncontrolledProp","isControlled","setValue","nextValue","useSnapPoints","activeSnapPointProp","setActiveSnapPointProp","snapPoints","drawerRef","overlayRef","fadeFromIndex","onSnapPointChange","activeSnapPoint","setActiveSnapPoint","isLastSnapPoint","shouldFade","activeSnapPointIndex","snapPoint","snapPointsOffset","_snapPoints_map","hasWindow","isPx","snapPointAsNumber","height","width","activeSnapPointOffset","snapToPoint","dimension","_snapPointsOffset_findIndex","newSnapPointIndex","snapPointDim","_snapPoints_findIndex","newIndex","onRelease","draggedDistance","closeDrawer","velocity","dismissible","currentPosition","isOverlaySnapPoint","isFirst","hasDraggedUp","closestSnapPoint","prev","curr","dim","dragDirection","onDrag","newValue","getPercentageDragged","absDraggedDistance","isDraggingDown","targetSnapPointIndex","snapPointDistance","percentageDragged","CLOSE_THRESHOLD","SCROLL_LOCK_TIMEOUT","BORDER_RADIUS","NESTED_DISPLACEMENT","WINDOW_TOP_OFFSET","DRAG_CLASS","Root","shouldScaleBackground","onDragProp","onReleaseProp","setBackgroundColorOnScale","closeThreshold","scrollLockTimeout","handleOnly","fixed","onClose","disablePreventScroll","_drawerRef_current","setIsOpen","setHasBeenOpened","visible","setVisible","mounted","setMounted","isDragging","setIsDragging","justReleased","setJustReleased","openTime","dragStartTime","dragEndTime","lastTimeDragPrevented","isAllowedToDrag","nestedOpenChangeTimer","pointerStart","keyboardIsOpen","previousDiffFromInitial","drawerHeightRef","initialDrawerHeight","onReleaseSnapPoints","onDragSnapPoints","getSnapPointsPercentageDragged","getScale","onPress","shouldDrag","isDraggingInDirection","_window_getSelection","highlightedText","swipeAmount","date","directionMultiplier","noCloseSnapPointsPreCondition","wrapper","snapPointPercentageDragged","dampenedDraggedDistance","translateValue","opacityValue","scaleValue","borderRadiusValue","scaleBackground","_window_visualViewport","onVisualViewportChange","focusedElement","visualViewportHeight","diffFromInitial","drawerHeight","offsetFromTop","activeSnapPointHeight","newDrawerHeight","cancelDrag","id","resetDrawer","currentSwipeAmount","timeTaken","distMoved","_drawerRef_current_getBoundingClientRect_height","visibleDrawerHeight","child","htmlChild","onNestedOpenChange","o","scale","onNestedDrag","initialDim","initialScale","newScale","newTranslate","onNestedRelease","translate","DialogPrimitive.Root","LONG_HANDLE_PRESS_TIMEOUT","DOUBLE_TAP_TIMEOUT","Handle","preventCycle","rest","closeTimeoutIdRef","shouldCancelInteractionRef","handleStartCycle","handleCancelInteraction","handleCycleSnapPoints","currentSnapIndex","nextSnapPoint","handleStartInteraction","Overlay","composedRef","hasSnapPoints","DialogPrimitive.Overlay","Content","onAnimationEnd","pointerStartRef","wasBeyondThePointRef","isDeltaInDirection","threshold","deltaY","deltaX","isDeltaX","dFactor","DialogPrimitive.Content","yPosition","xPosition","swipeStartThreshold","NestedRoot","p","Drawer","DialogPrimitive.Trigger","DialogPrimitive.Portal","DialogPrimitive.Close","DialogPrimitive.Title","DialogPrimitive.Description","DrawerPrimitive","DrawerTrigger","DrawerPortal","DrawerClose","DrawerOverlay","DrawerContent","hideBar","DrawerTitle","DrawerDescription","MobileTopNavigation","topNavigation","MenuIcon","VisuallyHidden","NavLink","isActive","cx","Search","ctx","useCallback","onKeyDown","searchPlugin","Fragment","SearchIcon","Suspense","TopNavigation","RecursiveMenu","Link","Header","memo","auth","useAuth","isDark","toggleTheme","useTheme","isAuthenticated","profile","isAuthEnabled","plugins","accountItems","ThemeIcon","MoonStarIcon","SunIcon","Slotlet","Button","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","ThemeProvider","dark","setDark","theme","prefersDark","toggle","toggled","ThemeContext","ZudokuProvider","useSuspenseQuery","ZudokuReactContext","DevPortalInner","components","useMemo","mdxComponents","acc","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","navigation","useNavigation","devPortalContext","heads","QueryClientProvider","Helmet","MDXProvider","SlotletProvider","ViewportAnchorProvider","Outlet","Inner","DevPortal","SidebarCategory","category","level","topNavItem","useTopNavigationItem","isCategoryOpen","useIsCategoryOpen","hasInteracted","setHasInteracted","isCollapsible","isCollapsed","isDefaultOpen","ToggleButton","Collapsible.Root","Collapsible.Trigger","navigationListItem","Collapsible.Content","SidebarItem","cva","DATA_ANCHOR_ATTR","activeAnchor","useViewportAnchor","searchParams","useSearchParams","SidebarBadge","AnchorLink","ExternalLinkIcon","scrollIntoViewIfNeeded","rect","useScrollToAnchor","useLocation","setActiveAnchor","hash","scrollToElement","link","observer","obs","useScrollToTop","previousPath","useRef","SidebarWrapper","forwardRef","pushMainContent","Sidebar","navRef","Layout","meta","authentication","previousLocationPath","Spinner","PanelLeftIcon","useMDXComponents","useMDXComponentsImport","Callout","CalloutImport","DevPortalImport","LayoutImport","LinkImport","RouterError","RouterErrorImport","ServerErrorImport","BootstrapImport","BootstrapStaticImport","ButtonImport","Head"],"mappings":"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","x_google_ignoreList":[1,3,4,5,6,7,12,13,16]}
|
|
1
|
+
{"version":3,"file":"zudoku.components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|