zudoku 0.66.0 → 0.66.2
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/dist/config/validators/validate.d.ts +0 -2
- package/dist/config/validators/validate.js +0 -1
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/flat-config.d.ts +1 -1
- package/dist/lib/authentication/ui/ZudokuAuthUi.js +5 -1
- package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -1
- package/dist/vite/config.js +1 -4
- package/dist/vite/config.js.map +1 -1
- package/lib/ActionButton-DUgvSylL.js +25 -0
- package/lib/ActionButton-DUgvSylL.js.map +1 -0
- package/lib/{ClaudeLogo-PxFjou9w.js → ClaudeLogo-CGRfGTk2.js} +2 -2
- package/lib/{ClaudeLogo-PxFjou9w.js.map → ClaudeLogo-CGRfGTk2.js.map} +1 -1
- package/lib/Drawer-Ci7XwhqT.js.map +1 -1
- package/lib/{ErrorAlert-BqjbNHIn.js → ErrorAlert-BUlG32M9.js} +6 -6
- package/lib/{ErrorAlert-BqjbNHIn.js.map → ErrorAlert-BUlG32M9.js.map} +1 -1
- package/lib/{MdxPage-CVFatbHw.js → MdxPage-Bjf72BP3.js} +7 -7
- package/lib/{MdxPage-CVFatbHw.js.map → MdxPage-Bjf72BP3.js.map} +1 -1
- package/lib/{Mermaid-CIFixY6C.js → Mermaid-D_VSX7_Q.js} +3 -3
- package/lib/{Mermaid-CIFixY6C.js.map → Mermaid-D_VSX7_Q.js.map} +1 -1
- package/lib/{OAuthErrorPage-Dup79DJk.js → OAuthErrorPage-1Ekji0PK.js} +6 -6
- package/lib/{OAuthErrorPage-Dup79DJk.js.map → OAuthErrorPage-1Ekji0PK.js.map} +1 -1
- package/lib/{OasProvider-BJeMq29o.js → OasProvider-BZxmTyMM.js} +3 -3
- package/lib/{OasProvider-BJeMq29o.js.map → OasProvider-BZxmTyMM.js.map} +1 -1
- package/lib/{OperationList-ff3ZvQsO.js → OperationList-B7nPIFB8.js} +329 -348
- package/lib/OperationList-B7nPIFB8.js.map +1 -0
- package/lib/{RouteGuard-BXy13JSz.js → RouteGuard-9wjejsKm.js} +3 -3
- package/lib/{RouteGuard-BXy13JSz.js.map → RouteGuard-9wjejsKm.js.map} +1 -1
- package/lib/{RouterError-CKOZTsDD.js → RouterError-DfTZblpv.js} +2 -2
- package/lib/{RouterError-CKOZTsDD.js.map → RouterError-DfTZblpv.js.map} +1 -1
- package/lib/{SchemaList-BSC1KM3v.js → SchemaList-16_obkku.js} +7 -7
- package/lib/{SchemaList-BSC1KM3v.js.map → SchemaList-16_obkku.js.map} +1 -1
- package/lib/{SchemaView-CgwJ9gtb.js → SchemaView-eyvR4bRt.js} +3 -3
- package/lib/{SchemaView-CgwJ9gtb.js.map → SchemaView-eyvR4bRt.js.map} +1 -1
- package/lib/Select-CkxXP5I7.js +243 -0
- package/lib/Select-CkxXP5I7.js.map +1 -0
- package/lib/Separator-CTPSeW1S.js +27 -0
- package/lib/Separator-CTPSeW1S.js.map +1 -0
- package/lib/{SignUp-Pm_LGm6T.js → SignUp-D54_QWFy.js} +3 -3
- package/lib/{SignUp-Pm_LGm6T.js.map → SignUp-D54_QWFy.js.map} +1 -1
- package/lib/{SyntaxHighlight-bkmst3oV.js → SyntaxHighlight-j_HRSPCU.js} +1508 -1492
- package/lib/SyntaxHighlight-j_HRSPCU.js.map +1 -0
- package/lib/{Toc-TUXNFbKl.js → Toc-z05x698-.js} +2 -2
- package/lib/{Toc-TUXNFbKl.js.map → Toc-z05x698-.js.map} +1 -1
- package/lib/{ZudokuContext-np1wheDl.js → ZudokuContext-BXldanA8.js} +5 -5
- package/lib/{ZudokuContext-np1wheDl.js.map → ZudokuContext-BXldanA8.js.map} +1 -1
- package/lib/chunk-PVWAREVJ-dLIqswPy.js.map +1 -1
- package/lib/{circular-XPj_dwqA.js → circular-D5sYCIWL.js} +2 -2
- package/lib/{circular-XPj_dwqA.js.map → circular-D5sYCIWL.js.map} +1 -1
- package/lib/{createServer-D01nCTNp.js → createServer-BlwU7lIr.js} +4 -4
- package/lib/{createServer-D01nCTNp.js.map → createServer-BlwU7lIr.js.map} +1 -1
- package/lib/createVariantComponent-B9_dVBvu.js +35 -0
- package/lib/createVariantComponent-B9_dVBvu.js.map +1 -0
- package/lib/{errors-B0hNTPFO.js → errors-BtC4Kn2j.js} +2 -2
- package/lib/{errors-B0hNTPFO.js.map → errors-BtC4Kn2j.js.map} +1 -1
- package/lib/firebase-Ibm_tv3G.js +7366 -0
- package/lib/firebase-Ibm_tv3G.js.map +1 -0
- package/lib/{hook-CvSwcbk6.js → hook-BNxidGQq.js} +2 -2
- package/lib/{hook-CvSwcbk6.js.map → hook-BNxidGQq.js.map} +1 -1
- package/lib/{index-Bjc_QsUR.js → index-CeVTNcfF.js} +452 -476
- package/lib/index-CeVTNcfF.js.map +1 -0
- package/lib/index-CrcNWbel.js.map +1 -1
- package/lib/{index-DnMgJWrI.js → index-Css56y3F.js} +3 -3
- package/lib/{index-DnMgJWrI.js.map → index-Css56y3F.js.map} +1 -1
- package/lib/{index-mfkNWYG-.js → index-DSOi7zVM.js} +5 -5
- package/lib/{index-mfkNWYG-.js.map → index-DSOi7zVM.js.map} +1 -1
- package/lib/{index-DscsS121.js → index-eKVhlB94.js} +2 -2
- package/lib/{index-DscsS121.js.map → index-eKVhlB94.js.map} +1 -1
- package/lib/index.esm-BYObtETB.js.map +1 -1
- package/lib/index.esm-BoKBnRoT.js +32 -0
- package/lib/index.esm-BoKBnRoT.js.map +1 -0
- package/lib/index.esm-DtzT_KoE.js.map +1 -1
- package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
- package/lib/{mutation-BlmnL5qL.js → mutation-BoVlx8yA.js} +2 -2
- package/lib/{mutation-BlmnL5qL.js.map → mutation-BoVlx8yA.js.map} +1 -1
- package/lib/ui/Carousel.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +2 -2
- package/lib/useMutation-C6RqWmTS.js +97 -0
- package/lib/useMutation-C6RqWmTS.js.map +1 -0
- package/lib/zudoku.__internal.js +6 -6
- package/lib/zudoku.__internal.js.map +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-azureb2c.js +4 -4
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-firebase.js +9 -0
- package/lib/zudoku.auth-firebase.js.map +1 -0
- package/lib/zudoku.auth-openid.js +4 -4
- package/lib/zudoku.auth-supabase.js +4 -4
- package/lib/zudoku.components.js +5 -5
- package/lib/zudoku.hooks.js +3 -3
- package/lib/zudoku.mermaid.js +3 -3
- package/lib/zudoku.plugin-api-catalog.js +4 -4
- package/lib/zudoku.plugin-api-keys.js +162 -178
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +2 -2
- package/lib/zudoku.plugin-search-pagefind.js +2 -2
- package/lib/zudoku.router.js.map +1 -1
- package/package.json +19 -15
- package/src/lib/authentication/ui/ZudokuAuthUi.tsx +11 -1
- package/lib/OperationList-ff3ZvQsO.js.map +0 -1
- package/lib/Select-VmDZ-nKe.js +0 -337
- package/lib/Select-VmDZ-nKe.js.map +0 -1
- package/lib/SyntaxHighlight-bkmst3oV.js.map +0 -1
- package/lib/index-Bjc_QsUR.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-mfkNWYG-.js","sources":["../../../node_modules/.pnpm/react-error-boundary@6.0.0_react@19.2.0/node_modules/react-error-boundary/dist/react-error-boundary.js","../../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js","../src/lib/util/objectEntries.ts","../src/lib/core/ZudokuContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/plugins/openapi/StaggeredRender.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../src/lib/ui/Skeleton.tsx","../src/lib/components/Banner.tsx","../src/lib/components/navigation/ZudokuLogo.tsx","../src/lib/components/navigation/PoweredByZudoku.tsx","../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@tanem+react-nprogress@5.0.56_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@tanem/react-nprogress/dist/react-nprogress.esm.js","../src/lib/components/PageProgress.tsx","../src/lib/util/detectOS.ts","../src/lib/components/Search.tsx","../src/lib/components/ThemeSwitch.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/RouterEventsEmitter.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/Zudoku.tsx","../src/lib/components/index.ts"],"sourcesContent":["'use client';\nimport { createContext, Component, createElement, 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 !== undefined) {\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","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","type ValueOf<T> = T[keyof T];\ntype Entries<T> = [keyof T, ValueOf<T>][];\n\nexport const objectEntries = <T extends object>(obj: T): Entries<T> =>\n Object.entries(obj) as Entries<T>;\n","import type { QueryClient } from \"@tanstack/react-query\";\nimport { createNanoEvents } from \"nanoevents\";\nimport type { ReactNode } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { BundledTheme, HighlighterCore } from \"shiki\";\nimport type { z } from \"zod\";\nimport type { Navigation } from \"../../config/validators/NavigationSchema.js\";\nimport type {\n CallbackContext,\n ProtectedRoutesInput,\n} from \"../../config/validators/ProtectedRoutesSchema.js\";\nimport type { FooterSchema } from \"../../config/validators/validate.js\";\nimport type { AuthenticationPlugin } from \"../authentication/authentication.js\";\nimport { type AuthState, useAuthState } from \"../authentication/state.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport type { SlotType } from \"../components/context/SlotProvider.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { objectEntries } from \"../util/objectEntries.js\";\nimport {\n isApiIdentityPlugin,\n isAuthenticationPlugin,\n isEventConsumerPlugin,\n isNavigationPlugin,\n isProfileMenuPlugin,\n type NavigationPlugin,\n needsInitialization,\n type ProfileNavigationItem,\n type ZudokuPlugin,\n} from \"./plugins.js\";\n\nexport interface ZudokuEvents {\n location: (event: { from?: Location; to: Location }) => void;\n auth: (auth: { prev: AuthState; next: AuthState }) => void;\n}\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Promise<Request> | Request;\n authorizationFields?: {\n headers?: string[];\n queryParams?: string[];\n };\n label: string;\n id: string;\n}\n\nexport type ApiKeyCache = \"api-keys\";\n\ntype Metadata = Partial<{\n title: string;\n defaultTitle?: 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 Site = Partial<{\n dir?: \"ltr\" | \"rtl\";\n showPoweredBy?: boolean;\n title?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string | number;\n alt?: string;\n href?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n footer?: z.infer<typeof FooterSchema>;\n}>;\n\nexport type ZudokuContextOptions = {\n basePath?: string;\n canonicalUrlOrigin?: string;\n metadata?: Metadata;\n site?: Site;\n authentication?: AuthenticationPlugin;\n navigation?: Navigation;\n plugins?: ZudokuPlugin[];\n slots?: Record<string, SlotType>;\n /**\n * @deprecated Use `slots` instead\n */\n UNSAFE_slotlets?: Record<string, SlotType>;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n protectedRoutes?: ProtectedRoutesInput;\n syntaxHighlighting?: {\n highlighter: HighlighterCore;\n themes?: { light: BundledTheme; dark: BundledTheme };\n };\n};\n\nexport const transformProtectedRoutes = (\n val: ProtectedRoutesInput,\n): Record<string, (c: CallbackContext) => boolean> | undefined => {\n if (!val) return undefined;\n\n if (Array.isArray(val)) {\n return Object.fromEntries(\n val.map((route) => [\n route,\n (c: CallbackContext) => c.auth.isAuthenticated,\n ]),\n );\n }\n\n return val;\n};\n\nexport class ZudokuContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public navigation: Navigation;\n public meta: ZudokuContextOptions[\"metadata\"];\n public site: ZudokuContextOptions[\"site\"];\n public readonly authentication?: ZudokuContextOptions[\"authentication\"];\n public readonly getAuthState: () => AuthState;\n public readonly queryClient: QueryClient;\n public readonly options: ZudokuContextOptions;\n private readonly navigationPlugins: NavigationPlugin[];\n private emitter = createNanoEvents<ZudokuEvents>();\n\n constructor(options: ZudokuContextOptions, queryClient: QueryClient) {\n const pluginProtectedRoutes = Object.fromEntries(\n (options.plugins ?? []).flatMap((plugin) => {\n if (!isNavigationPlugin(plugin)) return [];\n const routes = plugin.getProtectedRoutes?.();\n if (!routes) return [];\n\n return Object.entries(transformProtectedRoutes(routes) ?? {});\n }),\n );\n\n const protectedRoutes = {\n ...pluginProtectedRoutes,\n ...transformProtectedRoutes(options.protectedRoutes),\n };\n\n this.queryClient = queryClient;\n this.options = { ...options, protectedRoutes };\n this.plugins = options.plugins ?? [];\n this.navigation = options.navigation ?? [];\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = this.plugins.find(isAuthenticationPlugin);\n this.getAuthState = useAuthState.getState;\n\n this.meta = options.metadata;\n this.site = options.site;\n this.plugins.forEach((plugin) => {\n if (!isEventConsumerPlugin(plugin)) return;\n\n objectEntries(plugin.events).forEach(([event, handler]) => {\n // biome-ignore lint/style/noNonNullAssertion: handler is guaranteed to be defined\n this.emitter.on(event, handler!);\n });\n });\n\n useAuthState.subscribe((state, prevState) => {\n this.emitEvent(\"auth\", {\n prev: prevState,\n next: state,\n });\n });\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 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 addEventListener<E extends keyof ZudokuEvents>(\n event: E,\n callback: ZudokuEvents[E],\n ) {\n return this.emitter.on(event, callback);\n }\n\n emitEvent = <E extends keyof ZudokuEvents>(\n event: E,\n ...data: Parameters<ZudokuEvents[E]>\n ) => {\n return this.emitter.emit(event, ...data);\n };\n\n getPluginNavigation = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getNavigation?.(joinUrl(path), this),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n getProfileMenuItems = () => {\n const accountItems = this.plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(this))\n .sort(sortByCategory([\"top\", \"middle\", \"bottom\"]))\n .sort((i) => i.weight ?? 0);\n\n return accountItems;\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n return await this.authentication.signRequest(request);\n };\n}\n\nconst sortByCategory =\n (categories: string[]) =>\n (a: ProfileNavigationItem, b: ProfileNavigationItem) => {\n const aIndex = categories.indexOf(a.category ?? \"middle\");\n const bIndex = categories.indexOf(b.category ?? \"middle\");\n\n return aIndex - bIndex;\n };\n","import type { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error }: FallbackProps) {\n return <ErrorAlert error={error} />;\n}\n","import {\n Children,\n createContext,\n type ReactNode,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport const StaggeredRenderContext = createContext({ stagger: false });\n\nconst StaggeredRender = ({ children }: { children: ReactNode[] }) => {\n const { stagger } = useContext(StaggeredRenderContext);\n const [renderAll, setRenderAll] = useState(!stagger);\n\n useEffect(() => {\n if (renderAll) {\n return;\n }\n\n const idle = requestIdleCallback(() => {\n setRenderAll(true);\n });\n\n return () => cancelIdleCallback(idle);\n }, [renderAll]);\n\n return !renderAll ? Children.toArray(children).slice(0, 3) : children;\n};\n\nexport default StaggeredRender;\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","import { cn } from \"../util/cn.js\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\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 { site: 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 lg:h-(--banner-height)\",\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:end-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","import type * as React from \"react\";\n\nconst ZudokuLogo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 132 100\"\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M80.092 2.963A4.66 4.66 0 0 1 84.449 0h34.049c6.325 0 10.835 6.135 8.948 12.172L116.653 46.71a4.688 4.688 0 0 1-4.474 3.29H75c-5.178 0-7.813 4.687-9.375 9.374-1.288 3.864-11.07 28.963-14.467 37.662A4.66 4.66 0 0 1 46.801 100H12.75c-6.324 0-10.834-6.134-8.947-12.171l10.793-34.54A4.688 4.688 0 0 1 19.071 50H56.25c5.178 0 7.813-4.687 9.375-9.375 1.288-3.864 11.07-28.962 14.467-37.662Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M83.54 57.813a7.813 7.813 0 0 0-7.316 5.07L63.888 95.777c-.766 2.043.744 4.222 2.926 4.222h36.828c5.211 0 9.875-3.232 11.704-8.11l8.821-23.522c1.915-5.107-1.861-10.555-7.315-10.555H83.539ZM29.17 0a12.5 12.5 0 0 0-11.704 8.111l-8.82 23.521c-1.915 5.107 1.86 10.556 7.315 10.556h33.312a7.813 7.813 0 0 0 7.316-5.07L68.924 4.223C69.691 2.18 68.18 0 65.998 0H29.17Z\"\n />\n </svg>\n);\n\nZudokuLogo.displayName = \"ZudokuLogo\";\n\nexport default ZudokuLogo;\n","import { ChevronRightIcon } from \"lucide-react\";\nimport { cn } from \"../../util/cn.js\";\nimport ZudokuLogo from \"./ZudokuLogo.js\";\nimport ZuploLogo from \"./ZuploLogo.js\";\n\nexport const PoweredByZudoku = ({ className }: { className?: string }) => (\n <a\n href={import.meta.env.IS_ZUPLO ? \"https://zuplo.com\" : \"https://zudoku.dev\"}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex justify-between items-center w-full border border-transparent hover:border-border rounded-full hover:shadow-xs h-7 px-3 text-nowrap hover:bg-muted/80 transition-all\",\n className,\n )}\n >\n <div className=\"opacity-70 hover:opacity-100 transition-opacity gap-1.5 text-[11px] font-medium rounded-full h-7 flex items-center text-nowrap\">\n {import.meta.env.IS_ZUPLO ? (\n <ZuploLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n ) : (\n <ZudokuLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n )}\n powered by {import.meta.env.IS_ZUPLO ? \"Zuplo\" : \"Zudoku\"}\n </div>\n <div className=\"text-xs font-medium opacity-70 hover:text-foreground transition-colors cursor-pointer\">\n <ChevronRightIcon\n size={12}\n absoluteStrokeWidth\n strokeWidth={1.5}\n className=\"rtl:rotate-180\"\n />\n </div>\n </a>\n);\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/extends';\nimport * as React from 'react';\nimport { useEffect, useRef, useCallback, useState } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nvar clamp = function clamp(num, lower, upper) {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n\nvar createQueue = function createQueue() {\n var isRunning = false;\n var pending = [];\n var _next = function next() {\n isRunning = true;\n var cb = pending.shift();\n if (cb) {\n return cb(_next);\n }\n isRunning = false;\n };\n var clear = function clear() {\n isRunning = false;\n pending = [];\n };\n var enqueue = function enqueue(cb) {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n _next();\n }\n };\n return {\n clear: clear,\n enqueue: enqueue\n };\n};\n\nvar createTimeout = function createTimeout() {\n var handle;\n var cancel = function cancel() {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n var schedule = function schedule(callback, delay) {\n var deltaTime;\n var start;\n var _frame = function frame(time) {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(_frame);\n };\n handle = window.requestAnimationFrame(_frame);\n };\n return {\n cancel: cancel,\n schedule: schedule\n };\n};\n\nvar increment = function increment(progress) {\n var amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n } else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n } else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n } else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n\n// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useEffectOnce.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nvar useEffectOnce = function useEffectOnce(effect) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, []);\n};\n\nvar incrementParameter = function incrementParameter(num) {\n return ++num % 1000000;\n};\nvar useUpdate = function useUpdate() {\n var _useState = useState(0),\n setState = _useState[1];\n return useCallback(function () {\n return setState(incrementParameter);\n }, []);\n};\nvar useGetSetState = function useGetSetState(/* istanbul ignore next */\ninitialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n var update = useUpdate();\n var state = useRef(_extends({}, initialState));\n var get = useCallback(function () {\n return state.current;\n }, []);\n var set = useCallback(function (patch) {\n if (!patch) {\n return;\n }\n Object.assign(state.current, patch);\n update();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [get, set];\n};\n\n// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nvar useFirstMountState = function useFirstMountState() {\n var isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n};\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isFirstMount = useFirstMountState();\n useEffect(function () {\n if (!isFirstMount) {\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n\n/* istanbul ignore next */\nvar noop = function noop() {\n return undefined;\n};\nvar initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop\n};\nvar useNProgress = function useNProgress(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$animationDuratio = _ref.animationDuration,\n animationDuration = _ref$animationDuratio === void 0 ? 200 : _ref$animationDuratio,\n _ref$incrementDuratio = _ref.incrementDuration,\n incrementDuration = _ref$incrementDuratio === void 0 ? 800 : _ref$incrementDuratio,\n _ref$isAnimating = _ref.isAnimating,\n isAnimating = _ref$isAnimating === void 0 ? false : _ref$isAnimating,\n _ref$minimum = _ref.minimum,\n minimum = _ref$minimum === void 0 ? 0.08 : _ref$minimum;\n var _useGetSetState = useGetSetState(initialState),\n get = _useGetSetState[0],\n setState = _useGetSetState[1];\n var queue = useRef(null);\n var timeout = useRef(null);\n useEffectOnce(function () {\n queue.current = createQueue();\n timeout.current = createTimeout();\n });\n var cleanup = useCallback(function () {\n var _timeout$current, _queue$current;\n (_timeout$current = timeout.current) == null || _timeout$current.cancel();\n (_queue$current = queue.current) == null || _queue$current.clear();\n }, []);\n var set = useCallback(function (n) {\n var _queue$current4;\n n = clamp(n, minimum, 1);\n if (n === 1) {\n var _queue$current2, _queue$current3;\n cleanup();\n (_queue$current2 = queue.current) == null || _queue$current2.enqueue(function (next) {\n setState({\n progress: n,\n sideEffect: function sideEffect() {\n var _timeout$current2;\n return (_timeout$current2 = timeout.current) == null ? void 0 : _timeout$current2.schedule(next, animationDuration);\n }\n });\n });\n (_queue$current3 = queue.current) == null || _queue$current3.enqueue(function () {\n setState({\n isFinished: true,\n sideEffect: cleanup\n });\n });\n return;\n }\n (_queue$current4 = queue.current) == null || _queue$current4.enqueue(function (next) {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: function sideEffect() {\n var _timeout$current3;\n return (_timeout$current3 = timeout.current) == null ? void 0 : _timeout$current3.schedule(next, animationDuration);\n }\n });\n });\n }, [animationDuration, cleanup, minimum, queue, setState, timeout]);\n var trickle = useCallback(function () {\n set(increment(get().progress));\n }, [get, set]);\n var start = useCallback(function () {\n var _work = function work() {\n var _queue$current5;\n trickle();\n (_queue$current5 = queue.current) == null || _queue$current5.enqueue(function (next) {\n var _timeout$current4;\n (_timeout$current4 = timeout.current) == null || _timeout$current4.schedule(function () {\n _work();\n next();\n }, incrementDuration);\n });\n };\n _work();\n }, [incrementDuration, queue, timeout, trickle]);\n var savedTrickle = useRef(noop);\n var sideEffect = get().sideEffect;\n useEffect(function () {\n savedTrickle.current = trickle;\n });\n useEffectOnce(function () {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(function () {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(function () {\n if (!isAnimating) {\n set(1);\n } else {\n setState(_extends({}, initialState, {\n sideEffect: start\n }));\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration: animationDuration,\n isFinished: get().isFinished,\n progress: get().progress\n };\n};\n\nvar _excluded = [\"children\"];\nvar NProgress = function NProgress(_ref) {\n var children = _ref.children,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n\nfunction withNProgress(BaseComponent) {\n var WithNProgress = function WithNProgress(props) {\n var hookProps = useNProgress(props);\n return /*#__PURE__*/React.createElement(BaseComponent, _extends({}, props, hookProps));\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n\nexport { NProgress, useNProgress, withNProgress };\n//# sourceMappingURL=react-nprogress.esm.js.map\n","import { useNProgress } from \"@tanem/react-nprogress\";\nimport { useEffect, useState } from \"react\";\nimport { useNavigation } from \"react-router\";\n\nexport const PageProgress = () => {\n const navigation = useNavigation();\n const isNavigating = navigation.state === \"loading\";\n // delay the animation to avoid flickering\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => setIsAnimating(isNavigating), 200);\n\n return () => clearTimeout(timer);\n }, [isNavigating]);\n\n const { isFinished, progress } = useNProgress({ isAnimating });\n\n return (\n <div\n className=\"absolute w-0 left-0 right-0 bottom-[-1px] h-[2px] bg-primary transition-all duration-300 ease-in-out\"\n style={{\n opacity: isFinished ? 0 : 1,\n width: isFinished ? 0 : `${progress * 100}%`,\n }}\n />\n );\n};\n","export function detectOS() {\n const userAgent = navigator.userAgent.toLowerCase();\n\n if (userAgent.includes(\"win\")) return \"Windows\";\n if (userAgent.includes(\"mac\")) return \"macOS\";\n if (userAgent.includes(\"linux\")) return \"Linux\";\n\n return undefined;\n}\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { detectOS } from \"../util/detectOS.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = ({ className }: { className?: string }) => {\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]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <div className={className}>\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-full sm:w-72\"\n >\n <div className=\"flex items-center gap-2 grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <ClientOnly>\n <KbdShortcut />\n </ClientOnly>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </div>\n );\n};\n\nconst KbdShortcut = () => {\n const os = detectOS();\n return (\n <kbd className=\"absolute end-1.5 hidden h-5 select-none items-center gap-1 rounded-sm border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n {os === \"macOS\" ? \"⌘\" : \"Ctrl\"}+K\n </kbd>\n );\n};\n","import { MoonIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\n\nexport const ThemeSwitch = () => {\n const { resolvedTheme, setTheme } = useTheme();\n\n return (\n <ClientOnly fallback={<Button variant=\"ghost\" size=\"icon\" />}>\n <button\n type=\"button\"\n className=\"flex rounded-full border p-0.5 gap-0.5 group\"\n onClick={() => setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")}\n aria-label={\n resolvedTheme === \"dark\"\n ? \"Switch to light mode\"\n : \"Switch to dark mode\"\n }\n >\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 [&>svg>circle]:transition-colors [&>svg>path]:transition-transform transition-all [&>svg>path]:duration-200 [&>svg>circle]:duration-500 [&>svg>circle]:fill-transparent\",\n resolvedTheme === \"light\" && \"border-border bg-muted\",\n resolvedTheme === \"dark\" &&\n \"group-hover:[&>svg>path]:scale-110 group-hover:[&>svg>path]:-translate-x-[1px] group-hover:[&>svg>path]:-translate-y-[1px] group-hover:rotate-[15deg] \",\n )}\n >\n <SunIcon size={16} />\n </div>\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 transition-transform transform-gpu duration-500\",\n resolvedTheme === \"dark\" &&\n \"border-border bg-muted [&>svg>path]:fill-white [&>svg>path]:stroke-transparent\",\n resolvedTheme === \"light\" &&\n \"group-hover:rotate-[-10deg] [&>svg>path]:stroke-currentColor\",\n )}\n >\n <MoonIcon size={16} />\n </div>\n </button>\n </ClientOnly>\n );\n};\n","import { cx } from \"class-variance-authority\";\nimport { deepEqual } from \"fast-equals\";\nimport { Suspense } from \"react\";\nimport { NavLink, type NavLinkProps } from \"react-router\";\nimport type { NavigationItem } from \"../../config/validators/NavigationSchema.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { shouldShowItem, traverseNavigationItem } from \"./navigation/utils.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const TopNavigation = () => {\n const context = useZudoku();\n const { navigation } = context;\n const auth = useAuth();\n const filteredItems = navigation.filter(shouldShowItem(auth, context));\n\n if (filteredItems.length === 0 || import.meta.env.MODE === \"standalone\") {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <Suspense>\n <div className=\"items-center justify-between px-8 h-(--top-nav-height) hidden lg:flex text-sm relative\">\n <nav className=\"text-sm\">\n <ul className=\"flex flex-row items-center gap-8\">\n {filteredItems.map((item) => (\n <li key={item.label + item.type}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n <Slot.Target name=\"top-navigation-side\" />\n </div>\n {/* <PageProgress /> */}\n </Suspense>\n );\n};\n\nconst getPathForItem = (item: NavigationItem): string => {\n switch (item.type) {\n case \"doc\":\n return joinUrl(item.path);\n case \"link\":\n return item.to;\n case \"category\": {\n if (item.link?.path) {\n return joinUrl(item.link.path);\n }\n\n return (\n traverseNavigationItem(item, (child) => {\n if (child.type !== \"category\") {\n return getPathForItem(child);\n }\n }) ?? \"\"\n );\n }\n case \"custom-page\":\n return item.path;\n }\n};\n\nexport const TopNavLink = ({\n isActive,\n children,\n ...props\n}: {\n isActive?: boolean;\n children: React.ReactNode;\n} & NavLinkProps) => {\n return (\n <NavLink\n viewTransition\n className={({ isActive: isActiveNavLink, isPending }) => {\n const isActiveReal = isActiveNavLink || isActive;\n return cx(\n \"flex items-center gap-2 lg:py-3.5 font-medium -mb-px transition duration-150 delay-75 relative\",\n isActiveReal || isPending\n ? [\n \"text-foreground\",\n // underline with view transition animation\n \"after:content-[''] after:absolute after:bottom-0 after:left-0 after:right-0\",\n \"after:h-0.5 after:bg-primary\",\n isActiveReal &&\n \"after:[view-transition-name:top-nav-underline]\",\n isPending && \"after:bg-primary/25\",\n ]\n : \"text-foreground/75 hover:text-foreground\",\n );\n }}\n {...props}\n >\n {children}\n </NavLink>\n );\n};\n\nexport const TopNavItem = (item: NavigationItem) => {\n const currentNav = useCurrentNavigation();\n const isActiveTopNavItem = deepEqual(currentNav.topNavItem, item);\n\n const path = getPathForItem(item);\n\n return (\n // We don't use isActive here because it has to be inside the navigation,\n // the top nav id doesn't necessarily start with the navigation id\n <TopNavLink to={path} isActive={isActiveTopNavItem}>\n {item.icon && <item.icon size={16} className=\"align-[-0.125em]\" />}\n {item.label}\n </TopNavLink>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { MenuIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n Drawer,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./navigation/PoweredByZudoku.js\";\nimport { shouldShowItem } from \"./navigation/utils.js\";\nimport { PageProgress } from \"./PageProgress.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavItem, TopNavLink } from \"./TopNavigation.js\";\n\nexport const MobileTopNavigation = () => {\n const context = useZudoku();\n const authState = useAuth();\n\n const { navigation, options, getProfileMenuItems } = context;\n const { isAuthenticated, profile, isAuthEnabled } = authState;\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n const accountItems = getProfileMenuItems();\n const filteredItems = navigation.filter(shouldShowItem(authState, context));\n\n return (\n <Drawer\n direction={options.site?.dir === \"rtl\" ? \"left\" : \"right\"}\n open={drawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n <PageProgress />\n </div>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] end-0 start-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none h-full flex flex-col justify-between\">\n <div>\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <Search className=\"flex p-4\" />\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n <li className=\"empty:hidden\">\n <Slot.Target name=\"top-navigation-side\" />\n </li>\n\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <li>\n <TopNavLink\n to=\"/signin\"\n onClick={() => setDrawerOpen(false)}\n >\n Login\n </TopNavLink>\n </li>\n ) : (\n Object.values(getProfileMenuItems()).length > 0 && (\n <li>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </li>\n )\n )}\n </ClientOnly>\n )}\n {filteredItems.map((item) => (\n <li key={item.label}>\n <button type=\"button\" onClick={() => setDrawerOpen(false)}>\n <TopNavItem {...item} />\n </button>\n </li>\n ))}\n {isAuthEnabled && isAuthenticated && accountItems.length > 0 && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {accountItems.map((i) => (\n <li key={i.label}>\n <TopNavLink\n to={i.path ?? \"\"}\n onClick={() => setDrawerOpen(false)}\n >\n {i.label}\n </TopNavLink>\n </li>\n ))}\n </ClientOnly>\n )}\n <li>\n <ThemeSwitch />\n </li>\n </ul>\n </div>\n {options.site?.showPoweredBy !== false && (\n <PoweredByZudoku className=\"grow-0 justify-center gap-1\" />\n )}\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { memo } from \"react\";\nimport { Link } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n isProfileMenuPlugin,\n type ProfileNavigationItem,\n} from \"../core/plugins.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 { joinUrl } from \"../util/joinUrl.js\";\nimport { Banner } from \"./Banner.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { PageProgress } from \"./PageProgress.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.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((child) => (\n <RecursiveMenu key={child.label} item={child} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label} className=\"flex gap-2\">\n {item.icon && (\n <item.icon size={16} strokeWidth={1} absoluteStrokeWidth />\n )}\n {item.label}\n </DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { site, plugins, options } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .sort((i) => i.weight ?? 0);\n\n const logoLightSrc = site?.logo\n ? /https?:\\/\\//.test(site.logo.src.light)\n ? site.logo.src.light\n : joinUrl(options.basePath, site.logo.src.light)\n : undefined;\n const logoDarkSrc = site?.logo\n ? /https?:\\/\\//.test(site.logo.src.dark)\n ? site.logo.src.dark\n : joinUrl(options.basePath, site.logo.src.dark)\n : undefined;\n\n const borderBottom = \"inset-shadow-[0_-1px_0_0_var(--border)]\";\n\n return (\n <header\n className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\"\n data-pagefind-ignore=\"all\"\n >\n <Banner />\n <div className={cn(borderBottom, \"relative\")}>\n <PageProgress />\n <div className=\"max-w-screen-2xl mx-auto flex items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent\">\n <div className=\"flex\">\n <Link to={site?.logo?.href ?? \"/\"}>\n <div className=\"flex items-center gap-3.5\">\n {site?.logo ? (\n <>\n <img\n src={logoLightSrc}\n alt={site.logo.alt ?? site.title}\n style={{ width: site.logo.width }}\n className=\"max-h-(--top-header-height) dark:hidden\"\n loading=\"lazy\"\n />\n <img\n src={logoDarkSrc}\n alt={site.logo.alt ?? site.title}\n style={{ width: site.logo.width }}\n className=\"max-h-(--top-header-height) hidden dark:block\"\n loading=\"lazy\"\n />\n </>\n ) : (\n <span className=\"font-semibold text-2xl\">{site?.title}</span>\n )}\n </div>\n </Link>\n </div>\n\n <div className=\"absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none\">\n <Search className=\"pointer-events-auto\" />\n </div>\n\n <div className=\"flex items-center gap-8\">\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slot.Target name=\"head-navigation-start\" />\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n Object.values(accountItems).length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.name ?? \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </DropdownMenuLabel>\n {accountItems.filter((i) => i.category === \"top\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"top\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter(\n (i) => !i.category || i.category === \"middle\",\n ).length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter(\n (i) => !i.category || i.category === \"middle\",\n )\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter((i) => i.category === \"bottom\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"bottom\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n </ClientOnly>\n )}\n <Slot.Target name=\"head-navigation-end\" />\n <ThemeSwitch />\n </div>\n </div>\n </div>\n </div>\n <div className={cn(\"hidden lg:block\", borderBottom)}>\n <div className=\"max-w-screen-2xl mx-auto border-transparent relative\">\n <Slot.Target name=\"top-navigation-before\" />\n <TopNavigation />\n <Slot.Target name=\"top-navigation-after\" />\n </div>\n </div>\n </header>\n );\n});\n","import {\n type ComponentProps,\n type ComponentType,\n createContext,\n useContext,\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 { useEffect, useRef } from \"react\";\nimport { type Location, useLocation } from \"react-router\";\nimport { useZudoku } from \"./ZudokuContext.js\";\n\nexport const RouterEventsEmitter = () => {\n const location = useLocation();\n const zudoku = useZudoku();\n const previousLocation = useRef<Location | undefined>(undefined);\n\n useEffect(() => {\n zudoku.emitEvent(\"location\", {\n from: previousLocation.current,\n to: location,\n });\n previousLocation.current = location;\n }, [zudoku, location]);\n\n return null;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport type { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { NO_DEHYDRATE } from \"../cache.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: ZudokuContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\", NO_DEHYDRATE],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ThemeProvider } from \"next-themes\";\nimport {\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useLocation, useNavigation } from \"react-router\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport {\n ZudokuContext,\n type ZudokuContextOptions,\n} from \"../core/ZudokuContext.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 { RouterEventsEmitter } from \"./context/RouterEventsEmitter.js\";\nimport { SlotProvider } from \"./context/SlotProvider.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\n\nlet zudokuContext: ZudokuContext | undefined;\n\nconst ZudokuInner = memo(\n ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const location = useLocation();\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(\n (acc, curr) => ({ ...acc, ...curr }),\n {},\n ),\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 const queryClient = useQueryClient();\n\n useEffect(() => {\n if (didNavigate || !navigation.location) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n zudokuContext ??= new ZudokuContext(props, queryClient);\n\n const heads = props.plugins?.flatMap((plugin) =>\n hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],\n );\n\n return (\n <>\n <Helmet>{heads}</Helmet>\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={zudokuContext}>\n <RouterEventsEmitter />\n <SlotProvider slots={props.slots ?? props.UNSAFE_slotlets}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider attribute=\"class\" disableTransitionOnChange>\n <ComponentsProvider value={components}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </SlotProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </>\n );\n },\n);\n\nZudokuInner.displayName = \"ZudokuInner\";\n\nconst Zudoku = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <ZudokuInner {...props} />\n </ErrorBoundary>\n );\n};\nZudoku.displayName = \"Zudoku\";\n\nexport { Zudoku };\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useTheme as useThemeImport } from \"next-themes\";\nimport { Link as LinkImport } from \"react-router\";\nimport { useAuth as useAuthImport } from \"../authentication/hook.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport { ClientOnly as ClientOnlyImport } from \"./ClientOnly.js\";\nimport {\n CACHE_KEYS as CACHE_KEYS_IMPORT,\n useCache as useCacheImport,\n} from \"./cache.js\";\nimport { useZudoku as useZudokuImport } from \"./context/ZudokuContext.js\";\nimport { Markdown as MarkdownImport } from \"./Markdown.js\";\nimport { Slot as SlotImport } from \"./Slot.js\";\nimport { Spinner as SpinnerImport } from \"./Spinner.js\";\nimport { Typography as TypographyImport } from \"./Typography.js\";\nimport { Zudoku as ZudokuImport } from \"./Zudoku.js\";\n\nexport const Head = /*@__PURE__*/ Helmet;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const Markdown = /*@__PURE__*/ MarkdownImport;\nexport const Spinner = /*@__PURE__*/ SpinnerImport;\nexport const ClientOnly = /*@__PURE__*/ ClientOnlyImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const Zudoku = /*@__PURE__*/ ZudokuImport;\nexport const Typography = /*@__PURE__*/ TypographyImport;\nexport const Slot = /*@__PURE__*/ SlotImport;\n\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useZudoku = /*@__PURE__*/ useZudokuImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useAuth = /*@__PURE__*/ useAuthImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useCache = /*@__PURE__*/ useCacheImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useTheme = /*@__PURE__*/ useThemeImport;\n"],"names":["ErrorBoundaryContext","createContext","initialState","ErrorBoundary","Component","props","error","_this$props$onReset","_this$props","_len","args","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","children","fallbackRender","FallbackComponent","fallback","childToRender","createElement","a","b","item","index","createNanoEvents","event","callbacks","i","length","cb","objectEntries","obj","transformProtectedRoutes","val","route","c","ZudokuContext","options","queryClient","protectedRoutes","plugin","isNavigationPlugin","routes","isAuthenticationPlugin","useAuthState","isEventConsumerPlugin","handler","state","needsInitialization","isApiIdentityPlugin","callback","data","path","joinUrl","nav","p","isProfileMenuPlugin","sortByCategory","request","categories","aIndex","bIndex","TopLevelError","jsx","ErrorAlert","StaggeredRenderContext","root","Skeleton","className","cn","COLOR_MAP","Banner","page","useZudoku","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","jsxs","CircleXIcon","ZudokuLogo","PoweredByZudoku","ChevronRightIcon","_extends","n","e","t","r","d","f","g","h","k","l","m","q","v","x","y","z","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","type","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","key","descriptor","hoistNonReactStatics_cjs","clamp","num","lower","upper","createQueue","isRunning","pending","_next","clear","enqueue","createTimeout","handle","cancel","schedule","delay","deltaTime","start","_frame","time","increment","progress","amount","useEffectOnce","effect","useEffect","incrementParameter","useUpdate","_useState","setState","useCallback","useGetSetState","update","useRef","get","set","patch","useFirstMountState","isFirst","useUpdateEffect","deps","isFirstMount","noop","useNProgress","_temp","_ref","_ref$animationDuratio","animationDuration","_ref$incrementDuratio","incrementDuration","_ref$isAnimating","isAnimating","_ref$minimum","minimum","_useGetSetState","queue","timeout","cleanup","_timeout$current","_queue$current","_queue$current4","_queue$current2","_queue$current3","next","_timeout$current2","_timeout$current3","trickle","_work","_queue$current5","_timeout$current4","savedTrickle","sideEffect","PageProgress","isNavigating","useNavigation","setIsAnimating","timer","isFinished","detectOS","userAgent","Search","ctx","isOpen","setIsOpen","onClose","onKeyDown","searchPlugin","isSearchPlugin","SearchIcon","ClientOnly","KbdShortcut","os","ThemeSwitch","resolvedTheme","setTheme","useTheme","Button","SunIcon","MoonIcon","TopNavigation","context","navigation","auth","useAuth","filteredItems","shouldShowItem","TopNavItem","Slot","getPathForItem","traverseNavigationItem","child","TopNavLink","isActive","NavLink","isActiveNavLink","isPending","isActiveReal","cx","currentNav","useCurrentNavigation","isActiveTopNavItem","deepEqual","MobileTopNavigation","authState","getProfileMenuItems","isAuthenticated","profile","isAuthEnabled","drawerOpen","setDrawerOpen","accountItems","Drawer","open","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","Link","DropdownMenuItem","Header","memo","site","plugins","logoLightSrc","logoDarkSrc","borderBottom","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","RouterEventsEmitter","location","useLocation","zudoku","previousLocation","ZudokuProvider","useSuspenseQuery","NO_DEHYDRATE","ZudokuReactContext","zudokuContext","ZudokuInner","components","useMemo","mdxComponents","isMdxProviderPlugin","acc","curr","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","useQueryClient","heads","hasHead","Helmet","SlotProvider","MDXProvider","ThemeProvider","ViewportAnchorProvider","Outlet","Zudoku","Head","Callout","CalloutImport","Markdown","MarkdownImport","Spinner","SpinnerImport","ClientOnlyImport","ButtonImport","LinkImport","ZudokuImport","Typography","TypographyImport","SlotImport","useMDXComponents","useMDXComponentsImport","useZudokuImport","useAuthImport","useCache","useCacheImport","CACHE_KEYS","CACHE_KEYS_IMPORT","useThemeImport"],"mappings":"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","x_google_ignoreList":[0,1,11,12,13,14,15,16]}
|
|
1
|
+
{"version":3,"file":"index-DSOi7zVM.js","sources":["../../../node_modules/.pnpm/react-error-boundary@6.0.0_react@19.2.1/node_modules/react-error-boundary/dist/react-error-boundary.js","../../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js","../src/lib/util/objectEntries.ts","../src/lib/core/ZudokuContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/plugins/openapi/StaggeredRender.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../src/lib/ui/Skeleton.tsx","../src/lib/components/Banner.tsx","../src/lib/components/navigation/ZudokuLogo.tsx","../src/lib/components/navigation/PoweredByZudoku.tsx","../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@tanem+react-nprogress@5.0.56_react-dom@19.2.1_react@19.2.1__react@19.2.1/node_modules/@tanem/react-nprogress/dist/react-nprogress.esm.js","../src/lib/components/PageProgress.tsx","../src/lib/util/detectOS.ts","../src/lib/components/Search.tsx","../src/lib/components/ThemeSwitch.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/RouterEventsEmitter.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/Zudoku.tsx","../src/lib/components/index.ts"],"sourcesContent":["'use client';\nimport { createContext, Component, createElement, 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 !== undefined) {\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","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","type ValueOf<T> = T[keyof T];\ntype Entries<T> = [keyof T, ValueOf<T>][];\n\nexport const objectEntries = <T extends object>(obj: T): Entries<T> =>\n Object.entries(obj) as Entries<T>;\n","import type { QueryClient } from \"@tanstack/react-query\";\nimport { createNanoEvents } from \"nanoevents\";\nimport type { ReactNode } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { BundledTheme, HighlighterCore } from \"shiki\";\nimport type { z } from \"zod\";\nimport type { Navigation } from \"../../config/validators/NavigationSchema.js\";\nimport type {\n CallbackContext,\n ProtectedRoutesInput,\n} from \"../../config/validators/ProtectedRoutesSchema.js\";\nimport type { FooterSchema } from \"../../config/validators/validate.js\";\nimport type { AuthenticationPlugin } from \"../authentication/authentication.js\";\nimport { type AuthState, useAuthState } from \"../authentication/state.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport type { SlotType } from \"../components/context/SlotProvider.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { objectEntries } from \"../util/objectEntries.js\";\nimport {\n isApiIdentityPlugin,\n isAuthenticationPlugin,\n isEventConsumerPlugin,\n isNavigationPlugin,\n isProfileMenuPlugin,\n type NavigationPlugin,\n needsInitialization,\n type ProfileNavigationItem,\n type ZudokuPlugin,\n} from \"./plugins.js\";\n\nexport interface ZudokuEvents {\n location: (event: { from?: Location; to: Location }) => void;\n auth: (auth: { prev: AuthState; next: AuthState }) => void;\n}\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Promise<Request> | Request;\n authorizationFields?: {\n headers?: string[];\n queryParams?: string[];\n };\n label: string;\n id: string;\n}\n\nexport type ApiKeyCache = \"api-keys\";\n\ntype Metadata = Partial<{\n title: string;\n defaultTitle?: 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 Site = Partial<{\n dir?: \"ltr\" | \"rtl\";\n showPoweredBy?: boolean;\n title?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string | number;\n alt?: string;\n href?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n footer?: z.infer<typeof FooterSchema>;\n}>;\n\nexport type ZudokuContextOptions = {\n basePath?: string;\n canonicalUrlOrigin?: string;\n metadata?: Metadata;\n site?: Site;\n authentication?: AuthenticationPlugin;\n navigation?: Navigation;\n plugins?: ZudokuPlugin[];\n slots?: Record<string, SlotType>;\n /**\n * @deprecated Use `slots` instead\n */\n UNSAFE_slotlets?: Record<string, SlotType>;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n protectedRoutes?: ProtectedRoutesInput;\n syntaxHighlighting?: {\n highlighter: HighlighterCore;\n themes?: { light: BundledTheme; dark: BundledTheme };\n };\n};\n\nexport const transformProtectedRoutes = (\n val: ProtectedRoutesInput,\n): Record<string, (c: CallbackContext) => boolean> | undefined => {\n if (!val) return undefined;\n\n if (Array.isArray(val)) {\n return Object.fromEntries(\n val.map((route) => [\n route,\n (c: CallbackContext) => c.auth.isAuthenticated,\n ]),\n );\n }\n\n return val;\n};\n\nexport class ZudokuContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public navigation: Navigation;\n public meta: ZudokuContextOptions[\"metadata\"];\n public site: ZudokuContextOptions[\"site\"];\n public readonly authentication?: ZudokuContextOptions[\"authentication\"];\n public readonly getAuthState: () => AuthState;\n public readonly queryClient: QueryClient;\n public readonly options: ZudokuContextOptions;\n private readonly navigationPlugins: NavigationPlugin[];\n private emitter = createNanoEvents<ZudokuEvents>();\n\n constructor(options: ZudokuContextOptions, queryClient: QueryClient) {\n const pluginProtectedRoutes = Object.fromEntries(\n (options.plugins ?? []).flatMap((plugin) => {\n if (!isNavigationPlugin(plugin)) return [];\n const routes = plugin.getProtectedRoutes?.();\n if (!routes) return [];\n\n return Object.entries(transformProtectedRoutes(routes) ?? {});\n }),\n );\n\n const protectedRoutes = {\n ...pluginProtectedRoutes,\n ...transformProtectedRoutes(options.protectedRoutes),\n };\n\n this.queryClient = queryClient;\n this.options = { ...options, protectedRoutes };\n this.plugins = options.plugins ?? [];\n this.navigation = options.navigation ?? [];\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = this.plugins.find(isAuthenticationPlugin);\n this.getAuthState = useAuthState.getState;\n\n this.meta = options.metadata;\n this.site = options.site;\n this.plugins.forEach((plugin) => {\n if (!isEventConsumerPlugin(plugin)) return;\n\n objectEntries(plugin.events).forEach(([event, handler]) => {\n // biome-ignore lint/style/noNonNullAssertion: handler is guaranteed to be defined\n this.emitter.on(event, handler!);\n });\n });\n\n useAuthState.subscribe((state, prevState) => {\n this.emitEvent(\"auth\", {\n prev: prevState,\n next: state,\n });\n });\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 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 addEventListener<E extends keyof ZudokuEvents>(\n event: E,\n callback: ZudokuEvents[E],\n ) {\n return this.emitter.on(event, callback);\n }\n\n emitEvent = <E extends keyof ZudokuEvents>(\n event: E,\n ...data: Parameters<ZudokuEvents[E]>\n ) => {\n return this.emitter.emit(event, ...data);\n };\n\n getPluginNavigation = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getNavigation?.(joinUrl(path), this),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n getProfileMenuItems = () => {\n const accountItems = this.plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(this))\n .sort(sortByCategory([\"top\", \"middle\", \"bottom\"]))\n .sort((i) => i.weight ?? 0);\n\n return accountItems;\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n return await this.authentication.signRequest(request);\n };\n}\n\nconst sortByCategory =\n (categories: string[]) =>\n (a: ProfileNavigationItem, b: ProfileNavigationItem) => {\n const aIndex = categories.indexOf(a.category ?? \"middle\");\n const bIndex = categories.indexOf(b.category ?? \"middle\");\n\n return aIndex - bIndex;\n };\n","import type { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error }: FallbackProps) {\n return <ErrorAlert error={error} />;\n}\n","import {\n Children,\n createContext,\n type ReactNode,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport const StaggeredRenderContext = createContext({ stagger: false });\n\nconst StaggeredRender = ({ children }: { children: ReactNode[] }) => {\n const { stagger } = useContext(StaggeredRenderContext);\n const [renderAll, setRenderAll] = useState(!stagger);\n\n useEffect(() => {\n if (renderAll) {\n return;\n }\n\n const idle = requestIdleCallback(() => {\n setRenderAll(true);\n });\n\n return () => cancelIdleCallback(idle);\n }, [renderAll]);\n\n return !renderAll ? Children.toArray(children).slice(0, 3) : children;\n};\n\nexport default StaggeredRender;\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","import { cn } from \"../util/cn.js\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\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 { site: 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 lg:h-(--banner-height)\",\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:end-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","import type * as React from \"react\";\n\nconst ZudokuLogo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 132 100\"\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M80.092 2.963A4.66 4.66 0 0 1 84.449 0h34.049c6.325 0 10.835 6.135 8.948 12.172L116.653 46.71a4.688 4.688 0 0 1-4.474 3.29H75c-5.178 0-7.813 4.687-9.375 9.374-1.288 3.864-11.07 28.963-14.467 37.662A4.66 4.66 0 0 1 46.801 100H12.75c-6.324 0-10.834-6.134-8.947-12.171l10.793-34.54A4.688 4.688 0 0 1 19.071 50H56.25c5.178 0 7.813-4.687 9.375-9.375 1.288-3.864 11.07-28.962 14.467-37.662Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M83.54 57.813a7.813 7.813 0 0 0-7.316 5.07L63.888 95.777c-.766 2.043.744 4.222 2.926 4.222h36.828c5.211 0 9.875-3.232 11.704-8.11l8.821-23.522c1.915-5.107-1.861-10.555-7.315-10.555H83.539ZM29.17 0a12.5 12.5 0 0 0-11.704 8.111l-8.82 23.521c-1.915 5.107 1.86 10.556 7.315 10.556h33.312a7.813 7.813 0 0 0 7.316-5.07L68.924 4.223C69.691 2.18 68.18 0 65.998 0H29.17Z\"\n />\n </svg>\n);\n\nZudokuLogo.displayName = \"ZudokuLogo\";\n\nexport default ZudokuLogo;\n","import { ChevronRightIcon } from \"lucide-react\";\nimport { cn } from \"../../util/cn.js\";\nimport ZudokuLogo from \"./ZudokuLogo.js\";\nimport ZuploLogo from \"./ZuploLogo.js\";\n\nexport const PoweredByZudoku = ({ className }: { className?: string }) => (\n <a\n href={import.meta.env.IS_ZUPLO ? \"https://zuplo.com\" : \"https://zudoku.dev\"}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex justify-between items-center w-full border border-transparent hover:border-border rounded-full hover:shadow-xs h-7 px-3 text-nowrap hover:bg-muted/80 transition-all\",\n className,\n )}\n >\n <div className=\"opacity-70 hover:opacity-100 transition-opacity gap-1.5 text-[11px] font-medium rounded-full h-7 flex items-center text-nowrap\">\n {import.meta.env.IS_ZUPLO ? (\n <ZuploLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n ) : (\n <ZudokuLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n )}\n powered by {import.meta.env.IS_ZUPLO ? \"Zuplo\" : \"Zudoku\"}\n </div>\n <div className=\"text-xs font-medium opacity-70 hover:text-foreground transition-colors cursor-pointer\">\n <ChevronRightIcon\n size={12}\n absoluteStrokeWidth\n strokeWidth={1.5}\n className=\"rtl:rotate-180\"\n />\n </div>\n </a>\n);\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/extends';\nimport * as React from 'react';\nimport { useEffect, useRef, useCallback, useState } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nvar clamp = function clamp(num, lower, upper) {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n\nvar createQueue = function createQueue() {\n var isRunning = false;\n var pending = [];\n var _next = function next() {\n isRunning = true;\n var cb = pending.shift();\n if (cb) {\n return cb(_next);\n }\n isRunning = false;\n };\n var clear = function clear() {\n isRunning = false;\n pending = [];\n };\n var enqueue = function enqueue(cb) {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n _next();\n }\n };\n return {\n clear: clear,\n enqueue: enqueue\n };\n};\n\nvar createTimeout = function createTimeout() {\n var handle;\n var cancel = function cancel() {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n var schedule = function schedule(callback, delay) {\n var deltaTime;\n var start;\n var _frame = function frame(time) {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(_frame);\n };\n handle = window.requestAnimationFrame(_frame);\n };\n return {\n cancel: cancel,\n schedule: schedule\n };\n};\n\nvar increment = function increment(progress) {\n var amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n } else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n } else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n } else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n\n// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useEffectOnce.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nvar useEffectOnce = function useEffectOnce(effect) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, []);\n};\n\nvar incrementParameter = function incrementParameter(num) {\n return ++num % 1000000;\n};\nvar useUpdate = function useUpdate() {\n var _useState = useState(0),\n setState = _useState[1];\n return useCallback(function () {\n return setState(incrementParameter);\n }, []);\n};\nvar useGetSetState = function useGetSetState(/* istanbul ignore next */\ninitialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n var update = useUpdate();\n var state = useRef(_extends({}, initialState));\n var get = useCallback(function () {\n return state.current;\n }, []);\n var set = useCallback(function (patch) {\n if (!patch) {\n return;\n }\n Object.assign(state.current, patch);\n update();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [get, set];\n};\n\n// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nvar useFirstMountState = function useFirstMountState() {\n var isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n};\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isFirstMount = useFirstMountState();\n useEffect(function () {\n if (!isFirstMount) {\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n\n/* istanbul ignore next */\nvar noop = function noop() {\n return undefined;\n};\nvar initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop\n};\nvar useNProgress = function useNProgress(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$animationDuratio = _ref.animationDuration,\n animationDuration = _ref$animationDuratio === void 0 ? 200 : _ref$animationDuratio,\n _ref$incrementDuratio = _ref.incrementDuration,\n incrementDuration = _ref$incrementDuratio === void 0 ? 800 : _ref$incrementDuratio,\n _ref$isAnimating = _ref.isAnimating,\n isAnimating = _ref$isAnimating === void 0 ? false : _ref$isAnimating,\n _ref$minimum = _ref.minimum,\n minimum = _ref$minimum === void 0 ? 0.08 : _ref$minimum;\n var _useGetSetState = useGetSetState(initialState),\n get = _useGetSetState[0],\n setState = _useGetSetState[1];\n var queue = useRef(null);\n var timeout = useRef(null);\n useEffectOnce(function () {\n queue.current = createQueue();\n timeout.current = createTimeout();\n });\n var cleanup = useCallback(function () {\n var _timeout$current, _queue$current;\n (_timeout$current = timeout.current) == null || _timeout$current.cancel();\n (_queue$current = queue.current) == null || _queue$current.clear();\n }, []);\n var set = useCallback(function (n) {\n var _queue$current4;\n n = clamp(n, minimum, 1);\n if (n === 1) {\n var _queue$current2, _queue$current3;\n cleanup();\n (_queue$current2 = queue.current) == null || _queue$current2.enqueue(function (next) {\n setState({\n progress: n,\n sideEffect: function sideEffect() {\n var _timeout$current2;\n return (_timeout$current2 = timeout.current) == null ? void 0 : _timeout$current2.schedule(next, animationDuration);\n }\n });\n });\n (_queue$current3 = queue.current) == null || _queue$current3.enqueue(function () {\n setState({\n isFinished: true,\n sideEffect: cleanup\n });\n });\n return;\n }\n (_queue$current4 = queue.current) == null || _queue$current4.enqueue(function (next) {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: function sideEffect() {\n var _timeout$current3;\n return (_timeout$current3 = timeout.current) == null ? void 0 : _timeout$current3.schedule(next, animationDuration);\n }\n });\n });\n }, [animationDuration, cleanup, minimum, queue, setState, timeout]);\n var trickle = useCallback(function () {\n set(increment(get().progress));\n }, [get, set]);\n var start = useCallback(function () {\n var _work = function work() {\n var _queue$current5;\n trickle();\n (_queue$current5 = queue.current) == null || _queue$current5.enqueue(function (next) {\n var _timeout$current4;\n (_timeout$current4 = timeout.current) == null || _timeout$current4.schedule(function () {\n _work();\n next();\n }, incrementDuration);\n });\n };\n _work();\n }, [incrementDuration, queue, timeout, trickle]);\n var savedTrickle = useRef(noop);\n var sideEffect = get().sideEffect;\n useEffect(function () {\n savedTrickle.current = trickle;\n });\n useEffectOnce(function () {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(function () {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(function () {\n if (!isAnimating) {\n set(1);\n } else {\n setState(_extends({}, initialState, {\n sideEffect: start\n }));\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration: animationDuration,\n isFinished: get().isFinished,\n progress: get().progress\n };\n};\n\nvar _excluded = [\"children\"];\nvar NProgress = function NProgress(_ref) {\n var children = _ref.children,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n\nfunction withNProgress(BaseComponent) {\n var WithNProgress = function WithNProgress(props) {\n var hookProps = useNProgress(props);\n return /*#__PURE__*/React.createElement(BaseComponent, _extends({}, props, hookProps));\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n\nexport { NProgress, useNProgress, withNProgress };\n//# sourceMappingURL=react-nprogress.esm.js.map\n","import { useNProgress } from \"@tanem/react-nprogress\";\nimport { useEffect, useState } from \"react\";\nimport { useNavigation } from \"react-router\";\n\nexport const PageProgress = () => {\n const navigation = useNavigation();\n const isNavigating = navigation.state === \"loading\";\n // delay the animation to avoid flickering\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => setIsAnimating(isNavigating), 200);\n\n return () => clearTimeout(timer);\n }, [isNavigating]);\n\n const { isFinished, progress } = useNProgress({ isAnimating });\n\n return (\n <div\n className=\"absolute w-0 left-0 right-0 bottom-[-1px] h-[2px] bg-primary transition-all duration-300 ease-in-out\"\n style={{\n opacity: isFinished ? 0 : 1,\n width: isFinished ? 0 : `${progress * 100}%`,\n }}\n />\n );\n};\n","export function detectOS() {\n const userAgent = navigator.userAgent.toLowerCase();\n\n if (userAgent.includes(\"win\")) return \"Windows\";\n if (userAgent.includes(\"mac\")) return \"macOS\";\n if (userAgent.includes(\"linux\")) return \"Linux\";\n\n return undefined;\n}\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { detectOS } from \"../util/detectOS.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = ({ className }: { className?: string }) => {\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]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <div className={className}>\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-full sm:w-72\"\n >\n <div className=\"flex items-center gap-2 grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <ClientOnly>\n <KbdShortcut />\n </ClientOnly>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </div>\n );\n};\n\nconst KbdShortcut = () => {\n const os = detectOS();\n return (\n <kbd className=\"absolute end-1.5 hidden h-5 select-none items-center gap-1 rounded-sm border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n {os === \"macOS\" ? \"⌘\" : \"Ctrl\"}+K\n </kbd>\n );\n};\n","import { MoonIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\n\nexport const ThemeSwitch = () => {\n const { resolvedTheme, setTheme } = useTheme();\n\n return (\n <ClientOnly fallback={<Button variant=\"ghost\" size=\"icon\" />}>\n <button\n type=\"button\"\n className=\"flex rounded-full border p-0.5 gap-0.5 group\"\n onClick={() => setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")}\n aria-label={\n resolvedTheme === \"dark\"\n ? \"Switch to light mode\"\n : \"Switch to dark mode\"\n }\n >\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 [&>svg>circle]:transition-colors [&>svg>path]:transition-transform transition-all [&>svg>path]:duration-200 [&>svg>circle]:duration-500 [&>svg>circle]:fill-transparent\",\n resolvedTheme === \"light\" && \"border-border bg-muted\",\n resolvedTheme === \"dark\" &&\n \"group-hover:[&>svg>path]:scale-110 group-hover:[&>svg>path]:-translate-x-[1px] group-hover:[&>svg>path]:-translate-y-[1px] group-hover:rotate-[15deg] \",\n )}\n >\n <SunIcon size={16} />\n </div>\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 transition-transform transform-gpu duration-500\",\n resolvedTheme === \"dark\" &&\n \"border-border bg-muted [&>svg>path]:fill-white [&>svg>path]:stroke-transparent\",\n resolvedTheme === \"light\" &&\n \"group-hover:rotate-[-10deg] [&>svg>path]:stroke-currentColor\",\n )}\n >\n <MoonIcon size={16} />\n </div>\n </button>\n </ClientOnly>\n );\n};\n","import { cx } from \"class-variance-authority\";\nimport { deepEqual } from \"fast-equals\";\nimport { Suspense } from \"react\";\nimport { NavLink, type NavLinkProps } from \"react-router\";\nimport type { NavigationItem } from \"../../config/validators/NavigationSchema.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { shouldShowItem, traverseNavigationItem } from \"./navigation/utils.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const TopNavigation = () => {\n const context = useZudoku();\n const { navigation } = context;\n const auth = useAuth();\n const filteredItems = navigation.filter(shouldShowItem(auth, context));\n\n if (filteredItems.length === 0 || import.meta.env.MODE === \"standalone\") {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <Suspense>\n <div className=\"items-center justify-between px-8 h-(--top-nav-height) hidden lg:flex text-sm relative\">\n <nav className=\"text-sm\">\n <ul className=\"flex flex-row items-center gap-8\">\n {filteredItems.map((item) => (\n <li key={item.label + item.type}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n <Slot.Target name=\"top-navigation-side\" />\n </div>\n {/* <PageProgress /> */}\n </Suspense>\n );\n};\n\nconst getPathForItem = (item: NavigationItem): string => {\n switch (item.type) {\n case \"doc\":\n return joinUrl(item.path);\n case \"link\":\n return item.to;\n case \"category\": {\n if (item.link?.path) {\n return joinUrl(item.link.path);\n }\n\n return (\n traverseNavigationItem(item, (child) => {\n if (child.type !== \"category\") {\n return getPathForItem(child);\n }\n }) ?? \"\"\n );\n }\n case \"custom-page\":\n return item.path;\n }\n};\n\nexport const TopNavLink = ({\n isActive,\n children,\n ...props\n}: {\n isActive?: boolean;\n children: React.ReactNode;\n} & NavLinkProps) => {\n return (\n <NavLink\n viewTransition\n className={({ isActive: isActiveNavLink, isPending }) => {\n const isActiveReal = isActiveNavLink || isActive;\n return cx(\n \"flex items-center gap-2 lg:py-3.5 font-medium -mb-px transition duration-150 delay-75 relative\",\n isActiveReal || isPending\n ? [\n \"text-foreground\",\n // underline with view transition animation\n \"after:content-[''] after:absolute after:bottom-0 after:left-0 after:right-0\",\n \"after:h-0.5 after:bg-primary\",\n isActiveReal &&\n \"after:[view-transition-name:top-nav-underline]\",\n isPending && \"after:bg-primary/25\",\n ]\n : \"text-foreground/75 hover:text-foreground\",\n );\n }}\n {...props}\n >\n {children}\n </NavLink>\n );\n};\n\nexport const TopNavItem = (item: NavigationItem) => {\n const currentNav = useCurrentNavigation();\n const isActiveTopNavItem = deepEqual(currentNav.topNavItem, item);\n\n const path = getPathForItem(item);\n\n return (\n // We don't use isActive here because it has to be inside the navigation,\n // the top nav id doesn't necessarily start with the navigation id\n <TopNavLink to={path} isActive={isActiveTopNavItem}>\n {item.icon && <item.icon size={16} className=\"align-[-0.125em]\" />}\n {item.label}\n </TopNavLink>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { MenuIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n Drawer,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./navigation/PoweredByZudoku.js\";\nimport { shouldShowItem } from \"./navigation/utils.js\";\nimport { PageProgress } from \"./PageProgress.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavItem, TopNavLink } from \"./TopNavigation.js\";\n\nexport const MobileTopNavigation = () => {\n const context = useZudoku();\n const authState = useAuth();\n\n const { navigation, options, getProfileMenuItems } = context;\n const { isAuthenticated, profile, isAuthEnabled } = authState;\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n const accountItems = getProfileMenuItems();\n const filteredItems = navigation.filter(shouldShowItem(authState, context));\n\n return (\n <Drawer\n direction={options.site?.dir === \"rtl\" ? \"left\" : \"right\"}\n open={drawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n <PageProgress />\n </div>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] end-0 start-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none h-full flex flex-col justify-between\">\n <div>\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <Search className=\"flex p-4\" />\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n <li className=\"empty:hidden\">\n <Slot.Target name=\"top-navigation-side\" />\n </li>\n\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <li>\n <TopNavLink\n to=\"/signin\"\n onClick={() => setDrawerOpen(false)}\n >\n Login\n </TopNavLink>\n </li>\n ) : (\n Object.values(getProfileMenuItems()).length > 0 && (\n <li>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </li>\n )\n )}\n </ClientOnly>\n )}\n {filteredItems.map((item) => (\n <li key={item.label}>\n <button type=\"button\" onClick={() => setDrawerOpen(false)}>\n <TopNavItem {...item} />\n </button>\n </li>\n ))}\n {isAuthEnabled && isAuthenticated && accountItems.length > 0 && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {accountItems.map((i) => (\n <li key={i.label}>\n <TopNavLink\n to={i.path ?? \"\"}\n onClick={() => setDrawerOpen(false)}\n >\n {i.label}\n </TopNavLink>\n </li>\n ))}\n </ClientOnly>\n )}\n <li>\n <ThemeSwitch />\n </li>\n </ul>\n </div>\n {options.site?.showPoweredBy !== false && (\n <PoweredByZudoku className=\"grow-0 justify-center gap-1\" />\n )}\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { memo } from \"react\";\nimport { Link } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n isProfileMenuPlugin,\n type ProfileNavigationItem,\n} from \"../core/plugins.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 { joinUrl } from \"../util/joinUrl.js\";\nimport { Banner } from \"./Banner.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { PageProgress } from \"./PageProgress.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.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((child) => (\n <RecursiveMenu key={child.label} item={child} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label} className=\"flex gap-2\">\n {item.icon && (\n <item.icon size={16} strokeWidth={1} absoluteStrokeWidth />\n )}\n {item.label}\n </DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { site, plugins, options } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .sort((i) => i.weight ?? 0);\n\n const logoLightSrc = site?.logo\n ? /https?:\\/\\//.test(site.logo.src.light)\n ? site.logo.src.light\n : joinUrl(options.basePath, site.logo.src.light)\n : undefined;\n const logoDarkSrc = site?.logo\n ? /https?:\\/\\//.test(site.logo.src.dark)\n ? site.logo.src.dark\n : joinUrl(options.basePath, site.logo.src.dark)\n : undefined;\n\n const borderBottom = \"inset-shadow-[0_-1px_0_0_var(--border)]\";\n\n return (\n <header\n className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\"\n data-pagefind-ignore=\"all\"\n >\n <Banner />\n <div className={cn(borderBottom, \"relative\")}>\n <PageProgress />\n <div className=\"max-w-screen-2xl mx-auto flex items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent\">\n <div className=\"flex\">\n <Link to={site?.logo?.href ?? \"/\"}>\n <div className=\"flex items-center gap-3.5\">\n {site?.logo ? (\n <>\n <img\n src={logoLightSrc}\n alt={site.logo.alt ?? site.title}\n style={{ width: site.logo.width }}\n className=\"max-h-(--top-header-height) dark:hidden\"\n loading=\"lazy\"\n />\n <img\n src={logoDarkSrc}\n alt={site.logo.alt ?? site.title}\n style={{ width: site.logo.width }}\n className=\"max-h-(--top-header-height) hidden dark:block\"\n loading=\"lazy\"\n />\n </>\n ) : (\n <span className=\"font-semibold text-2xl\">{site?.title}</span>\n )}\n </div>\n </Link>\n </div>\n\n <div className=\"absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none\">\n <Search className=\"pointer-events-auto\" />\n </div>\n\n <div className=\"flex items-center gap-8\">\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slot.Target name=\"head-navigation-start\" />\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n Object.values(accountItems).length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.name ?? \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </DropdownMenuLabel>\n {accountItems.filter((i) => i.category === \"top\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"top\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter(\n (i) => !i.category || i.category === \"middle\",\n ).length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter(\n (i) => !i.category || i.category === \"middle\",\n )\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter((i) => i.category === \"bottom\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"bottom\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n </ClientOnly>\n )}\n <Slot.Target name=\"head-navigation-end\" />\n <ThemeSwitch />\n </div>\n </div>\n </div>\n </div>\n <div className={cn(\"hidden lg:block\", borderBottom)}>\n <div className=\"max-w-screen-2xl mx-auto border-transparent relative\">\n <Slot.Target name=\"top-navigation-before\" />\n <TopNavigation />\n <Slot.Target name=\"top-navigation-after\" />\n </div>\n </div>\n </header>\n );\n});\n","import {\n type ComponentProps,\n type ComponentType,\n createContext,\n useContext,\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 { useEffect, useRef } from \"react\";\nimport { type Location, useLocation } from \"react-router\";\nimport { useZudoku } from \"./ZudokuContext.js\";\n\nexport const RouterEventsEmitter = () => {\n const location = useLocation();\n const zudoku = useZudoku();\n const previousLocation = useRef<Location | undefined>(undefined);\n\n useEffect(() => {\n zudoku.emitEvent(\"location\", {\n from: previousLocation.current,\n to: location,\n });\n previousLocation.current = location;\n }, [zudoku, location]);\n\n return null;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport type { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { NO_DEHYDRATE } from \"../cache.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: ZudokuContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\", NO_DEHYDRATE],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ThemeProvider } from \"next-themes\";\nimport {\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useLocation, useNavigation } from \"react-router\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport {\n ZudokuContext,\n type ZudokuContextOptions,\n} from \"../core/ZudokuContext.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 { RouterEventsEmitter } from \"./context/RouterEventsEmitter.js\";\nimport { SlotProvider } from \"./context/SlotProvider.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\n\nlet zudokuContext: ZudokuContext | undefined;\n\nconst ZudokuInner = memo(\n ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const location = useLocation();\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(\n (acc, curr) => ({ ...acc, ...curr }),\n {},\n ),\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 const queryClient = useQueryClient();\n\n useEffect(() => {\n if (didNavigate || !navigation.location) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n zudokuContext ??= new ZudokuContext(props, queryClient);\n\n const heads = props.plugins?.flatMap((plugin) =>\n hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],\n );\n\n return (\n <>\n <Helmet>{heads}</Helmet>\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={zudokuContext}>\n <RouterEventsEmitter />\n <SlotProvider slots={props.slots ?? props.UNSAFE_slotlets}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider attribute=\"class\" disableTransitionOnChange>\n <ComponentsProvider value={components}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </SlotProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </>\n );\n },\n);\n\nZudokuInner.displayName = \"ZudokuInner\";\n\nconst Zudoku = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <ZudokuInner {...props} />\n </ErrorBoundary>\n );\n};\nZudoku.displayName = \"Zudoku\";\n\nexport { Zudoku };\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useTheme as useThemeImport } from \"next-themes\";\nimport { Link as LinkImport } from \"react-router\";\nimport { useAuth as useAuthImport } from \"../authentication/hook.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport { ClientOnly as ClientOnlyImport } from \"./ClientOnly.js\";\nimport {\n CACHE_KEYS as CACHE_KEYS_IMPORT,\n useCache as useCacheImport,\n} from \"./cache.js\";\nimport { useZudoku as useZudokuImport } from \"./context/ZudokuContext.js\";\nimport { Markdown as MarkdownImport } from \"./Markdown.js\";\nimport { Slot as SlotImport } from \"./Slot.js\";\nimport { Spinner as SpinnerImport } from \"./Spinner.js\";\nimport { Typography as TypographyImport } from \"./Typography.js\";\nimport { Zudoku as ZudokuImport } from \"./Zudoku.js\";\n\nexport const Head = /*@__PURE__*/ Helmet;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const Markdown = /*@__PURE__*/ MarkdownImport;\nexport const Spinner = /*@__PURE__*/ SpinnerImport;\nexport const ClientOnly = /*@__PURE__*/ ClientOnlyImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const Zudoku = /*@__PURE__*/ ZudokuImport;\nexport const Typography = /*@__PURE__*/ TypographyImport;\nexport const Slot = /*@__PURE__*/ SlotImport;\n\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useZudoku = /*@__PURE__*/ useZudokuImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useAuth = /*@__PURE__*/ useAuthImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useCache = /*@__PURE__*/ useCacheImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useTheme = /*@__PURE__*/ useThemeImport;\n"],"names":["ErrorBoundaryContext","createContext","initialState","ErrorBoundary","Component","props","error","_this$props$onReset","_this$props","_len","args","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","children","fallbackRender","FallbackComponent","fallback","childToRender","createElement","a","b","item","index","createNanoEvents","event","callbacks","i","length","cb","objectEntries","obj","transformProtectedRoutes","val","route","c","ZudokuContext","options","queryClient","protectedRoutes","plugin","isNavigationPlugin","routes","isAuthenticationPlugin","useAuthState","isEventConsumerPlugin","handler","state","needsInitialization","isApiIdentityPlugin","callback","data","path","joinUrl","nav","p","isProfileMenuPlugin","sortByCategory","request","categories","aIndex","bIndex","TopLevelError","jsx","ErrorAlert","StaggeredRenderContext","root","Skeleton","className","cn","COLOR_MAP","Banner","page","useZudoku","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","jsxs","CircleXIcon","ZudokuLogo","PoweredByZudoku","ChevronRightIcon","_extends","n","e","t","r","d","f","g","h","k","l","m","q","v","x","y","z","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","type","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","key","descriptor","hoistNonReactStatics_cjs","clamp","num","lower","upper","createQueue","isRunning","pending","_next","clear","enqueue","createTimeout","handle","cancel","schedule","delay","deltaTime","start","_frame","time","increment","progress","amount","useEffectOnce","effect","useEffect","incrementParameter","useUpdate","_useState","setState","useCallback","useGetSetState","update","useRef","get","set","patch","useFirstMountState","isFirst","useUpdateEffect","deps","isFirstMount","noop","useNProgress","_temp","_ref","_ref$animationDuratio","animationDuration","_ref$incrementDuratio","incrementDuration","_ref$isAnimating","isAnimating","_ref$minimum","minimum","_useGetSetState","queue","timeout","cleanup","_timeout$current","_queue$current","_queue$current4","_queue$current2","_queue$current3","next","_timeout$current2","_timeout$current3","trickle","_work","_queue$current5","_timeout$current4","savedTrickle","sideEffect","PageProgress","isNavigating","useNavigation","setIsAnimating","timer","isFinished","detectOS","userAgent","Search","ctx","isOpen","setIsOpen","onClose","onKeyDown","searchPlugin","isSearchPlugin","SearchIcon","ClientOnly","KbdShortcut","os","ThemeSwitch","resolvedTheme","setTheme","useTheme","Button","SunIcon","MoonIcon","TopNavigation","context","navigation","auth","useAuth","filteredItems","shouldShowItem","TopNavItem","Slot","getPathForItem","traverseNavigationItem","child","TopNavLink","isActive","NavLink","isActiveNavLink","isPending","isActiveReal","cx","currentNav","useCurrentNavigation","isActiveTopNavItem","deepEqual","MobileTopNavigation","authState","getProfileMenuItems","isAuthenticated","profile","isAuthEnabled","drawerOpen","setDrawerOpen","accountItems","Drawer","open","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","Link","DropdownMenuItem","Header","memo","site","plugins","logoLightSrc","logoDarkSrc","borderBottom","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","RouterEventsEmitter","location","useLocation","zudoku","previousLocation","ZudokuProvider","useSuspenseQuery","NO_DEHYDRATE","ZudokuReactContext","zudokuContext","ZudokuInner","components","useMemo","mdxComponents","isMdxProviderPlugin","acc","curr","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","useQueryClient","heads","hasHead","Helmet","SlotProvider","MDXProvider","ThemeProvider","ViewportAnchorProvider","Outlet","Zudoku","Head","Callout","CalloutImport","Markdown","MarkdownImport","Spinner","SpinnerImport","ClientOnlyImport","ButtonImport","LinkImport","ZudokuImport","Typography","TypographyImport","SlotImport","useMDXComponents","useMDXComponentsImport","useZudokuImport","useAuthImport","useCache","useCacheImport","CACHE_KEYS","CACHE_KEYS_IMPORT","useThemeImport"],"mappings":"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","x_google_ignoreList":[0,1,11,12,13,14,15,16]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as p } from "./ErrorAlert-
|
|
1
|
+
import { e as p } from "./ErrorAlert-BUlG32M9.js";
|
|
2
2
|
const A = [
|
|
3
3
|
// German umlauts
|
|
4
4
|
["ß", "ss"],
|
|
@@ -2207,4 +2207,4 @@ export {
|
|
|
2207
2207
|
T as a,
|
|
2208
2208
|
z as s
|
|
2209
2209
|
};
|
|
2210
|
-
//# sourceMappingURL=index-
|
|
2210
|
+
//# sourceMappingURL=index-eKVhlB94.js.map
|