@emeryld/rrroutes-openapi 2.2.26 → 2.2.27

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/docs/LeafDocsPage.tsx","../src/docs/schemaIntrospection.ts","../src/docs/serializer.ts","../src/docs/docs.ts"],"sourcesContent":["/**\n * dry styles\nfake history logs data for testing\ngraphs for history data\nlogs webhook\nsecurity -> gated access + give environment and if environment='production' -> extra \"Are you sure you want to do this\" pop-up for each non-get action\n */\n\nimport type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport { randomBytes } from 'crypto';\nimport type { Request, Response, Router } from 'express';\nimport { static as expressStatic } from 'express';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport z from 'zod';\nimport type { SerializableHistoryEntry } from './docs/docs.js';\nimport { renderLeafDocsHTML } from './docs/docs.js';\nimport type { SerializablePreset } from './docs/presets.js';\n\nexport type DocsRequestContext = {\n req: Request;\n res: Response;\n leaves: AnyLeaf[];\n presets: PresetGroup<AnyLeaf>[];\n};\n\nexport type DocsOnRequestResult = {\n leaves?: AnyLeaf[];\n presets?: PresetGroup<AnyLeaf>[];\n nonce?: string;\n html?: string;\n};\n\nexport type OpenApiDocsOptions = {\n /** Path where docs are mounted. Defaults to `/__rrroutes/docs`. */\n path?: string;\n prefix?: string;\n /** Whether to emit a CSP header + nonce. Defaults to true. */\n csp?: boolean;\n /** Override where static assets are served from. Defaults to `${path}/assets`. */\n assetBasePath?: string;\n /** Optional seed history entries that will pre-populate the docs UI history. */\n historySeeds?: SerializableHistoryEntry[];\n /**\n * Hook that runs on every request. Use it to adjust leaves, override nonce, or\n * provide a fully custom HTML response.\n */\n onRequest?: (ctx: DocsRequestContext) => DocsOnRequestResult | void;\n};\n\nexport type Preset<L extends AnyLeaf> = L extends infer A extends AnyLeaf? {\n method: A['method'];\n path: A['path'];\n // pre-set values for schemas. Does not have to be complete.\n body: z.output<A['cfg']['bodySchema']>;\n query: z.output<A['cfg']['querySchema']>;\n params: z.output<A['cfg']['paramsSchema']>;\n}:never;\n\nexport type PresetGroup<L extends AnyLeaf> = {\n name: string;\n description?: string;\n tags: string[];\n docsGroup?: string;\n\n ops: Preset<L>[];\n};\n\nexport type MountDocsArgs<L extends AnyLeaf> = {\n router: Router;\n leaves: L[];\n presets?: PresetGroup<L>[];\n options?: OpenApiDocsOptions;\n};\n\nconst trimTrailingSlash = (value: string) =>\n value.endsWith('/') && value.length > 1 ? value.slice(0, -1) : value;\n\nexport function mountRRRoutesDocs<L extends AnyLeaf>({\n router,\n leaves,\n presets = [],\n options = {},\n}: MountDocsArgs<L>) {\n const prefix = options.prefix ? trimTrailingSlash(options.prefix) : '';\n const docsPath = options.path ?? '/__rrroutes/docs';\n const normalizedDocsPath = trimTrailingSlash(docsPath);\n const assetsMountPath = trimTrailingSlash(\n options.assetBasePath ?? `${normalizedDocsPath}/assets`,\n );\n const publicDir = resolvePublicDir();\n const assetsDir = path.join(publicDir, 'assets');\n const cspEnabled = options.csp !== false;\n\n router.use(assetsMountPath, expressStatic(assetsDir, { immutable: true, maxAge: '365d' }));\n\n const docsRoutePaths = [normalizedDocsPath, `${normalizedDocsPath}/`, `${normalizedDocsPath}/*id`];\n\n router.get(docsRoutePaths, (req, res) => {\n const preparedLeaves = Array.isArray(leaves)\n ? leaves.filter((leaf) => leaf.cfg.docsHidden !== true)\n : [];\n const preparedPresets = Array.isArray(presets) ? presets : [];\n const onRequestResult =\n options.onRequest?.({ req, res, leaves: preparedLeaves, presets: preparedPresets }) ?? {};\n const finalLeaves = onRequestResult.leaves ?? preparedLeaves;\n const finalPresets = onRequestResult.presets ?? preparedPresets;\n\n const hasCustomHtml = typeof onRequestResult.html === 'string';\n\n let nonce = onRequestResult.nonce;\n if (!nonce && cspEnabled && !hasCustomHtml) {\n nonce = randomBytes(16).toString('base64');\n }\n\n const html = hasCustomHtml\n ? (onRequestResult.html as string)\n : renderLeafDocsHTML(finalLeaves, {\n cspNonce: nonce,\n assetBasePath: `${prefix}${assetsMountPath}`,\n docsBasePath: `${prefix}${normalizedDocsPath}`,\n baseUrlSuffix: prefix,\n historySeeds: options.historySeeds,\n presets: normalizePresets(finalPresets),\n });\n\n if (cspEnabled && nonce) {\n res.setHeader(\n 'Content-Security-Policy',\n [\n \"default-src 'self'\",\n `script-src 'self' 'nonce-${nonce}'`,\n `style-src 'self' 'nonce-${nonce}'`,\n \"img-src 'self' data:\",\n \"connect-src 'self'\",\n \"font-src 'self'\",\n \"frame-ancestors 'self'\",\n ].join('; '),\n );\n }\n\n res.send(html);\n });\n\n return { path: docsPath };\n}\n\nfunction resolvePublicDir() {\n const moduleDir =\n typeof __dirname !== 'undefined'\n ? __dirname\n : path.dirname(fileURLToPath(import.meta.url));\n const fromModule = path.resolve(moduleDir, '../public');\n if (fs.existsSync(fromModule)) return fromModule;\n\n // When running from source (ts-node), fall back to the built output path.\n const fallback = path.resolve(moduleDir, '../dist/public');\n if (fs.existsSync(fallback)) return fallback;\n\n return fromModule; // fallback; express static will 404 if missing\n}\n\nfunction normalizePresets(presets: PresetGroup<AnyLeaf>[]): SerializablePreset[] {\n if (!Array.isArray(presets)) return [];\n return presets.map((preset) => ({\n name: preset.name,\n description: preset.description,\n tags: Array.isArray(preset.tags) ? preset.tags.slice() : [],\n docsGroup: preset.docsGroup,\n ops: Array.isArray(preset.ops)\n ? preset.ops.map((op) => ({\n method: typeof op.method === 'string' ? op.method.toUpperCase() : '',\n path: typeof op.path === 'string' ? op.path : '',\n body: op.body,\n query: op.query,\n params: op.params,\n }))\n : [],\n }));\n}\n\nexport { renderLeafDocsHTML } from './docs/docs.js';\nexport { serializeLeaf } from './docs/serializer.js';\nexport type { SerializableLeaf } from './docs/serializer.js';\n","import type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport type { ReactElement } from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\nimport type { SerializablePreset } from './presets.js';\nimport { serializeLeaf } from './serializer.js';\n\nexport interface RenderOptions {\n /** CSP nonce applied to data + script tags. */\n cspNonce?: string;\n /** Base URL where static assets are served (e.g. `/__rrroutes/docs/assets`). */\n assetBasePath?: string;\n /** Root path where the docs are mounted (e.g. `/__rrroutes/docs`). Used for client routing. */\n docsBasePath?: string;\n /** Optional suffix appended to the window origin when building default playground base URLs. */\n baseUrlSuffix?: string;\n /** Preset collections rendered into the docs UI. */\n presets?: SerializablePreset[];\n /** Optional seed history entries to pre-populate the UI (useful in dev). */\n historySeeds?: SerializableHistoryEntry[];\n}\n\nconst DEFAULT_ASSET_BASE = '/__rrroutes/docs/assets';\n\nfunction normalizeBase(base: string) {\n if (!base) return DEFAULT_ASSET_BASE;\n return base.endsWith('/') ? base.slice(0, -1) : base;\n}\n\nfunction normalizeDocsBase(base: string | undefined) {\n if (!base) return '';\n if (base === '/') return '/';\n return base.endsWith('/') && base.length > 1 ? base.slice(0, -1) : base;\n}\n\nfunction normalizeBaseUrlSuffix(suffix: string | undefined) {\n if (!suffix) return '';\n const trimmed = suffix.endsWith('/') && suffix.length > 1 ? suffix.slice(0, -1) : suffix;\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n\ntype DocsDocumentProps = {\n leavesJson: string;\n presetsJson: string;\n assetBase: string;\n docsBase: string;\n historyJson: string;\n baseUrlSuffix?: string;\n cspNonce?: string;\n};\n\nexport const DocsDocument = ({\n leavesJson,\n presetsJson,\n assetBase,\n docsBase,\n historyJson,\n baseUrlSuffix,\n cspNonce,\n}: DocsDocumentProps) => {\n const cssHref = `${assetBase}/docs.css`;\n const jsSrc = `${assetBase}/docs.js`;\n const configJson = serializeConfig({ docsBasePath: docsBase, baseUrlSuffix });\n\n return (\n <html lang=\"en\">\n <head>\n <meta charSet=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>API Reference</title>\n <link rel=\"stylesheet\" href={cssHref} />\n </head>\n <body>\n <div id=\"docs-root\"></div>\n <script\n id=\"leaf-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: leavesJson }}\n />\n <script\n id=\"preset-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: presetsJson }}\n />\n <script\n id=\"history-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: historyJson }}\n />\n <script\n id=\"docs-config\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: configJson }}\n />\n <script type=\"module\" src={jsSrc} nonce={cspNonce} />\n </body>\n </html>\n );\n};\n\nfunction serializeLeaves(leaves: AnyLeaf[]) {\n return JSON.stringify(leaves.map(serializeLeaf)).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializePresets(presets: SerializablePreset[] | undefined) {\n return JSON.stringify(Array.isArray(presets) ? presets : []).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializeHistorySeeds(historySeeds: SerializableHistoryEntry[] | undefined) {\n return JSON.stringify(Array.isArray(historySeeds) ? historySeeds : []).replace(/<\\//g, '<\\\\/');\n}\n\ntype DocsConfig = { docsBasePath: string; baseUrlSuffix?: string };\n\nfunction serializeConfig(config: DocsConfig) {\n return JSON.stringify(config).replace(/<\\//g, '<\\\\/');\n}\n\nexport function createLeafDocsDocument(\n leaves: AnyLeaf[],\n options: RenderOptions = {},\n): ReactElement {\n const assetBase = normalizeBase(options.assetBasePath ?? DEFAULT_ASSET_BASE);\n const leavesJson = serializeLeaves(leaves);\n const presetsJson = serializePresets(options.presets);\n const docsBase = normalizeDocsBase(options.docsBasePath);\n const historyJson = serializeHistorySeeds(options.historySeeds);\n const baseUrlSuffix = normalizeBaseUrlSuffix(options.baseUrlSuffix);\n\n return (\n <DocsDocument\n leavesJson={leavesJson}\n presetsJson={presetsJson}\n assetBase={assetBase}\n docsBase={docsBase}\n historyJson={historyJson}\n baseUrlSuffix={baseUrlSuffix}\n cspNonce={options.cspNonce}\n />\n );\n}\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n const doc = createLeafDocsDocument(leaves, options);\n const html = renderToStaticMarkup(doc);\n return `<!DOCTYPE html>${html}`;\n}\n\nexport type SerializableHistoryEntry = {\n id?: string;\n timestamp: number;\n method: string;\n path: string;\n fullUrl: string;\n params?: Record<string, string>;\n query?: Record<string, string>;\n body?: string;\n output?: string;\n status?: number;\n durationMs: number;\n error?: string;\n};\n","// schemaIntrospection.ts\nimport * as z from \"zod\";\n\nexport type SerializableSchemaNode = {\n kind: string; // \"object\" | \"string\" | \"number\" | ...\n optional?: boolean;\n nullable?: boolean;\n description?: string;\n\n // object\n properties?: Record<string, SerializableSchemaNode>;\n // array\n element?: SerializableSchemaNode;\n // union\n union?: SerializableSchemaNode[];\n // literal\n literal?: unknown;\n // enum\n enumValues?: string[];\n};\n\ntype ZodAny = z.ZodTypeAny;\n\n/**\n * Zod 3 uses `schema._def`, Zod 4 uses `schema._zod.def`.\n */\nfunction getDef(schema: unknown): any | undefined {\n if (!schema || typeof schema !== \"object\") return undefined;\n const anySchema = schema as any;\n return anySchema._zod?.def ?? anySchema._def;\n}\n\n/**\n * Try to get a human-readable description.\n * Zod 4: use metadata/registry; fallback to internal def.description.\n * Zod 3: only internal def.description exists.\n */\nfunction getDescription(schema: ZodAny): string | undefined {\n const anyZ: any = z as any;\n\n // Zod 4 global registry metadata, if present\n const registry = anyZ.globalRegistry?.get\n ? anyZ.globalRegistry.get(schema)\n : undefined;\n if (registry && typeof registry.description === \"string\") {\n return registry.description;\n }\n\n // Legacy / internal description\n const def = getDef(schema);\n if (def && typeof def.description === \"string\") {\n return def.description;\n }\n\n return undefined;\n}\n\n/**\n * Peel off wrappers (effects, optional, nullable, default) and\n * return the inner schema + flags.\n *\n * Supports:\n * - Zod 3: ZodEffects, ZodOptional, ZodNullable, ZodDefault\n * - Zod 4: ZodOptional, ZodNullable, ZodDefault\n */\nfunction unwrap(schema: ZodAny): {\n base: ZodAny;\n optional: boolean;\n nullable: boolean;\n} {\n let s: ZodAny = schema;\n let optional = false;\n let nullable = false;\n\n // Zod 3 only (undefined in Zod 4)\n const ZodEffectsCtor: any = (z as any).ZodEffects;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Zod 3: ZodEffects wrapper\n if (ZodEffectsCtor && s instanceof ZodEffectsCtor) {\n const def = getDef(s) || {};\n const sourceType =\n typeof (s as any).sourceType === \"function\"\n ? (s as any).sourceType()\n : def.schema;\n if (!sourceType) break;\n s = sourceType;\n continue;\n }\n\n // Zod 3 + 4: optional/nullable/default wrappers\n if (s instanceof z.ZodOptional) {\n optional = true;\n const def = getDef(s);\n s = (def && def.innerType) || s; // innerType exists in both 3 & 4\n continue;\n }\n\n if (s instanceof z.ZodNullable) {\n nullable = true;\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n if (s instanceof z.ZodDefault) {\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n break;\n }\n\n return { base: s, optional, nullable };\n}\n\nexport function introspectSchema(\n schema: ZodAny | undefined\n): SerializableSchemaNode | undefined {\n if (!schema) return undefined;\n\n const { base, optional, nullable } = unwrap(schema);\n const def = getDef(base);\n\n const node: SerializableSchemaNode = {\n kind: inferKind(base),\n optional: optional || undefined,\n nullable: nullable || undefined,\n description: getDescription(base),\n };\n\n // OBJECT\n if (base instanceof z.ZodObject) {\n // Zod 3: _def.shape() (function)\n // Zod 4: .shape getter returns an object\n const rawShape: any =\n (base as any).shape ?? (def && typeof def.shape === \"function\"\n ? def.shape()\n : def?.shape);\n\n const shape =\n typeof rawShape === \"function\" ? rawShape() : rawShape ?? {};\n\n const props: Record<string, SerializableSchemaNode> = {};\n for (const key of Object.keys(shape)) {\n const child = shape[key] as ZodAny;\n const childNode = introspectSchema(child);\n if (childNode) props[key] = childNode;\n }\n node.properties = props;\n }\n\n // ARRAY\n if (base instanceof z.ZodArray) {\n // Zod 3: def.type is inner schema\n // Zod 4: def.element is inner schema\n const inner =\n (def && (def.element as ZodAny)) ||\n (def && (def.type as ZodAny)) ||\n undefined;\n if (inner) {\n node.element = introspectSchema(inner);\n }\n }\n\n // UNION\n if (base instanceof z.ZodUnion) {\n const options: ZodAny[] = (def && def.options) || [];\n node.union = options\n .map((opt) => introspectSchema(opt))\n .filter(Boolean) as SerializableSchemaNode[];\n }\n\n // LITERAL\n if (base instanceof z.ZodLiteral) {\n if (def) {\n // Zod 4: def.values (multi-literal)\n if (Array.isArray(def.values)) {\n node.literal =\n def.values.length === 1 ? def.values[0] : def.values.slice();\n } else {\n // Zod 3: def.value\n node.literal = def.value;\n }\n }\n }\n\n // ENUM\n if (base instanceof z.ZodEnum) {\n if (def) {\n if (Array.isArray(def.values)) {\n // Zod 3\n node.enumValues = def.values.slice();\n } else if (def.entries && typeof def.entries === \"object\") {\n // Zod 4: entries is a { key: value } map\n node.enumValues = Object.values(def.entries).map((v: unknown) =>\n String(v)\n );\n }\n }\n }\n\n return node;\n}\n\nfunction inferKind(schema: ZodAny): string {\n // This path still uses instanceof; it works with Zod 4 Classic\n // (importing from \"zod\"). Anything unknown falls back to \"unknown\".\n if (schema instanceof z.ZodString) return \"string\";\n if (schema instanceof z.ZodNumber) return \"number\";\n if (schema instanceof z.ZodBoolean) return \"boolean\";\n if (schema instanceof z.ZodBigInt) return \"bigint\";\n if (schema instanceof z.ZodDate) return \"date\";\n if (schema instanceof z.ZodArray) return \"array\";\n if (schema instanceof z.ZodObject) return \"object\";\n if (schema instanceof z.ZodUnion) return \"union\";\n if (schema instanceof z.ZodLiteral) return \"literal\";\n if (schema instanceof z.ZodEnum) return \"enum\";\n if (schema instanceof z.ZodRecord) return \"record\";\n if (schema instanceof z.ZodTuple) return \"tuple\";\n if (schema instanceof z.ZodUnknown) return \"unknown\";\n if (schema instanceof z.ZodAny) return \"any\";\n\n return \"unknown\";\n}\n","// serializer.ts\nimport type { AnyLeaf, MethodCfg } from \"@emeryld/rrroutes-contract\";\nimport { introspectSchema, SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\ntype SerializableMethodCfg = Pick<\n MethodCfg,\n | \"description\"\n | \"summary\"\n | \"docsGroup\"\n | \"tags\"\n | \"deprecated\"\n | \"stability\"\n | \"feed\"\n | \"docsMeta\"\n> & {\n hasBody: boolean;\n hasQuery: boolean;\n hasParams: boolean;\n hasOutput: boolean;\n\n // NEW: full Zod ASTs\n bodySchema?: SerializableSchemaNode;\n querySchema?: SerializableSchemaNode;\n paramsSchema?: SerializableSchemaNode;\n outputSchema?: SerializableSchemaNode;\n};\n\nexport type SerializableLeaf = {\n method: string;\n path: string;\n cfg: SerializableMethodCfg;\n};\n\nexport type { SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\nexport function serializeLeaf(leaf: AnyLeaf): SerializableLeaf {\n const cfg = leaf.cfg;\n\n const tags = Array.isArray(cfg.tags) ? cfg.tags.slice() : [];\n\n return {\n method: leaf.method, // 'get' | 'post' | ...\n path: leaf.path,\n cfg: {\n description: cfg.description,\n summary: cfg.summary,\n docsGroup: cfg.docsGroup,\n tags,\n deprecated: cfg.deprecated,\n stability: cfg.stability,\n feed: !!cfg.feed,\n docsMeta: cfg.docsMeta,\n hasBody: !!cfg.bodySchema || !!cfg.bodyFiles?.length,\n hasQuery: !!cfg.querySchema,\n hasParams: !!cfg.paramsSchema,\n hasOutput: !!cfg.outputSchema,\n\n bodySchema: introspectSchema(cfg.bodySchema),\n querySchema: introspectSchema(cfg.querySchema),\n paramsSchema: introspectSchema(cfg.paramsSchema),\n outputSchema: introspectSchema(cfg.outputSchema),\n },\n };\n}\n","// renderLeafDocsHTML.ts\nimport type { AnyLeaf } from \"@emeryld/rrroutes-contract\";\nimport {\n createLeafDocsDocument,\n renderLeafDocsHTML as LeafDocsPage,\n RenderOptions,\n} from \"./LeafDocsPage.js\";\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n return LeafDocsPage(leaves, options);\n}\n\nexport type { RenderOptions, SerializableHistoryEntry } from \"./LeafDocsPage.js\";\nexport { createLeafDocsDocument } from \"./LeafDocsPage.js\";\nexport type { SerializablePreset, SerializablePresetOperation } from \"./presets.js\";\n"],"mappings":"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","names":["renderLeafDocsHTML","renderLeafDocsHTML","path","expressStatic","renderLeafDocsHTML","fs"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/docs/LeafDocsPage.tsx","../src/docs/schemaIntrospection.ts","../src/docs/serializer.ts","../src/docs/docs.ts"],"sourcesContent":["/**\n * dry styles\nfake history logs data for testing\ngraphs for history data\nlogs webhook\nsecurity -> gated access + give environment and if environment='production' -> extra \"Are you sure you want to do this\" pop-up for each non-get action\n */\n\nimport type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport { randomBytes } from 'crypto';\nimport type { Request, Response, Router } from 'express';\nimport { static as expressStatic } from 'express';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport z from 'zod';\nimport type { SerializableHistoryEntry } from './docs/docs.js';\nimport { renderLeafDocsHTML } from './docs/docs.js';\nimport type { SerializablePreset } from './docs/presets.js';\n\nexport type DocsRequestContext = {\n req: Request;\n res: Response;\n leaves: AnyLeaf[];\n presets: PresetGroup<AnyLeaf>[];\n};\n\nexport type DocsOnRequestResult = {\n leaves?: AnyLeaf[];\n presets?: PresetGroup<AnyLeaf>[];\n nonce?: string;\n html?: string;\n};\n\nexport type OpenApiDocsOptions = {\n /** Path where docs are mounted. Defaults to `/__rrroutes/docs`. */\n path?: string;\n prefix?: string;\n /** Whether to emit a CSP header + nonce. Defaults to true. */\n csp?: boolean;\n /** Override where static assets are served from. Defaults to `${path}/assets`. */\n assetBasePath?: string;\n /** Optional seed history entries that will pre-populate the docs UI history. */\n historySeeds?: SerializableHistoryEntry[];\n /**\n * Hook that runs on every request. Use it to adjust leaves, override nonce, or\n * provide a fully custom HTML response.\n */\n onRequest?: (ctx: DocsRequestContext) => DocsOnRequestResult | void;\n};\n\nexport type Preset<L extends AnyLeaf> = L extends infer A extends AnyLeaf? {\n method: A['method'];\n path: A['path'];\n // pre-set values for schemas. Does not have to be complete.\n body?: z.output<A['cfg']['bodySchema']>;\n query?: z.output<A['cfg']['querySchema']>;\n params?: z.output<A['cfg']['paramsSchema']>;\n}:never;\n\nexport type PresetGroup<L extends AnyLeaf> = {\n name: string;\n description?: string;\n tags: string[];\n docsGroup?: string;\n\n ops: Preset<L>[];\n};\n\nexport type MountDocsArgs<L extends AnyLeaf> = {\n router: Router;\n leaves: L[];\n presets?: PresetGroup<L>[];\n options?: OpenApiDocsOptions;\n};\n\nconst trimTrailingSlash = (value: string) =>\n value.endsWith('/') && value.length > 1 ? value.slice(0, -1) : value;\n\nexport function mountRRRoutesDocs<L extends AnyLeaf>({\n router,\n leaves,\n presets = [],\n options = {},\n}: MountDocsArgs<L>) {\n const prefix = options.prefix ? trimTrailingSlash(options.prefix) : '';\n const docsPath = options.path ?? '/__rrroutes/docs';\n const normalizedDocsPath = trimTrailingSlash(docsPath);\n const assetsMountPath = trimTrailingSlash(\n options.assetBasePath ?? `${normalizedDocsPath}/assets`,\n );\n const publicDir = resolvePublicDir();\n const assetsDir = path.join(publicDir, 'assets');\n const cspEnabled = options.csp !== false;\n\n router.use(assetsMountPath, expressStatic(assetsDir, { immutable: true, maxAge: '365d' }));\n\n const docsRoutePaths = [normalizedDocsPath, `${normalizedDocsPath}/`, `${normalizedDocsPath}/*id`];\n\n router.get(docsRoutePaths, (req, res) => {\n const preparedLeaves = Array.isArray(leaves)\n ? leaves.filter((leaf) => leaf.cfg.docsHidden !== true)\n : [];\n const preparedPresets = Array.isArray(presets) ? presets : [];\n const onRequestResult =\n options.onRequest?.({ req, res, leaves: preparedLeaves, presets: preparedPresets }) ?? {};\n const finalLeaves = onRequestResult.leaves ?? preparedLeaves;\n const finalPresets = onRequestResult.presets ?? preparedPresets;\n\n const hasCustomHtml = typeof onRequestResult.html === 'string';\n\n let nonce = onRequestResult.nonce;\n if (!nonce && cspEnabled && !hasCustomHtml) {\n nonce = randomBytes(16).toString('base64');\n }\n\n const html = hasCustomHtml\n ? (onRequestResult.html as string)\n : renderLeafDocsHTML(finalLeaves, {\n cspNonce: nonce,\n assetBasePath: `${prefix}${assetsMountPath}`,\n docsBasePath: `${prefix}${normalizedDocsPath}`,\n baseUrlSuffix: prefix,\n historySeeds: options.historySeeds,\n presets: normalizePresets(finalPresets),\n });\n\n if (cspEnabled && nonce) {\n res.setHeader(\n 'Content-Security-Policy',\n [\n \"default-src 'self'\",\n `script-src 'self' 'nonce-${nonce}'`,\n `style-src 'self' 'nonce-${nonce}'`,\n \"img-src 'self' data:\",\n \"connect-src 'self'\",\n \"font-src 'self'\",\n \"frame-ancestors 'self'\",\n ].join('; '),\n );\n }\n\n res.send(html);\n });\n\n return { path: docsPath };\n}\n\nfunction resolvePublicDir() {\n const moduleDir =\n typeof __dirname !== 'undefined'\n ? __dirname\n : path.dirname(fileURLToPath(import.meta.url));\n const fromModule = path.resolve(moduleDir, '../public');\n if (fs.existsSync(fromModule)) return fromModule;\n\n // When running from source (ts-node), fall back to the built output path.\n const fallback = path.resolve(moduleDir, '../dist/public');\n if (fs.existsSync(fallback)) return fallback;\n\n return fromModule; // fallback; express static will 404 if missing\n}\n\nfunction normalizePresets(presets: PresetGroup<AnyLeaf>[]): SerializablePreset[] {\n if (!Array.isArray(presets)) return [];\n return presets.map((preset) => ({\n name: preset.name,\n description: preset.description,\n tags: Array.isArray(preset.tags) ? preset.tags.slice() : [],\n docsGroup: preset.docsGroup,\n ops: Array.isArray(preset.ops)\n ? preset.ops.map((op) => ({\n method: typeof op.method === 'string' ? op.method.toUpperCase() : '',\n path: typeof op.path === 'string' ? op.path : '',\n body: op.body,\n query: op.query,\n params: op.params,\n }))\n : [],\n }));\n}\n\nexport { renderLeafDocsHTML } from './docs/docs.js';\nexport { serializeLeaf } from './docs/serializer.js';\nexport type { SerializableLeaf } from './docs/serializer.js';\n","import type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport type { ReactElement } from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\nimport type { SerializablePreset } from './presets.js';\nimport { serializeLeaf } from './serializer.js';\n\nexport interface RenderOptions {\n /** CSP nonce applied to data + script tags. */\n cspNonce?: string;\n /** Base URL where static assets are served (e.g. `/__rrroutes/docs/assets`). */\n assetBasePath?: string;\n /** Root path where the docs are mounted (e.g. `/__rrroutes/docs`). Used for client routing. */\n docsBasePath?: string;\n /** Optional suffix appended to the window origin when building default playground base URLs. */\n baseUrlSuffix?: string;\n /** Preset collections rendered into the docs UI. */\n presets?: SerializablePreset[];\n /** Optional seed history entries to pre-populate the UI (useful in dev). */\n historySeeds?: SerializableHistoryEntry[];\n}\n\nconst DEFAULT_ASSET_BASE = '/__rrroutes/docs/assets';\n\nfunction normalizeBase(base: string) {\n if (!base) return DEFAULT_ASSET_BASE;\n return base.endsWith('/') ? base.slice(0, -1) : base;\n}\n\nfunction normalizeDocsBase(base: string | undefined) {\n if (!base) return '';\n if (base === '/') return '/';\n return base.endsWith('/') && base.length > 1 ? base.slice(0, -1) : base;\n}\n\nfunction normalizeBaseUrlSuffix(suffix: string | undefined) {\n if (!suffix) return '';\n const trimmed = suffix.endsWith('/') && suffix.length > 1 ? suffix.slice(0, -1) : suffix;\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n\ntype DocsDocumentProps = {\n leavesJson: string;\n presetsJson: string;\n assetBase: string;\n docsBase: string;\n historyJson: string;\n baseUrlSuffix?: string;\n cspNonce?: string;\n};\n\nexport const DocsDocument = ({\n leavesJson,\n presetsJson,\n assetBase,\n docsBase,\n historyJson,\n baseUrlSuffix,\n cspNonce,\n}: DocsDocumentProps) => {\n const cssHref = `${assetBase}/docs.css`;\n const jsSrc = `${assetBase}/docs.js`;\n const configJson = serializeConfig({ docsBasePath: docsBase, baseUrlSuffix });\n\n return (\n <html lang=\"en\">\n <head>\n <meta charSet=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>API Reference</title>\n <link rel=\"stylesheet\" href={cssHref} />\n </head>\n <body>\n <div id=\"docs-root\"></div>\n <script\n id=\"leaf-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: leavesJson }}\n />\n <script\n id=\"preset-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: presetsJson }}\n />\n <script\n id=\"history-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: historyJson }}\n />\n <script\n id=\"docs-config\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: configJson }}\n />\n <script type=\"module\" src={jsSrc} nonce={cspNonce} />\n </body>\n </html>\n );\n};\n\nfunction serializeLeaves(leaves: AnyLeaf[]) {\n return JSON.stringify(leaves.map(serializeLeaf)).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializePresets(presets: SerializablePreset[] | undefined) {\n return JSON.stringify(Array.isArray(presets) ? presets : []).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializeHistorySeeds(historySeeds: SerializableHistoryEntry[] | undefined) {\n return JSON.stringify(Array.isArray(historySeeds) ? historySeeds : []).replace(/<\\//g, '<\\\\/');\n}\n\ntype DocsConfig = { docsBasePath: string; baseUrlSuffix?: string };\n\nfunction serializeConfig(config: DocsConfig) {\n return JSON.stringify(config).replace(/<\\//g, '<\\\\/');\n}\n\nexport function createLeafDocsDocument(\n leaves: AnyLeaf[],\n options: RenderOptions = {},\n): ReactElement {\n const assetBase = normalizeBase(options.assetBasePath ?? DEFAULT_ASSET_BASE);\n const leavesJson = serializeLeaves(leaves);\n const presetsJson = serializePresets(options.presets);\n const docsBase = normalizeDocsBase(options.docsBasePath);\n const historyJson = serializeHistorySeeds(options.historySeeds);\n const baseUrlSuffix = normalizeBaseUrlSuffix(options.baseUrlSuffix);\n\n return (\n <DocsDocument\n leavesJson={leavesJson}\n presetsJson={presetsJson}\n assetBase={assetBase}\n docsBase={docsBase}\n historyJson={historyJson}\n baseUrlSuffix={baseUrlSuffix}\n cspNonce={options.cspNonce}\n />\n );\n}\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n const doc = createLeafDocsDocument(leaves, options);\n const html = renderToStaticMarkup(doc);\n return `<!DOCTYPE html>${html}`;\n}\n\nexport type SerializableHistoryEntry = {\n id?: string;\n timestamp: number;\n method: string;\n path: string;\n fullUrl: string;\n params?: Record<string, string>;\n query?: Record<string, string>;\n body?: string;\n output?: string;\n status?: number;\n durationMs: number;\n error?: string;\n};\n","// schemaIntrospection.ts\nimport * as z from \"zod\";\n\nexport type SerializableSchemaNode = {\n kind: string; // \"object\" | \"string\" | \"number\" | ...\n optional?: boolean;\n nullable?: boolean;\n description?: string;\n\n // object\n properties?: Record<string, SerializableSchemaNode>;\n // array\n element?: SerializableSchemaNode;\n // union\n union?: SerializableSchemaNode[];\n // literal\n literal?: unknown;\n // enum\n enumValues?: string[];\n};\n\ntype ZodAny = z.ZodTypeAny;\n\n/**\n * Zod 3 uses `schema._def`, Zod 4 uses `schema._zod.def`.\n */\nfunction getDef(schema: unknown): any | undefined {\n if (!schema || typeof schema !== \"object\") return undefined;\n const anySchema = schema as any;\n return anySchema._zod?.def ?? anySchema._def;\n}\n\n/**\n * Try to get a human-readable description.\n * Zod 4: use metadata/registry; fallback to internal def.description.\n * Zod 3: only internal def.description exists.\n */\nfunction getDescription(schema: ZodAny): string | undefined {\n const anyZ: any = z as any;\n\n // Zod 4 global registry metadata, if present\n const registry = anyZ.globalRegistry?.get\n ? anyZ.globalRegistry.get(schema)\n : undefined;\n if (registry && typeof registry.description === \"string\") {\n return registry.description;\n }\n\n // Legacy / internal description\n const def = getDef(schema);\n if (def && typeof def.description === \"string\") {\n return def.description;\n }\n\n return undefined;\n}\n\n/**\n * Peel off wrappers (effects, optional, nullable, default) and\n * return the inner schema + flags.\n *\n * Supports:\n * - Zod 3: ZodEffects, ZodOptional, ZodNullable, ZodDefault\n * - Zod 4: ZodOptional, ZodNullable, ZodDefault\n */\nfunction unwrap(schema: ZodAny): {\n base: ZodAny;\n optional: boolean;\n nullable: boolean;\n} {\n let s: ZodAny = schema;\n let optional = false;\n let nullable = false;\n\n // Zod 3 only (undefined in Zod 4)\n const ZodEffectsCtor: any = (z as any).ZodEffects;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Zod 3: ZodEffects wrapper\n if (ZodEffectsCtor && s instanceof ZodEffectsCtor) {\n const def = getDef(s) || {};\n const sourceType =\n typeof (s as any).sourceType === \"function\"\n ? (s as any).sourceType()\n : def.schema;\n if (!sourceType) break;\n s = sourceType;\n continue;\n }\n\n // Zod 3 + 4: optional/nullable/default wrappers\n if (s instanceof z.ZodOptional) {\n optional = true;\n const def = getDef(s);\n s = (def && def.innerType) || s; // innerType exists in both 3 & 4\n continue;\n }\n\n if (s instanceof z.ZodNullable) {\n nullable = true;\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n if (s instanceof z.ZodDefault) {\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n break;\n }\n\n return { base: s, optional, nullable };\n}\n\nexport function introspectSchema(\n schema: ZodAny | undefined\n): SerializableSchemaNode | undefined {\n if (!schema) return undefined;\n\n const { base, optional, nullable } = unwrap(schema);\n const def = getDef(base);\n\n const node: SerializableSchemaNode = {\n kind: inferKind(base),\n optional: optional || undefined,\n nullable: nullable || undefined,\n description: getDescription(base),\n };\n\n // OBJECT\n if (base instanceof z.ZodObject) {\n // Zod 3: _def.shape() (function)\n // Zod 4: .shape getter returns an object\n const rawShape: any =\n (base as any).shape ?? (def && typeof def.shape === \"function\"\n ? def.shape()\n : def?.shape);\n\n const shape =\n typeof rawShape === \"function\" ? rawShape() : rawShape ?? {};\n\n const props: Record<string, SerializableSchemaNode> = {};\n for (const key of Object.keys(shape)) {\n const child = shape[key] as ZodAny;\n const childNode = introspectSchema(child);\n if (childNode) props[key] = childNode;\n }\n node.properties = props;\n }\n\n // ARRAY\n if (base instanceof z.ZodArray) {\n // Zod 3: def.type is inner schema\n // Zod 4: def.element is inner schema\n const inner =\n (def && (def.element as ZodAny)) ||\n (def && (def.type as ZodAny)) ||\n undefined;\n if (inner) {\n node.element = introspectSchema(inner);\n }\n }\n\n // UNION\n if (base instanceof z.ZodUnion) {\n const options: ZodAny[] = (def && def.options) || [];\n node.union = options\n .map((opt) => introspectSchema(opt))\n .filter(Boolean) as SerializableSchemaNode[];\n }\n\n // LITERAL\n if (base instanceof z.ZodLiteral) {\n if (def) {\n // Zod 4: def.values (multi-literal)\n if (Array.isArray(def.values)) {\n node.literal =\n def.values.length === 1 ? def.values[0] : def.values.slice();\n } else {\n // Zod 3: def.value\n node.literal = def.value;\n }\n }\n }\n\n // ENUM\n if (base instanceof z.ZodEnum) {\n if (def) {\n if (Array.isArray(def.values)) {\n // Zod 3\n node.enumValues = def.values.slice();\n } else if (def.entries && typeof def.entries === \"object\") {\n // Zod 4: entries is a { key: value } map\n node.enumValues = Object.values(def.entries).map((v: unknown) =>\n String(v)\n );\n }\n }\n }\n\n return node;\n}\n\nfunction inferKind(schema: ZodAny): string {\n // This path still uses instanceof; it works with Zod 4 Classic\n // (importing from \"zod\"). Anything unknown falls back to \"unknown\".\n if (schema instanceof z.ZodString) return \"string\";\n if (schema instanceof z.ZodNumber) return \"number\";\n if (schema instanceof z.ZodBoolean) return \"boolean\";\n if (schema instanceof z.ZodBigInt) return \"bigint\";\n if (schema instanceof z.ZodDate) return \"date\";\n if (schema instanceof z.ZodArray) return \"array\";\n if (schema instanceof z.ZodObject) return \"object\";\n if (schema instanceof z.ZodUnion) return \"union\";\n if (schema instanceof z.ZodLiteral) return \"literal\";\n if (schema instanceof z.ZodEnum) return \"enum\";\n if (schema instanceof z.ZodRecord) return \"record\";\n if (schema instanceof z.ZodTuple) return \"tuple\";\n if (schema instanceof z.ZodUnknown) return \"unknown\";\n if (schema instanceof z.ZodAny) return \"any\";\n\n return \"unknown\";\n}\n","// serializer.ts\nimport type { AnyLeaf, MethodCfg } from \"@emeryld/rrroutes-contract\";\nimport { introspectSchema, SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\ntype SerializableMethodCfg = Pick<\n MethodCfg,\n | \"description\"\n | \"summary\"\n | \"docsGroup\"\n | \"tags\"\n | \"deprecated\"\n | \"stability\"\n | \"feed\"\n | \"docsMeta\"\n> & {\n hasBody: boolean;\n hasQuery: boolean;\n hasParams: boolean;\n hasOutput: boolean;\n\n // NEW: full Zod ASTs\n bodySchema?: SerializableSchemaNode;\n querySchema?: SerializableSchemaNode;\n paramsSchema?: SerializableSchemaNode;\n outputSchema?: SerializableSchemaNode;\n};\n\nexport type SerializableLeaf = {\n method: string;\n path: string;\n cfg: SerializableMethodCfg;\n};\n\nexport type { SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\nexport function serializeLeaf(leaf: AnyLeaf): SerializableLeaf {\n const cfg = leaf.cfg;\n\n const tags = Array.isArray(cfg.tags) ? cfg.tags.slice() : [];\n\n return {\n method: leaf.method, // 'get' | 'post' | ...\n path: leaf.path,\n cfg: {\n description: cfg.description,\n summary: cfg.summary,\n docsGroup: cfg.docsGroup,\n tags,\n deprecated: cfg.deprecated,\n stability: cfg.stability,\n feed: !!cfg.feed,\n docsMeta: cfg.docsMeta,\n hasBody: !!cfg.bodySchema || !!cfg.bodyFiles?.length,\n hasQuery: !!cfg.querySchema,\n hasParams: !!cfg.paramsSchema,\n hasOutput: !!cfg.outputSchema,\n\n bodySchema: introspectSchema(cfg.bodySchema),\n querySchema: introspectSchema(cfg.querySchema),\n paramsSchema: introspectSchema(cfg.paramsSchema),\n outputSchema: introspectSchema(cfg.outputSchema),\n },\n };\n}\n","// renderLeafDocsHTML.ts\nimport type { AnyLeaf } from \"@emeryld/rrroutes-contract\";\nimport {\n createLeafDocsDocument,\n renderLeafDocsHTML as LeafDocsPage,\n RenderOptions,\n} from \"./LeafDocsPage.js\";\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n return LeafDocsPage(leaves, options);\n}\n\nexport type { RenderOptions, SerializableHistoryEntry } from \"./LeafDocsPage.js\";\nexport { createLeafDocsDocument } from \"./LeafDocsPage.js\";\nexport type { SerializablePreset, SerializablePresetOperation } from \"./presets.js\";\n"],"mappings":"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","names":["renderLeafDocsHTML","renderLeafDocsHTML","path","expressStatic","renderLeafDocsHTML","fs"]}
package/dist/index.d.ts CHANGED
@@ -40,9 +40,9 @@ export type OpenApiDocsOptions = {
40
40
  export type Preset<L extends AnyLeaf> = L extends infer A extends AnyLeaf ? {
41
41
  method: A['method'];
42
42
  path: A['path'];
43
- body: z.output<A['cfg']['bodySchema']>;
44
- query: z.output<A['cfg']['querySchema']>;
45
- params: z.output<A['cfg']['paramsSchema']>;
43
+ body?: z.output<A['cfg']['bodySchema']>;
44
+ query?: z.output<A['cfg']['querySchema']>;
45
+ params?: z.output<A['cfg']['paramsSchema']>;
46
46
  } : never;
47
47
  export type PresetGroup<L extends AnyLeaf> = {
48
48
  name: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/docs/LeafDocsPage.tsx","../src/docs/schemaIntrospection.ts","../src/docs/serializer.ts","../src/docs/docs.ts"],"sourcesContent":["/**\n * dry styles\nfake history logs data for testing\ngraphs for history data\nlogs webhook\nsecurity -> gated access + give environment and if environment='production' -> extra \"Are you sure you want to do this\" pop-up for each non-get action\n */\n\nimport type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport { randomBytes } from 'crypto';\nimport type { Request, Response, Router } from 'express';\nimport { static as expressStatic } from 'express';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport z from 'zod';\nimport type { SerializableHistoryEntry } from './docs/docs.js';\nimport { renderLeafDocsHTML } from './docs/docs.js';\nimport type { SerializablePreset } from './docs/presets.js';\n\nexport type DocsRequestContext = {\n req: Request;\n res: Response;\n leaves: AnyLeaf[];\n presets: PresetGroup<AnyLeaf>[];\n};\n\nexport type DocsOnRequestResult = {\n leaves?: AnyLeaf[];\n presets?: PresetGroup<AnyLeaf>[];\n nonce?: string;\n html?: string;\n};\n\nexport type OpenApiDocsOptions = {\n /** Path where docs are mounted. Defaults to `/__rrroutes/docs`. */\n path?: string;\n prefix?: string;\n /** Whether to emit a CSP header + nonce. Defaults to true. */\n csp?: boolean;\n /** Override where static assets are served from. Defaults to `${path}/assets`. */\n assetBasePath?: string;\n /** Optional seed history entries that will pre-populate the docs UI history. */\n historySeeds?: SerializableHistoryEntry[];\n /**\n * Hook that runs on every request. Use it to adjust leaves, override nonce, or\n * provide a fully custom HTML response.\n */\n onRequest?: (ctx: DocsRequestContext) => DocsOnRequestResult | void;\n};\n\nexport type Preset<L extends AnyLeaf> = L extends infer A extends AnyLeaf? {\n method: A['method'];\n path: A['path'];\n // pre-set values for schemas. Does not have to be complete.\n body: z.output<A['cfg']['bodySchema']>;\n query: z.output<A['cfg']['querySchema']>;\n params: z.output<A['cfg']['paramsSchema']>;\n}:never;\n\nexport type PresetGroup<L extends AnyLeaf> = {\n name: string;\n description?: string;\n tags: string[];\n docsGroup?: string;\n\n ops: Preset<L>[];\n};\n\nexport type MountDocsArgs<L extends AnyLeaf> = {\n router: Router;\n leaves: L[];\n presets?: PresetGroup<L>[];\n options?: OpenApiDocsOptions;\n};\n\nconst trimTrailingSlash = (value: string) =>\n value.endsWith('/') && value.length > 1 ? value.slice(0, -1) : value;\n\nexport function mountRRRoutesDocs<L extends AnyLeaf>({\n router,\n leaves,\n presets = [],\n options = {},\n}: MountDocsArgs<L>) {\n const prefix = options.prefix ? trimTrailingSlash(options.prefix) : '';\n const docsPath = options.path ?? '/__rrroutes/docs';\n const normalizedDocsPath = trimTrailingSlash(docsPath);\n const assetsMountPath = trimTrailingSlash(\n options.assetBasePath ?? `${normalizedDocsPath}/assets`,\n );\n const publicDir = resolvePublicDir();\n const assetsDir = path.join(publicDir, 'assets');\n const cspEnabled = options.csp !== false;\n\n router.use(assetsMountPath, expressStatic(assetsDir, { immutable: true, maxAge: '365d' }));\n\n const docsRoutePaths = [normalizedDocsPath, `${normalizedDocsPath}/`, `${normalizedDocsPath}/*id`];\n\n router.get(docsRoutePaths, (req, res) => {\n const preparedLeaves = Array.isArray(leaves)\n ? leaves.filter((leaf) => leaf.cfg.docsHidden !== true)\n : [];\n const preparedPresets = Array.isArray(presets) ? presets : [];\n const onRequestResult =\n options.onRequest?.({ req, res, leaves: preparedLeaves, presets: preparedPresets }) ?? {};\n const finalLeaves = onRequestResult.leaves ?? preparedLeaves;\n const finalPresets = onRequestResult.presets ?? preparedPresets;\n\n const hasCustomHtml = typeof onRequestResult.html === 'string';\n\n let nonce = onRequestResult.nonce;\n if (!nonce && cspEnabled && !hasCustomHtml) {\n nonce = randomBytes(16).toString('base64');\n }\n\n const html = hasCustomHtml\n ? (onRequestResult.html as string)\n : renderLeafDocsHTML(finalLeaves, {\n cspNonce: nonce,\n assetBasePath: `${prefix}${assetsMountPath}`,\n docsBasePath: `${prefix}${normalizedDocsPath}`,\n baseUrlSuffix: prefix,\n historySeeds: options.historySeeds,\n presets: normalizePresets(finalPresets),\n });\n\n if (cspEnabled && nonce) {\n res.setHeader(\n 'Content-Security-Policy',\n [\n \"default-src 'self'\",\n `script-src 'self' 'nonce-${nonce}'`,\n `style-src 'self' 'nonce-${nonce}'`,\n \"img-src 'self' data:\",\n \"connect-src 'self'\",\n \"font-src 'self'\",\n \"frame-ancestors 'self'\",\n ].join('; '),\n );\n }\n\n res.send(html);\n });\n\n return { path: docsPath };\n}\n\nfunction resolvePublicDir() {\n const moduleDir =\n typeof __dirname !== 'undefined'\n ? __dirname\n : path.dirname(fileURLToPath(import.meta.url));\n const fromModule = path.resolve(moduleDir, '../public');\n if (fs.existsSync(fromModule)) return fromModule;\n\n // When running from source (ts-node), fall back to the built output path.\n const fallback = path.resolve(moduleDir, '../dist/public');\n if (fs.existsSync(fallback)) return fallback;\n\n return fromModule; // fallback; express static will 404 if missing\n}\n\nfunction normalizePresets(presets: PresetGroup<AnyLeaf>[]): SerializablePreset[] {\n if (!Array.isArray(presets)) return [];\n return presets.map((preset) => ({\n name: preset.name,\n description: preset.description,\n tags: Array.isArray(preset.tags) ? preset.tags.slice() : [],\n docsGroup: preset.docsGroup,\n ops: Array.isArray(preset.ops)\n ? preset.ops.map((op) => ({\n method: typeof op.method === 'string' ? op.method.toUpperCase() : '',\n path: typeof op.path === 'string' ? op.path : '',\n body: op.body,\n query: op.query,\n params: op.params,\n }))\n : [],\n }));\n}\n\nexport { renderLeafDocsHTML } from './docs/docs.js';\nexport { serializeLeaf } from './docs/serializer.js';\nexport type { SerializableLeaf } from './docs/serializer.js';\n","import type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport type { ReactElement } from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\nimport type { SerializablePreset } from './presets.js';\nimport { serializeLeaf } from './serializer.js';\n\nexport interface RenderOptions {\n /** CSP nonce applied to data + script tags. */\n cspNonce?: string;\n /** Base URL where static assets are served (e.g. `/__rrroutes/docs/assets`). */\n assetBasePath?: string;\n /** Root path where the docs are mounted (e.g. `/__rrroutes/docs`). Used for client routing. */\n docsBasePath?: string;\n /** Optional suffix appended to the window origin when building default playground base URLs. */\n baseUrlSuffix?: string;\n /** Preset collections rendered into the docs UI. */\n presets?: SerializablePreset[];\n /** Optional seed history entries to pre-populate the UI (useful in dev). */\n historySeeds?: SerializableHistoryEntry[];\n}\n\nconst DEFAULT_ASSET_BASE = '/__rrroutes/docs/assets';\n\nfunction normalizeBase(base: string) {\n if (!base) return DEFAULT_ASSET_BASE;\n return base.endsWith('/') ? base.slice(0, -1) : base;\n}\n\nfunction normalizeDocsBase(base: string | undefined) {\n if (!base) return '';\n if (base === '/') return '/';\n return base.endsWith('/') && base.length > 1 ? base.slice(0, -1) : base;\n}\n\nfunction normalizeBaseUrlSuffix(suffix: string | undefined) {\n if (!suffix) return '';\n const trimmed = suffix.endsWith('/') && suffix.length > 1 ? suffix.slice(0, -1) : suffix;\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n\ntype DocsDocumentProps = {\n leavesJson: string;\n presetsJson: string;\n assetBase: string;\n docsBase: string;\n historyJson: string;\n baseUrlSuffix?: string;\n cspNonce?: string;\n};\n\nexport const DocsDocument = ({\n leavesJson,\n presetsJson,\n assetBase,\n docsBase,\n historyJson,\n baseUrlSuffix,\n cspNonce,\n}: DocsDocumentProps) => {\n const cssHref = `${assetBase}/docs.css`;\n const jsSrc = `${assetBase}/docs.js`;\n const configJson = serializeConfig({ docsBasePath: docsBase, baseUrlSuffix });\n\n return (\n <html lang=\"en\">\n <head>\n <meta charSet=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>API Reference</title>\n <link rel=\"stylesheet\" href={cssHref} />\n </head>\n <body>\n <div id=\"docs-root\"></div>\n <script\n id=\"leaf-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: leavesJson }}\n />\n <script\n id=\"preset-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: presetsJson }}\n />\n <script\n id=\"history-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: historyJson }}\n />\n <script\n id=\"docs-config\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: configJson }}\n />\n <script type=\"module\" src={jsSrc} nonce={cspNonce} />\n </body>\n </html>\n );\n};\n\nfunction serializeLeaves(leaves: AnyLeaf[]) {\n return JSON.stringify(leaves.map(serializeLeaf)).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializePresets(presets: SerializablePreset[] | undefined) {\n return JSON.stringify(Array.isArray(presets) ? presets : []).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializeHistorySeeds(historySeeds: SerializableHistoryEntry[] | undefined) {\n return JSON.stringify(Array.isArray(historySeeds) ? historySeeds : []).replace(/<\\//g, '<\\\\/');\n}\n\ntype DocsConfig = { docsBasePath: string; baseUrlSuffix?: string };\n\nfunction serializeConfig(config: DocsConfig) {\n return JSON.stringify(config).replace(/<\\//g, '<\\\\/');\n}\n\nexport function createLeafDocsDocument(\n leaves: AnyLeaf[],\n options: RenderOptions = {},\n): ReactElement {\n const assetBase = normalizeBase(options.assetBasePath ?? DEFAULT_ASSET_BASE);\n const leavesJson = serializeLeaves(leaves);\n const presetsJson = serializePresets(options.presets);\n const docsBase = normalizeDocsBase(options.docsBasePath);\n const historyJson = serializeHistorySeeds(options.historySeeds);\n const baseUrlSuffix = normalizeBaseUrlSuffix(options.baseUrlSuffix);\n\n return (\n <DocsDocument\n leavesJson={leavesJson}\n presetsJson={presetsJson}\n assetBase={assetBase}\n docsBase={docsBase}\n historyJson={historyJson}\n baseUrlSuffix={baseUrlSuffix}\n cspNonce={options.cspNonce}\n />\n );\n}\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n const doc = createLeafDocsDocument(leaves, options);\n const html = renderToStaticMarkup(doc);\n return `<!DOCTYPE html>${html}`;\n}\n\nexport type SerializableHistoryEntry = {\n id?: string;\n timestamp: number;\n method: string;\n path: string;\n fullUrl: string;\n params?: Record<string, string>;\n query?: Record<string, string>;\n body?: string;\n output?: string;\n status?: number;\n durationMs: number;\n error?: string;\n};\n","// schemaIntrospection.ts\nimport * as z from \"zod\";\n\nexport type SerializableSchemaNode = {\n kind: string; // \"object\" | \"string\" | \"number\" | ...\n optional?: boolean;\n nullable?: boolean;\n description?: string;\n\n // object\n properties?: Record<string, SerializableSchemaNode>;\n // array\n element?: SerializableSchemaNode;\n // union\n union?: SerializableSchemaNode[];\n // literal\n literal?: unknown;\n // enum\n enumValues?: string[];\n};\n\ntype ZodAny = z.ZodTypeAny;\n\n/**\n * Zod 3 uses `schema._def`, Zod 4 uses `schema._zod.def`.\n */\nfunction getDef(schema: unknown): any | undefined {\n if (!schema || typeof schema !== \"object\") return undefined;\n const anySchema = schema as any;\n return anySchema._zod?.def ?? anySchema._def;\n}\n\n/**\n * Try to get a human-readable description.\n * Zod 4: use metadata/registry; fallback to internal def.description.\n * Zod 3: only internal def.description exists.\n */\nfunction getDescription(schema: ZodAny): string | undefined {\n const anyZ: any = z as any;\n\n // Zod 4 global registry metadata, if present\n const registry = anyZ.globalRegistry?.get\n ? anyZ.globalRegistry.get(schema)\n : undefined;\n if (registry && typeof registry.description === \"string\") {\n return registry.description;\n }\n\n // Legacy / internal description\n const def = getDef(schema);\n if (def && typeof def.description === \"string\") {\n return def.description;\n }\n\n return undefined;\n}\n\n/**\n * Peel off wrappers (effects, optional, nullable, default) and\n * return the inner schema + flags.\n *\n * Supports:\n * - Zod 3: ZodEffects, ZodOptional, ZodNullable, ZodDefault\n * - Zod 4: ZodOptional, ZodNullable, ZodDefault\n */\nfunction unwrap(schema: ZodAny): {\n base: ZodAny;\n optional: boolean;\n nullable: boolean;\n} {\n let s: ZodAny = schema;\n let optional = false;\n let nullable = false;\n\n // Zod 3 only (undefined in Zod 4)\n const ZodEffectsCtor: any = (z as any).ZodEffects;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Zod 3: ZodEffects wrapper\n if (ZodEffectsCtor && s instanceof ZodEffectsCtor) {\n const def = getDef(s) || {};\n const sourceType =\n typeof (s as any).sourceType === \"function\"\n ? (s as any).sourceType()\n : def.schema;\n if (!sourceType) break;\n s = sourceType;\n continue;\n }\n\n // Zod 3 + 4: optional/nullable/default wrappers\n if (s instanceof z.ZodOptional) {\n optional = true;\n const def = getDef(s);\n s = (def && def.innerType) || s; // innerType exists in both 3 & 4\n continue;\n }\n\n if (s instanceof z.ZodNullable) {\n nullable = true;\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n if (s instanceof z.ZodDefault) {\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n break;\n }\n\n return { base: s, optional, nullable };\n}\n\nexport function introspectSchema(\n schema: ZodAny | undefined\n): SerializableSchemaNode | undefined {\n if (!schema) return undefined;\n\n const { base, optional, nullable } = unwrap(schema);\n const def = getDef(base);\n\n const node: SerializableSchemaNode = {\n kind: inferKind(base),\n optional: optional || undefined,\n nullable: nullable || undefined,\n description: getDescription(base),\n };\n\n // OBJECT\n if (base instanceof z.ZodObject) {\n // Zod 3: _def.shape() (function)\n // Zod 4: .shape getter returns an object\n const rawShape: any =\n (base as any).shape ?? (def && typeof def.shape === \"function\"\n ? def.shape()\n : def?.shape);\n\n const shape =\n typeof rawShape === \"function\" ? rawShape() : rawShape ?? {};\n\n const props: Record<string, SerializableSchemaNode> = {};\n for (const key of Object.keys(shape)) {\n const child = shape[key] as ZodAny;\n const childNode = introspectSchema(child);\n if (childNode) props[key] = childNode;\n }\n node.properties = props;\n }\n\n // ARRAY\n if (base instanceof z.ZodArray) {\n // Zod 3: def.type is inner schema\n // Zod 4: def.element is inner schema\n const inner =\n (def && (def.element as ZodAny)) ||\n (def && (def.type as ZodAny)) ||\n undefined;\n if (inner) {\n node.element = introspectSchema(inner);\n }\n }\n\n // UNION\n if (base instanceof z.ZodUnion) {\n const options: ZodAny[] = (def && def.options) || [];\n node.union = options\n .map((opt) => introspectSchema(opt))\n .filter(Boolean) as SerializableSchemaNode[];\n }\n\n // LITERAL\n if (base instanceof z.ZodLiteral) {\n if (def) {\n // Zod 4: def.values (multi-literal)\n if (Array.isArray(def.values)) {\n node.literal =\n def.values.length === 1 ? def.values[0] : def.values.slice();\n } else {\n // Zod 3: def.value\n node.literal = def.value;\n }\n }\n }\n\n // ENUM\n if (base instanceof z.ZodEnum) {\n if (def) {\n if (Array.isArray(def.values)) {\n // Zod 3\n node.enumValues = def.values.slice();\n } else if (def.entries && typeof def.entries === \"object\") {\n // Zod 4: entries is a { key: value } map\n node.enumValues = Object.values(def.entries).map((v: unknown) =>\n String(v)\n );\n }\n }\n }\n\n return node;\n}\n\nfunction inferKind(schema: ZodAny): string {\n // This path still uses instanceof; it works with Zod 4 Classic\n // (importing from \"zod\"). Anything unknown falls back to \"unknown\".\n if (schema instanceof z.ZodString) return \"string\";\n if (schema instanceof z.ZodNumber) return \"number\";\n if (schema instanceof z.ZodBoolean) return \"boolean\";\n if (schema instanceof z.ZodBigInt) return \"bigint\";\n if (schema instanceof z.ZodDate) return \"date\";\n if (schema instanceof z.ZodArray) return \"array\";\n if (schema instanceof z.ZodObject) return \"object\";\n if (schema instanceof z.ZodUnion) return \"union\";\n if (schema instanceof z.ZodLiteral) return \"literal\";\n if (schema instanceof z.ZodEnum) return \"enum\";\n if (schema instanceof z.ZodRecord) return \"record\";\n if (schema instanceof z.ZodTuple) return \"tuple\";\n if (schema instanceof z.ZodUnknown) return \"unknown\";\n if (schema instanceof z.ZodAny) return \"any\";\n\n return \"unknown\";\n}\n","// serializer.ts\nimport type { AnyLeaf, MethodCfg } from \"@emeryld/rrroutes-contract\";\nimport { introspectSchema, SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\ntype SerializableMethodCfg = Pick<\n MethodCfg,\n | \"description\"\n | \"summary\"\n | \"docsGroup\"\n | \"tags\"\n | \"deprecated\"\n | \"stability\"\n | \"feed\"\n | \"docsMeta\"\n> & {\n hasBody: boolean;\n hasQuery: boolean;\n hasParams: boolean;\n hasOutput: boolean;\n\n // NEW: full Zod ASTs\n bodySchema?: SerializableSchemaNode;\n querySchema?: SerializableSchemaNode;\n paramsSchema?: SerializableSchemaNode;\n outputSchema?: SerializableSchemaNode;\n};\n\nexport type SerializableLeaf = {\n method: string;\n path: string;\n cfg: SerializableMethodCfg;\n};\n\nexport type { SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\nexport function serializeLeaf(leaf: AnyLeaf): SerializableLeaf {\n const cfg = leaf.cfg;\n\n const tags = Array.isArray(cfg.tags) ? cfg.tags.slice() : [];\n\n return {\n method: leaf.method, // 'get' | 'post' | ...\n path: leaf.path,\n cfg: {\n description: cfg.description,\n summary: cfg.summary,\n docsGroup: cfg.docsGroup,\n tags,\n deprecated: cfg.deprecated,\n stability: cfg.stability,\n feed: !!cfg.feed,\n docsMeta: cfg.docsMeta,\n hasBody: !!cfg.bodySchema || !!cfg.bodyFiles?.length,\n hasQuery: !!cfg.querySchema,\n hasParams: !!cfg.paramsSchema,\n hasOutput: !!cfg.outputSchema,\n\n bodySchema: introspectSchema(cfg.bodySchema),\n querySchema: introspectSchema(cfg.querySchema),\n paramsSchema: introspectSchema(cfg.paramsSchema),\n outputSchema: introspectSchema(cfg.outputSchema),\n },\n };\n}\n","// renderLeafDocsHTML.ts\nimport type { AnyLeaf } from \"@emeryld/rrroutes-contract\";\nimport {\n createLeafDocsDocument,\n renderLeafDocsHTML as LeafDocsPage,\n RenderOptions,\n} from \"./LeafDocsPage.js\";\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n return LeafDocsPage(leaves, options);\n}\n\nexport type { RenderOptions, SerializableHistoryEntry } from \"./LeafDocsPage.js\";\nexport { createLeafDocsDocument } from \"./LeafDocsPage.js\";\nexport type { SerializablePreset, SerializablePresetOperation } from \"./presets.js\";\n"],"mappings":"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","names":["renderLeafDocsHTML","renderLeafDocsHTML"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/docs/LeafDocsPage.tsx","../src/docs/schemaIntrospection.ts","../src/docs/serializer.ts","../src/docs/docs.ts"],"sourcesContent":["/**\n * dry styles\nfake history logs data for testing\ngraphs for history data\nlogs webhook\nsecurity -> gated access + give environment and if environment='production' -> extra \"Are you sure you want to do this\" pop-up for each non-get action\n */\n\nimport type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport { randomBytes } from 'crypto';\nimport type { Request, Response, Router } from 'express';\nimport { static as expressStatic } from 'express';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport z from 'zod';\nimport type { SerializableHistoryEntry } from './docs/docs.js';\nimport { renderLeafDocsHTML } from './docs/docs.js';\nimport type { SerializablePreset } from './docs/presets.js';\n\nexport type DocsRequestContext = {\n req: Request;\n res: Response;\n leaves: AnyLeaf[];\n presets: PresetGroup<AnyLeaf>[];\n};\n\nexport type DocsOnRequestResult = {\n leaves?: AnyLeaf[];\n presets?: PresetGroup<AnyLeaf>[];\n nonce?: string;\n html?: string;\n};\n\nexport type OpenApiDocsOptions = {\n /** Path where docs are mounted. Defaults to `/__rrroutes/docs`. */\n path?: string;\n prefix?: string;\n /** Whether to emit a CSP header + nonce. Defaults to true. */\n csp?: boolean;\n /** Override where static assets are served from. Defaults to `${path}/assets`. */\n assetBasePath?: string;\n /** Optional seed history entries that will pre-populate the docs UI history. */\n historySeeds?: SerializableHistoryEntry[];\n /**\n * Hook that runs on every request. Use it to adjust leaves, override nonce, or\n * provide a fully custom HTML response.\n */\n onRequest?: (ctx: DocsRequestContext) => DocsOnRequestResult | void;\n};\n\nexport type Preset<L extends AnyLeaf> = L extends infer A extends AnyLeaf? {\n method: A['method'];\n path: A['path'];\n // pre-set values for schemas. Does not have to be complete.\n body?: z.output<A['cfg']['bodySchema']>;\n query?: z.output<A['cfg']['querySchema']>;\n params?: z.output<A['cfg']['paramsSchema']>;\n}:never;\n\nexport type PresetGroup<L extends AnyLeaf> = {\n name: string;\n description?: string;\n tags: string[];\n docsGroup?: string;\n\n ops: Preset<L>[];\n};\n\nexport type MountDocsArgs<L extends AnyLeaf> = {\n router: Router;\n leaves: L[];\n presets?: PresetGroup<L>[];\n options?: OpenApiDocsOptions;\n};\n\nconst trimTrailingSlash = (value: string) =>\n value.endsWith('/') && value.length > 1 ? value.slice(0, -1) : value;\n\nexport function mountRRRoutesDocs<L extends AnyLeaf>({\n router,\n leaves,\n presets = [],\n options = {},\n}: MountDocsArgs<L>) {\n const prefix = options.prefix ? trimTrailingSlash(options.prefix) : '';\n const docsPath = options.path ?? '/__rrroutes/docs';\n const normalizedDocsPath = trimTrailingSlash(docsPath);\n const assetsMountPath = trimTrailingSlash(\n options.assetBasePath ?? `${normalizedDocsPath}/assets`,\n );\n const publicDir = resolvePublicDir();\n const assetsDir = path.join(publicDir, 'assets');\n const cspEnabled = options.csp !== false;\n\n router.use(assetsMountPath, expressStatic(assetsDir, { immutable: true, maxAge: '365d' }));\n\n const docsRoutePaths = [normalizedDocsPath, `${normalizedDocsPath}/`, `${normalizedDocsPath}/*id`];\n\n router.get(docsRoutePaths, (req, res) => {\n const preparedLeaves = Array.isArray(leaves)\n ? leaves.filter((leaf) => leaf.cfg.docsHidden !== true)\n : [];\n const preparedPresets = Array.isArray(presets) ? presets : [];\n const onRequestResult =\n options.onRequest?.({ req, res, leaves: preparedLeaves, presets: preparedPresets }) ?? {};\n const finalLeaves = onRequestResult.leaves ?? preparedLeaves;\n const finalPresets = onRequestResult.presets ?? preparedPresets;\n\n const hasCustomHtml = typeof onRequestResult.html === 'string';\n\n let nonce = onRequestResult.nonce;\n if (!nonce && cspEnabled && !hasCustomHtml) {\n nonce = randomBytes(16).toString('base64');\n }\n\n const html = hasCustomHtml\n ? (onRequestResult.html as string)\n : renderLeafDocsHTML(finalLeaves, {\n cspNonce: nonce,\n assetBasePath: `${prefix}${assetsMountPath}`,\n docsBasePath: `${prefix}${normalizedDocsPath}`,\n baseUrlSuffix: prefix,\n historySeeds: options.historySeeds,\n presets: normalizePresets(finalPresets),\n });\n\n if (cspEnabled && nonce) {\n res.setHeader(\n 'Content-Security-Policy',\n [\n \"default-src 'self'\",\n `script-src 'self' 'nonce-${nonce}'`,\n `style-src 'self' 'nonce-${nonce}'`,\n \"img-src 'self' data:\",\n \"connect-src 'self'\",\n \"font-src 'self'\",\n \"frame-ancestors 'self'\",\n ].join('; '),\n );\n }\n\n res.send(html);\n });\n\n return { path: docsPath };\n}\n\nfunction resolvePublicDir() {\n const moduleDir =\n typeof __dirname !== 'undefined'\n ? __dirname\n : path.dirname(fileURLToPath(import.meta.url));\n const fromModule = path.resolve(moduleDir, '../public');\n if (fs.existsSync(fromModule)) return fromModule;\n\n // When running from source (ts-node), fall back to the built output path.\n const fallback = path.resolve(moduleDir, '../dist/public');\n if (fs.existsSync(fallback)) return fallback;\n\n return fromModule; // fallback; express static will 404 if missing\n}\n\nfunction normalizePresets(presets: PresetGroup<AnyLeaf>[]): SerializablePreset[] {\n if (!Array.isArray(presets)) return [];\n return presets.map((preset) => ({\n name: preset.name,\n description: preset.description,\n tags: Array.isArray(preset.tags) ? preset.tags.slice() : [],\n docsGroup: preset.docsGroup,\n ops: Array.isArray(preset.ops)\n ? preset.ops.map((op) => ({\n method: typeof op.method === 'string' ? op.method.toUpperCase() : '',\n path: typeof op.path === 'string' ? op.path : '',\n body: op.body,\n query: op.query,\n params: op.params,\n }))\n : [],\n }));\n}\n\nexport { renderLeafDocsHTML } from './docs/docs.js';\nexport { serializeLeaf } from './docs/serializer.js';\nexport type { SerializableLeaf } from './docs/serializer.js';\n","import type { AnyLeaf } from '@emeryld/rrroutes-contract';\nimport type { ReactElement } from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\nimport type { SerializablePreset } from './presets.js';\nimport { serializeLeaf } from './serializer.js';\n\nexport interface RenderOptions {\n /** CSP nonce applied to data + script tags. */\n cspNonce?: string;\n /** Base URL where static assets are served (e.g. `/__rrroutes/docs/assets`). */\n assetBasePath?: string;\n /** Root path where the docs are mounted (e.g. `/__rrroutes/docs`). Used for client routing. */\n docsBasePath?: string;\n /** Optional suffix appended to the window origin when building default playground base URLs. */\n baseUrlSuffix?: string;\n /** Preset collections rendered into the docs UI. */\n presets?: SerializablePreset[];\n /** Optional seed history entries to pre-populate the UI (useful in dev). */\n historySeeds?: SerializableHistoryEntry[];\n}\n\nconst DEFAULT_ASSET_BASE = '/__rrroutes/docs/assets';\n\nfunction normalizeBase(base: string) {\n if (!base) return DEFAULT_ASSET_BASE;\n return base.endsWith('/') ? base.slice(0, -1) : base;\n}\n\nfunction normalizeDocsBase(base: string | undefined) {\n if (!base) return '';\n if (base === '/') return '/';\n return base.endsWith('/') && base.length > 1 ? base.slice(0, -1) : base;\n}\n\nfunction normalizeBaseUrlSuffix(suffix: string | undefined) {\n if (!suffix) return '';\n const trimmed = suffix.endsWith('/') && suffix.length > 1 ? suffix.slice(0, -1) : suffix;\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n\ntype DocsDocumentProps = {\n leavesJson: string;\n presetsJson: string;\n assetBase: string;\n docsBase: string;\n historyJson: string;\n baseUrlSuffix?: string;\n cspNonce?: string;\n};\n\nexport const DocsDocument = ({\n leavesJson,\n presetsJson,\n assetBase,\n docsBase,\n historyJson,\n baseUrlSuffix,\n cspNonce,\n}: DocsDocumentProps) => {\n const cssHref = `${assetBase}/docs.css`;\n const jsSrc = `${assetBase}/docs.js`;\n const configJson = serializeConfig({ docsBasePath: docsBase, baseUrlSuffix });\n\n return (\n <html lang=\"en\">\n <head>\n <meta charSet=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>API Reference</title>\n <link rel=\"stylesheet\" href={cssHref} />\n </head>\n <body>\n <div id=\"docs-root\"></div>\n <script\n id=\"leaf-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: leavesJson }}\n />\n <script\n id=\"preset-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: presetsJson }}\n />\n <script\n id=\"history-data\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: historyJson }}\n />\n <script\n id=\"docs-config\"\n type=\"application/json\"\n nonce={cspNonce}\n dangerouslySetInnerHTML={{ __html: configJson }}\n />\n <script type=\"module\" src={jsSrc} nonce={cspNonce} />\n </body>\n </html>\n );\n};\n\nfunction serializeLeaves(leaves: AnyLeaf[]) {\n return JSON.stringify(leaves.map(serializeLeaf)).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializePresets(presets: SerializablePreset[] | undefined) {\n return JSON.stringify(Array.isArray(presets) ? presets : []).replace(/<\\//g, '<\\\\/');\n}\n\nfunction serializeHistorySeeds(historySeeds: SerializableHistoryEntry[] | undefined) {\n return JSON.stringify(Array.isArray(historySeeds) ? historySeeds : []).replace(/<\\//g, '<\\\\/');\n}\n\ntype DocsConfig = { docsBasePath: string; baseUrlSuffix?: string };\n\nfunction serializeConfig(config: DocsConfig) {\n return JSON.stringify(config).replace(/<\\//g, '<\\\\/');\n}\n\nexport function createLeafDocsDocument(\n leaves: AnyLeaf[],\n options: RenderOptions = {},\n): ReactElement {\n const assetBase = normalizeBase(options.assetBasePath ?? DEFAULT_ASSET_BASE);\n const leavesJson = serializeLeaves(leaves);\n const presetsJson = serializePresets(options.presets);\n const docsBase = normalizeDocsBase(options.docsBasePath);\n const historyJson = serializeHistorySeeds(options.historySeeds);\n const baseUrlSuffix = normalizeBaseUrlSuffix(options.baseUrlSuffix);\n\n return (\n <DocsDocument\n leavesJson={leavesJson}\n presetsJson={presetsJson}\n assetBase={assetBase}\n docsBase={docsBase}\n historyJson={historyJson}\n baseUrlSuffix={baseUrlSuffix}\n cspNonce={options.cspNonce}\n />\n );\n}\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n const doc = createLeafDocsDocument(leaves, options);\n const html = renderToStaticMarkup(doc);\n return `<!DOCTYPE html>${html}`;\n}\n\nexport type SerializableHistoryEntry = {\n id?: string;\n timestamp: number;\n method: string;\n path: string;\n fullUrl: string;\n params?: Record<string, string>;\n query?: Record<string, string>;\n body?: string;\n output?: string;\n status?: number;\n durationMs: number;\n error?: string;\n};\n","// schemaIntrospection.ts\nimport * as z from \"zod\";\n\nexport type SerializableSchemaNode = {\n kind: string; // \"object\" | \"string\" | \"number\" | ...\n optional?: boolean;\n nullable?: boolean;\n description?: string;\n\n // object\n properties?: Record<string, SerializableSchemaNode>;\n // array\n element?: SerializableSchemaNode;\n // union\n union?: SerializableSchemaNode[];\n // literal\n literal?: unknown;\n // enum\n enumValues?: string[];\n};\n\ntype ZodAny = z.ZodTypeAny;\n\n/**\n * Zod 3 uses `schema._def`, Zod 4 uses `schema._zod.def`.\n */\nfunction getDef(schema: unknown): any | undefined {\n if (!schema || typeof schema !== \"object\") return undefined;\n const anySchema = schema as any;\n return anySchema._zod?.def ?? anySchema._def;\n}\n\n/**\n * Try to get a human-readable description.\n * Zod 4: use metadata/registry; fallback to internal def.description.\n * Zod 3: only internal def.description exists.\n */\nfunction getDescription(schema: ZodAny): string | undefined {\n const anyZ: any = z as any;\n\n // Zod 4 global registry metadata, if present\n const registry = anyZ.globalRegistry?.get\n ? anyZ.globalRegistry.get(schema)\n : undefined;\n if (registry && typeof registry.description === \"string\") {\n return registry.description;\n }\n\n // Legacy / internal description\n const def = getDef(schema);\n if (def && typeof def.description === \"string\") {\n return def.description;\n }\n\n return undefined;\n}\n\n/**\n * Peel off wrappers (effects, optional, nullable, default) and\n * return the inner schema + flags.\n *\n * Supports:\n * - Zod 3: ZodEffects, ZodOptional, ZodNullable, ZodDefault\n * - Zod 4: ZodOptional, ZodNullable, ZodDefault\n */\nfunction unwrap(schema: ZodAny): {\n base: ZodAny;\n optional: boolean;\n nullable: boolean;\n} {\n let s: ZodAny = schema;\n let optional = false;\n let nullable = false;\n\n // Zod 3 only (undefined in Zod 4)\n const ZodEffectsCtor: any = (z as any).ZodEffects;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Zod 3: ZodEffects wrapper\n if (ZodEffectsCtor && s instanceof ZodEffectsCtor) {\n const def = getDef(s) || {};\n const sourceType =\n typeof (s as any).sourceType === \"function\"\n ? (s as any).sourceType()\n : def.schema;\n if (!sourceType) break;\n s = sourceType;\n continue;\n }\n\n // Zod 3 + 4: optional/nullable/default wrappers\n if (s instanceof z.ZodOptional) {\n optional = true;\n const def = getDef(s);\n s = (def && def.innerType) || s; // innerType exists in both 3 & 4\n continue;\n }\n\n if (s instanceof z.ZodNullable) {\n nullable = true;\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n if (s instanceof z.ZodDefault) {\n const def = getDef(s);\n s = (def && def.innerType) || s;\n continue;\n }\n\n break;\n }\n\n return { base: s, optional, nullable };\n}\n\nexport function introspectSchema(\n schema: ZodAny | undefined\n): SerializableSchemaNode | undefined {\n if (!schema) return undefined;\n\n const { base, optional, nullable } = unwrap(schema);\n const def = getDef(base);\n\n const node: SerializableSchemaNode = {\n kind: inferKind(base),\n optional: optional || undefined,\n nullable: nullable || undefined,\n description: getDescription(base),\n };\n\n // OBJECT\n if (base instanceof z.ZodObject) {\n // Zod 3: _def.shape() (function)\n // Zod 4: .shape getter returns an object\n const rawShape: any =\n (base as any).shape ?? (def && typeof def.shape === \"function\"\n ? def.shape()\n : def?.shape);\n\n const shape =\n typeof rawShape === \"function\" ? rawShape() : rawShape ?? {};\n\n const props: Record<string, SerializableSchemaNode> = {};\n for (const key of Object.keys(shape)) {\n const child = shape[key] as ZodAny;\n const childNode = introspectSchema(child);\n if (childNode) props[key] = childNode;\n }\n node.properties = props;\n }\n\n // ARRAY\n if (base instanceof z.ZodArray) {\n // Zod 3: def.type is inner schema\n // Zod 4: def.element is inner schema\n const inner =\n (def && (def.element as ZodAny)) ||\n (def && (def.type as ZodAny)) ||\n undefined;\n if (inner) {\n node.element = introspectSchema(inner);\n }\n }\n\n // UNION\n if (base instanceof z.ZodUnion) {\n const options: ZodAny[] = (def && def.options) || [];\n node.union = options\n .map((opt) => introspectSchema(opt))\n .filter(Boolean) as SerializableSchemaNode[];\n }\n\n // LITERAL\n if (base instanceof z.ZodLiteral) {\n if (def) {\n // Zod 4: def.values (multi-literal)\n if (Array.isArray(def.values)) {\n node.literal =\n def.values.length === 1 ? def.values[0] : def.values.slice();\n } else {\n // Zod 3: def.value\n node.literal = def.value;\n }\n }\n }\n\n // ENUM\n if (base instanceof z.ZodEnum) {\n if (def) {\n if (Array.isArray(def.values)) {\n // Zod 3\n node.enumValues = def.values.slice();\n } else if (def.entries && typeof def.entries === \"object\") {\n // Zod 4: entries is a { key: value } map\n node.enumValues = Object.values(def.entries).map((v: unknown) =>\n String(v)\n );\n }\n }\n }\n\n return node;\n}\n\nfunction inferKind(schema: ZodAny): string {\n // This path still uses instanceof; it works with Zod 4 Classic\n // (importing from \"zod\"). Anything unknown falls back to \"unknown\".\n if (schema instanceof z.ZodString) return \"string\";\n if (schema instanceof z.ZodNumber) return \"number\";\n if (schema instanceof z.ZodBoolean) return \"boolean\";\n if (schema instanceof z.ZodBigInt) return \"bigint\";\n if (schema instanceof z.ZodDate) return \"date\";\n if (schema instanceof z.ZodArray) return \"array\";\n if (schema instanceof z.ZodObject) return \"object\";\n if (schema instanceof z.ZodUnion) return \"union\";\n if (schema instanceof z.ZodLiteral) return \"literal\";\n if (schema instanceof z.ZodEnum) return \"enum\";\n if (schema instanceof z.ZodRecord) return \"record\";\n if (schema instanceof z.ZodTuple) return \"tuple\";\n if (schema instanceof z.ZodUnknown) return \"unknown\";\n if (schema instanceof z.ZodAny) return \"any\";\n\n return \"unknown\";\n}\n","// serializer.ts\nimport type { AnyLeaf, MethodCfg } from \"@emeryld/rrroutes-contract\";\nimport { introspectSchema, SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\ntype SerializableMethodCfg = Pick<\n MethodCfg,\n | \"description\"\n | \"summary\"\n | \"docsGroup\"\n | \"tags\"\n | \"deprecated\"\n | \"stability\"\n | \"feed\"\n | \"docsMeta\"\n> & {\n hasBody: boolean;\n hasQuery: boolean;\n hasParams: boolean;\n hasOutput: boolean;\n\n // NEW: full Zod ASTs\n bodySchema?: SerializableSchemaNode;\n querySchema?: SerializableSchemaNode;\n paramsSchema?: SerializableSchemaNode;\n outputSchema?: SerializableSchemaNode;\n};\n\nexport type SerializableLeaf = {\n method: string;\n path: string;\n cfg: SerializableMethodCfg;\n};\n\nexport type { SerializableSchemaNode } from \"./schemaIntrospection.js\";\n\nexport function serializeLeaf(leaf: AnyLeaf): SerializableLeaf {\n const cfg = leaf.cfg;\n\n const tags = Array.isArray(cfg.tags) ? cfg.tags.slice() : [];\n\n return {\n method: leaf.method, // 'get' | 'post' | ...\n path: leaf.path,\n cfg: {\n description: cfg.description,\n summary: cfg.summary,\n docsGroup: cfg.docsGroup,\n tags,\n deprecated: cfg.deprecated,\n stability: cfg.stability,\n feed: !!cfg.feed,\n docsMeta: cfg.docsMeta,\n hasBody: !!cfg.bodySchema || !!cfg.bodyFiles?.length,\n hasQuery: !!cfg.querySchema,\n hasParams: !!cfg.paramsSchema,\n hasOutput: !!cfg.outputSchema,\n\n bodySchema: introspectSchema(cfg.bodySchema),\n querySchema: introspectSchema(cfg.querySchema),\n paramsSchema: introspectSchema(cfg.paramsSchema),\n outputSchema: introspectSchema(cfg.outputSchema),\n },\n };\n}\n","// renderLeafDocsHTML.ts\nimport type { AnyLeaf } from \"@emeryld/rrroutes-contract\";\nimport {\n createLeafDocsDocument,\n renderLeafDocsHTML as LeafDocsPage,\n RenderOptions,\n} from \"./LeafDocsPage.js\";\n\nexport function renderLeafDocsHTML(leaves: AnyLeaf[], options: RenderOptions = {}): string {\n return LeafDocsPage(leaves, options);\n}\n\nexport type { RenderOptions, SerializableHistoryEntry } from \"./LeafDocsPage.js\";\nexport { createLeafDocsDocument } from \"./LeafDocsPage.js\";\nexport type { SerializablePreset, SerializablePresetOperation } from \"./presets.js\";\n"],"mappings":"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","names":["renderLeafDocsHTML","renderLeafDocsHTML"]}
@@ -37,6 +37,6 @@ var Bs={exports:{}},kr={},$s={exports:{}},re={};/**
37
37
  `+l[i].replace(" at new "," at ");return e.displayName&&f.includes("<anonymous>")&&(f=f.replace("<anonymous>",e.displayName)),f}while(1<=i&&0<=d);break}}}finally{J=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?k(e):""}function b(e){switch(e.tag){case 5:return k(e.type);case 16:return k("Lazy");case 13:return k("Suspense");case 19:return k("SuspenseList");case 0:case 2:case 15:return e=U(e.type,!1),e;case 11:return e=U(e.type.render,!1),e;case 1:return e=U(e.type,!0),e;default:return""}}function ne(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ye:return"Fragment";case ae:return"Portal";case ge:return"Profiler";case ce:return"StrictMode";case ze:return"Suspense";case Ie:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ve:return(e.displayName||"Context")+".Consumer";case Fe:return(e._context.displayName||"Context")+".Provider";case Me:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ue:return t=e.displayName||null,t!==null?t:ne(e.type)||"Memo";case je:t=e._payload,e=e._init;try{return ne(e(t))}catch{}}return null}function de(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ne(t);case 8:return t===ce?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ie(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function fe(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function We(e){var t=fe(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Mr(e){e._valueTracker||(e._valueTracker=We(e))}function ei(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=fe(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Rr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ql(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ti(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ie(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ni(e,t){t=t.checked,t!=null&&Z(e,"checked",t,!1)}function Kl(e,t){ni(e,t);var n=ie(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ql(e,t.type,n):t.hasOwnProperty("defaultValue")&&ql(e,t.type,ie(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ri(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ql(e,t,n){(t!=="number"||Rr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var In=Array.isArray;function cn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&r&&(e[n].defaultSelected=!0)}else{for(n=""+ie(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,r&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function Gl(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(u(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function li(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(u(92));if(In(n)){if(1<n.length)throw Error(u(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:ie(n)}}function oi(e,t){var n=ie(t.value),r=ie(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function si(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function ii(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Yl(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?ii(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Tr,ui=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,l){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,l)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Tr=Tr||document.createElement("div"),Tr.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Tr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Un(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Bn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Nc=["Webkit","ms","Moz","O"];Object.keys(Bn).forEach(function(e){Nc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Bn[t]=Bn[e]})});function ai(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Bn.hasOwnProperty(e)&&Bn[e]?(""+t).trim():t+"px"}function ci(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=ai(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var jc=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Xl(e,t){if(t){if(jc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(u(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(u(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(u(61))}if(t.style!=null&&typeof t.style!="object")throw Error(u(62))}}function Jl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Zl=null;function bl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var eo=null,dn=null,fn=null;function di(e){if(e=ir(e)){if(typeof eo!="function")throw Error(u(280));var t=e.stateNode;t&&(t=el(t),eo(e.stateNode,e.type,t))}}function fi(e){dn?fn?fn.push(e):fn=[e]:dn=e}function pi(){if(dn){var e=dn,t=fn;if(fn=dn=null,di(e),t)for(e=0;e<t.length;e++)di(t[e])}}function hi(e,t){return e(t)}function mi(){}var to=!1;function vi(e,t,n){if(to)return e(t,n);to=!0;try{return hi(e,t,n)}finally{to=!1,(dn!==null||fn!==null)&&(mi(),pi())}}function $n(e,t){var n=e.stateNode;if(n===null)return null;var r=el(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(u(231,t,typeof n));return n}var no=!1;if(S)try{var An={};Object.defineProperty(An,"passive",{get:function(){no=!0}}),window.addEventListener("test",An,An),window.removeEventListener("test",An,An)}catch{no=!1}function Ec(e,t,n,r,l,o,i,d,f){var g=Array.prototype.slice.call(arguments,3);try{t.apply(n,g)}catch(j){this.onError(j)}}var Hn=!1,Dr=null,zr=!1,ro=null,Cc={onError:function(e){Hn=!0,Dr=e}};function Pc(e,t,n,r,l,o,i,d,f){Hn=!1,Dr=null,Ec.apply(Cc,arguments)}function _c(e,t,n,r,l,o,i,d,f){if(Pc.apply(this,arguments),Hn){if(Hn){var g=Dr;Hn=!1,Dr=null}else throw Error(u(198));zr||(zr=!0,ro=g)}}function Xt(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function yi(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function gi(e){if(Xt(e)!==e)throw Error(u(188))}function Mc(e){var t=e.alternate;if(!t){if(t=Xt(e),t===null)throw Error(u(188));return t!==e?null:e}for(var n=e,r=t;;){var l=n.return;if(l===null)break;var o=l.alternate;if(o===null){if(r=l.return,r!==null){n=r;continue}break}if(l.child===o.child){for(o=l.child;o;){if(o===n)return gi(l),e;if(o===r)return gi(l),t;o=o.sibling}throw Error(u(188))}if(n.return!==r.return)n=l,r=o;else{for(var i=!1,d=l.child;d;){if(d===n){i=!0,n=l,r=o;break}if(d===r){i=!0,r=l,n=o;break}d=d.sibling}if(!i){for(d=o.child;d;){if(d===n){i=!0,n=o,r=l;break}if(d===r){i=!0,r=o,n=l;break}d=d.sibling}if(!i)throw Error(u(189))}}if(n.alternate!==r)throw Error(u(190))}if(n.tag!==3)throw Error(u(188));return n.stateNode.current===n?e:t}function xi(e){return e=Mc(e),e!==null?wi(e):null}function wi(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=wi(e);if(t!==null)return t;e=e.sibling}return null}var Si=c.unstable_scheduleCallback,ki=c.unstable_cancelCallback,Rc=c.unstable_shouldYield,Tc=c.unstable_requestPaint,ke=c.unstable_now,Dc=c.unstable_getCurrentPriorityLevel,lo=c.unstable_ImmediatePriority,Ni=c.unstable_UserBlockingPriority,Lr=c.unstable_NormalPriority,zc=c.unstable_LowPriority,ji=c.unstable_IdlePriority,Or=null,vt=null;function Lc(e){if(vt&&typeof vt.onCommitFiberRoot=="function")try{vt.onCommitFiberRoot(Or,e,void 0,(e.current.flags&128)===128)}catch{}}var at=Math.clz32?Math.clz32:Ic,Oc=Math.log,Fc=Math.LN2;function Ic(e){return e>>>=0,e===0?32:31-(Oc(e)/Fc|0)|0}var Fr=64,Ir=4194304;function Vn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ur(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var d=i&~l;d!==0?r=Vn(d):(o&=i,o!==0&&(r=Vn(o)))}else i=n&~l,i!==0?r=Vn(i):o!==0&&(r=Vn(o));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-at(t),l=1<<n,r|=e[n],t&=~l;return r}function Uc(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bc(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-at(o),d=1<<i,f=l[i];f===-1?((d&n)===0||(d&r)!==0)&&(l[i]=Uc(d,t)):f<=t&&(e.expiredLanes|=d),o&=~d}}function oo(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Ei(){var e=Fr;return Fr<<=1,(Fr&4194240)===0&&(Fr=64),e}function so(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Wn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-at(t),e[t]=n}function $c(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var l=31-at(n),o=1<<l;t[l]=0,r[l]=-1,e[l]=-1,n&=~o}}function io(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-at(n),l=1<<r;l&t|e[r]&t&&(e[r]|=t),n&=~l}}var ue=0;function Ci(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Pi,uo,_i,Mi,Ri,ao=!1,Br=[],Rt=null,Tt=null,Dt=null,Qn=new Map,Kn=new Map,zt=[],Ac="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Ti(e,t){switch(e){case"focusin":case"focusout":Rt=null;break;case"dragenter":case"dragleave":Tt=null;break;case"mouseover":case"mouseout":Dt=null;break;case"pointerover":case"pointerout":Qn.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Kn.delete(t.pointerId)}}function qn(e,t,n,r,l,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[l]},t!==null&&(t=ir(t),t!==null&&uo(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function Hc(e,t,n,r,l){switch(t){case"focusin":return Rt=qn(Rt,e,t,n,r,l),!0;case"dragenter":return Tt=qn(Tt,e,t,n,r,l),!0;case"mouseover":return Dt=qn(Dt,e,t,n,r,l),!0;case"pointerover":var o=l.pointerId;return Qn.set(o,qn(Qn.get(o)||null,e,t,n,r,l)),!0;case"gotpointercapture":return o=l.pointerId,Kn.set(o,qn(Kn.get(o)||null,e,t,n,r,l)),!0}return!1}function Di(e){var t=Jt(e.target);if(t!==null){var n=Xt(t);if(n!==null){if(t=n.tag,t===13){if(t=yi(n),t!==null){e.blockedOn=t,Ri(e.priority,function(){_i(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function $r(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=fo(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Zl=r,n.target.dispatchEvent(r),Zl=null}else return t=ir(n),t!==null&&uo(t),e.blockedOn=n,!1;t.shift()}return!0}function zi(e,t,n){$r(e)&&n.delete(t)}function Vc(){ao=!1,Rt!==null&&$r(Rt)&&(Rt=null),Tt!==null&&$r(Tt)&&(Tt=null),Dt!==null&&$r(Dt)&&(Dt=null),Qn.forEach(zi),Kn.forEach(zi)}function Gn(e,t){e.blockedOn===t&&(e.blockedOn=null,ao||(ao=!0,c.unstable_scheduleCallback(c.unstable_NormalPriority,Vc)))}function Yn(e){function t(l){return Gn(l,e)}if(0<Br.length){Gn(Br[0],e);for(var n=1;n<Br.length;n++){var r=Br[n];r.blockedOn===e&&(r.blockedOn=null)}}for(Rt!==null&&Gn(Rt,e),Tt!==null&&Gn(Tt,e),Dt!==null&&Gn(Dt,e),Qn.forEach(t),Kn.forEach(t),n=0;n<zt.length;n++)r=zt[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<zt.length&&(n=zt[0],n.blockedOn===null);)Di(n),n.blockedOn===null&&zt.shift()}var pn=te.ReactCurrentBatchConfig,Ar=!0;function Wc(e,t,n,r){var l=ue,o=pn.transition;pn.transition=null;try{ue=1,co(e,t,n,r)}finally{ue=l,pn.transition=o}}function Qc(e,t,n,r){var l=ue,o=pn.transition;pn.transition=null;try{ue=4,co(e,t,n,r)}finally{ue=l,pn.transition=o}}function co(e,t,n,r){if(Ar){var l=fo(e,t,n,r);if(l===null)Mo(e,t,r,Hr,n),Ti(e,r);else if(Hc(l,e,t,n,r))r.stopPropagation();else if(Ti(e,r),t&4&&-1<Ac.indexOf(e)){for(;l!==null;){var o=ir(l);if(o!==null&&Pi(o),o=fo(e,t,n,r),o===null&&Mo(e,t,r,Hr,n),o===l)break;l=o}l!==null&&r.stopPropagation()}else Mo(e,t,r,null,n)}}var Hr=null;function fo(e,t,n,r){if(Hr=null,e=bl(r),e=Jt(e),e!==null)if(t=Xt(e),t===null)e=null;else if(n=t.tag,n===13){if(e=yi(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Hr=e,null}function Li(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Dc()){case lo:return 1;case Ni:return 4;case Lr:case zc:return 16;case ji:return 536870912;default:return 16}default:return 16}}var Lt=null,po=null,Vr=null;function Oi(){if(Vr)return Vr;var e,t=po,n=t.length,r,l="value"in Lt?Lt.value:Lt.textContent,o=l.length;for(e=0;e<n&&t[e]===l[e];e++);var i=n-e;for(r=1;r<=i&&t[n-r]===l[o-r];r++);return Vr=l.slice(e,1<r?1-r:void 0)}function Wr(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Qr(){return!0}function Fi(){return!1}function be(e){function t(n,r,l,o,i){this._reactName=n,this._targetInst=l,this.type=r,this.nativeEvent=o,this.target=i,this.currentTarget=null;for(var d in e)e.hasOwnProperty(d)&&(n=e[d],this[d]=n?n(o):o[d]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?Qr:Fi,this.isPropagationStopped=Fi,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Qr)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Qr)},persist:function(){},isPersistent:Qr}),t}var hn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ho=be(hn),Xn=M({},hn,{view:0,detail:0}),Kc=be(Xn),mo,vo,Jn,Kr=M({},Xn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:go,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Jn&&(Jn&&e.type==="mousemove"?(mo=e.screenX-Jn.screenX,vo=e.screenY-Jn.screenY):vo=mo=0,Jn=e),mo)},movementY:function(e){return"movementY"in e?e.movementY:vo}}),Ii=be(Kr),qc=M({},Kr,{dataTransfer:0}),Gc=be(qc),Yc=M({},Xn,{relatedTarget:0}),yo=be(Yc),Xc=M({},hn,{animationName:0,elapsedTime:0,pseudoElement:0}),Jc=be(Xc),Zc=M({},hn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bc=be(Zc),ed=M({},hn,{data:0}),Ui=be(ed),td={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},nd={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},rd={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function ld(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=rd[e])?!!t[e]:!1}function go(){return ld}var od=M({},Xn,{key:function(e){if(e.key){var t=td[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Wr(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?nd[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:go,charCode:function(e){return e.type==="keypress"?Wr(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Wr(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),sd=be(od),id=M({},Kr,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Bi=be(id),ud=M({},Xn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:go}),ad=be(ud),cd=M({},hn,{propertyName:0,elapsedTime:0,pseudoElement:0}),dd=be(cd),fd=M({},Kr,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),pd=be(fd),hd=[9,13,27,32],xo=S&&"CompositionEvent"in window,Zn=null;S&&"documentMode"in document&&(Zn=document.documentMode);var md=S&&"TextEvent"in window&&!Zn,$i=S&&(!xo||Zn&&8<Zn&&11>=Zn),Ai=" ",Hi=!1;function Vi(e,t){switch(e){case"keyup":return hd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wi(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var mn=!1;function vd(e,t){switch(e){case"compositionend":return Wi(t);case"keypress":return t.which!==32?null:(Hi=!0,Ai);case"textInput":return e=t.data,e===Ai&&Hi?null:e;default:return null}}function yd(e,t){if(mn)return e==="compositionend"||!xo&&Vi(e,t)?(e=Oi(),Vr=po=Lt=null,mn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return $i&&t.locale!=="ko"?null:t.data;default:return null}}var gd={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Qi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!gd[e.type]:t==="textarea"}function Ki(e,t,n,r){fi(r),t=Jr(t,"onChange"),0<t.length&&(n=new ho("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var bn=null,er=null;function xd(e){cu(e,0)}function qr(e){var t=wn(e);if(ei(t))return e}function wd(e,t){if(e==="change")return t}var qi=!1;if(S){var wo;if(S){var So="oninput"in document;if(!So){var Gi=document.createElement("div");Gi.setAttribute("oninput","return;"),So=typeof Gi.oninput=="function"}wo=So}else wo=!1;qi=wo&&(!document.documentMode||9<document.documentMode)}function Yi(){bn&&(bn.detachEvent("onpropertychange",Xi),er=bn=null)}function Xi(e){if(e.propertyName==="value"&&qr(er)){var t=[];Ki(t,er,e,bl(e)),vi(xd,t)}}function Sd(e,t,n){e==="focusin"?(Yi(),bn=t,er=n,bn.attachEvent("onpropertychange",Xi)):e==="focusout"&&Yi()}function kd(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return qr(er)}function Nd(e,t){if(e==="click")return qr(t)}function jd(e,t){if(e==="input"||e==="change")return qr(t)}function Ed(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ct=typeof Object.is=="function"?Object.is:Ed;function tr(e,t){if(ct(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var l=n[r];if(!T.call(t,l)||!ct(e[l],t[l]))return!1}return!0}function Ji(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Zi(e,t){var n=Ji(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ji(n)}}function bi(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bi(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function eu(){for(var e=window,t=Rr();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Rr(e.document)}return t}function ko(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Cd(e){var t=eu(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&bi(n.ownerDocument.documentElement,n)){if(r!==null&&ko(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=Zi(n,o);var i=Zi(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Pd=S&&"documentMode"in document&&11>=document.documentMode,vn=null,No=null,nr=null,jo=!1;function tu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jo||vn==null||vn!==Rr(r)||(r=vn,"selectionStart"in r&&ko(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),nr&&tr(nr,r)||(nr=r,r=Jr(No,"onSelect"),0<r.length&&(t=new ho("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vn)))}function Gr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var yn={animationend:Gr("Animation","AnimationEnd"),animationiteration:Gr("Animation","AnimationIteration"),animationstart:Gr("Animation","AnimationStart"),transitionend:Gr("Transition","TransitionEnd")},Eo={},nu={};S&&(nu=document.createElement("div").style,"AnimationEvent"in window||(delete yn.animationend.animation,delete yn.animationiteration.animation,delete yn.animationstart.animation),"TransitionEvent"in window||delete yn.transitionend.transition);function Yr(e){if(Eo[e])return Eo[e];if(!yn[e])return e;var t=yn[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in nu)return Eo[e]=t[n];return e}var ru=Yr("animationend"),lu=Yr("animationiteration"),ou=Yr("animationstart"),su=Yr("transitionend"),iu=new Map,uu="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Ot(e,t){iu.set(e,t),E(t,[e])}for(var Co=0;Co<uu.length;Co++){var Po=uu[Co],_d=Po.toLowerCase(),Md=Po[0].toUpperCase()+Po.slice(1);Ot(_d,"on"+Md)}Ot(ru,"onAnimationEnd"),Ot(lu,"onAnimationIteration"),Ot(ou,"onAnimationStart"),Ot("dblclick","onDoubleClick"),Ot("focusin","onFocus"),Ot("focusout","onBlur"),Ot(su,"onTransitionEnd"),P("onMouseEnter",["mouseout","mouseover"]),P("onMouseLeave",["mouseout","mouseover"]),P("onPointerEnter",["pointerout","pointerover"]),P("onPointerLeave",["pointerout","pointerover"]),E("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),E("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),E("onBeforeInput",["compositionend","keypress","textInput","paste"]),E("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),E("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),E("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Rd=new Set("cancel close invalid load scroll toggle".split(" ").concat(rr));function au(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,_c(r,t,void 0,e),e.currentTarget=null}function cu(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],l=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var d=r[i],f=d.instance,g=d.currentTarget;if(d=d.listener,f!==o&&l.isPropagationStopped())break e;au(l,d,g),o=f}else for(i=0;i<r.length;i++){if(d=r[i],f=d.instance,g=d.currentTarget,d=d.listener,f!==o&&l.isPropagationStopped())break e;au(l,d,g),o=f}}}if(zr)throw e=ro,zr=!1,ro=null,e}function he(e,t){var n=t[Oo];n===void 0&&(n=t[Oo]=new Set);var r=e+"__bubble";n.has(r)||(du(t,e,2,!1),n.add(r))}function _o(e,t,n){var r=0;t&&(r|=4),du(n,e,r,t)}var Xr="_reactListening"+Math.random().toString(36).slice(2);function lr(e){if(!e[Xr]){e[Xr]=!0,m.forEach(function(n){n!=="selectionchange"&&(Rd.has(n)||_o(n,!1,e),_o(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Xr]||(t[Xr]=!0,_o("selectionchange",!1,t))}}function du(e,t,n,r){switch(Li(t)){case 1:var l=Wc;break;case 4:l=Qc;break;default:l=co}n=l.bind(null,t,n,e),l=void 0,!no||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),r?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function Mo(e,t,n,r,l){var o=r;if((t&1)===0&&(t&2)===0&&r!==null)e:for(;;){if(r===null)return;var i=r.tag;if(i===3||i===4){var d=r.stateNode.containerInfo;if(d===l||d.nodeType===8&&d.parentNode===l)break;if(i===4)for(i=r.return;i!==null;){var f=i.tag;if((f===3||f===4)&&(f=i.stateNode.containerInfo,f===l||f.nodeType===8&&f.parentNode===l))return;i=i.return}for(;d!==null;){if(i=Jt(d),i===null)return;if(f=i.tag,f===5||f===6){r=o=i;continue e}d=d.parentNode}}r=r.return}vi(function(){var g=o,j=bl(n),C=[];e:{var N=iu.get(e);if(N!==void 0){var F=ho,A=e;switch(e){case"keypress":if(Wr(n)===0)break e;case"keydown":case"keyup":F=sd;break;case"focusin":A="focus",F=yo;break;case"focusout":A="blur",F=yo;break;case"beforeblur":case"afterblur":F=yo;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":F=Ii;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":F=Gc;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":F=ad;break;case ru:case lu:case ou:F=Jc;break;case su:F=dd;break;case"scroll":F=Kc;break;case"wheel":F=pd;break;case"copy":case"cut":case"paste":F=bc;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":F=Bi}var V=(t&4)!==0,Ne=!V&&e==="scroll",v=V?N!==null?N+"Capture":null:N;V=[];for(var p=g,y;p!==null;){y=p;var R=y.stateNode;if(y.tag===5&&R!==null&&(y=R,v!==null&&(R=$n(p,v),R!=null&&V.push(or(p,R,y)))),Ne)break;p=p.return}0<V.length&&(N=new F(N,A,null,n,j),C.push({event:N,listeners:V}))}}if((t&7)===0){e:{if(N=e==="mouseover"||e==="pointerover",F=e==="mouseout"||e==="pointerout",N&&n!==Zl&&(A=n.relatedTarget||n.fromElement)&&(Jt(A)||A[St]))break e;if((F||N)&&(N=j.window===j?j:(N=j.ownerDocument)?N.defaultView||N.parentWindow:window,F?(A=n.relatedTarget||n.toElement,F=g,A=A?Jt(A):null,A!==null&&(Ne=Xt(A),A!==Ne||A.tag!==5&&A.tag!==6)&&(A=null)):(F=null,A=g),F!==A)){if(V=Ii,R="onMouseLeave",v="onMouseEnter",p="mouse",(e==="pointerout"||e==="pointerover")&&(V=Bi,R="onPointerLeave",v="onPointerEnter",p="pointer"),Ne=F==null?N:wn(F),y=A==null?N:wn(A),N=new V(R,p+"leave",F,n,j),N.target=Ne,N.relatedTarget=y,R=null,Jt(j)===g&&(V=new V(v,p+"enter",A,n,j),V.target=y,V.relatedTarget=Ne,R=V),Ne=R,F&&A)t:{for(V=F,v=A,p=0,y=V;y;y=gn(y))p++;for(y=0,R=v;R;R=gn(R))y++;for(;0<p-y;)V=gn(V),p--;for(;0<y-p;)v=gn(v),y--;for(;p--;){if(V===v||v!==null&&V===v.alternate)break t;V=gn(V),v=gn(v)}V=null}else V=null;F!==null&&fu(C,N,F,V,!1),A!==null&&Ne!==null&&fu(C,Ne,A,V,!0)}}e:{if(N=g?wn(g):window,F=N.nodeName&&N.nodeName.toLowerCase(),F==="select"||F==="input"&&N.type==="file")var Q=wd;else if(Qi(N))if(qi)Q=jd;else{Q=kd;var Y=Sd}else(F=N.nodeName)&&F.toLowerCase()==="input"&&(N.type==="checkbox"||N.type==="radio")&&(Q=Nd);if(Q&&(Q=Q(e,g))){Ki(C,Q,n,j);break e}Y&&Y(e,N,g),e==="focusout"&&(Y=N._wrapperState)&&Y.controlled&&N.type==="number"&&ql(N,"number",N.value)}switch(Y=g?wn(g):window,e){case"focusin":(Qi(Y)||Y.contentEditable==="true")&&(vn=Y,No=g,nr=null);break;case"focusout":nr=No=vn=null;break;case"mousedown":jo=!0;break;case"contextmenu":case"mouseup":case"dragend":jo=!1,tu(C,n,j);break;case"selectionchange":if(Pd)break;case"keydown":case"keyup":tu(C,n,j)}var X;if(xo)e:{switch(e){case"compositionstart":var ee="onCompositionStart";break e;case"compositionend":ee="onCompositionEnd";break e;case"compositionupdate":ee="onCompositionUpdate";break e}ee=void 0}else mn?Vi(e,n)&&(ee="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(ee="onCompositionStart");ee&&($i&&n.locale!=="ko"&&(mn||ee!=="onCompositionStart"?ee==="onCompositionEnd"&&mn&&(X=Oi()):(Lt=j,po="value"in Lt?Lt.value:Lt.textContent,mn=!0)),Y=Jr(g,ee),0<Y.length&&(ee=new Ui(ee,e,null,n,j),C.push({event:ee,listeners:Y}),X?ee.data=X:(X=Wi(n),X!==null&&(ee.data=X)))),(X=md?vd(e,n):yd(e,n))&&(g=Jr(g,"onBeforeInput"),0<g.length&&(j=new Ui("onBeforeInput","beforeinput",null,n,j),C.push({event:j,listeners:g}),j.data=X))}cu(C,t)})}function or(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Jr(e,t){for(var n=t+"Capture",r=[];e!==null;){var l=e,o=l.stateNode;l.tag===5&&o!==null&&(l=o,o=$n(e,n),o!=null&&r.unshift(or(e,o,l)),o=$n(e,t),o!=null&&r.push(or(e,o,l))),e=e.return}return r}function gn(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function fu(e,t,n,r,l){for(var o=t._reactName,i=[];n!==null&&n!==r;){var d=n,f=d.alternate,g=d.stateNode;if(f!==null&&f===r)break;d.tag===5&&g!==null&&(d=g,l?(f=$n(n,o),f!=null&&i.unshift(or(n,f,d))):l||(f=$n(n,o),f!=null&&i.push(or(n,f,d)))),n=n.return}i.length!==0&&e.push({event:t,listeners:i})}var Td=/\r\n?/g,Dd=/\u0000|\uFFFD/g;function pu(e){return(typeof e=="string"?e:""+e).replace(Td,`
38
38
  `).replace(Dd,"")}function Zr(e,t,n){if(t=pu(t),pu(e)!==t&&n)throw Error(u(425))}function br(){}var Ro=null,To=null;function Do(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var zo=typeof setTimeout=="function"?setTimeout:void 0,zd=typeof clearTimeout=="function"?clearTimeout:void 0,hu=typeof Promise=="function"?Promise:void 0,Ld=typeof queueMicrotask=="function"?queueMicrotask:typeof hu<"u"?function(e){return hu.resolve(null).then(e).catch(Od)}:zo;function Od(e){setTimeout(function(){throw e})}function Lo(e,t){var n=t,r=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"){if(r===0){e.removeChild(l),Yn(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=l}while(n);Yn(t)}function Ft(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function mu(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var xn=Math.random().toString(36).slice(2),yt="__reactFiber$"+xn,sr="__reactProps$"+xn,St="__reactContainer$"+xn,Oo="__reactEvents$"+xn,Fd="__reactListeners$"+xn,Id="__reactHandles$"+xn;function Jt(e){var t=e[yt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[St]||n[yt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=mu(e);e!==null;){if(n=e[yt])return n;e=mu(e)}return t}e=n,n=e.parentNode}return null}function ir(e){return e=e[yt]||e[St],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function wn(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(u(33))}function el(e){return e[sr]||null}var Fo=[],Sn=-1;function It(e){return{current:e}}function me(e){0>Sn||(e.current=Fo[Sn],Fo[Sn]=null,Sn--)}function pe(e,t){Sn++,Fo[Sn]=e.current,e.current=t}var Ut={},Be=It(Ut),qe=It(!1),Zt=Ut;function kn(e,t){var n=e.type.contextTypes;if(!n)return Ut;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Ge(e){return e=e.childContextTypes,e!=null}function tl(){me(qe),me(Be)}function vu(e,t,n){if(Be.current!==Ut)throw Error(u(168));pe(Be,t),pe(qe,n)}function yu(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(u(108,de(e)||"Unknown",l));return M({},n,r)}function nl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ut,Zt=Be.current,pe(Be,e),pe(qe,qe.current),!0}function gu(e,t,n){var r=e.stateNode;if(!r)throw Error(u(169));n?(e=yu(e,t,Zt),r.__reactInternalMemoizedMergedChildContext=e,me(qe),me(Be),pe(Be,e)):me(qe),pe(qe,n)}var kt=null,rl=!1,Io=!1;function xu(e){kt===null?kt=[e]:kt.push(e)}function Ud(e){rl=!0,xu(e)}function Bt(){if(!Io&&kt!==null){Io=!0;var e=0,t=ue;try{var n=kt;for(ue=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}kt=null,rl=!1}catch(l){throw kt!==null&&(kt=kt.slice(e+1)),Si(lo,Bt),l}finally{ue=t,Io=!1}}return null}var Nn=[],jn=0,ll=null,ol=0,rt=[],lt=0,bt=null,Nt=1,jt="";function en(e,t){Nn[jn++]=ol,Nn[jn++]=ll,ll=e,ol=t}function wu(e,t,n){rt[lt++]=Nt,rt[lt++]=jt,rt[lt++]=bt,bt=e;var r=Nt;e=jt;var l=32-at(r)-1;r&=~(1<<l),n+=1;var o=32-at(t)+l;if(30<o){var i=l-l%5;o=(r&(1<<i)-1).toString(32),r>>=i,l-=i,Nt=1<<32-at(t)+l|n<<l|r,jt=o+e}else Nt=1<<o|n<<l|r,jt=e}function Uo(e){e.return!==null&&(en(e,1),wu(e,1,0))}function Bo(e){for(;e===ll;)ll=Nn[--jn],Nn[jn]=null,ol=Nn[--jn],Nn[jn]=null;for(;e===bt;)bt=rt[--lt],rt[lt]=null,jt=rt[--lt],rt[lt]=null,Nt=rt[--lt],rt[lt]=null}var et=null,tt=null,ve=!1,dt=null;function Su(e,t){var n=ut(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function ku(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,et=e,tt=Ft(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,et=e,tt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=bt!==null?{id:Nt,overflow:jt}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=ut(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,et=e,tt=null,!0):!1;default:return!1}}function $o(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Ao(e){if(ve){var t=tt;if(t){var n=t;if(!ku(e,t)){if($o(e))throw Error(u(418));t=Ft(n.nextSibling);var r=et;t&&ku(e,t)?Su(r,n):(e.flags=e.flags&-4097|2,ve=!1,et=e)}}else{if($o(e))throw Error(u(418));e.flags=e.flags&-4097|2,ve=!1,et=e}}}function Nu(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;et=e}function sl(e){if(e!==et)return!1;if(!ve)return Nu(e),ve=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Do(e.type,e.memoizedProps)),t&&(t=tt)){if($o(e))throw ju(),Error(u(418));for(;t;)Su(e,t),t=Ft(t.nextSibling)}if(Nu(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){tt=Ft(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}tt=null}}else tt=et?Ft(e.stateNode.nextSibling):null;return!0}function ju(){for(var e=tt;e;)e=Ft(e.nextSibling)}function En(){tt=et=null,ve=!1}function Ho(e){dt===null?dt=[e]:dt.push(e)}var Bd=te.ReactCurrentBatchConfig;function ur(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(u(309));var r=n.stateNode}if(!r)throw Error(u(147,e));var l=r,o=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===o?t.ref:(t=function(i){var d=l.refs;i===null?delete d[o]:d[o]=i},t._stringRef=o,t)}if(typeof e!="string")throw Error(u(284));if(!n._owner)throw Error(u(290,e))}return e}function il(e,t){throw e=Object.prototype.toString.call(t),Error(u(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Eu(e){var t=e._init;return t(e._payload)}function Cu(e){function t(v,p){if(e){var y=v.deletions;y===null?(v.deletions=[p],v.flags|=16):y.push(p)}}function n(v,p){if(!e)return null;for(;p!==null;)t(v,p),p=p.sibling;return null}function r(v,p){for(v=new Map;p!==null;)p.key!==null?v.set(p.key,p):v.set(p.index,p),p=p.sibling;return v}function l(v,p){return v=qt(v,p),v.index=0,v.sibling=null,v}function o(v,p,y){return v.index=y,e?(y=v.alternate,y!==null?(y=y.index,y<p?(v.flags|=2,p):y):(v.flags|=2,p)):(v.flags|=1048576,p)}function i(v){return e&&v.alternate===null&&(v.flags|=2),v}function d(v,p,y,R){return p===null||p.tag!==6?(p=zs(y,v.mode,R),p.return=v,p):(p=l(p,y),p.return=v,p)}function f(v,p,y,R){var Q=y.type;return Q===ye?j(v,p,y.props.children,R,y.key):p!==null&&(p.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===je&&Eu(Q)===p.type)?(R=l(p,y.props),R.ref=ur(v,p,y),R.return=v,R):(R=Tl(y.type,y.key,y.props,null,v.mode,R),R.ref=ur(v,p,y),R.return=v,R)}function g(v,p,y,R){return p===null||p.tag!==4||p.stateNode.containerInfo!==y.containerInfo||p.stateNode.implementation!==y.implementation?(p=Ls(y,v.mode,R),p.return=v,p):(p=l(p,y.children||[]),p.return=v,p)}function j(v,p,y,R,Q){return p===null||p.tag!==7?(p=an(y,v.mode,R,Q),p.return=v,p):(p=l(p,y),p.return=v,p)}function C(v,p,y){if(typeof p=="string"&&p!==""||typeof p=="number")return p=zs(""+p,v.mode,y),p.return=v,p;if(typeof p=="object"&&p!==null){switch(p.$$typeof){case _e:return y=Tl(p.type,p.key,p.props,null,v.mode,y),y.ref=ur(v,null,p),y.return=v,y;case ae:return p=Ls(p,v.mode,y),p.return=v,p;case je:var R=p._init;return C(v,R(p._payload),y)}if(In(p)||_(p))return p=an(p,v.mode,y,null),p.return=v,p;il(v,p)}return null}function N(v,p,y,R){var Q=p!==null?p.key:null;if(typeof y=="string"&&y!==""||typeof y=="number")return Q!==null?null:d(v,p,""+y,R);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case _e:return y.key===Q?f(v,p,y,R):null;case ae:return y.key===Q?g(v,p,y,R):null;case je:return Q=y._init,N(v,p,Q(y._payload),R)}if(In(y)||_(y))return Q!==null?null:j(v,p,y,R,null);il(v,y)}return null}function F(v,p,y,R,Q){if(typeof R=="string"&&R!==""||typeof R=="number")return v=v.get(y)||null,d(p,v,""+R,Q);if(typeof R=="object"&&R!==null){switch(R.$$typeof){case _e:return v=v.get(R.key===null?y:R.key)||null,f(p,v,R,Q);case ae:return v=v.get(R.key===null?y:R.key)||null,g(p,v,R,Q);case je:var Y=R._init;return F(v,p,y,Y(R._payload),Q)}if(In(R)||_(R))return v=v.get(y)||null,j(p,v,R,Q,null);il(p,R)}return null}function A(v,p,y,R){for(var Q=null,Y=null,X=p,ee=p=0,De=null;X!==null&&ee<y.length;ee++){X.index>ee?(De=X,X=null):De=X.sibling;var se=N(v,X,y[ee],R);if(se===null){X===null&&(X=De);break}e&&X&&se.alternate===null&&t(v,X),p=o(se,p,ee),Y===null?Q=se:Y.sibling=se,Y=se,X=De}if(ee===y.length)return n(v,X),ve&&en(v,ee),Q;if(X===null){for(;ee<y.length;ee++)X=C(v,y[ee],R),X!==null&&(p=o(X,p,ee),Y===null?Q=X:Y.sibling=X,Y=X);return ve&&en(v,ee),Q}for(X=r(v,X);ee<y.length;ee++)De=F(X,v,ee,y[ee],R),De!==null&&(e&&De.alternate!==null&&X.delete(De.key===null?ee:De.key),p=o(De,p,ee),Y===null?Q=De:Y.sibling=De,Y=De);return e&&X.forEach(function(Gt){return t(v,Gt)}),ve&&en(v,ee),Q}function V(v,p,y,R){var Q=_(y);if(typeof Q!="function")throw Error(u(150));if(y=Q.call(y),y==null)throw Error(u(151));for(var Y=Q=null,X=p,ee=p=0,De=null,se=y.next();X!==null&&!se.done;ee++,se=y.next()){X.index>ee?(De=X,X=null):De=X.sibling;var Gt=N(v,X,se.value,R);if(Gt===null){X===null&&(X=De);break}e&&X&&Gt.alternate===null&&t(v,X),p=o(Gt,p,ee),Y===null?Q=Gt:Y.sibling=Gt,Y=Gt,X=De}if(se.done)return n(v,X),ve&&en(v,ee),Q;if(X===null){for(;!se.done;ee++,se=y.next())se=C(v,se.value,R),se!==null&&(p=o(se,p,ee),Y===null?Q=se:Y.sibling=se,Y=se);return ve&&en(v,ee),Q}for(X=r(v,X);!se.done;ee++,se=y.next())se=F(X,v,ee,se.value,R),se!==null&&(e&&se.alternate!==null&&X.delete(se.key===null?ee:se.key),p=o(se,p,ee),Y===null?Q=se:Y.sibling=se,Y=se);return e&&X.forEach(function(xf){return t(v,xf)}),ve&&en(v,ee),Q}function Ne(v,p,y,R){if(typeof y=="object"&&y!==null&&y.type===ye&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case _e:e:{for(var Q=y.key,Y=p;Y!==null;){if(Y.key===Q){if(Q=y.type,Q===ye){if(Y.tag===7){n(v,Y.sibling),p=l(Y,y.props.children),p.return=v,v=p;break e}}else if(Y.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===je&&Eu(Q)===Y.type){n(v,Y.sibling),p=l(Y,y.props),p.ref=ur(v,Y,y),p.return=v,v=p;break e}n(v,Y);break}else t(v,Y);Y=Y.sibling}y.type===ye?(p=an(y.props.children,v.mode,R,y.key),p.return=v,v=p):(R=Tl(y.type,y.key,y.props,null,v.mode,R),R.ref=ur(v,p,y),R.return=v,v=R)}return i(v);case ae:e:{for(Y=y.key;p!==null;){if(p.key===Y)if(p.tag===4&&p.stateNode.containerInfo===y.containerInfo&&p.stateNode.implementation===y.implementation){n(v,p.sibling),p=l(p,y.children||[]),p.return=v,v=p;break e}else{n(v,p);break}else t(v,p);p=p.sibling}p=Ls(y,v.mode,R),p.return=v,v=p}return i(v);case je:return Y=y._init,Ne(v,p,Y(y._payload),R)}if(In(y))return A(v,p,y,R);if(_(y))return V(v,p,y,R);il(v,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,p!==null&&p.tag===6?(n(v,p.sibling),p=l(p,y),p.return=v,v=p):(n(v,p),p=zs(y,v.mode,R),p.return=v,v=p),i(v)):n(v,p)}return Ne}var Cn=Cu(!0),Pu=Cu(!1),ul=It(null),al=null,Pn=null,Vo=null;function Wo(){Vo=Pn=al=null}function Qo(e){var t=ul.current;me(ul),e._currentValue=t}function Ko(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _n(e,t){al=e,Vo=Pn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Ye=!0),e.firstContext=null)}function ot(e){var t=e._currentValue;if(Vo!==e)if(e={context:e,memoizedValue:t,next:null},Pn===null){if(al===null)throw Error(u(308));Pn=e,al.dependencies={lanes:0,firstContext:e}}else Pn=Pn.next=e;return t}var tn=null;function qo(e){tn===null?tn=[e]:tn.push(e)}function _u(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,qo(t)):(n.next=l.next,l.next=n),t.interleaved=n,Et(e,r)}function Et(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var $t=!1;function Go(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Mu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ct(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function At(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(oe&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Et(e,n)}return l=r.interleaved,l===null?(t.next=t,qo(r)):(t.next=l.next,l.next=t),r.interleaved=t,Et(e,n)}function cl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,io(e,n)}}function Ru(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function dl(e,t,n,r){var l=e.updateQueue;$t=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,d=l.shared.pending;if(d!==null){l.shared.pending=null;var f=d,g=f.next;f.next=null,i===null?o=g:i.next=g,i=f;var j=e.alternate;j!==null&&(j=j.updateQueue,d=j.lastBaseUpdate,d!==i&&(d===null?j.firstBaseUpdate=g:d.next=g,j.lastBaseUpdate=f))}if(o!==null){var C=l.baseState;i=0,j=g=f=null,d=o;do{var N=d.lane,F=d.eventTime;if((r&N)===N){j!==null&&(j=j.next={eventTime:F,lane:0,tag:d.tag,payload:d.payload,callback:d.callback,next:null});e:{var A=e,V=d;switch(N=t,F=n,V.tag){case 1:if(A=V.payload,typeof A=="function"){C=A.call(F,C,N);break e}C=A;break e;case 3:A.flags=A.flags&-65537|128;case 0:if(A=V.payload,N=typeof A=="function"?A.call(F,C,N):A,N==null)break e;C=M({},C,N);break e;case 2:$t=!0}}d.callback!==null&&d.lane!==0&&(e.flags|=64,N=l.effects,N===null?l.effects=[d]:N.push(d))}else F={eventTime:F,lane:N,tag:d.tag,payload:d.payload,callback:d.callback,next:null},j===null?(g=j=F,f=C):j=j.next=F,i|=N;if(d=d.next,d===null){if(d=l.shared.pending,d===null)break;N=d,d=N.next,N.next=null,l.lastBaseUpdate=N,l.shared.pending=null}}while(!0);if(j===null&&(f=C),l.baseState=f,l.firstBaseUpdate=g,l.lastBaseUpdate=j,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);ln|=i,e.lanes=i,e.memoizedState=C}}function Tu(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],l=r.callback;if(l!==null){if(r.callback=null,r=n,typeof l!="function")throw Error(u(191,l));l.call(r)}}}var ar={},gt=It(ar),cr=It(ar),dr=It(ar);function nn(e){if(e===ar)throw Error(u(174));return e}function Yo(e,t){switch(pe(dr,t),pe(cr,e),pe(gt,ar),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Yl(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Yl(t,e)}me(gt),pe(gt,t)}function Mn(){me(gt),me(cr),me(dr)}function Du(e){nn(dr.current);var t=nn(gt.current),n=Yl(t,e.type);t!==n&&(pe(cr,e),pe(gt,n))}function Xo(e){cr.current===e&&(me(gt),me(cr))}var xe=It(0);function fl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Jo=[];function Zo(){for(var e=0;e<Jo.length;e++)Jo[e]._workInProgressVersionPrimary=null;Jo.length=0}var pl=te.ReactCurrentDispatcher,bo=te.ReactCurrentBatchConfig,rn=0,we=null,Ce=null,Re=null,hl=!1,fr=!1,pr=0,$d=0;function $e(){throw Error(u(321))}function es(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ct(e[n],t[n]))return!1;return!0}function ts(e,t,n,r,l,o){if(rn=o,we=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pl.current=e===null||e.memoizedState===null?Wd:Qd,e=n(r,l),fr){o=0;do{if(fr=!1,pr=0,25<=o)throw Error(u(301));o+=1,Re=Ce=null,t.updateQueue=null,pl.current=Kd,e=n(r,l)}while(fr)}if(pl.current=yl,t=Ce!==null&&Ce.next!==null,rn=0,Re=Ce=we=null,hl=!1,t)throw Error(u(300));return e}function ns(){var e=pr!==0;return pr=0,e}function xt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Re===null?we.memoizedState=Re=e:Re=Re.next=e,Re}function st(){if(Ce===null){var e=we.alternate;e=e!==null?e.memoizedState:null}else e=Ce.next;var t=Re===null?we.memoizedState:Re.next;if(t!==null)Re=t,Ce=e;else{if(e===null)throw Error(u(310));Ce=e,e={memoizedState:Ce.memoizedState,baseState:Ce.baseState,baseQueue:Ce.baseQueue,queue:Ce.queue,next:null},Re===null?we.memoizedState=Re=e:Re=Re.next=e}return Re}function hr(e,t){return typeof t=="function"?t(e):t}function rs(e){var t=st(),n=t.queue;if(n===null)throw Error(u(311));n.lastRenderedReducer=e;var r=Ce,l=r.baseQueue,o=n.pending;if(o!==null){if(l!==null){var i=l.next;l.next=o.next,o.next=i}r.baseQueue=l=o,n.pending=null}if(l!==null){o=l.next,r=r.baseState;var d=i=null,f=null,g=o;do{var j=g.lane;if((rn&j)===j)f!==null&&(f=f.next={lane:0,action:g.action,hasEagerState:g.hasEagerState,eagerState:g.eagerState,next:null}),r=g.hasEagerState?g.eagerState:e(r,g.action);else{var C={lane:j,action:g.action,hasEagerState:g.hasEagerState,eagerState:g.eagerState,next:null};f===null?(d=f=C,i=r):f=f.next=C,we.lanes|=j,ln|=j}g=g.next}while(g!==null&&g!==o);f===null?i=r:f.next=d,ct(r,t.memoizedState)||(Ye=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=f,n.lastRenderedState=r}if(e=n.interleaved,e!==null){l=e;do o=l.lane,we.lanes|=o,ln|=o,l=l.next;while(l!==e)}else l===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ls(e){var t=st(),n=t.queue;if(n===null)throw Error(u(311));n.lastRenderedReducer=e;var r=n.dispatch,l=n.pending,o=t.memoizedState;if(l!==null){n.pending=null;var i=l=l.next;do o=e(o,i.action),i=i.next;while(i!==l);ct(o,t.memoizedState)||(Ye=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function zu(){}function Lu(e,t){var n=we,r=st(),l=t(),o=!ct(r.memoizedState,l);if(o&&(r.memoizedState=l,Ye=!0),r=r.queue,os(Iu.bind(null,n,r,e),[e]),r.getSnapshot!==t||o||Re!==null&&Re.memoizedState.tag&1){if(n.flags|=2048,mr(9,Fu.bind(null,n,r,l,t),void 0,null),Te===null)throw Error(u(349));(rn&30)!==0||Ou(n,t,l)}return l}function Ou(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=we.updateQueue,t===null?(t={lastEffect:null,stores:null},we.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Fu(e,t,n,r){t.value=n,t.getSnapshot=r,Uu(t)&&Bu(e)}function Iu(e,t,n){return n(function(){Uu(t)&&Bu(e)})}function Uu(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!ct(e,n)}catch{return!0}}function Bu(e){var t=Et(e,1);t!==null&&mt(t,e,1,-1)}function $u(e){var t=xt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:hr,lastRenderedState:e},t.queue=e,e=e.dispatch=Vd.bind(null,we,e),[t.memoizedState,e]}function mr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=we.updateQueue,t===null?(t={lastEffect:null,stores:null},we.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function Au(){return st().memoizedState}function ml(e,t,n,r){var l=xt();we.flags|=e,l.memoizedState=mr(1|t,n,void 0,r===void 0?null:r)}function vl(e,t,n,r){var l=st();r=r===void 0?null:r;var o=void 0;if(Ce!==null){var i=Ce.memoizedState;if(o=i.destroy,r!==null&&es(r,i.deps)){l.memoizedState=mr(t,n,o,r);return}}we.flags|=e,l.memoizedState=mr(1|t,n,o,r)}function Hu(e,t){return ml(8390656,8,e,t)}function os(e,t){return vl(2048,8,e,t)}function Vu(e,t){return vl(4,2,e,t)}function Wu(e,t){return vl(4,4,e,t)}function Qu(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ku(e,t,n){return n=n!=null?n.concat([e]):null,vl(4,4,Qu.bind(null,t,e),n)}function ss(){}function qu(e,t){var n=st();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&es(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Gu(e,t){var n=st();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&es(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Yu(e,t,n){return(rn&21)===0?(e.baseState&&(e.baseState=!1,Ye=!0),e.memoizedState=n):(ct(n,t)||(n=Ei(),we.lanes|=n,ln|=n,e.baseState=!0),t)}function Ad(e,t){var n=ue;ue=n!==0&&4>n?n:4,e(!0);var r=bo.transition;bo.transition={};try{e(!1),t()}finally{ue=n,bo.transition=r}}function Xu(){return st().memoizedState}function Hd(e,t,n){var r=Qt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ju(e))Zu(t,n);else if(n=_u(e,t,n,r),n!==null){var l=Ke();mt(n,e,r,l),bu(n,t,r)}}function Vd(e,t,n){var r=Qt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ju(e))Zu(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,d=o(i,n);if(l.hasEagerState=!0,l.eagerState=d,ct(d,i)){var f=t.interleaved;f===null?(l.next=l,qo(t)):(l.next=f.next,f.next=l),t.interleaved=l;return}}catch{}finally{}n=_u(e,t,l,r),n!==null&&(l=Ke(),mt(n,e,r,l),bu(n,t,r))}}function Ju(e){var t=e.alternate;return e===we||t!==null&&t===we}function Zu(e,t){fr=hl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function bu(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,io(e,n)}}var yl={readContext:ot,useCallback:$e,useContext:$e,useEffect:$e,useImperativeHandle:$e,useInsertionEffect:$e,useLayoutEffect:$e,useMemo:$e,useReducer:$e,useRef:$e,useState:$e,useDebugValue:$e,useDeferredValue:$e,useTransition:$e,useMutableSource:$e,useSyncExternalStore:$e,useId:$e,unstable_isNewReconciler:!1},Wd={readContext:ot,useCallback:function(e,t){return xt().memoizedState=[e,t===void 0?null:t],e},useContext:ot,useEffect:Hu,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ml(4194308,4,Qu.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ml(4194308,4,e,t)},useInsertionEffect:function(e,t){return ml(4,2,e,t)},useMemo:function(e,t){var n=xt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=xt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Hd.bind(null,we,e),[r.memoizedState,e]},useRef:function(e){var t=xt();return e={current:e},t.memoizedState=e},useState:$u,useDebugValue:ss,useDeferredValue:function(e){return xt().memoizedState=e},useTransition:function(){var e=$u(!1),t=e[0];return e=Ad.bind(null,e[1]),xt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=we,l=xt();if(ve){if(n===void 0)throw Error(u(407));n=n()}else{if(n=t(),Te===null)throw Error(u(349));(rn&30)!==0||Ou(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,Hu(Iu.bind(null,r,o,e),[e]),r.flags|=2048,mr(9,Fu.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=xt(),t=Te.identifierPrefix;if(ve){var n=jt,r=Nt;n=(r&~(1<<32-at(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=pr++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=$d++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Qd={readContext:ot,useCallback:qu,useContext:ot,useEffect:os,useImperativeHandle:Ku,useInsertionEffect:Vu,useLayoutEffect:Wu,useMemo:Gu,useReducer:rs,useRef:Au,useState:function(){return rs(hr)},useDebugValue:ss,useDeferredValue:function(e){var t=st();return Yu(t,Ce.memoizedState,e)},useTransition:function(){var e=rs(hr)[0],t=st().memoizedState;return[e,t]},useMutableSource:zu,useSyncExternalStore:Lu,useId:Xu,unstable_isNewReconciler:!1},Kd={readContext:ot,useCallback:qu,useContext:ot,useEffect:os,useImperativeHandle:Ku,useInsertionEffect:Vu,useLayoutEffect:Wu,useMemo:Gu,useReducer:ls,useRef:Au,useState:function(){return ls(hr)},useDebugValue:ss,useDeferredValue:function(e){var t=st();return Ce===null?t.memoizedState=e:Yu(t,Ce.memoizedState,e)},useTransition:function(){var e=ls(hr)[0],t=st().memoizedState;return[e,t]},useMutableSource:zu,useSyncExternalStore:Lu,useId:Xu,unstable_isNewReconciler:!1};function ft(e,t){if(e&&e.defaultProps){t=M({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function is(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:M({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var gl={isMounted:function(e){return(e=e._reactInternals)?Xt(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Ke(),l=Qt(e),o=Ct(r,l);o.payload=t,n!=null&&(o.callback=n),t=At(e,o,l),t!==null&&(mt(t,e,l,r),cl(t,e,l))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Ke(),l=Qt(e),o=Ct(r,l);o.tag=1,o.payload=t,n!=null&&(o.callback=n),t=At(e,o,l),t!==null&&(mt(t,e,l,r),cl(t,e,l))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Ke(),r=Qt(e),l=Ct(n,r);l.tag=2,t!=null&&(l.callback=t),t=At(e,l,r),t!==null&&(mt(t,e,r,n),cl(t,e,r))}};function ea(e,t,n,r,l,o,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,o,i):t.prototype&&t.prototype.isPureReactComponent?!tr(n,r)||!tr(l,o):!0}function ta(e,t,n){var r=!1,l=Ut,o=t.contextType;return typeof o=="object"&&o!==null?o=ot(o):(l=Ge(t)?Zt:Be.current,r=t.contextTypes,o=(r=r!=null)?kn(e,l):Ut),t=new t(n,o),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=gl,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=o),t}function na(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&gl.enqueueReplaceState(t,t.state,null)}function us(e,t,n,r){var l=e.stateNode;l.props=n,l.state=e.memoizedState,l.refs={},Go(e);var o=t.contextType;typeof o=="object"&&o!==null?l.context=ot(o):(o=Ge(t)?Zt:Be.current,l.context=kn(e,o)),l.state=e.memoizedState,o=t.getDerivedStateFromProps,typeof o=="function"&&(is(e,t,o,n),l.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof l.getSnapshotBeforeUpdate=="function"||typeof l.UNSAFE_componentWillMount!="function"&&typeof l.componentWillMount!="function"||(t=l.state,typeof l.componentWillMount=="function"&&l.componentWillMount(),typeof l.UNSAFE_componentWillMount=="function"&&l.UNSAFE_componentWillMount(),t!==l.state&&gl.enqueueReplaceState(l,l.state,null),dl(e,n,l,r),l.state=e.memoizedState),typeof l.componentDidMount=="function"&&(e.flags|=4194308)}function Rn(e,t){try{var n="",r=t;do n+=b(r),r=r.return;while(r);var l=n}catch(o){l=`
39
39
  Error generating stack: `+o.message+`
40
- `+o.stack}return{value:e,source:t,stack:l,digest:null}}function as(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function cs(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var qd=typeof WeakMap=="function"?WeakMap:Map;function ra(e,t,n){n=Ct(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){El||(El=!0,Es=r),cs(e,t)},n}function la(e,t,n){n=Ct(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){cs(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){cs(e,t),typeof r!="function"&&(Vt===null?Vt=new Set([this]):Vt.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function oa(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new qd;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=uf.bind(null,e,t,n),t.then(e,e))}function sa(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function ia(e,t,n,r,l){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Ct(-1,1),t.tag=2,At(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var Gd=te.ReactCurrentOwner,Ye=!1;function Qe(e,t,n,r){t.child=e===null?Pu(t,null,n,r):Cn(t,e.child,n,r)}function ua(e,t,n,r,l){n=n.render;var o=t.ref;return _n(t,l),r=ts(e,t,n,r,o,l),n=ns(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Pt(e,t,l)):(ve&&n&&Uo(t),t.flags|=1,Qe(e,t,r,l),t.child)}function aa(e,t,n,r,l){if(e===null){var o=n.type;return typeof o=="function"&&!Ds(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,ca(e,t,o,r,l)):(e=Tl(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,(e.lanes&l)===0){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:tr,n(i,r)&&e.ref===t.ref)return Pt(e,t,l)}return t.flags|=1,e=qt(o,r),e.ref=t.ref,e.return=t,t.child=e}function ca(e,t,n,r,l){if(e!==null){var o=e.memoizedProps;if(tr(o,r)&&e.ref===t.ref)if(Ye=!1,t.pendingProps=r=o,(e.lanes&l)!==0)(e.flags&131072)!==0&&(Ye=!0);else return t.lanes=e.lanes,Pt(e,t,l)}return ds(e,t,n,r,l)}function da(e,t,n){var r=t.pendingProps,l=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},pe(Dn,nt),nt|=n;else{if((n&1073741824)===0)return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,pe(Dn,nt),nt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,pe(Dn,nt),nt|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,pe(Dn,nt),nt|=r;return Qe(e,t,l,n),t.child}function fa(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ds(e,t,n,r,l){var o=Ge(n)?Zt:Be.current;return o=kn(t,o),_n(t,l),n=ts(e,t,n,r,o,l),r=ns(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Pt(e,t,l)):(ve&&r&&Uo(t),t.flags|=1,Qe(e,t,n,l),t.child)}function pa(e,t,n,r,l){if(Ge(n)){var o=!0;nl(t)}else o=!1;if(_n(t,l),t.stateNode===null)wl(e,t),ta(t,n,r),us(t,n,r,l),r=!0;else if(e===null){var i=t.stateNode,d=t.memoizedProps;i.props=d;var f=i.context,g=n.contextType;typeof g=="object"&&g!==null?g=ot(g):(g=Ge(n)?Zt:Be.current,g=kn(t,g));var j=n.getDerivedStateFromProps,C=typeof j=="function"||typeof i.getSnapshotBeforeUpdate=="function";C||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(d!==r||f!==g)&&na(t,i,r,g),$t=!1;var N=t.memoizedState;i.state=N,dl(t,r,i,l),f=t.memoizedState,d!==r||N!==f||qe.current||$t?(typeof j=="function"&&(is(t,n,j,r),f=t.memoizedState),(d=$t||ea(t,n,d,r,N,f,g))?(C||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=f),i.props=r,i.state=f,i.context=g,r=d):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Mu(e,t),d=t.memoizedProps,g=t.type===t.elementType?d:ft(t.type,d),i.props=g,C=t.pendingProps,N=i.context,f=n.contextType,typeof f=="object"&&f!==null?f=ot(f):(f=Ge(n)?Zt:Be.current,f=kn(t,f));var F=n.getDerivedStateFromProps;(j=typeof F=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(d!==C||N!==f)&&na(t,i,r,f),$t=!1,N=t.memoizedState,i.state=N,dl(t,r,i,l);var A=t.memoizedState;d!==C||N!==A||qe.current||$t?(typeof F=="function"&&(is(t,n,F,r),A=t.memoizedState),(g=$t||ea(t,n,g,r,N,A,f)||!1)?(j||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,A,f),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,A,f)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=A),i.props=r,i.state=A,i.context=f,r=g):(typeof i.componentDidUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=1024),r=!1)}return fs(e,t,n,r,o,l)}function fs(e,t,n,r,l,o){fa(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return l&&gu(t,n,!1),Pt(e,t,o);r=t.stateNode,Gd.current=t;var d=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Cn(t,e.child,null,o),t.child=Cn(t,null,d,o)):Qe(e,t,d,o),t.memoizedState=r.state,l&&gu(t,n,!0),t.child}function ha(e){var t=e.stateNode;t.pendingContext?vu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&vu(e,t.context,!1),Yo(e,t.containerInfo)}function ma(e,t,n,r,l){return En(),Ho(l),t.flags|=256,Qe(e,t,n,r),t.child}var ps={dehydrated:null,treeContext:null,retryLane:0};function hs(e){return{baseLanes:e,cachePool:null,transitions:null}}function va(e,t,n){var r=t.pendingProps,l=xe.current,o=!1,i=(t.flags&128)!==0,d;if((d=i)||(d=e!==null&&e.memoizedState===null?!1:(l&2)!==0),d?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),pe(xe,l&1),e===null)return Ao(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},(r&1)===0&&o!==null?(o.childLanes=0,o.pendingProps=i):o=Dl(i,r,0,null),e=an(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=hs(n),t.memoizedState=ps,e):ms(t,i));if(l=e.memoizedState,l!==null&&(d=l.dehydrated,d!==null))return Yd(e,t,i,r,d,l,n);if(o){o=r.fallback,i=t.mode,l=e.child,d=l.sibling;var f={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=f,t.deletions=null):(r=qt(l,f),r.subtreeFlags=l.subtreeFlags&14680064),d!==null?o=qt(d,o):(o=an(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?hs(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=ps,r}return o=e.child,e=o.sibling,r=qt(o,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function ms(e,t){return t=Dl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function xl(e,t,n,r){return r!==null&&Ho(r),Cn(t,e.child,null,n),e=ms(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Yd(e,t,n,r,l,o,i){if(n)return t.flags&256?(t.flags&=-257,r=as(Error(u(422))),xl(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,l=t.mode,r=Dl({mode:"visible",children:r.children},l,0,null),o=an(o,l,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,(t.mode&1)!==0&&Cn(t,e.child,null,i),t.child.memoizedState=hs(i),t.memoizedState=ps,o);if((t.mode&1)===0)return xl(e,t,i,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var d=r.dgst;return r=d,o=Error(u(419)),r=as(o,r,void 0),xl(e,t,i,r)}if(d=(i&e.childLanes)!==0,Ye||d){if(r=Te,r!==null){switch(i&-i){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=(l&(r.suspendedLanes|i))!==0?0:l,l!==0&&l!==o.retryLane&&(o.retryLane=l,Et(e,l),mt(r,e,l,-1))}return Ts(),r=as(Error(u(421))),xl(e,t,i,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=af.bind(null,e),l._reactRetry=t,null):(e=o.treeContext,tt=Ft(l.nextSibling),et=t,ve=!0,dt=null,e!==null&&(rt[lt++]=Nt,rt[lt++]=jt,rt[lt++]=bt,Nt=e.id,jt=e.overflow,bt=t),t=ms(t,r.children),t.flags|=4096,t)}function ya(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ko(e.return,t,n)}function vs(e,t,n,r,l){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=l)}function ga(e,t,n){var r=t.pendingProps,l=r.revealOrder,o=r.tail;if(Qe(e,t,r.children,n),r=xe.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ya(e,n,t);else if(e.tag===19)ya(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(pe(xe,r),(t.mode&1)===0)t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&fl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),vs(t,!1,l,n,o);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&fl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}vs(t,!0,n,null,o);break;case"together":vs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function wl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Pt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),ln|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(u(153));if(t.child!==null){for(e=t.child,n=qt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=qt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Xd(e,t,n){switch(t.tag){case 3:ha(t),En();break;case 5:Du(t);break;case 1:Ge(t.type)&&nl(t);break;case 4:Yo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;pe(ul,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(pe(xe,xe.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?va(e,t,n):(pe(xe,xe.current&1),e=Pt(e,t,n),e!==null?e.sibling:null);pe(xe,xe.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return ga(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),pe(xe,xe.current),r)break;return null;case 22:case 23:return t.lanes=0,da(e,t,n)}return Pt(e,t,n)}var xa,ys,wa,Sa;xa=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},ys=function(){},wa=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,nn(gt.current);var o=null;switch(n){case"input":l=Ql(e,l),r=Ql(e,r),o=[];break;case"select":l=M({},l,{value:void 0}),r=M({},r,{value:void 0}),o=[];break;case"textarea":l=Gl(e,l),r=Gl(e,r),o=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=br)}Xl(n,r);var i;n=null;for(g in l)if(!r.hasOwnProperty(g)&&l.hasOwnProperty(g)&&l[g]!=null)if(g==="style"){var d=l[g];for(i in d)d.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else g!=="dangerouslySetInnerHTML"&&g!=="children"&&g!=="suppressContentEditableWarning"&&g!=="suppressHydrationWarning"&&g!=="autoFocus"&&(x.hasOwnProperty(g)?o||(o=[]):(o=o||[]).push(g,null));for(g in r){var f=r[g];if(d=l!=null?l[g]:void 0,r.hasOwnProperty(g)&&f!==d&&(f!=null||d!=null))if(g==="style")if(d){for(i in d)!d.hasOwnProperty(i)||f&&f.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in f)f.hasOwnProperty(i)&&d[i]!==f[i]&&(n||(n={}),n[i]=f[i])}else n||(o||(o=[]),o.push(g,n)),n=f;else g==="dangerouslySetInnerHTML"?(f=f?f.__html:void 0,d=d?d.__html:void 0,f!=null&&d!==f&&(o=o||[]).push(g,f)):g==="children"?typeof f!="string"&&typeof f!="number"||(o=o||[]).push(g,""+f):g!=="suppressContentEditableWarning"&&g!=="suppressHydrationWarning"&&(x.hasOwnProperty(g)?(f!=null&&g==="onScroll"&&he("scroll",e),o||d===f||(o=[])):(o=o||[]).push(g,f))}n&&(o=o||[]).push("style",n);var g=o;(t.updateQueue=g)&&(t.flags|=4)}},Sa=function(e,t,n,r){n!==r&&(t.flags|=4)};function vr(e,t){if(!ve)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ae(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Jd(e,t,n){var r=t.pendingProps;switch(Bo(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ae(t),null;case 1:return Ge(t.type)&&tl(),Ae(t),null;case 3:return r=t.stateNode,Mn(),me(qe),me(Be),Zo(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(sl(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,dt!==null&&(_s(dt),dt=null))),ys(e,t),Ae(t),null;case 5:Xo(t);var l=nn(dr.current);if(n=t.type,e!==null&&t.stateNode!=null)wa(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(u(166));return Ae(t),null}if(e=nn(gt.current),sl(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[yt]=t,r[sr]=o,e=(t.mode&1)!==0,n){case"dialog":he("cancel",r),he("close",r);break;case"iframe":case"object":case"embed":he("load",r);break;case"video":case"audio":for(l=0;l<rr.length;l++)he(rr[l],r);break;case"source":he("error",r);break;case"img":case"image":case"link":he("error",r),he("load",r);break;case"details":he("toggle",r);break;case"input":ti(r,o),he("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},he("invalid",r);break;case"textarea":li(r,o),he("invalid",r)}Xl(n,o),l=null;for(var i in o)if(o.hasOwnProperty(i)){var d=o[i];i==="children"?typeof d=="string"?r.textContent!==d&&(o.suppressHydrationWarning!==!0&&Zr(r.textContent,d,e),l=["children",d]):typeof d=="number"&&r.textContent!==""+d&&(o.suppressHydrationWarning!==!0&&Zr(r.textContent,d,e),l=["children",""+d]):x.hasOwnProperty(i)&&d!=null&&i==="onScroll"&&he("scroll",r)}switch(n){case"input":Mr(r),ri(r,o,!0);break;case"textarea":Mr(r),si(r);break;case"select":case"option":break;default:typeof o.onClick=="function"&&(r.onclick=br)}r=l,t.updateQueue=r,r!==null&&(t.flags|=4)}else{i=l.nodeType===9?l:l.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=ii(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[yt]=t,e[sr]=r,xa(e,t,!1,!1),t.stateNode=e;e:{switch(i=Jl(n,r),n){case"dialog":he("cancel",e),he("close",e),l=r;break;case"iframe":case"object":case"embed":he("load",e),l=r;break;case"video":case"audio":for(l=0;l<rr.length;l++)he(rr[l],e);l=r;break;case"source":he("error",e),l=r;break;case"img":case"image":case"link":he("error",e),he("load",e),l=r;break;case"details":he("toggle",e),l=r;break;case"input":ti(e,r),l=Ql(e,r),he("invalid",e);break;case"option":l=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},l=M({},r,{value:void 0}),he("invalid",e);break;case"textarea":li(e,r),l=Gl(e,r),he("invalid",e);break;default:l=r}Xl(n,l),d=l;for(o in d)if(d.hasOwnProperty(o)){var f=d[o];o==="style"?ci(e,f):o==="dangerouslySetInnerHTML"?(f=f?f.__html:void 0,f!=null&&ui(e,f)):o==="children"?typeof f=="string"?(n!=="textarea"||f!=="")&&Un(e,f):typeof f=="number"&&Un(e,""+f):o!=="suppressContentEditableWarning"&&o!=="suppressHydrationWarning"&&o!=="autoFocus"&&(x.hasOwnProperty(o)?f!=null&&o==="onScroll"&&he("scroll",e):f!=null&&Z(e,o,f,i))}switch(n){case"input":Mr(e),ri(e,r,!1);break;case"textarea":Mr(e),si(e);break;case"option":r.value!=null&&e.setAttribute("value",""+ie(r.value));break;case"select":e.multiple=!!r.multiple,o=r.value,o!=null?cn(e,!!r.multiple,o,!1):r.defaultValue!=null&&cn(e,!!r.multiple,r.defaultValue,!0);break;default:typeof l.onClick=="function"&&(e.onclick=br)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ae(t),null;case 6:if(e&&t.stateNode!=null)Sa(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(u(166));if(n=nn(dr.current),nn(gt.current),sl(t)){if(r=t.stateNode,n=t.memoizedProps,r[yt]=t,(o=r.nodeValue!==n)&&(e=et,e!==null))switch(e.tag){case 3:Zr(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Zr(r.nodeValue,n,(e.mode&1)!==0)}o&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[yt]=t,t.stateNode=r}return Ae(t),null;case 13:if(me(xe),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ve&&tt!==null&&(t.mode&1)!==0&&(t.flags&128)===0)ju(),En(),t.flags|=98560,o=!1;else if(o=sl(t),r!==null&&r.dehydrated!==null){if(e===null){if(!o)throw Error(u(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(u(317));o[yt]=t}else En(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ae(t),o=!1}else dt!==null&&(_s(dt),dt=null),o=!0;if(!o)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(xe.current&1)!==0?Pe===0&&(Pe=3):Ts())),t.updateQueue!==null&&(t.flags|=4),Ae(t),null);case 4:return Mn(),ys(e,t),e===null&&lr(t.stateNode.containerInfo),Ae(t),null;case 10:return Qo(t.type._context),Ae(t),null;case 17:return Ge(t.type)&&tl(),Ae(t),null;case 19:if(me(xe),o=t.memoizedState,o===null)return Ae(t),null;if(r=(t.flags&128)!==0,i=o.rendering,i===null)if(r)vr(o,!1);else{if(Pe!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=fl(e),i!==null){for(t.flags|=128,vr(o,!1),r=i.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)o=n,e=r,o.flags&=14680066,i=o.alternate,i===null?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,o.type=i.type,e=i.dependencies,o.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return pe(xe,xe.current&1|2),t.child}e=e.sibling}o.tail!==null&&ke()>zn&&(t.flags|=128,r=!0,vr(o,!1),t.lanes=4194304)}else{if(!r)if(e=fl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),vr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!ve)return Ae(t),null}else 2*ke()-o.renderingStartTime>zn&&n!==1073741824&&(t.flags|=128,r=!0,vr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ke(),t.sibling=null,n=xe.current,pe(xe,r?n&1|2:n&1),t):(Ae(t),null);case 22:case 23:return Rs(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(nt&1073741824)!==0&&(Ae(t),t.subtreeFlags&6&&(t.flags|=8192)):Ae(t),null;case 24:return null;case 25:return null}throw Error(u(156,t.tag))}function Zd(e,t){switch(Bo(t),t.tag){case 1:return Ge(t.type)&&tl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Mn(),me(qe),me(Be),Zo(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Xo(t),null;case 13:if(me(xe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(u(340));En()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return me(xe),null;case 4:return Mn(),null;case 10:return Qo(t.type._context),null;case 22:case 23:return Rs(),null;case 24:return null;default:return null}}var Sl=!1,He=!1,bd=typeof WeakSet=="function"?WeakSet:Set,B=null;function Tn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Se(e,t,r)}else n.current=null}function gs(e,t,n){try{n()}catch(r){Se(e,t,r)}}var ka=!1;function ef(e,t){if(Ro=Ar,e=eu(),ko(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,d=-1,f=-1,g=0,j=0,C=e,N=null;t:for(;;){for(var F;C!==n||l!==0&&C.nodeType!==3||(d=i+l),C!==o||r!==0&&C.nodeType!==3||(f=i+r),C.nodeType===3&&(i+=C.nodeValue.length),(F=C.firstChild)!==null;)N=C,C=F;for(;;){if(C===e)break t;if(N===n&&++g===l&&(d=i),N===o&&++j===r&&(f=i),(F=C.nextSibling)!==null)break;C=N,N=C.parentNode}C=F}n=d===-1||f===-1?null:{start:d,end:f}}else n=null}n=n||{start:0,end:0}}else n=null;for(To={focusedElem:e,selectionRange:n},Ar=!1,B=t;B!==null;)if(t=B,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,B=e;else for(;B!==null;){t=B;try{var A=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(A!==null){var V=A.memoizedProps,Ne=A.memoizedState,v=t.stateNode,p=v.getSnapshotBeforeUpdate(t.elementType===t.type?V:ft(t.type,V),Ne);v.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(u(163))}}catch(R){Se(t,t.return,R)}if(e=t.sibling,e!==null){e.return=t.return,B=e;break}B=t.return}return A=ka,ka=!1,A}function yr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&gs(t,n,o)}l=l.next}while(l!==r)}}function kl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function xs(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Na(e){var t=e.alternate;t!==null&&(e.alternate=null,Na(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[yt],delete t[sr],delete t[Oo],delete t[Fd],delete t[Id])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ja(e){return e.tag===5||e.tag===3||e.tag===4}function Ea(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ja(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ws(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=br));else if(r!==4&&(e=e.child,e!==null))for(ws(e,t,n),e=e.sibling;e!==null;)ws(e,t,n),e=e.sibling}function Ss(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Ss(e,t,n),e=e.sibling;e!==null;)Ss(e,t,n),e=e.sibling}var Le=null,pt=!1;function Ht(e,t,n){for(n=n.child;n!==null;)Ca(e,t,n),n=n.sibling}function Ca(e,t,n){if(vt&&typeof vt.onCommitFiberUnmount=="function")try{vt.onCommitFiberUnmount(Or,n)}catch{}switch(n.tag){case 5:He||Tn(n,t);case 6:var r=Le,l=pt;Le=null,Ht(e,t,n),Le=r,pt=l,Le!==null&&(pt?(e=Le,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Le.removeChild(n.stateNode));break;case 18:Le!==null&&(pt?(e=Le,n=n.stateNode,e.nodeType===8?Lo(e.parentNode,n):e.nodeType===1&&Lo(e,n),Yn(e)):Lo(Le,n.stateNode));break;case 4:r=Le,l=pt,Le=n.stateNode.containerInfo,pt=!0,Ht(e,t,n),Le=r,pt=l;break;case 0:case 11:case 14:case 15:if(!He&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&gs(n,t,i),l=l.next}while(l!==r)}Ht(e,t,n);break;case 1:if(!He&&(Tn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(d){Se(n,t,d)}Ht(e,t,n);break;case 21:Ht(e,t,n);break;case 22:n.mode&1?(He=(r=He)||n.memoizedState!==null,Ht(e,t,n),He=r):Ht(e,t,n);break;default:Ht(e,t,n)}}function Pa(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new bd),t.forEach(function(r){var l=cf.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function ht(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var l=n[r];try{var o=e,i=t,d=i;e:for(;d!==null;){switch(d.tag){case 5:Le=d.stateNode,pt=!1;break e;case 3:Le=d.stateNode.containerInfo,pt=!0;break e;case 4:Le=d.stateNode.containerInfo,pt=!0;break e}d=d.return}if(Le===null)throw Error(u(160));Ca(o,i,l),Le=null,pt=!1;var f=l.alternate;f!==null&&(f.return=null),l.return=null}catch(g){Se(l,t,g)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)_a(t,e),t=t.sibling}function _a(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ht(t,e),wt(e),r&4){try{yr(3,e,e.return),kl(3,e)}catch(V){Se(e,e.return,V)}try{yr(5,e,e.return)}catch(V){Se(e,e.return,V)}}break;case 1:ht(t,e),wt(e),r&512&&n!==null&&Tn(n,n.return);break;case 5:if(ht(t,e),wt(e),r&512&&n!==null&&Tn(n,n.return),e.flags&32){var l=e.stateNode;try{Un(l,"")}catch(V){Se(e,e.return,V)}}if(r&4&&(l=e.stateNode,l!=null)){var o=e.memoizedProps,i=n!==null?n.memoizedProps:o,d=e.type,f=e.updateQueue;if(e.updateQueue=null,f!==null)try{d==="input"&&o.type==="radio"&&o.name!=null&&ni(l,o),Jl(d,i);var g=Jl(d,o);for(i=0;i<f.length;i+=2){var j=f[i],C=f[i+1];j==="style"?ci(l,C):j==="dangerouslySetInnerHTML"?ui(l,C):j==="children"?Un(l,C):Z(l,j,C,g)}switch(d){case"input":Kl(l,o);break;case"textarea":oi(l,o);break;case"select":var N=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!o.multiple;var F=o.value;F!=null?cn(l,!!o.multiple,F,!1):N!==!!o.multiple&&(o.defaultValue!=null?cn(l,!!o.multiple,o.defaultValue,!0):cn(l,!!o.multiple,o.multiple?[]:"",!1))}l[sr]=o}catch(V){Se(e,e.return,V)}}break;case 6:if(ht(t,e),wt(e),r&4){if(e.stateNode===null)throw Error(u(162));l=e.stateNode,o=e.memoizedProps;try{l.nodeValue=o}catch(V){Se(e,e.return,V)}}break;case 3:if(ht(t,e),wt(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Yn(t.containerInfo)}catch(V){Se(e,e.return,V)}break;case 4:ht(t,e),wt(e);break;case 13:ht(t,e),wt(e),l=e.child,l.flags&8192&&(o=l.memoizedState!==null,l.stateNode.isHidden=o,!o||l.alternate!==null&&l.alternate.memoizedState!==null||(js=ke())),r&4&&Pa(e);break;case 22:if(j=n!==null&&n.memoizedState!==null,e.mode&1?(He=(g=He)||j,ht(t,e),He=g):ht(t,e),wt(e),r&8192){if(g=e.memoizedState!==null,(e.stateNode.isHidden=g)&&!j&&(e.mode&1)!==0)for(B=e,j=e.child;j!==null;){for(C=B=j;B!==null;){switch(N=B,F=N.child,N.tag){case 0:case 11:case 14:case 15:yr(4,N,N.return);break;case 1:Tn(N,N.return);var A=N.stateNode;if(typeof A.componentWillUnmount=="function"){r=N,n=N.return;try{t=r,A.props=t.memoizedProps,A.state=t.memoizedState,A.componentWillUnmount()}catch(V){Se(r,n,V)}}break;case 5:Tn(N,N.return);break;case 22:if(N.memoizedState!==null){Ta(C);continue}}F!==null?(F.return=N,B=F):Ta(C)}j=j.sibling}e:for(j=null,C=e;;){if(C.tag===5){if(j===null){j=C;try{l=C.stateNode,g?(o=l.style,typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"):(d=C.stateNode,f=C.memoizedProps.style,i=f!=null&&f.hasOwnProperty("display")?f.display:null,d.style.display=ai("display",i))}catch(V){Se(e,e.return,V)}}}else if(C.tag===6){if(j===null)try{C.stateNode.nodeValue=g?"":C.memoizedProps}catch(V){Se(e,e.return,V)}}else if((C.tag!==22&&C.tag!==23||C.memoizedState===null||C===e)&&C.child!==null){C.child.return=C,C=C.child;continue}if(C===e)break e;for(;C.sibling===null;){if(C.return===null||C.return===e)break e;j===C&&(j=null),C=C.return}j===C&&(j=null),C.sibling.return=C.return,C=C.sibling}}break;case 19:ht(t,e),wt(e),r&4&&Pa(e);break;case 21:break;default:ht(t,e),wt(e)}}function wt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(ja(n)){var r=n;break e}n=n.return}throw Error(u(160))}switch(r.tag){case 5:var l=r.stateNode;r.flags&32&&(Un(l,""),r.flags&=-33);var o=Ea(e);Ss(e,o,l);break;case 3:case 4:var i=r.stateNode.containerInfo,d=Ea(e);ws(e,d,i);break;default:throw Error(u(161))}}catch(f){Se(e,e.return,f)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function tf(e,t,n){B=e,Ma(e)}function Ma(e,t,n){for(var r=(e.mode&1)!==0;B!==null;){var l=B,o=l.child;if(l.tag===22&&r){var i=l.memoizedState!==null||Sl;if(!i){var d=l.alternate,f=d!==null&&d.memoizedState!==null||He;d=Sl;var g=He;if(Sl=i,(He=f)&&!g)for(B=l;B!==null;)i=B,f=i.child,i.tag===22&&i.memoizedState!==null?Da(l):f!==null?(f.return=i,B=f):Da(l);for(;o!==null;)B=o,Ma(o),o=o.sibling;B=l,Sl=d,He=g}Ra(e)}else(l.subtreeFlags&8772)!==0&&o!==null?(o.return=l,B=o):Ra(e)}}function Ra(e){for(;B!==null;){var t=B;if((t.flags&8772)!==0){var n=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:He||kl(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!He)if(n===null)r.componentDidMount();else{var l=t.elementType===t.type?n.memoizedProps:ft(t.type,n.memoizedProps);r.componentDidUpdate(l,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;o!==null&&Tu(t,o,r);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Tu(t,i,n)}break;case 5:var d=t.stateNode;if(n===null&&t.flags&4){n=d;var f=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":f.autoFocus&&n.focus();break;case"img":f.src&&(n.src=f.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var g=t.alternate;if(g!==null){var j=g.memoizedState;if(j!==null){var C=j.dehydrated;C!==null&&Yn(C)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(u(163))}He||t.flags&512&&xs(t)}catch(N){Se(t,t.return,N)}}if(t===e){B=null;break}if(n=t.sibling,n!==null){n.return=t.return,B=n;break}B=t.return}}function Ta(e){for(;B!==null;){var t=B;if(t===e){B=null;break}var n=t.sibling;if(n!==null){n.return=t.return,B=n;break}B=t.return}}function Da(e){for(;B!==null;){var t=B;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{kl(4,t)}catch(f){Se(t,n,f)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var l=t.return;try{r.componentDidMount()}catch(f){Se(t,l,f)}}var o=t.return;try{xs(t)}catch(f){Se(t,o,f)}break;case 5:var i=t.return;try{xs(t)}catch(f){Se(t,i,f)}}}catch(f){Se(t,t.return,f)}if(t===e){B=null;break}var d=t.sibling;if(d!==null){d.return=t.return,B=d;break}B=t.return}}var nf=Math.ceil,Nl=te.ReactCurrentDispatcher,ks=te.ReactCurrentOwner,it=te.ReactCurrentBatchConfig,oe=0,Te=null,Ee=null,Oe=0,nt=0,Dn=It(0),Pe=0,gr=null,ln=0,jl=0,Ns=0,xr=null,Xe=null,js=0,zn=1/0,_t=null,El=!1,Es=null,Vt=null,Cl=!1,Wt=null,Pl=0,wr=0,Cs=null,_l=-1,Ml=0;function Ke(){return(oe&6)!==0?ke():_l!==-1?_l:_l=ke()}function Qt(e){return(e.mode&1)===0?1:(oe&2)!==0&&Oe!==0?Oe&-Oe:Bd.transition!==null?(Ml===0&&(Ml=Ei()),Ml):(e=ue,e!==0||(e=window.event,e=e===void 0?16:Li(e.type)),e)}function mt(e,t,n,r){if(50<wr)throw wr=0,Cs=null,Error(u(185));Wn(e,n,r),((oe&2)===0||e!==Te)&&(e===Te&&((oe&2)===0&&(jl|=n),Pe===4&&Kt(e,Oe)),Je(e,r),n===1&&oe===0&&(t.mode&1)===0&&(zn=ke()+500,rl&&Bt()))}function Je(e,t){var n=e.callbackNode;Bc(e,t);var r=Ur(e,e===Te?Oe:0);if(r===0)n!==null&&ki(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&ki(n),t===1)e.tag===0?Ud(La.bind(null,e)):xu(La.bind(null,e)),Ld(function(){(oe&6)===0&&Bt()}),n=null;else{switch(Ci(r)){case 1:n=lo;break;case 4:n=Ni;break;case 16:n=Lr;break;case 536870912:n=ji;break;default:n=Lr}n=Ha(n,za.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function za(e,t){if(_l=-1,Ml=0,(oe&6)!==0)throw Error(u(327));var n=e.callbackNode;if(Ln()&&e.callbackNode!==n)return null;var r=Ur(e,e===Te?Oe:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||t)t=Rl(e,r);else{t=r;var l=oe;oe|=2;var o=Fa();(Te!==e||Oe!==t)&&(_t=null,zn=ke()+500,sn(e,t));do try{of();break}catch(d){Oa(e,d)}while(!0);Wo(),Nl.current=o,oe=l,Ee!==null?t=0:(Te=null,Oe=0,t=Pe)}if(t!==0){if(t===2&&(l=oo(e),l!==0&&(r=l,t=Ps(e,l))),t===1)throw n=gr,sn(e,0),Kt(e,r),Je(e,ke()),n;if(t===6)Kt(e,r);else{if(l=e.current.alternate,(r&30)===0&&!rf(l)&&(t=Rl(e,r),t===2&&(o=oo(e),o!==0&&(r=o,t=Ps(e,o))),t===1))throw n=gr,sn(e,0),Kt(e,r),Je(e,ke()),n;switch(e.finishedWork=l,e.finishedLanes=r,t){case 0:case 1:throw Error(u(345));case 2:un(e,Xe,_t);break;case 3:if(Kt(e,r),(r&130023424)===r&&(t=js+500-ke(),10<t)){if(Ur(e,0)!==0)break;if(l=e.suspendedLanes,(l&r)!==r){Ke(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=zo(un.bind(null,e,Xe,_t),t);break}un(e,Xe,_t);break;case 4:if(Kt(e,r),(r&4194240)===r)break;for(t=e.eventTimes,l=-1;0<r;){var i=31-at(r);o=1<<i,i=t[i],i>l&&(l=i),r&=~o}if(r=l,r=ke()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*nf(r/1960))-r,10<r){e.timeoutHandle=zo(un.bind(null,e,Xe,_t),r);break}un(e,Xe,_t);break;case 5:un(e,Xe,_t);break;default:throw Error(u(329))}}}return Je(e,ke()),e.callbackNode===n?za.bind(null,e):null}function Ps(e,t){var n=xr;return e.current.memoizedState.isDehydrated&&(sn(e,t).flags|=256),e=Rl(e,t),e!==2&&(t=Xe,Xe=n,t!==null&&_s(t)),e}function _s(e){Xe===null?Xe=e:Xe.push.apply(Xe,e)}function rf(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var l=n[r],o=l.getSnapshot;l=l.value;try{if(!ct(o(),l))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Kt(e,t){for(t&=~Ns,t&=~jl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-at(t),r=1<<n;e[n]=-1,t&=~r}}function La(e){if((oe&6)!==0)throw Error(u(327));Ln();var t=Ur(e,0);if((t&1)===0)return Je(e,ke()),null;var n=Rl(e,t);if(e.tag!==0&&n===2){var r=oo(e);r!==0&&(t=r,n=Ps(e,r))}if(n===1)throw n=gr,sn(e,0),Kt(e,t),Je(e,ke()),n;if(n===6)throw Error(u(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,un(e,Xe,_t),Je(e,ke()),null}function Ms(e,t){var n=oe;oe|=1;try{return e(t)}finally{oe=n,oe===0&&(zn=ke()+500,rl&&Bt())}}function on(e){Wt!==null&&Wt.tag===0&&(oe&6)===0&&Ln();var t=oe;oe|=1;var n=it.transition,r=ue;try{if(it.transition=null,ue=1,e)return e()}finally{ue=r,it.transition=n,oe=t,(oe&6)===0&&Bt()}}function Rs(){nt=Dn.current,me(Dn)}function sn(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,zd(n)),Ee!==null)for(n=Ee.return;n!==null;){var r=n;switch(Bo(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&tl();break;case 3:Mn(),me(qe),me(Be),Zo();break;case 5:Xo(r);break;case 4:Mn();break;case 13:me(xe);break;case 19:me(xe);break;case 10:Qo(r.type._context);break;case 22:case 23:Rs()}n=n.return}if(Te=e,Ee=e=qt(e.current,null),Oe=nt=t,Pe=0,gr=null,Ns=jl=ln=0,Xe=xr=null,tn!==null){for(t=0;t<tn.length;t++)if(n=tn[t],r=n.interleaved,r!==null){n.interleaved=null;var l=r.next,o=n.pending;if(o!==null){var i=o.next;o.next=l,r.next=i}n.pending=r}tn=null}return e}function Oa(e,t){do{var n=Ee;try{if(Wo(),pl.current=yl,hl){for(var r=we.memoizedState;r!==null;){var l=r.queue;l!==null&&(l.pending=null),r=r.next}hl=!1}if(rn=0,Re=Ce=we=null,fr=!1,pr=0,ks.current=null,n===null||n.return===null){Pe=1,gr=t,Ee=null;break}e:{var o=e,i=n.return,d=n,f=t;if(t=Oe,d.flags|=32768,f!==null&&typeof f=="object"&&typeof f.then=="function"){var g=f,j=d,C=j.tag;if((j.mode&1)===0&&(C===0||C===11||C===15)){var N=j.alternate;N?(j.updateQueue=N.updateQueue,j.memoizedState=N.memoizedState,j.lanes=N.lanes):(j.updateQueue=null,j.memoizedState=null)}var F=sa(i);if(F!==null){F.flags&=-257,ia(F,i,d,o,t),F.mode&1&&oa(o,g,t),t=F,f=g;var A=t.updateQueue;if(A===null){var V=new Set;V.add(f),t.updateQueue=V}else A.add(f);break e}else{if((t&1)===0){oa(o,g,t),Ts();break e}f=Error(u(426))}}else if(ve&&d.mode&1){var Ne=sa(i);if(Ne!==null){(Ne.flags&65536)===0&&(Ne.flags|=256),ia(Ne,i,d,o,t),Ho(Rn(f,d));break e}}o=f=Rn(f,d),Pe!==4&&(Pe=2),xr===null?xr=[o]:xr.push(o),o=i;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var v=ra(o,f,t);Ru(o,v);break e;case 1:d=f;var p=o.type,y=o.stateNode;if((o.flags&128)===0&&(typeof p.getDerivedStateFromError=="function"||y!==null&&typeof y.componentDidCatch=="function"&&(Vt===null||!Vt.has(y)))){o.flags|=65536,t&=-t,o.lanes|=t;var R=la(o,d,t);Ru(o,R);break e}}o=o.return}while(o!==null)}Ua(n)}catch(Q){t=Q,Ee===n&&n!==null&&(Ee=n=n.return);continue}break}while(!0)}function Fa(){var e=Nl.current;return Nl.current=yl,e===null?yl:e}function Ts(){(Pe===0||Pe===3||Pe===2)&&(Pe=4),Te===null||(ln&268435455)===0&&(jl&268435455)===0||Kt(Te,Oe)}function Rl(e,t){var n=oe;oe|=2;var r=Fa();(Te!==e||Oe!==t)&&(_t=null,sn(e,t));do try{lf();break}catch(l){Oa(e,l)}while(!0);if(Wo(),oe=n,Nl.current=r,Ee!==null)throw Error(u(261));return Te=null,Oe=0,Pe}function lf(){for(;Ee!==null;)Ia(Ee)}function of(){for(;Ee!==null&&!Rc();)Ia(Ee)}function Ia(e){var t=Aa(e.alternate,e,nt);e.memoizedProps=e.pendingProps,t===null?Ua(e):Ee=t,ks.current=null}function Ua(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&32768)===0){if(n=Jd(n,t,nt),n!==null){Ee=n;return}}else{if(n=Zd(n,t),n!==null){n.flags&=32767,Ee=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Pe=6,Ee=null;return}}if(t=t.sibling,t!==null){Ee=t;return}Ee=t=e}while(t!==null);Pe===0&&(Pe=5)}function un(e,t,n){var r=ue,l=it.transition;try{it.transition=null,ue=1,sf(e,t,n,r)}finally{it.transition=l,ue=r}return null}function sf(e,t,n,r){do Ln();while(Wt!==null);if((oe&6)!==0)throw Error(u(327));n=e.finishedWork;var l=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(u(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if($c(e,o),e===Te&&(Ee=Te=null,Oe=0),(n.subtreeFlags&2064)===0&&(n.flags&2064)===0||Cl||(Cl=!0,Ha(Lr,function(){return Ln(),null})),o=(n.flags&15990)!==0,(n.subtreeFlags&15990)!==0||o){o=it.transition,it.transition=null;var i=ue;ue=1;var d=oe;oe|=4,ks.current=null,ef(e,n),_a(n,e),Cd(To),Ar=!!Ro,To=Ro=null,e.current=n,tf(n),Tc(),oe=d,ue=i,it.transition=o}else e.current=n;if(Cl&&(Cl=!1,Wt=e,Pl=l),o=e.pendingLanes,o===0&&(Vt=null),Lc(n.stateNode),Je(e,ke()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)l=t[n],r(l.value,{componentStack:l.stack,digest:l.digest});if(El)throw El=!1,e=Es,Es=null,e;return(Pl&1)!==0&&e.tag!==0&&Ln(),o=e.pendingLanes,(o&1)!==0?e===Cs?wr++:(wr=0,Cs=e):wr=0,Bt(),null}function Ln(){if(Wt!==null){var e=Ci(Pl),t=it.transition,n=ue;try{if(it.transition=null,ue=16>e?16:e,Wt===null)var r=!1;else{if(e=Wt,Wt=null,Pl=0,(oe&6)!==0)throw Error(u(331));var l=oe;for(oe|=4,B=e.current;B!==null;){var o=B,i=o.child;if((B.flags&16)!==0){var d=o.deletions;if(d!==null){for(var f=0;f<d.length;f++){var g=d[f];for(B=g;B!==null;){var j=B;switch(j.tag){case 0:case 11:case 15:yr(8,j,o)}var C=j.child;if(C!==null)C.return=j,B=C;else for(;B!==null;){j=B;var N=j.sibling,F=j.return;if(Na(j),j===g){B=null;break}if(N!==null){N.return=F,B=N;break}B=F}}}var A=o.alternate;if(A!==null){var V=A.child;if(V!==null){A.child=null;do{var Ne=V.sibling;V.sibling=null,V=Ne}while(V!==null)}}B=o}}if((o.subtreeFlags&2064)!==0&&i!==null)i.return=o,B=i;else e:for(;B!==null;){if(o=B,(o.flags&2048)!==0)switch(o.tag){case 0:case 11:case 15:yr(9,o,o.return)}var v=o.sibling;if(v!==null){v.return=o.return,B=v;break e}B=o.return}}var p=e.current;for(B=p;B!==null;){i=B;var y=i.child;if((i.subtreeFlags&2064)!==0&&y!==null)y.return=i,B=y;else e:for(i=p;B!==null;){if(d=B,(d.flags&2048)!==0)try{switch(d.tag){case 0:case 11:case 15:kl(9,d)}}catch(Q){Se(d,d.return,Q)}if(d===i){B=null;break e}var R=d.sibling;if(R!==null){R.return=d.return,B=R;break e}B=d.return}}if(oe=l,Bt(),vt&&typeof vt.onPostCommitFiberRoot=="function")try{vt.onPostCommitFiberRoot(Or,e)}catch{}r=!0}return r}finally{ue=n,it.transition=t}}return!1}function Ba(e,t,n){t=Rn(n,t),t=ra(e,t,1),e=At(e,t,1),t=Ke(),e!==null&&(Wn(e,1,t),Je(e,t))}function Se(e,t,n){if(e.tag===3)Ba(e,e,n);else for(;t!==null;){if(t.tag===3){Ba(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Vt===null||!Vt.has(r))){e=Rn(n,e),e=la(t,e,1),t=At(t,e,1),e=Ke(),t!==null&&(Wn(t,1,e),Je(t,e));break}}t=t.return}}function uf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=Ke(),e.pingedLanes|=e.suspendedLanes&n,Te===e&&(Oe&n)===n&&(Pe===4||Pe===3&&(Oe&130023424)===Oe&&500>ke()-js?sn(e,0):Ns|=n),Je(e,t)}function $a(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var n=Ke();e=Et(e,t),e!==null&&(Wn(e,t,n),Je(e,n))}function af(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$a(e,n)}function cf(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(u(314))}r!==null&&r.delete(t),$a(e,n)}var Aa;Aa=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qe.current)Ye=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Ye=!1,Xd(e,t,n);Ye=(e.flags&131072)!==0}else Ye=!1,ve&&(t.flags&1048576)!==0&&wu(t,ol,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;wl(e,t),e=t.pendingProps;var l=kn(t,Be.current);_n(t,n),l=ts(null,t,r,e,l,n);var o=ns();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ge(r)?(o=!0,nl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Go(t),l.updater=gl,t.stateNode=l,l._reactInternals=t,us(t,r,e,n),t=fs(null,t,r,!0,o,n)):(t.tag=0,ve&&o&&Uo(t),Qe(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(wl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=ff(r),e=ft(r,e),l){case 0:t=ds(null,t,r,e,n);break e;case 1:t=pa(null,t,r,e,n);break e;case 11:t=ua(null,t,r,e,n);break e;case 14:t=aa(null,t,r,ft(r.type,e),n);break e}throw Error(u(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),ds(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),pa(e,t,r,l,n);case 3:e:{if(ha(t),e===null)throw Error(u(387));r=t.pendingProps,o=t.memoizedState,l=o.element,Mu(e,t),dl(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=Rn(Error(u(423)),t),t=ma(e,t,r,n,l);break e}else if(r!==l){l=Rn(Error(u(424)),t),t=ma(e,t,r,n,l);break e}else for(tt=Ft(t.stateNode.containerInfo.firstChild),et=t,ve=!0,dt=null,n=Pu(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(En(),r===l){t=Pt(e,t,n);break e}Qe(e,t,r,n)}t=t.child}return t;case 5:return Du(t),e===null&&Ao(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,Do(r,l)?i=null:o!==null&&Do(r,o)&&(t.flags|=32),fa(e,t),Qe(e,t,i,n),t.child;case 6:return e===null&&Ao(t),null;case 13:return va(e,t,n);case 4:return Yo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Cn(t,null,r,n):Qe(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),ua(e,t,r,l,n);case 7:return Qe(e,t,t.pendingProps,n),t.child;case 8:return Qe(e,t,t.pendingProps.children,n),t.child;case 12:return Qe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,pe(ul,r._currentValue),r._currentValue=i,o!==null)if(ct(o.value,i)){if(o.children===l.children&&!qe.current){t=Pt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var d=o.dependencies;if(d!==null){i=o.child;for(var f=d.firstContext;f!==null;){if(f.context===r){if(o.tag===1){f=Ct(-1,n&-n),f.tag=2;var g=o.updateQueue;if(g!==null){g=g.shared;var j=g.pending;j===null?f.next=f:(f.next=j.next,j.next=f),g.pending=f}}o.lanes|=n,f=o.alternate,f!==null&&(f.lanes|=n),Ko(o.return,n,t),d.lanes|=n;break}f=f.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(u(341));i.lanes|=n,d=i.alternate,d!==null&&(d.lanes|=n),Ko(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}Qe(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,_n(t,n),l=ot(l),r=r(l),t.flags|=1,Qe(e,t,r,n),t.child;case 14:return r=t.type,l=ft(r,t.pendingProps),l=ft(r.type,l),aa(e,t,r,l,n);case 15:return ca(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),wl(e,t),t.tag=1,Ge(r)?(e=!0,nl(t)):e=!1,_n(t,n),ta(t,r,l),us(t,r,l,n),fs(null,t,r,!0,e,n);case 19:return ga(e,t,n);case 22:return da(e,t,n)}throw Error(u(156,t.tag))};function Ha(e,t){return Si(e,t)}function df(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ut(e,t,n,r){return new df(e,t,n,r)}function Ds(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ff(e){if(typeof e=="function")return Ds(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Me)return 11;if(e===Ue)return 14}return 2}function qt(e,t){var n=e.alternate;return n===null?(n=ut(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Tl(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")Ds(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ye:return an(n.children,l,o,t);case ce:i=8,l|=8;break;case ge:return e=ut(12,n,t,l|2),e.elementType=ge,e.lanes=o,e;case ze:return e=ut(13,n,t,l),e.elementType=ze,e.lanes=o,e;case Ie:return e=ut(19,n,t,l),e.elementType=Ie,e.lanes=o,e;case H:return Dl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Fe:i=10;break e;case Ve:i=9;break e;case Me:i=11;break e;case Ue:i=14;break e;case je:i=16,r=null;break e}throw Error(u(130,e==null?e:typeof e,""))}return t=ut(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function an(e,t,n,r){return e=ut(7,e,r,t),e.lanes=n,e}function Dl(e,t,n,r){return e=ut(22,e,r,t),e.elementType=H,e.lanes=n,e.stateNode={isHidden:!1},e}function zs(e,t,n){return e=ut(6,e,null,t),e.lanes=n,e}function Ls(e,t,n){return t=ut(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function pf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=so(0),this.expirationTimes=so(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=so(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Os(e,t,n,r,l,o,i,d,f){return e=new pf(e,t,n,d,f),t===1?(t=1,o===!0&&(t|=8)):t=0,o=ut(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Go(o),e}function hf(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:ae,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function Va(e){if(!e)return Ut;e=e._reactInternals;e:{if(Xt(e)!==e||e.tag!==1)throw Error(u(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ge(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(u(171))}if(e.tag===1){var n=e.type;if(Ge(n))return yu(e,n,t)}return t}function Wa(e,t,n,r,l,o,i,d,f){return e=Os(n,r,!0,e,l,o,i,d,f),e.context=Va(null),n=e.current,r=Ke(),l=Qt(n),o=Ct(r,l),o.callback=t??null,At(n,o,l),e.current.lanes=l,Wn(e,l,r),Je(e,r),e}function zl(e,t,n,r){var l=t.current,o=Ke(),i=Qt(l);return n=Va(n),t.context===null?t.context=n:t.pendingContext=n,t=Ct(o,i),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=At(l,t,i),e!==null&&(mt(e,l,i,o),cl(e,l,i)),i}function Ll(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Qa(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Fs(e,t){Qa(e,t),(e=e.alternate)&&Qa(e,t)}function mf(){return null}var Ka=typeof reportError=="function"?reportError:function(e){console.error(e)};function Is(e){this._internalRoot=e}Ol.prototype.render=Is.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(u(409));zl(e,t,null,null)},Ol.prototype.unmount=Is.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;on(function(){zl(null,e,null,null)}),t[St]=null}};function Ol(e){this._internalRoot=e}Ol.prototype.unstable_scheduleHydration=function(e){if(e){var t=Mi();e={blockedOn:null,target:e,priority:t};for(var n=0;n<zt.length&&t!==0&&t<zt[n].priority;n++);zt.splice(n,0,e),n===0&&Di(e)}};function Us(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Fl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function qa(){}function vf(e,t,n,r,l){if(l){if(typeof r=="function"){var o=r;r=function(){var g=Ll(i);o.call(g)}}var i=Wa(t,r,e,0,null,!1,!1,"",qa);return e._reactRootContainer=i,e[St]=i.current,lr(e.nodeType===8?e.parentNode:e),on(),i}for(;l=e.lastChild;)e.removeChild(l);if(typeof r=="function"){var d=r;r=function(){var g=Ll(f);d.call(g)}}var f=Os(e,0,!1,null,null,!1,!1,"",qa);return e._reactRootContainer=f,e[St]=f.current,lr(e.nodeType===8?e.parentNode:e),on(function(){zl(t,f,n,r)}),f}function Il(e,t,n,r,l){var o=n._reactRootContainer;if(o){var i=o;if(typeof l=="function"){var d=l;l=function(){var f=Ll(i);d.call(f)}}zl(t,i,e,l)}else i=vf(n,t,e,l,r);return Ll(i)}Pi=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Vn(t.pendingLanes);n!==0&&(io(t,n|1),Je(t,ke()),(oe&6)===0&&(zn=ke()+500,Bt()))}break;case 13:on(function(){var r=Et(e,1);if(r!==null){var l=Ke();mt(r,e,1,l)}}),Fs(e,1)}},uo=function(e){if(e.tag===13){var t=Et(e,134217728);if(t!==null){var n=Ke();mt(t,e,134217728,n)}Fs(e,134217728)}},_i=function(e){if(e.tag===13){var t=Qt(e),n=Et(e,t);if(n!==null){var r=Ke();mt(n,e,t,r)}Fs(e,t)}},Mi=function(){return ue},Ri=function(e,t){var n=ue;try{return ue=e,t()}finally{ue=n}},eo=function(e,t,n){switch(t){case"input":if(Kl(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var l=el(r);if(!l)throw Error(u(90));ei(r),Kl(r,l)}}}break;case"textarea":oi(e,n);break;case"select":t=n.value,t!=null&&cn(e,!!n.multiple,t,!1)}},hi=Ms,mi=on;var yf={usingClientEntryPoint:!1,Events:[ir,wn,el,fi,pi,Ms]},Sr={findFiberByHostInstance:Jt,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},gf={bundleType:Sr.bundleType,version:Sr.version,rendererPackageName:Sr.rendererPackageName,rendererConfig:Sr.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:te.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=xi(e),e===null?null:e.stateNode},findFiberByHostInstance:Sr.findFiberByHostInstance||mf,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Ul=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ul.isDisabled&&Ul.supportsFiber)try{Or=Ul.inject(gf),vt=Ul}catch{}}return Ze.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=yf,Ze.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Us(t))throw Error(u(200));return hf(e,t,null,n)},Ze.createRoot=function(e,t){if(!Us(e))throw Error(u(299));var n=!1,r="",l=Ka;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(l=t.onRecoverableError)),t=Os(e,1,!1,null,null,n,!1,r,l),e[St]=t.current,lr(e.nodeType===8?e.parentNode:e),new Is(t)},Ze.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(u(188)):(e=Object.keys(e).join(","),Error(u(268,e)));return e=xi(t),e=e===null?null:e.stateNode,e},Ze.flushSync=function(e){return on(e)},Ze.hydrate=function(e,t,n){if(!Fl(t))throw Error(u(200));return Il(null,e,t,!0,n)},Ze.hydrateRoot=function(e,t,n){if(!Us(e))throw Error(u(405));var r=n!=null&&n.hydratedSources||null,l=!1,o="",i=Ka;if(n!=null&&(n.unstable_strictMode===!0&&(l=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=Wa(t,null,e,1,n??null,l,!1,o,i),e[St]=t.current,lr(e),r)for(e=0;e<r.length;e++)n=r[e],l=n._getVersion,l=l(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,l]:t.mutableSourceEagerHydrationData.push(n,l);return new Ol(t)},Ze.render=function(e,t,n){if(!Fl(t))throw Error(u(200));return Il(null,e,t,!1,n)},Ze.unmountComponentAtNode=function(e){if(!Fl(e))throw Error(u(40));return e._reactRootContainer?(on(function(){Il(null,null,e,!1,function(){e._reactRootContainer=null,e[St]=null})}),!0):!1},Ze.unstable_batchedUpdates=Ms,Ze.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Fl(n))throw Error(u(200));if(e==null||e._reactInternals===void 0)throw Error(u(38));return Il(e,t,n,!1,r)},Ze.version="18.3.1-next-f1338f8080-20240426",Ze}var tc;function Cf(){if(tc)return As.exports;tc=1;function s(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(c){console.error(c)}}return s(),As.exports=Ef(),As.exports}var nc;function Pf(){if(nc)return Bl;nc=1;var s=Cf();return Bl.createRoot=s.createRoot,Bl.hydrateRoot=s.hydrateRoot,Bl}var _f=Pf(),$=Js();const Yt={methods:new Set,path:"",minDurationMs:null,maxDurationMs:null,includeErrors:!0,includeSuccesses:!0,sortBy:"timestamp",sortDir:"desc"},hc=$.createContext(null),Ks=200;function Mf({children:s,initialEntries:c}){const u=$.useMemo(()=>Df(c).slice(0,Ks),[c]),[m,x]=$.useState(u),[E,P]=$.useState(Zs()),S=$.useMemo(()=>Lf(m),[m]);$.useEffect(()=>{x(u)},[u]);const T=$.useCallback(W=>{const G={...W,id:mc(),timestamp:Date.now()};x(L=>[G,...L].slice(0,Ks))},[]),K=$.useCallback(()=>x([]),[]),I=$.useCallback(W=>{P({...W,methods:new Set(W.methods),sortBy:W.sortBy||"timestamp",sortDir:W.sortDir||"desc"})},[]),z=$.useCallback(W=>{P(G=>({methods:W.methods?new Set(W.methods):G.methods,path:W.path??G.path,minDurationMs:W.minDurationMs!==void 0?W.minDurationMs:G.minDurationMs,maxDurationMs:W.maxDurationMs!==void 0?W.maxDurationMs:G.maxDurationMs,includeErrors:W.includeErrors??G.includeErrors,includeSuccesses:W.includeSuccesses??G.includeSuccesses,sortBy:W.sortBy??G.sortBy,sortDir:W.sortDir??G.sortDir}))},[]),O=$.useMemo(()=>({entries:m,addEntry:T,clearHistory:K,filters:E,setFilters:I,updateFilters:z,statsByRoute:S}),[T,K,m,E,I,S,z]);return a.jsx(hc.Provider,{value:O,children:s})}function Wl(){const s=$.useContext(hc);if(!s)throw new Error("useHistoryStore must be used within HistoryProvider");return s}function Rf(s){const c=new URLSearchParams;return s.methods.size&&c.set("methods",Array.from(s.methods).join(",")),s.path&&c.set("path",s.path),s.minDurationMs!==null&&s.minDurationMs!==void 0&&c.set("minDuration",String(s.minDurationMs)),s.maxDurationMs!==null&&s.maxDurationMs!==void 0&&c.set("maxDuration",String(s.maxDurationMs)),s.includeErrors&&c.set("errors","1"),s.sortBy&&s.sortBy!=="timestamp"&&c.set("sortBy",s.sortBy),s.sortDir&&s.sortDir!=="desc"&&c.set("sortDir",s.sortDir),c}function Tf(s){const c=s.get("methods"),u=s.get("path")||void 0,m=rc(s.get("minDuration")),x=rc(s.get("maxDuration")),E=s.get("errors")==="1",P=s.get("sortBy"),S=s.get("sortDir"),T={};return c&&(T.methods=new Set(c.split(",").filter(Boolean).map(K=>K.toUpperCase()))),u&&(T.path=u),m!==null&&(T.minDurationMs=m),x!==null&&(T.maxDurationMs=x),E&&(T.includeErrors=!0),P&&Of(P)&&(T.sortBy=P),S&&Ff(S)&&(T.sortDir=S),Object.keys(T).length?T:void 0}function Zs(){return{methods:new Set(Yt.methods),path:Yt.path,minDurationMs:Yt.minDurationMs,maxDurationMs:Yt.maxDurationMs,includeErrors:Yt.includeErrors,includeSuccesses:Yt.includeSuccesses,sortBy:Yt.sortBy,sortDir:Yt.sortDir}}function qs(s,c){return c?{methods:c.methods?new Set(c.methods):new Set(s.methods),path:c.path??s.path,minDurationMs:c.minDurationMs!==void 0?c.minDurationMs:s.minDurationMs,maxDurationMs:c.maxDurationMs!==void 0?c.maxDurationMs:s.maxDurationMs,includeErrors:c.includeErrors??s.includeErrors,includeSuccesses:c.includeSuccesses??s.includeSuccesses,sortBy:c.sortBy??s.sortBy,sortDir:c.sortDir??s.sortDir}:{methods:new Set(s.methods),path:s.path,minDurationMs:s.minDurationMs,maxDurationMs:s.maxDurationMs,includeErrors:s.includeErrors,includeSuccesses:s.includeSuccesses,sortBy:s.sortBy,sortDir:s.sortDir}}function Df(s){if(!Array.isArray(s))return[];const c=Date.now();return s.slice(0,Ks).map((u,m)=>zf(u,c-m*1e3)).filter(Boolean)}function rc(s){if(!s)return null;const c=Number(s);return Number.isFinite(c)?c:null}function mc(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2)}function zf(s,c){if(!s||typeof s!="object")return null;const u=String(s.method||"").toUpperCase(),m=typeof s.path=="string"?s.path:"",x=Number(s.durationMs);if(!u||!m||!Number.isFinite(x))return null;const E=lc(s.params),P=lc(s.query),S=Hl(s.body),T=Hl(s.output),K=s.status!==void 0&&Number.isFinite(Number(s.status))?Number(s.status):void 0,I=typeof s.timestamp=="number"&&Number.isFinite(s.timestamp)?s.timestamp:c;return{id:typeof s.id=="string"?s.id:mc(),timestamp:I,method:u,path:m,fullUrl:typeof s.fullUrl=="string"&&s.fullUrl?s.fullUrl:m,params:E,query:P,body:S,output:T,status:K,durationMs:Math.max(0,x),error:Hl(s.error)}}function Hl(s){if(s==null)return"";if(typeof s=="string")return s;try{return JSON.stringify(s)}catch{return String(s)}}function lc(s){return!s||typeof s!="object"||Array.isArray(s)?{}:Object.fromEntries(Object.entries(s).map(([c,u])=>[c,Hl(u)]))}function vc(s,c){return`${s.toUpperCase()}::${c}`}function Lf(s){const c={};return s.forEach(u=>{const m=vc(u.method,u.path);c[m]||(c[m]={durations:[],successes:0,total:0,latest:void 0});const x=c[m];x.total+=1,!u.error&&u.status!==void 0&&u.status<400&&(x.successes+=1),x.durations.push(u.durationMs),(!x.latest||u.timestamp>x.latest.timestamp)&&(x.latest=u)}),new Map(Object.entries(c).map(([u,m])=>{var E,P;const x=m.durations.slice().sort((S,T)=>S-T);return[u,{total:m.total,successRate:m.total?m.successes/m.total*100:0,avgDuration:m.durations.reduce((S,T)=>S+T,0)/Math.max(m.durations.length,1),p95Duration:If(x,.95),lastStatus:(E=m.latest)==null?void 0:E.status,lastDuration:(P=m.latest)==null?void 0:P.durationMs}]}))}function Of(s){return s==="timestamp"||s==="path"||s==="duration"}function Ff(s){return s==="asc"||s==="desc"}function If(s,c){if(!s.length)return 0;const u=(s.length-1)*c,m=Math.floor(u),x=Math.ceil(u);if(m===x)return s[m];const E=u-m;return s[m]*(1-E)+s[x]*E}function $l({node:s}){const c=$.useMemo(()=>s?Bf(s):[],[s]),[u,m]=$.useState(new Set),x=$.useMemo(()=>new Map(c.map(I=>[I.path,I])),[c]),E=$.useCallback(I=>{m(z=>{const O=new Set(z);return O.has(I)?O.delete(I):O.add(I),O})},[]),P=$.useCallback(()=>{m(new Set(c.filter(I=>I.hasChildren).map(I=>I.path)))},[c]),S=$.useCallback(()=>{m(new Set)},[]),T=$.useCallback(I=>{let z=I.parentPath;for(;z;){const O=x.get(z);if(O!=null&&O.hasChildren&&!u.has(O.path))return!1;z=O==null?void 0:O.parentPath}return!0},[u,x]);if(!s||c.length===0)return null;const K=c.filter(I=>T(I));return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"schema-actions-inline",children:[a.jsx("button",{className:"expand-all",type:"button",onClick:P,children:"Expand all"}),a.jsx("button",{className:"collapse-all",type:"button",onClick:S,children:"Collapse all"})]}),a.jsxs("table",{className:"schema-table",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"col-name",children:"Field"}),a.jsx("th",{className:"col-type",children:"Type"}),a.jsx("th",{children:"Req"}),a.jsx("th",{children:"Description"})]})}),a.jsx("tbody",{children:K.map(I=>{const z=u.has(I.path);return a.jsxs("tr",{children:[a.jsx("td",{className:"col-name",children:a.jsxs("div",{className:`schema-name-cell schema-depth-${I.depth}`,children:[I.hasChildren?a.jsx("button",{className:"schema-toggle",type:"button","aria-label":z?"Collapse field":"Expand field",onClick:O=>{O.stopPropagation(),E(I.path)},children:z?"▼":"▶"}):a.jsx("span",{className:"schema-toggle-placeholder"}),a.jsx("span",{className:"schema-name-text",children:I.name})]})}),a.jsx("td",{className:"col-type",children:Ys(I.node)}),a.jsx("td",{children:a.jsx("span",{className:`req-badge ${I.node.optional?"req-false":"req-true"}`,children:I.node.optional?"OPT":"REQ"})}),a.jsx("td",{children:a.jsx(Uf,{node:I.node})})]},I.path)})})]})]})}function Uf({node:s}){const c=[];return s.description&&c.push(a.jsx("span",{children:s.description},"desc")),s.kind==="enum"&&Array.isArray(s.enumValues)&&c.push(a.jsxs("span",{children:["Allowed:"," ",s.enumValues.map(u=>a.jsx("code",{children:u},u))]},"enum")),s.kind==="literal"&&s.literal!==void 0&&c.push(a.jsxs("span",{children:["Value: ",a.jsx("code",{children:JSON.stringify(s.literal)})]},"lit")),c.length===0?null:a.jsx($.Fragment,{children:c.map((u,m)=>a.jsxs($.Fragment,{children:[u,m<c.length-1?a.jsx("br",{}):null]},m))})}function Bf(s){return s.kind==="object"&&s.properties?Object.entries(s.properties).flatMap(([c,u])=>Fn(c,u,0,c,void 0)):Fn("value",s,0,"root",void 0)}function Fn(s,c,u,m,x){const E=Gs(c),P=[{name:s,node:c,depth:u,path:m,parentPath:x,hasChildren:E}];return c.kind==="object"&&c.properties?Object.entries(c.properties).forEach(([S,T])=>{P.push(...Fn(S,T,u+1,`${m}.${S}`,m))}):c.kind==="array"&&c.element?P.push(...yc(c.element,u+1,`${m}[]`,m)):c.kind==="union"&&c.union&&c.union.forEach((S,T)=>{P.push(...Fn(`Option ${T+1}`,S,u+1,`${m}.oneof${T}`,m))}),P}function yc(s,c,u,m){return s.kind==="object"&&s.properties?Object.entries(s.properties).flatMap(([x,E])=>Fn(x,E,c,`${u}.${x}`,m)):s.kind==="array"&&s.element?yc(s.element,c,`${u}[]`,m):s.kind==="union"&&s.union?s.union.flatMap((x,E)=>Fn(`Option ${E+1}`,x,c,`${u}.oneof${E}`,m)):[]}function Gs(s){return s.kind==="object"&&s.properties?Object.keys(s.properties).length>0:s.kind==="array"&&s.element?Gs(s.element):s.kind==="union"&&s.union?s.union.some(c=>Gs(c)):!1}function Ys(s){return s?s.kind==="array"?s.element?`array<${Ys(s.element)}>`:"array":s.kind==="union"&&s.union?s.union.map(Ys).join(" | "):s.kind==="literal"?"literal":s.kind==="enum"?"enum":s.kind||"any":"any"}function $f({leaf:s,expanded:c,onToggle:u,onTry:m,onHistory:x}){var I,z,O,W,G,L,q,le,D;const E=(s.method||"GET").toUpperCase(),P=((I=s.cfg)==null?void 0:I.tags)||[],{statsByRoute:S}=Wl(),T=$.useMemo(()=>S.get(vc(E,s.path||"")),[S,E,s.path]),K=Z=>{Z.stopPropagation(),navigator.clipboard&&navigator.clipboard.writeText(s.path||"")};return a.jsxs("article",{className:"endpoint-card","data-expanded":c,children:[a.jsxs("div",{className:"card-header",onClick:u,children:[a.jsx("button",{className:`method-badge m-${E}`,onClick:Z=>{Z.stopPropagation(),m()},children:a.jsx("span",{children:E})}),a.jsxs("div",{className:"path-container","data-path":s.path,children:[a.jsx("span",{className:"path-text",children:s.path}),a.jsx("button",{className:"copy-icon",onClick:K,"aria-label":"Copy path",children:"📋"})]}),a.jsx("div",{className:"tags-container",children:P.map(Z=>a.jsx("span",{className:`status-badge ${Af(Z)}`,children:Z},Z))}),a.jsx("div",{className:"header-spacer"}),a.jsx("div",{className:"expand-icon",children:c?"▼":"▶"})]}),c&&a.jsxs("div",{className:"card-body",children:[a.jsx("div",{className:"section-block",children:a.jsxs("div",{className:"summary-text",children:[a.jsx("strong",{children:((z=s.cfg)==null?void 0:z.summary)||""}),a.jsx("br",{}),a.jsx("span",{className:"description-text",children:((O=s.cfg)==null?void 0:O.description)||""})]})}),a.jsx(Al,{title:"History",onClick:()=>{x()},children:a.jsx(Hf,{stats:T})}),(((W=s.cfg)==null?void 0:W.paramsSchema)||((G=s.cfg)==null?void 0:G.querySchema))&&a.jsxs(Al,{title:"Parameters",children:[a.jsx($l,{node:(L=s.cfg)==null?void 0:L.paramsSchema}),a.jsx($l,{node:(q=s.cfg)==null?void 0:q.querySchema})]}),((le=s.cfg)==null?void 0:le.bodySchema)&&a.jsx(Al,{title:`Request Body ${s.cfg.hasBody?"":"(Optional)"}`,children:a.jsx($l,{node:s.cfg.bodySchema})}),((D=s.cfg)==null?void 0:D.outputSchema)&&a.jsx(Al,{title:"Response Schema",children:a.jsx($l,{node:s.cfg.outputSchema})})]})]})}function Al({title:s,children:c,onClick:u}){const m=u?"section-block highlightOnHover":"section-block";return a.jsxs("div",{className:m,onClick:u?x=>{x.stopPropagation(),u()}:void 0,children:[a.jsx("div",{className:"section-header-row",children:a.jsx("div",{className:"section-title section-title-no-border",children:s})}),c]})}function Af(s){if(s==="not-implemented")return"not-implemented";let c=0;for(let u=0;u<s.length;u++)c=s.charCodeAt(u)+((c<<5)-c);return"tag-"+Math.abs(c%7)}function Hf({stats:s}){if(!s)return a.jsx("div",{className:"history-mini-empty",children:"No history for this endpoint yet."});const c=[{label:"Requests",value:s.total.toLocaleString()},{label:"Success",value:`${Math.round(s.successRate)}%`},{label:"Avg duration",value:Ws(s.avgDuration)},{label:"p95",value:Ws(s.p95Duration)},{label:"Last",value:s.lastDuration===void 0?"—":`${s.lastStatus!==void 0?s.lastStatus:"ERR"} · ${Ws(s.lastDuration)}`}];return a.jsx("div",{className:"endpoint-history-stats",children:c.map(u=>a.jsxs("div",{className:"endpoint-history-stat",children:[a.jsx("div",{className:"endpoint-history-label",children:u.label}),a.jsx("div",{className:"endpoint-history-value",children:u.value})]},u.label))})}function Ws(s){return Number.isFinite(s)?`${Math.round(s)}ms`:"–"}function Vf({allMethods:s,allTags:c,filters:u,onFiltersChange:m}){const x=S=>m({...u,search:S.toLowerCase()}),E=S=>{const T=new Set(u.methods);T.has(S)?T.delete(S):T.add(S),m({...u,methods:T})},P=S=>{const T=new Set(u.tags);T.has(S)?T.delete(S):T.add(S),m({...u,tags:T})};return a.jsxs("div",{className:"filters-row",children:[a.jsxs("div",{className:"left-column",children:[a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Search"}),a.jsxs("div",{className:"search-box",children:[a.jsx("span",{className:"search-icon",children:"🔍"}),a.jsx("input",{type:"text",id:"searchInput",className:"search-input",placeholder:"Filter endpoints...",value:u.search,onChange:S=>x(S.target.value)})]})]}),a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Methods"}),a.jsx("div",{className:"checkbox-group",id:"methodFilters",children:s.map(S=>a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",value:S,checked:u.methods.has(S),onChange:()=>E(S)}),a.jsx("span",{children:S})]},S))})]})]}),a.jsxs("div",{className:"filter-group tag-filters-container",children:[a.jsx("div",{className:"filter-label",children:"Tags"}),a.jsxs("div",{className:"checkbox-group",id:"tagFilters",children:[c.length===0&&a.jsx("div",{className:"no-tags",children:"No tags"}),c.map(S=>a.jsxs("label",{className:"pill-checkbox colored-tag",children:[a.jsx("input",{type:"checkbox",value:S,checked:u.tags.has(S),onChange:()=>P(S)}),a.jsx("span",{className:`tag-filter-pill ${Wf(S)}`,children:S})]},S))]})]})]})}function Wf(s){if(s==="not-implemented")return"not-implemented";let c=0;for(let u=0;u<s.length;u++)c=s.charCodeAt(u)+((c<<5)-c);return"tag-"+Math.abs(c%7)}const On=(s="",c="")=>({id:Math.random().toString(36).slice(2),key:s,value:c}),Qf=s=>{if(!s)return"";const c=s.endsWith("/")&&s.length>1?s.slice(0,-1):s;return c.startsWith("/")?c:`/${c}`},gc=s=>typeof window>"u"?"":window.location.origin+Qf(s);function Xs(s,c){return{baseUrl:gc(c),pathParams:Xf(s.path),queryRows:Jf(s),bodyText:""}}function Kf(s,c,u){const m=Xs(s,u);if(!c)return m;const x={...m.pathParams};c.params&&typeof c.params=="object"&&!Array.isArray(c.params)&&Object.entries(c.params).forEach(([P,S])=>{x[P]=oc(S)});let E=m.queryRows;if(c.query&&typeof c.query=="object"&&!Array.isArray(c.query)){const P=Object.entries(c.query);P.length&&(E=P.map(([S,T])=>On(S,oc(T))))}return{...m,pathParams:x,queryRows:E,bodyText:c.body!==void 0&&c.body!==null?Sc(c.body):m.bodyText}}function qf({leaf:s,onClose:c,inputs:u,onInputsChange:m,onClearInputs:x,baseUrlSuffix:E}){return s?a.jsx(xc,{leaf:s,inputs:u,onInputsChange:m,onClearInputs:x,onClose:c,baseUrlSuffix:E,variant:"overlay"}):null}function Gf(s){return a.jsx(xc,{...s,variant:"inline"})}function xc({leaf:s,onClose:c,inputs:u,onInputsChange:m,onClearInputs:x,headingNote:E,exposeSendRef:P,baseUrlSuffix:S,variant:T}){const[K,I]=$.useState(()=>(u==null?void 0:u.baseUrl)??gc(S)),[z,O]=$.useState((u==null?void 0:u.pathParams)??{}),[W,G]=$.useState((u==null?void 0:u.queryRows)??[On()]),[L,q]=$.useState((u==null?void 0:u.bodyText)??""),[le,D]=$.useState(!1),[Z,te]=$.useState(""),[_e,ae]=$.useState(""),{addEntry:ye}=Wl(),ce=$.useRef(""),ge=$.useMemo(()=>((s==null?void 0:s.method)||"GET").toUpperCase(),[s]),Fe=s?`${ge}::${s.path}`:"";$.useEffect(()=>{const H=Xs(s,S);I((u==null?void 0:u.baseUrl)??H.baseUrl),q((u==null?void 0:u.bodyText)??H.bodyText),O((u==null?void 0:u.pathParams)??H.pathParams),G((u==null?void 0:u.queryRows)??H.queryRows),ce.current!==Fe&&(te(""),ae("")),ce.current=Fe},[S,u==null?void 0:u.baseUrl,u==null?void 0:u.bodyText,u==null?void 0:u.pathParams,u==null?void 0:u.queryRows,s,Fe]),$.useEffect(()=>{m({baseUrl:K,pathParams:z,queryRows:W,bodyText:L})},[K,L,m,z,W]),$.useEffect(()=>{if(P)return P(()=>Ve()),()=>P(null)},[P,Fe,K,L,z,W,ye]);const Ve=async()=>{D(!0),te(""),ae("");const H={...z},w={};let _=(K||"").replace(/\/$/,"")+(s.path||"");Object.entries(H).forEach(([U,b])=>{_=_.replace(":"+U,b).replace("{"+U+"}",b)});const M=W.filter(U=>U.key.trim()).map(U=>{const b=U.key.trim(),ne=U.value.trim();return w[b]=ne,`${encodeURIComponent(b)}=${encodeURIComponent(ne)}`});M.length&&(_+="?"+M.join("&"));const h={};let k;if(["POST","PUT","PATCH"].includes(ge)&&L.trim())try{k=JSON.stringify(JSON.parse(L)),h["Content-Type"]="application/json"}catch{te("Invalid JSON in request body"),D(!1);return}let J=0;try{J=performance.now();const U=await fetch(_,{method:ge,headers:h,body:k}),b=Number(Math.max(performance.now()-J,0).toFixed(1)),ie=(U.headers.get("content-type")||"").includes("application/json")?await U.json():await U.text(),fe=Zf(ie),We=`${U.status} ${U.statusText} · ${b}ms`;te(We),ae(fe),ye({method:ge,path:s.path||"",fullUrl:_,params:H,query:w,body:L,output:fe,status:U.status,durationMs:b,error:U.ok?void 0:`${U.status} ${U.statusText}`})}catch(U){const b=Number(Math.max(performance.now()-J,0).toFixed(1)),ne=(U==null?void 0:U.message)||"Request failed";te("Network error"),ae(ne),ye({method:ge,path:s.path||"",fullUrl:_,params:H,query:w,body:L,output:ne,status:void 0,durationMs:b,error:ne})}finally{D(!1)}},Me=()=>{const H=Xs(s,S);I(H.baseUrl),O(H.pathParams),G(H.queryRows),q(H.bodyText),te(""),ae(""),x(H)},ze=()=>G(H=>[...H,On()]),Ie=(H,w)=>G(_=>_.map(M=>M.id===H?w:M)),Ue=H=>G(w=>{const _=w.filter(M=>M.id!==H);return _.length?_:[On()]}),je=T==="overlay"?"playground-overlay open":"playground-inline";return a.jsxs("div",{className:je,children:[a.jsxs("div",{className:"pg-header",children:[a.jsxs("div",{className:"pg-title",children:[a.jsx("span",{className:`method-badge m-${ge}`,children:ge})," ",a.jsx("span",{children:s.path}),E?a.jsx("span",{className:"pg-note",children:E}):null]}),T==="overlay"&&a.jsx("button",{className:"pg-close",onClick:c,"aria-label":"Close playground",children:"×"})]}),a.jsxs("div",{className:"pg-content",children:[a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Base URL"}),a.jsx("input",{className:"pg-input",value:K,onChange:H=>I(H.target.value),placeholder:"https://api.example.com"})]}),a.jsx(Yf,{path:s.path,params:z,onChange:O}),a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Query Parameters"}),a.jsx("div",{className:"param-grid param-grid-queries",children:W.map(H=>a.jsxs("div",{className:"param-row",children:[a.jsx("input",{className:"pg-input pg-query-key",placeholder:"Name",value:H.key,onChange:w=>Ie(H.id,{...H,key:w.target.value})}),a.jsx("input",{className:"pg-input pg-query-val",placeholder:"Value",value:H.value,onChange:w=>Ie(H.id,{...H,value:w.target.value})}),a.jsx("button",{type:"button",className:"btn-remove-param","aria-label":"Remove query parameter",onClick:()=>Ue(H.id),disabled:W.length===1,children:"×"})]},H.id))}),a.jsx("button",{type:"button",id:"pgAddQuery",className:"btn-add-query",onClick:ze,children:"+ Add Parameter"})]}),["POST","PUT","PATCH"].includes(ge)&&a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Request Body (JSON)"}),a.jsx("textarea",{className:"pg-textarea",value:L,onChange:H=>q(H.target.value),placeholder:"{ ... }"})]}),Z&&a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Response"}),a.jsxs("div",{className:"response-box",children:[a.jsxs("div",{className:"response-meta",children:[Z,a.jsx("button",{type:"button",className:"copy-btn",onClick:()=>{var H;return(H=navigator.clipboard)==null?void 0:H.writeText(_e)},children:"Copy"})]}),a.jsx("pre",{className:"response-pre",children:_e})]})]})]}),a.jsxs("div",{className:"pg-footer",children:[a.jsx("button",{className:"btn-clear",type:"button",onClick:Me,disabled:le,children:"Clear"}),a.jsx("button",{className:"btn-send",onClick:Ve,disabled:le,children:le?"Sending...":"Send Request"})]})]})}function Yf({path:s,params:c,onChange:u}){const m=$.useMemo(()=>wc(s),[s]);return m.length===0?null:a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Path Variables"}),a.jsx("div",{className:"param-grid",children:m.map(x=>a.jsxs("div",{className:"param-row",children:[a.jsx("input",{className:"pg-input pg-input-disabled-label",value:x,disabled:!0}),a.jsx("input",{className:"pg-input pg-path-input",placeholder:"value",value:c[x]||"",onChange:E=>u({...c,[x]:E.target.value})})]},x))})]})}function wc(s){const c=/[:{]([a-zA-Z0-9_]+)}?/g;return[...s.matchAll(c)].map(u=>u[1])}function Xf(s){return wc(s).reduce((u,m)=>({...u,[m]:""}),{})}function Jf(s){var u,m;const c=(m=(u=s.cfg)==null?void 0:u.querySchema)==null?void 0:m.properties;if(c&&typeof c=="object"){const x=Object.keys(c);if(x.length)return x.map(E=>On(E,""))}return[On()]}function Sc(s){try{return JSON.stringify(s,null,2)}catch{return String(s??"")}}function oc(s){return s==null?"":typeof s=="string"||typeof s=="number"||typeof s=="boolean"?String(s):Sc(s)}function Zf(s){if(s===null)return"null";if(typeof s=="string")return s;try{return JSON.stringify(s,null,2)}catch{return String(s)}}function bf({onFiltersChange:s}){const{entries:c,filters:u,setFilters:m,clearHistory:x}=Wl(),[E,P]=$.useState(new Set),S=D=>{s?s(D):m(D)},T=$.useMemo(()=>Array.from(new Set(c.map(D=>D.method))).sort(),[c]),K=$.useMemo(()=>c.filter(D=>cp(D,u)),[c,u]),I=$.useMemo(()=>ap(K,u),[K,u]),z=$.useMemo(()=>rp(K),[K]),O=K.length>0,W=D=>P(Z=>{const te=new Set(Z);return te.has(D)?te.delete(D):te.add(D),te}),G=D=>{const Z=qs(u,D);S(Z)},L=(D,Z)=>{const te=Z===""?null:Number(Z);G({[D]:Number.isFinite(te)?te:null})},q=()=>{const D=Zs();S(D),P(new Set)},le=c.length===0;return a.jsxs("div",{className:"history-view",children:[a.jsxs("div",{className:"history-toolbar",children:[a.jsxs("div",{className:"history-toolbar-grid",children:[a.jsxs("div",{className:"filter-group history-path-filter",children:[a.jsx("div",{className:"filter-label",children:"Path"}),a.jsx("input",{className:"search-input",placeholder:"Filter by path...",value:u.path,onChange:D=>G({path:D.target.value})})]}),a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Operations"}),a.jsxs("div",{className:"checkbox-group history-methods",children:[T.length===0&&a.jsx("div",{className:"no-tags",children:"No requests yet"}),T.map(D=>a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",value:D,checked:u.methods.has(D),onChange:()=>{const Z=new Set(u.methods);Z.has(D)?Z.delete(D):Z.add(D),G({methods:Z})}}),a.jsx("span",{children:D})]},D))]})]}),a.jsxs("div",{className:"filter-group history-duration",children:[a.jsx("div",{className:"filter-label",children:"Duration (ms)"}),a.jsxs("div",{className:"duration-inputs",children:[a.jsx("input",{type:"number",className:"search-input duration-input",placeholder:"Min",value:u.minDurationMs??"",onChange:D=>L("minDurationMs",D.target.value)}),a.jsx("input",{type:"number",className:"search-input duration-input",placeholder:"Max",value:u.maxDurationMs??"",onChange:D=>L("maxDurationMs",D.target.value)})]})]}),a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Result"}),a.jsxs("div",{className:"checkbox-group",children:[a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",checked:u.includeErrors,onChange:D=>G({includeErrors:D.target.checked})}),a.jsx("span",{children:"Errors"})]}),a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",checked:u.includeSuccesses,onChange:D=>G({includeSuccesses:D.target.checked})}),a.jsx("span",{children:"Successes"})]})]})]}),a.jsxs("div",{className:"filter-group history-sort",children:[a.jsx("div",{className:"filter-label",children:"Sort"}),a.jsxs("div",{className:"history-sort-row",children:[a.jsxs("select",{className:"search-input sort-select",value:u.sortBy,onChange:D=>G({sortBy:D.target.value}),children:[a.jsx("option",{value:"timestamp",children:"Timestamp"}),a.jsx("option",{value:"path",children:"Alphabetical"}),a.jsx("option",{value:"duration",children:"Duration"})]}),a.jsx("button",{className:"sort-direction-btn",type:"button",onClick:()=>G({sortDir:u.sortDir==="asc"?"desc":"asc"}),title:`Sort ${u.sortDir==="asc"?"descending":"ascending"}`,children:u.sortDir==="asc"?"↑":"↓"})]})]})]}),a.jsxs("div",{className:"history-toolbar-actions",children:[a.jsx("button",{className:"preset-nav-btn",onClick:()=>fp(I),children:"Export CSV"}),a.jsx("button",{className:"preset-nav-btn ghost-btn",onClick:q,children:"Reset filters"}),a.jsx("button",{className:"preset-nav-btn",onClick:()=>{x(),P(new Set)},disabled:le,children:"Clear history"})]})]}),O&&a.jsxs(a.Fragment,{children:[a.jsx(ep,{analytics:z}),a.jsxs("div",{className:"history-graphs-grid",children:[a.jsx(Nr,{title:"Duration over time",subtitle:"Sorted by send time",empty:!z.timeline.length,className:"graph-timeline",children:a.jsx(tp,{points:z.timeline})}),a.jsx(Nr,{title:"Status mix",subtitle:"Grouped by class",empty:!z.statusBuckets.length,className:"graph-status",children:a.jsx(Qs,{data:z.statusBuckets})}),a.jsx(Nr,{title:"Volume by method",subtitle:"Count + avg duration",empty:!z.methodBuckets.length,className:"graph-volume",children:a.jsx(Qs,{data:z.methodBuckets})}),a.jsx(Nr,{title:"Duration spread by method",subtitle:"Box plots from filtered data",empty:!z.methodBoxPlots.length,className:"graph-boxplot",children:a.jsx(np,{data:z.methodBoxPlots})}),a.jsx(Nr,{title:"Top paths",subtitle:"Most frequent routes",empty:!z.topPaths.length,className:"graph-top-paths",children:a.jsx(Qs,{data:z.topPaths})})]})]}),a.jsx("div",{className:"history-list",children:le?a.jsx("div",{className:"no-results",children:"No requests yet. Run something in the playground."}):K.length===0?a.jsx("div",{className:"no-results",children:"No history matches your filters."}):I.map(D=>{const Z=E.has(D.id),te=!!D.error||D.status!==void 0&&D.status>=400;return a.jsxs("article",{className:"history-card","data-expanded":Z,children:[a.jsxs("header",{className:"history-card-header",onClick:()=>W(D.id),children:[a.jsxs("div",{className:"history-title",children:[a.jsx("span",{className:`method-badge m-${D.method}`,children:D.method}),a.jsx("span",{className:"history-path",children:D.path})]}),a.jsxs("div",{className:"history-meta-row",children:[a.jsx("span",{className:`history-status ${te?"history-status-error":""}`,children:D.status!==void 0?D.status:"ERR"}),a.jsxs("span",{className:"history-chip",children:[D.durationMs,"ms"]}),a.jsx("span",{className:"history-chip",children:ic(D.timestamp)})]}),a.jsx("div",{className:"expand-icon",children:Z?"▼":"▶"})]}),Z&&a.jsxs("div",{className:"history-card-body",children:[a.jsxs("div",{className:"history-meta-grid",children:[a.jsx(Mt,{label:"URL",value:a.jsx("code",{children:D.fullUrl})}),a.jsx(Mt,{label:"Duration",value:`${D.durationMs}ms`}),a.jsx(Mt,{label:"Status",value:D.status!==void 0?String(D.status):"Network error"}),a.jsx(Mt,{label:"Sent at",value:ic(D.timestamp)})]}),a.jsx(Mt,{label:"Path params",value:sc(D.params,"No params")}),a.jsx(Mt,{label:"Query params",value:sc(D.query,"No query params")}),a.jsx(Mt,{label:"Body",value:a.jsx(uc,{text:D.body,placeholder:"—"})}),a.jsx(Mt,{label:"Output",value:a.jsx(uc,{text:D.output,placeholder:"—"})}),D.error?a.jsx(Mt,{label:"Error",value:a.jsx("div",{className:"history-error",children:D.error})}):null]})]},D.id)})})]})}function ep({analytics:s}){const c=[{label:"Requests",value:s.total.toLocaleString(),hint:"Filtered total"},{label:"Success rate",value:`${s.successRate.toFixed(1)}%`,hint:`${s.errorCount} error(s)`,tone:s.successRate>=95?"good":s.successRate>=70?"warn":"bad"},{label:"Avg duration",value:Er(s.avgDuration),hint:`p50 ${Er(s.p50)}`},{label:"p95 duration",value:Er(s.p95),hint:"Tail latency",tone:s.p95<=400?"good":s.p95<=800?"warn":"bad"}];return a.jsx("div",{className:"history-stats-grid",children:c.map(u=>a.jsxs("div",{className:"history-stat-card","data-tone":u.tone||"",children:[a.jsx("div",{className:"history-stat-label",children:u.label}),a.jsx("div",{className:"history-stat-value",children:u.value}),u.hint?a.jsx("div",{className:"history-stat-hint",children:u.hint}):null]},u.label))})}function Nr({title:s,subtitle:c,children:u,empty:m,className:x=""}){return a.jsxs("div",{className:`history-graph-card ${x}`,children:[a.jsx("div",{className:"history-graph-header",children:a.jsxs("div",{children:[a.jsx("div",{className:"history-graph-title",children:s}),c?a.jsx("div",{className:"history-graph-subtitle",children:c}):null]})}),a.jsx("div",{className:"history-graph-body",children:m?a.jsx(Cr,{}):u})]})}function Qs({data:s}){if(!s.length)return a.jsx(Cr,{});const c=Math.max(...s.map(u=>u.value),1);return a.jsx("div",{className:"history-bar-chart",children:s.map(u=>{const m=Math.max(u.value/c*100,4);return a.jsxs("div",{className:"history-bar-row",children:[a.jsx("div",{className:"history-bar-label",children:u.label}),a.jsx("div",{className:"history-bar-track",children:a.jsx("div",{className:`history-bar-fill ${u.tone?`tone-${u.tone}`:""}`,style:{width:`${m}%`}})}),a.jsxs("div",{className:"history-bar-value",children:[u.value,u.hint?a.jsx("span",{className:"history-bar-hint",children:u.hint}):null]})]},u.label)})})}function tp({points:s}){if(!s.length)return a.jsx(Cr,{});const c=Math.max(...s.map(z=>z.value),1),u=240,m=60,x={top:5,right:0,bottom:10,left:10},E=u-x.left-x.right,P=m-x.top-x.bottom,S=s.length>1?E/(s.length-1):0,T=s.map((z,O)=>{const W=x.left+O*S,G=x.top+P-z.value/c*P;return`${O===0?"M":"L"} ${W} ${G}`}).join(" "),K=kc(c),I=up(s);return a.jsx("div",{className:"history-line-wrapper",children:a.jsxs("svg",{className:"history-line-chart",viewBox:`0 0 ${u} ${m}`,preserveAspectRatio:"none",role:"presentation",children:[K.map(z=>{const O=x.top+P-z/c*P;return a.jsxs("g",{children:[a.jsx("line",{x1:0,x2:u-x.right,y1:O,y2:O,className:"history-line-grid"}),a.jsx("text",{x:0,y:O-2,className:"history-line-axis-label",children:Er(z)})]},`y-${z}`)}),a.jsx("line",{x1:x.left,x2:u-x.right,y1:m-x.bottom,y2:m-x.bottom,className:"history-line-axis"}),a.jsx("path",{d:T,className:"history-line-path"}),s.map((z,O)=>{const W=x.left+O*S,G=x.top+P-z.value/c*P;return a.jsx("circle",{cx:W,cy:G,r:1,className:`history-line-dot ${z.isError?"dot-error":""}`},`${z.label}-${O}`)}),I.map(z=>{const O=x.left+z.index*S;return a.jsxs("g",{children:[a.jsx("line",{x1:O,x2:O,y1:x.top,y2:m-x.bottom,className:"history-line-grid vertical"}),a.jsx("text",{x:O,y:m-4,className:"history-line-axis-label x-axis",children:dp(z.timestamp)})]},`x-${z.index}`)})]})})}function np({data:s}){if(!s.length)return a.jsx(Cr,{});const c=Math.max(...s.map(u=>u.max),0);return c<=0?a.jsx(Cr,{}):a.jsxs("div",{className:"history-boxplot-vertical",children:[a.jsx("div",{className:"boxplot-scale",children:kc(c).map(u=>{const m=u/c*100;return a.jsxs("div",{className:"scale-row",style:{bottom:`${m}%`},children:[a.jsx("span",{className:"scale-label",children:Er(u)}),a.jsx("span",{className:"scale-line"})]},u)})}),a.jsx("div",{className:"boxplot-columns",children:s.map(u=>{const m=u.min/c*100,x=u.max/c*100,E=u.q1/c*100,P=Math.max((u.q3-u.q1)/c*100,2),S=u.median/c*100;return a.jsx("div",{className:"boxplot-column",children:a.jsxs("div",{className:"boxplot-vert-track",children:[a.jsx("div",{className:"boxplot-vert-whisker",style:{bottom:`${m}%`,height:`${Math.max(x-m,2)}%`}}),a.jsx("div",{className:"boxplot-vert-box",style:{bottom:`${E}%`,height:`${P}%`}}),a.jsx("div",{className:"boxplot-vert-median",style:{bottom:`${S}%`}})]})},u.label)})}),a.jsx("div",{className:"boxplot-columns",children:s.map(u=>a.jsxs("div",{className:"boxplot-column",children:[a.jsx("div",{className:"boxplot-col-label",children:u.label}),a.jsxs("div",{className:"boxplot-col-meta",children:[u.sampleSize," sample",u.sampleSize===1?"":"s"]})]},u.label))})]})}function Cr(){return a.jsx("div",{className:"history-graph-empty",children:"Not enough data"})}function rp(s){if(!s.length)return{total:0,successRate:0,errorCount:0,avgDuration:0,p50:0,p95:0,methodBuckets:[],statusBuckets:[],topPaths:[],methodBoxPlots:[],timeline:[]};const c=s.length,u=s.map(L=>L.durationMs).filter(L=>Number.isFinite(L)),m=u.slice().sort((L,q)=>L-q),x=u.reduce((L,q)=>L+q,0)/Math.max(u.length,1),E=jr(m,.5),P=jr(m,.95),S=s.filter(L=>!Vl(L)).length,T=c-S,K=c?S/c*100:0,I=s.slice().sort((L,q)=>L.timestamp-q.timestamp).map(L=>({value:L.durationMs,label:L.path,isError:Vl(L),status:L.status,timestamp:L.timestamp})),z=lp(s),O=op(s),W=sp(s),G=ip(s);return{total:c,successRate:K,errorCount:T,avgDuration:x,p50:E,p95:P,methodBuckets:z,statusBuckets:O,topPaths:W,methodBoxPlots:G,timeline:I}}function lp(s){const c={};return s.forEach(u=>{const m=u.method;c[m]||(c[m]={count:0,durations:[]}),c[m].count+=1,c[m].durations.push(u.durationMs)}),Object.entries(c).map(([u,m])=>{const x=m.durations.reduce((E,P)=>E+P,0)/Math.max(m.durations.length,1);return{label:u,value:m.count,hint:`${Math.round(x)}ms avg`,tone:void 0}}).sort((u,m)=>m.value-u.value||u.label.localeCompare(m.label))}function op(s){const c={"2xx":{label:"2xx",value:0,tone:"good"},"3xx":{label:"3xx",value:0,tone:"warn"},"4xx":{label:"4xx",value:0,tone:"warn"},"5xx":{label:"5xx",value:0,tone:"bad"},Error:{label:"Error",value:0,tone:"bad"}};return s.forEach(u=>{if(u.error&&!u.status){c.Error.value+=1;return}if(u.status===void 0){c.Error.value+=1;return}u.status>=500?c["5xx"].value+=1:u.status>=400?c["4xx"].value+=1:u.status>=300?c["3xx"].value+=1:u.status>=200&&(c["2xx"].value+=1)}),Object.values(c).filter(u=>u.value>0)}function sp(s){const c=new Map;return s.forEach(u=>{c.set(u.path,(c.get(u.path)||0)+1)}),Array.from(c.entries()).map(([u,m])=>({label:u,value:m})).sort((u,m)=>m.value-u.value).slice(0,6)}function ip(s){const c={};return s.forEach(u=>{c[u.method]||(c[u.method]=[]),c[u.method].push(u.durationMs)}),Object.entries(c).map(([u,m])=>{const x=m.slice().sort((E,P)=>E-P);return{label:u,min:x[0],q1:jr(x,.25),median:jr(x,.5),q3:jr(x,.75),max:x[x.length-1],sampleSize:x.length}}).filter(u=>Number.isFinite(u.min)&&Number.isFinite(u.max)).sort((u,m)=>m.sampleSize-u.sampleSize)}function jr(s,c){if(!s.length)return 0;const u=(s.length-1)*c,m=Math.floor(u),x=Math.ceil(u);if(m===x)return s[m];const E=u-m;return s[m]*(1-E)+s[x]*E}function kc(s){if(!Number.isFinite(s)||s<=0)return[0];const u=Array.from({length:5},(m,x)=>Math.round(s*x/4));return Array.from(new Set(u))}function up(s){if(!s.length)return[];const c=[],m=Math.max(1,Math.floor((s.length-1)/(4-1)));for(let E=0;E<s.length;E+=m)c.push(E);return c[c.length-1]!==s.length-1&&c.push(s.length-1),Array.from(new Set(c)).map(E=>({index:E,timestamp:s[E].timestamp}))}function Vl(s){return s.error||s.status===void 0?!0:s.status>=400}function Er(s){return Number.isFinite(s)?s>=1e3?`${Math.round(s)} ms`:`${Math.round(s)} ms`:"–"}function Mt({label:s,value:c}){return a.jsxs("div",{className:"history-detail",children:[a.jsx("div",{className:"history-detail-label",children:s}),a.jsx("div",{className:"history-detail-value",children:c})]})}function sc(s,c){const u=Object.entries(s).filter(([m])=>m.trim().length>0);return u.length===0?a.jsx("div",{className:"history-empty",children:c}):a.jsx("div",{className:"history-kv",children:u.map(([m,x])=>a.jsxs("div",{className:"history-kv-row",children:[a.jsx("span",{className:"history-kv-key",children:m}),a.jsx("span",{className:"history-kv-value",children:x||"—"})]},m))})}function ap(s,c){const u=c.sortBy||"timestamp",m=c.sortDir==="asc"?1:-1;return s.slice().sort((x,E)=>{let P=0;return u==="path"?P=x.path.localeCompare(E.path):u==="duration"?P=x.durationMs-E.durationMs:P=x.timestamp-E.timestamp,P*m})}function cp(s,c){const u=c.methods.size===0||c.methods.has(s.method),m=!c.path||s.path.toLowerCase().includes(c.path.toLowerCase()),x=c.minDurationMs===null||c.minDurationMs===void 0?!0:s.durationMs>=c.minDurationMs,E=c.maxDurationMs===null||c.maxDurationMs===void 0?!0:s.durationMs<=c.maxDurationMs,P=c.includeErrors&&c.includeSuccesses?!0:c.includeErrors?Vl(s):c.includeSuccesses?!Vl(s):!0;return u&&m&&x&&E&&P}function ic(s){return new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function dp(s){return new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function uc({text:s,placeholder:c}){const u=s||"",m=()=>{navigator.clipboard&&navigator.clipboard.writeText(u)};return a.jsxs("div",{className:"copy-pre-wrapper",children:[a.jsx("button",{className:"copy-btn",type:"button",onClick:m,children:"Copy"}),a.jsx("pre",{className:"history-pre",children:u||c||"—"})]})}function fp(s){if(typeof window>"u"||!s.length)return;const c=["timestamp","method","path","status","durationMs","error","url","params","query","body","output"],u=s.map(S=>[new Date(S.timestamp).toISOString(),S.method,S.path,S.status!==void 0?S.status:"ERR",S.durationMs,S.error||"",S.fullUrl,JSON.stringify(S.params),JSON.stringify(S.query),S.body||"",S.output||""]),m=[c.join(","),...u.map(S=>S.map(pp).join(","))].join(`
41
- `),x=new Blob([m],{type:"text/csv;charset=utf-8;"}),E=URL.createObjectURL(x),P=document.createElement("a");P.href=E,P.download="history.csv",document.body.appendChild(P),P.click(),document.body.removeChild(P),setTimeout(()=>URL.revokeObjectURL(E),500)}function pp(s){const c=String(s??"");return c.includes('"')||c.includes(",")||c.includes(`
42
- `)?`"${c.replace(/"/g,'""')}"`:c}function hp({presets:s,leaves:c,baseUrlSuffix:u,onBackToRoutes:m}){const[x,E]=$.useState(null),P=$.useMemo(()=>vp(c),[c]);return s.length?x?a.jsx(mp,{preset:x,leafMap:P,baseUrlSuffix:u,onBack:()=>E(null),onBackToRoutes:m}):a.jsxs("div",{className:"preset-menu",children:[a.jsx("div",{className:"preset-menu-header",children:a.jsxs("div",{children:[a.jsx("h2",{className:"preset-menu-title",children:"Preset Library"}),a.jsx("p",{className:"preset-menu-subtitle",children:"Launch predefined flows without wiring requests by hand."})]})}),a.jsx("div",{className:"preset-grid",children:s.map(S=>a.jsxs("article",{className:"preset-card",onClick:()=>E(S),children:[a.jsx("div",{className:"preset-card-title",children:S.name}),S.description?a.jsx("div",{className:"preset-card-desc",children:S.description}):null,a.jsxs("div",{className:"preset-card-meta",children:[a.jsxs("span",{className:"status-badge",children:[S.ops.length," ops"]}),S.docsGroup?a.jsx("span",{className:"status-badge",children:S.docsGroup}):null]}),a.jsx("div",{className:"preset-tag-row",children:S.tags.map(T=>a.jsx("span",{className:"preset-tag",children:T},T))})]},S.name))})]}):a.jsx("div",{className:"preset-empty",children:a.jsx("p",{children:"No presets provided."})})}function mp({preset:s,leafMap:c,baseUrlSuffix:u,onBack:m,onBackToRoutes:x}){const[E,P]=$.useState({}),S=$.useRef({}),[T,K]=$.useState(!1),[I,z]=$.useState(""),O=s.ops.map((L,q)=>({op:L,idx:q,key:yp(L,q)}));$.useEffect(()=>{P({}),S.current={},z("")},[s]);const W=L=>q=>{q?S.current[L]=q:delete S.current[L]},G=async()=>{K(!0);try{for(const{key:L,op:q}of O){const le=S.current[L];le&&(z(`Running ${String(q.method).toUpperCase()} ${q.path}`),await le())}z("Completed"),setTimeout(()=>z(""),1200)}finally{K(!1)}};return a.jsxs("div",{className:"preset-detail",children:[a.jsx("div",{className:"preset-detail-header",children:a.jsxs("div",{children:[a.jsxs("div",{className:"preset-breadcrumb",children:[a.jsx("button",{className:"link-button",onClick:m,children:"Presets"}),a.jsx("span",{className:"breadcrumb-sep",children:"/"}),a.jsx("span",{children:s.name})]}),a.jsx("h2",{className:"preset-detail-title",children:s.name}),s.description?a.jsx("p",{className:"preset-detail-desc",children:s.description}):null]})}),a.jsxs("div",{className:"preset-meta-row",children:[a.jsxs("div",{className:"preset-tags",children:[s.tags.map(L=>a.jsx("span",{className:"preset-tag",children:L},L)),s.docsGroup?a.jsx("span",{className:"preset-tag ghost-tag",children:s.docsGroup}):null]}),a.jsxs("div",{className:"preset-meta-count",children:[s.ops.length," operation(s)"]})]}),a.jsx("div",{className:"preset-ops-list",children:O.map(({op:L,idx:q,key:le})=>{var ae,ye;const D=String(L.method||"GET").toUpperCase(),Z=c.get(bs(L.method,L.path));if(!Z)return a.jsxs("div",{className:"preset-op-card preset-op-missing",children:[a.jsxs("div",{className:"preset-op-header",children:[a.jsxs("div",{className:"preset-op-title",children:[a.jsx("span",{className:`method-badge m-${D}`,children:D}),a.jsx("span",{className:"preset-op-path",children:L.path})]}),a.jsx("span",{className:"status-badge not-implemented",children:"Not in docs"})]}),a.jsx("p",{className:"preset-op-desc",children:"This operation is not available in the current docs bundle."})]},le);const te=E[le]??Kf(Z,L,u),_e=W(le);return a.jsxs("div",{className:"preset-op-card",children:[a.jsx("div",{className:"preset-op-header",children:a.jsxs("div",{children:[a.jsxs("div",{className:"preset-op-label",children:["Step ",q+1]}),(ae=Z.cfg)!=null&&ae.summary?a.jsx("div",{className:"preset-op-summary",children:Z.cfg.summary}):null,(ye=Z.cfg)!=null&&ye.description?a.jsx("div",{className:"preset-op-desc",children:Z.cfg.description}):null]})}),a.jsx(Gf,{leaf:Z,inputs:te,onInputsChange:ce=>P(ge=>({...ge,[le]:ce})),onClearInputs:ce=>P(ge=>({...ge,[le]:ce})),baseUrlSuffix:u,exposeSendRef:_e})]},le)})}),a.jsxs("div",{className:"preset-run-all",children:[a.jsx("button",{className:"btn-send",onClick:G,disabled:T||s.ops.length===0,children:T?"Running...":"Run all"}),I?a.jsx("span",{className:"preset-run-status",children:I}):null]})]})}function vp(s){const c=new Map;return s.forEach(u=>c.set(bs(u.method,u.path),u)),c}const bs=(s,c)=>`${String(s||"").toUpperCase()}::${c||""}`,yp=(s,c)=>`${bs(s.method,s.path)}::${c}`;function gp(s){return s.reduce((c,u)=>{var x;const m=((x=u.leaf.cfg)==null?void 0:x.docsGroup)||"UNGROUPED";return c[m]||(c[m]=[]),c[m].push(u),c},{})}function ac(s){return s.sort((c,u)=>c==="UNGROUPED"?1:u==="UNGROUPED"?-1:c.localeCompare(u))}function xp(s,c){return(s||"").localeCompare(c||"")}const wp=s=>({search:"",methods:new Set(s),tags:new Set}),cc=(s,c)=>`${(s.method||"GET").toUpperCase()}::${s.path}::${c}`;function Sp({initialLeaves:s,presets:c,basePath:u,baseUrlSuffix:m}){const x=$.useMemo(()=>Np(u),[u]),{filters:E,setFilters:P}=Wl(),S=$.useMemo(()=>Array.from(new Set(s.map(w=>(w.method||"GET").toUpperCase()))).sort(),[s]),T=$.useMemo(()=>Array.from(new Set(s.flatMap(w=>{var _;return Array.isArray((_=w.cfg)==null?void 0:_.tags)?w.cfg.tags:[]}).map(String))).sort(),[s]),[K,I]=$.useState(wp(S)),[z,O]=$.useState(new Set),[W,G]=$.useState(null),[L,q]=$.useState({}),[le,D]=$.useState(()=>dc(x)),Z=$.useMemo(()=>s.map((w,_)=>({leaf:w,idx:_})).filter(({leaf:w})=>{var J,U;const _=(w.method||"GET").toUpperCase(),M=((J=w.cfg)==null?void 0:J.tags)||[],h=(w.path||"").toLowerCase(),k=(((U=w.cfg)==null?void 0:U.summary)||"").toLowerCase();return!(!K.methods.has(_)||K.tags.size>0&&!M.some(b=>K.tags.has(b))||K.search&&!h.includes(K.search)&&!k.includes(K.search))}),[K.methods,K.search,K.tags,s]),te=$.useMemo(()=>gp(Z),[Z]),_e=(w,_)=>{O(M=>{const h=new Set(M);return!h.has(w)?h.add(w):h.delete(w),h})},ae=(w,_)=>{const M=te[w]||[];O(h=>{const k=new Set(h);return M.forEach(({leaf:J,idx:U})=>{const b=cc(J,U);_?k.add(b):k.delete(b)}),k})},ye=Object.keys(te).length>0,ce=W?kp(W):"",ge=$.useCallback(w=>{!ce||!W||q(_=>({..._,[ce]:w}))},[W,ce]),Fe=$.useCallback(w=>{!ce||!W||q(_=>({..._,[ce]:w}))},[W,ce]);$.useEffect(()=>{le!=="routes"&&G(null)},[le]);const Ve=$.useCallback(()=>{if(typeof window>"u")return;const w=new URLSearchParams(window.location.search),_=Tf(w),M=qs(Zs(),_);P(M)},[P]);$.useEffect(()=>{le==="history"&&Ve()},[le,Ve]),$.useEffect(()=>{const w=()=>{const _=dc(x);D(_),_==="history"&&Ve()};return window.addEventListener("popstate",w),()=>window.removeEventListener("popstate",w)},[x,Ve]);const Me=$.useCallback((w,_)=>{const M=_!=null&&_.replace?"replaceState":"pushState";let h=E;w==="history"&&(h=qs(E,_==null?void 0:_.historyFilters),_!=null&&_.historyFilters&&P(h));const k=fc(x,w,h);typeof window<"u"&&window.history[M]({page:w},"",k),D(w)},[x,E,P]),ze=$.useCallback(w=>{P(w);const _=fc(x,"history",w);typeof window<"u"&&window.history.replaceState({page:"history"},"",_)},[x,P]),Ie=c.length>0,Ue=le==="presets",je=le==="history",H=le==="routes";return a.jsxs("div",{className:"page",children:[a.jsxs("header",{className:"header",children:[a.jsx("div",{className:"header-title",children:a.jsx("h1",{children:je?"Request History":Ue?"Presets":"API Reference"})}),a.jsxs("div",{className:"header-actions",children:[a.jsx("button",{className:"preset-nav-btn nav-pill","data-active":H,onClick:()=>Me("routes"),children:"Endpoints"}),a.jsx("button",{className:"preset-nav-btn nav-pill","data-active":Ue,disabled:!Ie,onClick:()=>Me("presets"),children:"Presets"}),a.jsx("button",{className:"preset-nav-btn nav-pill","data-active":je,onClick:()=>Me("history"),children:"History"})]})]}),Ue?a.jsx(hp,{presets:c,leaves:s,baseUrlSuffix:m,onBackToRoutes:()=>Me("routes")}):je?a.jsx(bf,{onFiltersChange:ze}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"controls-container",children:[a.jsx(Vf,{allMethods:S,allTags:T,filters:K,onFiltersChange:I}),a.jsxs("div",{className:"overview-row",id:"overviewList",children:[a.jsx("span",{className:"overview-label",children:"JUMP TO:"}),ac(Object.keys(te)).map(w=>a.jsx("a",{href:`#group-${w}`,className:"group-chip",children:w},w))]})]}),a.jsxs("main",{id:"routeList",children:[!ye&&a.jsx("div",{className:"no-results",children:"No endpoints match filters."}),ac(Object.keys(te)).map(w=>{const _=te[w].sort((M,h)=>xp(M.leaf.path,h.leaf.path));return a.jsxs("div",{className:"api-group",id:`group-${w}`,children:[a.jsxs("div",{className:"group-header",children:[a.jsx("h2",{className:"group-title",children:w}),a.jsxs("div",{className:"group-actions",children:[a.jsx("button",{onClick:()=>ae(w,!0),children:"Expand All"}),a.jsx("button",{onClick:()=>ae(w,!1),children:"Collapse All"})]})]}),a.jsx("div",{className:"cards-list",children:_.map(({leaf:M,idx:h})=>{const k=cc(M,h),J=z.has(k),U=(M.method||"GET").toUpperCase();return a.jsx($f,{leaf:M,expanded:J,onToggle:()=>_e(k),onTry:()=>G(M),onHistory:()=>Me("history",{historyFilters:{methods:new Set([U]),path:M.path||""}})},k)})})]},w)})]}),a.jsx(qf,{leaf:W,inputs:H&&W?L[ce]:void 0,onInputsChange:ge,onClearInputs:Fe,baseUrlSuffix:m,onClose:()=>G(null)})]})]})}const kp=s=>`${(s.method||"GET").toUpperCase()}::${s.path||""}`;function Np(s){return s?_r(Pr(s)):typeof window>"u"?"":_r(Pr(window.location.pathname)).replace(/\/(history|presets)$/,"")||"/"}function dc(s){if(typeof window>"u")return"routes";const c=_r(Pr(window.location.pathname)),u=_r(Pr(s||"")),m=u&&c.startsWith(u)?c.slice(u.length):c,x=m.startsWith("/")?m.slice(1):m;return x.startsWith("presets")?"presets":x.startsWith("history")?"history":"routes"}function fc(s,c,u){const m=_r(Pr(s||"")),E=c==="routes"?m||"/":`${m==="/"?"":m}/${c}`;if(c!=="history")return E||"/";const P=u?Rf(u).toString():"";return P?`${E}?${P}`:E||"/"}function Pr(s){return s?s==="/"?"/":s.endsWith("/")?s.slice(0,-1):s:""}function _r(s){return s?s.startsWith("/")?s:`/${s}`:""}function jp(){const s=document.getElementById("leaf-data");if(!s)return[];try{return JSON.parse(s.textContent||"[]")}catch(c){return console.error("Failed to parse docs data",c),[]}}function Ep(){const s=document.getElementById("preset-data");if(!s)return[];try{return JSON.parse(s.textContent||"[]")}catch(c){return console.error("Failed to parse preset data",c),[]}}function Cp(){const s=document.getElementById("history-data");if(!s)return[];try{const c=JSON.parse(s.textContent||"[]");return Array.isArray(c)?c:[]}catch(c){return console.error("Failed to parse history seed data",c),[]}}function Pp(){const s=document.getElementById("docs-config");if(!s)return{};try{return JSON.parse(s.textContent||"{}")}catch(c){return console.error("Failed to parse docs config",c),{}}}function _p(){const s=document.getElementById("docs-root");if(s)return s;const c=document.createElement("div");return c.id="docs-root",document.body.appendChild(c),c}const Mp=jp(),Rp=Ep(),pc=Pp(),Tp=Cp(),Dp=_p();_f.createRoot(Dp).render(a.jsx(Mf,{initialEntries:Tp,children:a.jsx(Sp,{initialLeaves:Mp,presets:Rp,basePath:pc.docsBasePath,baseUrlSuffix:pc.baseUrlSuffix})}));
40
+ `+o.stack}return{value:e,source:t,stack:l,digest:null}}function as(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function cs(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var qd=typeof WeakMap=="function"?WeakMap:Map;function ra(e,t,n){n=Ct(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){El||(El=!0,Es=r),cs(e,t)},n}function la(e,t,n){n=Ct(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){cs(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){cs(e,t),typeof r!="function"&&(Vt===null?Vt=new Set([this]):Vt.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function oa(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new qd;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=uf.bind(null,e,t,n),t.then(e,e))}function sa(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function ia(e,t,n,r,l){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Ct(-1,1),t.tag=2,At(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var Gd=te.ReactCurrentOwner,Ye=!1;function Qe(e,t,n,r){t.child=e===null?Pu(t,null,n,r):Cn(t,e.child,n,r)}function ua(e,t,n,r,l){n=n.render;var o=t.ref;return _n(t,l),r=ts(e,t,n,r,o,l),n=ns(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Pt(e,t,l)):(ve&&n&&Uo(t),t.flags|=1,Qe(e,t,r,l),t.child)}function aa(e,t,n,r,l){if(e===null){var o=n.type;return typeof o=="function"&&!Ds(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,ca(e,t,o,r,l)):(e=Tl(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,(e.lanes&l)===0){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:tr,n(i,r)&&e.ref===t.ref)return Pt(e,t,l)}return t.flags|=1,e=qt(o,r),e.ref=t.ref,e.return=t,t.child=e}function ca(e,t,n,r,l){if(e!==null){var o=e.memoizedProps;if(tr(o,r)&&e.ref===t.ref)if(Ye=!1,t.pendingProps=r=o,(e.lanes&l)!==0)(e.flags&131072)!==0&&(Ye=!0);else return t.lanes=e.lanes,Pt(e,t,l)}return ds(e,t,n,r,l)}function da(e,t,n){var r=t.pendingProps,l=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},pe(Dn,nt),nt|=n;else{if((n&1073741824)===0)return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,pe(Dn,nt),nt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,pe(Dn,nt),nt|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,pe(Dn,nt),nt|=r;return Qe(e,t,l,n),t.child}function fa(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ds(e,t,n,r,l){var o=Ge(n)?Zt:Be.current;return o=kn(t,o),_n(t,l),n=ts(e,t,n,r,o,l),r=ns(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Pt(e,t,l)):(ve&&r&&Uo(t),t.flags|=1,Qe(e,t,n,l),t.child)}function pa(e,t,n,r,l){if(Ge(n)){var o=!0;nl(t)}else o=!1;if(_n(t,l),t.stateNode===null)wl(e,t),ta(t,n,r),us(t,n,r,l),r=!0;else if(e===null){var i=t.stateNode,d=t.memoizedProps;i.props=d;var f=i.context,g=n.contextType;typeof g=="object"&&g!==null?g=ot(g):(g=Ge(n)?Zt:Be.current,g=kn(t,g));var j=n.getDerivedStateFromProps,C=typeof j=="function"||typeof i.getSnapshotBeforeUpdate=="function";C||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(d!==r||f!==g)&&na(t,i,r,g),$t=!1;var N=t.memoizedState;i.state=N,dl(t,r,i,l),f=t.memoizedState,d!==r||N!==f||qe.current||$t?(typeof j=="function"&&(is(t,n,j,r),f=t.memoizedState),(d=$t||ea(t,n,d,r,N,f,g))?(C||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=f),i.props=r,i.state=f,i.context=g,r=d):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Mu(e,t),d=t.memoizedProps,g=t.type===t.elementType?d:ft(t.type,d),i.props=g,C=t.pendingProps,N=i.context,f=n.contextType,typeof f=="object"&&f!==null?f=ot(f):(f=Ge(n)?Zt:Be.current,f=kn(t,f));var F=n.getDerivedStateFromProps;(j=typeof F=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(d!==C||N!==f)&&na(t,i,r,f),$t=!1,N=t.memoizedState,i.state=N,dl(t,r,i,l);var A=t.memoizedState;d!==C||N!==A||qe.current||$t?(typeof F=="function"&&(is(t,n,F,r),A=t.memoizedState),(g=$t||ea(t,n,g,r,N,A,f)||!1)?(j||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,A,f),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,A,f)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=A),i.props=r,i.state=A,i.context=f,r=g):(typeof i.componentDidUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&N===e.memoizedState||(t.flags|=1024),r=!1)}return fs(e,t,n,r,o,l)}function fs(e,t,n,r,l,o){fa(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return l&&gu(t,n,!1),Pt(e,t,o);r=t.stateNode,Gd.current=t;var d=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Cn(t,e.child,null,o),t.child=Cn(t,null,d,o)):Qe(e,t,d,o),t.memoizedState=r.state,l&&gu(t,n,!0),t.child}function ha(e){var t=e.stateNode;t.pendingContext?vu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&vu(e,t.context,!1),Yo(e,t.containerInfo)}function ma(e,t,n,r,l){return En(),Ho(l),t.flags|=256,Qe(e,t,n,r),t.child}var ps={dehydrated:null,treeContext:null,retryLane:0};function hs(e){return{baseLanes:e,cachePool:null,transitions:null}}function va(e,t,n){var r=t.pendingProps,l=xe.current,o=!1,i=(t.flags&128)!==0,d;if((d=i)||(d=e!==null&&e.memoizedState===null?!1:(l&2)!==0),d?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),pe(xe,l&1),e===null)return Ao(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},(r&1)===0&&o!==null?(o.childLanes=0,o.pendingProps=i):o=Dl(i,r,0,null),e=an(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=hs(n),t.memoizedState=ps,e):ms(t,i));if(l=e.memoizedState,l!==null&&(d=l.dehydrated,d!==null))return Yd(e,t,i,r,d,l,n);if(o){o=r.fallback,i=t.mode,l=e.child,d=l.sibling;var f={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=f,t.deletions=null):(r=qt(l,f),r.subtreeFlags=l.subtreeFlags&14680064),d!==null?o=qt(d,o):(o=an(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?hs(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=ps,r}return o=e.child,e=o.sibling,r=qt(o,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function ms(e,t){return t=Dl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function xl(e,t,n,r){return r!==null&&Ho(r),Cn(t,e.child,null,n),e=ms(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Yd(e,t,n,r,l,o,i){if(n)return t.flags&256?(t.flags&=-257,r=as(Error(u(422))),xl(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,l=t.mode,r=Dl({mode:"visible",children:r.children},l,0,null),o=an(o,l,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,(t.mode&1)!==0&&Cn(t,e.child,null,i),t.child.memoizedState=hs(i),t.memoizedState=ps,o);if((t.mode&1)===0)return xl(e,t,i,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var d=r.dgst;return r=d,o=Error(u(419)),r=as(o,r,void 0),xl(e,t,i,r)}if(d=(i&e.childLanes)!==0,Ye||d){if(r=Te,r!==null){switch(i&-i){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=(l&(r.suspendedLanes|i))!==0?0:l,l!==0&&l!==o.retryLane&&(o.retryLane=l,Et(e,l),mt(r,e,l,-1))}return Ts(),r=as(Error(u(421))),xl(e,t,i,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=af.bind(null,e),l._reactRetry=t,null):(e=o.treeContext,tt=Ft(l.nextSibling),et=t,ve=!0,dt=null,e!==null&&(rt[lt++]=Nt,rt[lt++]=jt,rt[lt++]=bt,Nt=e.id,jt=e.overflow,bt=t),t=ms(t,r.children),t.flags|=4096,t)}function ya(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ko(e.return,t,n)}function vs(e,t,n,r,l){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=l)}function ga(e,t,n){var r=t.pendingProps,l=r.revealOrder,o=r.tail;if(Qe(e,t,r.children,n),r=xe.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ya(e,n,t);else if(e.tag===19)ya(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(pe(xe,r),(t.mode&1)===0)t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&fl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),vs(t,!1,l,n,o);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&fl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}vs(t,!0,n,null,o);break;case"together":vs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function wl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Pt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),ln|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(u(153));if(t.child!==null){for(e=t.child,n=qt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=qt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Xd(e,t,n){switch(t.tag){case 3:ha(t),En();break;case 5:Du(t);break;case 1:Ge(t.type)&&nl(t);break;case 4:Yo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;pe(ul,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(pe(xe,xe.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?va(e,t,n):(pe(xe,xe.current&1),e=Pt(e,t,n),e!==null?e.sibling:null);pe(xe,xe.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return ga(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),pe(xe,xe.current),r)break;return null;case 22:case 23:return t.lanes=0,da(e,t,n)}return Pt(e,t,n)}var xa,ys,wa,Sa;xa=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},ys=function(){},wa=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,nn(gt.current);var o=null;switch(n){case"input":l=Ql(e,l),r=Ql(e,r),o=[];break;case"select":l=M({},l,{value:void 0}),r=M({},r,{value:void 0}),o=[];break;case"textarea":l=Gl(e,l),r=Gl(e,r),o=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=br)}Xl(n,r);var i;n=null;for(g in l)if(!r.hasOwnProperty(g)&&l.hasOwnProperty(g)&&l[g]!=null)if(g==="style"){var d=l[g];for(i in d)d.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else g!=="dangerouslySetInnerHTML"&&g!=="children"&&g!=="suppressContentEditableWarning"&&g!=="suppressHydrationWarning"&&g!=="autoFocus"&&(x.hasOwnProperty(g)?o||(o=[]):(o=o||[]).push(g,null));for(g in r){var f=r[g];if(d=l!=null?l[g]:void 0,r.hasOwnProperty(g)&&f!==d&&(f!=null||d!=null))if(g==="style")if(d){for(i in d)!d.hasOwnProperty(i)||f&&f.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in f)f.hasOwnProperty(i)&&d[i]!==f[i]&&(n||(n={}),n[i]=f[i])}else n||(o||(o=[]),o.push(g,n)),n=f;else g==="dangerouslySetInnerHTML"?(f=f?f.__html:void 0,d=d?d.__html:void 0,f!=null&&d!==f&&(o=o||[]).push(g,f)):g==="children"?typeof f!="string"&&typeof f!="number"||(o=o||[]).push(g,""+f):g!=="suppressContentEditableWarning"&&g!=="suppressHydrationWarning"&&(x.hasOwnProperty(g)?(f!=null&&g==="onScroll"&&he("scroll",e),o||d===f||(o=[])):(o=o||[]).push(g,f))}n&&(o=o||[]).push("style",n);var g=o;(t.updateQueue=g)&&(t.flags|=4)}},Sa=function(e,t,n,r){n!==r&&(t.flags|=4)};function vr(e,t){if(!ve)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ae(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Jd(e,t,n){var r=t.pendingProps;switch(Bo(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ae(t),null;case 1:return Ge(t.type)&&tl(),Ae(t),null;case 3:return r=t.stateNode,Mn(),me(qe),me(Be),Zo(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(sl(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,dt!==null&&(_s(dt),dt=null))),ys(e,t),Ae(t),null;case 5:Xo(t);var l=nn(dr.current);if(n=t.type,e!==null&&t.stateNode!=null)wa(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(u(166));return Ae(t),null}if(e=nn(gt.current),sl(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[yt]=t,r[sr]=o,e=(t.mode&1)!==0,n){case"dialog":he("cancel",r),he("close",r);break;case"iframe":case"object":case"embed":he("load",r);break;case"video":case"audio":for(l=0;l<rr.length;l++)he(rr[l],r);break;case"source":he("error",r);break;case"img":case"image":case"link":he("error",r),he("load",r);break;case"details":he("toggle",r);break;case"input":ti(r,o),he("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},he("invalid",r);break;case"textarea":li(r,o),he("invalid",r)}Xl(n,o),l=null;for(var i in o)if(o.hasOwnProperty(i)){var d=o[i];i==="children"?typeof d=="string"?r.textContent!==d&&(o.suppressHydrationWarning!==!0&&Zr(r.textContent,d,e),l=["children",d]):typeof d=="number"&&r.textContent!==""+d&&(o.suppressHydrationWarning!==!0&&Zr(r.textContent,d,e),l=["children",""+d]):x.hasOwnProperty(i)&&d!=null&&i==="onScroll"&&he("scroll",r)}switch(n){case"input":Mr(r),ri(r,o,!0);break;case"textarea":Mr(r),si(r);break;case"select":case"option":break;default:typeof o.onClick=="function"&&(r.onclick=br)}r=l,t.updateQueue=r,r!==null&&(t.flags|=4)}else{i=l.nodeType===9?l:l.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=ii(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[yt]=t,e[sr]=r,xa(e,t,!1,!1),t.stateNode=e;e:{switch(i=Jl(n,r),n){case"dialog":he("cancel",e),he("close",e),l=r;break;case"iframe":case"object":case"embed":he("load",e),l=r;break;case"video":case"audio":for(l=0;l<rr.length;l++)he(rr[l],e);l=r;break;case"source":he("error",e),l=r;break;case"img":case"image":case"link":he("error",e),he("load",e),l=r;break;case"details":he("toggle",e),l=r;break;case"input":ti(e,r),l=Ql(e,r),he("invalid",e);break;case"option":l=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},l=M({},r,{value:void 0}),he("invalid",e);break;case"textarea":li(e,r),l=Gl(e,r),he("invalid",e);break;default:l=r}Xl(n,l),d=l;for(o in d)if(d.hasOwnProperty(o)){var f=d[o];o==="style"?ci(e,f):o==="dangerouslySetInnerHTML"?(f=f?f.__html:void 0,f!=null&&ui(e,f)):o==="children"?typeof f=="string"?(n!=="textarea"||f!=="")&&Un(e,f):typeof f=="number"&&Un(e,""+f):o!=="suppressContentEditableWarning"&&o!=="suppressHydrationWarning"&&o!=="autoFocus"&&(x.hasOwnProperty(o)?f!=null&&o==="onScroll"&&he("scroll",e):f!=null&&Z(e,o,f,i))}switch(n){case"input":Mr(e),ri(e,r,!1);break;case"textarea":Mr(e),si(e);break;case"option":r.value!=null&&e.setAttribute("value",""+ie(r.value));break;case"select":e.multiple=!!r.multiple,o=r.value,o!=null?cn(e,!!r.multiple,o,!1):r.defaultValue!=null&&cn(e,!!r.multiple,r.defaultValue,!0);break;default:typeof l.onClick=="function"&&(e.onclick=br)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ae(t),null;case 6:if(e&&t.stateNode!=null)Sa(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(u(166));if(n=nn(dr.current),nn(gt.current),sl(t)){if(r=t.stateNode,n=t.memoizedProps,r[yt]=t,(o=r.nodeValue!==n)&&(e=et,e!==null))switch(e.tag){case 3:Zr(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Zr(r.nodeValue,n,(e.mode&1)!==0)}o&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[yt]=t,t.stateNode=r}return Ae(t),null;case 13:if(me(xe),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ve&&tt!==null&&(t.mode&1)!==0&&(t.flags&128)===0)ju(),En(),t.flags|=98560,o=!1;else if(o=sl(t),r!==null&&r.dehydrated!==null){if(e===null){if(!o)throw Error(u(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(u(317));o[yt]=t}else En(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ae(t),o=!1}else dt!==null&&(_s(dt),dt=null),o=!0;if(!o)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(xe.current&1)!==0?Pe===0&&(Pe=3):Ts())),t.updateQueue!==null&&(t.flags|=4),Ae(t),null);case 4:return Mn(),ys(e,t),e===null&&lr(t.stateNode.containerInfo),Ae(t),null;case 10:return Qo(t.type._context),Ae(t),null;case 17:return Ge(t.type)&&tl(),Ae(t),null;case 19:if(me(xe),o=t.memoizedState,o===null)return Ae(t),null;if(r=(t.flags&128)!==0,i=o.rendering,i===null)if(r)vr(o,!1);else{if(Pe!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=fl(e),i!==null){for(t.flags|=128,vr(o,!1),r=i.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)o=n,e=r,o.flags&=14680066,i=o.alternate,i===null?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,o.type=i.type,e=i.dependencies,o.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return pe(xe,xe.current&1|2),t.child}e=e.sibling}o.tail!==null&&ke()>zn&&(t.flags|=128,r=!0,vr(o,!1),t.lanes=4194304)}else{if(!r)if(e=fl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),vr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!ve)return Ae(t),null}else 2*ke()-o.renderingStartTime>zn&&n!==1073741824&&(t.flags|=128,r=!0,vr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ke(),t.sibling=null,n=xe.current,pe(xe,r?n&1|2:n&1),t):(Ae(t),null);case 22:case 23:return Rs(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(nt&1073741824)!==0&&(Ae(t),t.subtreeFlags&6&&(t.flags|=8192)):Ae(t),null;case 24:return null;case 25:return null}throw Error(u(156,t.tag))}function Zd(e,t){switch(Bo(t),t.tag){case 1:return Ge(t.type)&&tl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Mn(),me(qe),me(Be),Zo(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Xo(t),null;case 13:if(me(xe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(u(340));En()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return me(xe),null;case 4:return Mn(),null;case 10:return Qo(t.type._context),null;case 22:case 23:return Rs(),null;case 24:return null;default:return null}}var Sl=!1,He=!1,bd=typeof WeakSet=="function"?WeakSet:Set,B=null;function Tn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Se(e,t,r)}else n.current=null}function gs(e,t,n){try{n()}catch(r){Se(e,t,r)}}var ka=!1;function ef(e,t){if(Ro=Ar,e=eu(),ko(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,d=-1,f=-1,g=0,j=0,C=e,N=null;t:for(;;){for(var F;C!==n||l!==0&&C.nodeType!==3||(d=i+l),C!==o||r!==0&&C.nodeType!==3||(f=i+r),C.nodeType===3&&(i+=C.nodeValue.length),(F=C.firstChild)!==null;)N=C,C=F;for(;;){if(C===e)break t;if(N===n&&++g===l&&(d=i),N===o&&++j===r&&(f=i),(F=C.nextSibling)!==null)break;C=N,N=C.parentNode}C=F}n=d===-1||f===-1?null:{start:d,end:f}}else n=null}n=n||{start:0,end:0}}else n=null;for(To={focusedElem:e,selectionRange:n},Ar=!1,B=t;B!==null;)if(t=B,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,B=e;else for(;B!==null;){t=B;try{var A=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(A!==null){var V=A.memoizedProps,Ne=A.memoizedState,v=t.stateNode,p=v.getSnapshotBeforeUpdate(t.elementType===t.type?V:ft(t.type,V),Ne);v.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(u(163))}}catch(R){Se(t,t.return,R)}if(e=t.sibling,e!==null){e.return=t.return,B=e;break}B=t.return}return A=ka,ka=!1,A}function yr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&gs(t,n,o)}l=l.next}while(l!==r)}}function kl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function xs(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Na(e){var t=e.alternate;t!==null&&(e.alternate=null,Na(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[yt],delete t[sr],delete t[Oo],delete t[Fd],delete t[Id])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ja(e){return e.tag===5||e.tag===3||e.tag===4}function Ea(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ja(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ws(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=br));else if(r!==4&&(e=e.child,e!==null))for(ws(e,t,n),e=e.sibling;e!==null;)ws(e,t,n),e=e.sibling}function Ss(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Ss(e,t,n),e=e.sibling;e!==null;)Ss(e,t,n),e=e.sibling}var Le=null,pt=!1;function Ht(e,t,n){for(n=n.child;n!==null;)Ca(e,t,n),n=n.sibling}function Ca(e,t,n){if(vt&&typeof vt.onCommitFiberUnmount=="function")try{vt.onCommitFiberUnmount(Or,n)}catch{}switch(n.tag){case 5:He||Tn(n,t);case 6:var r=Le,l=pt;Le=null,Ht(e,t,n),Le=r,pt=l,Le!==null&&(pt?(e=Le,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Le.removeChild(n.stateNode));break;case 18:Le!==null&&(pt?(e=Le,n=n.stateNode,e.nodeType===8?Lo(e.parentNode,n):e.nodeType===1&&Lo(e,n),Yn(e)):Lo(Le,n.stateNode));break;case 4:r=Le,l=pt,Le=n.stateNode.containerInfo,pt=!0,Ht(e,t,n),Le=r,pt=l;break;case 0:case 11:case 14:case 15:if(!He&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&gs(n,t,i),l=l.next}while(l!==r)}Ht(e,t,n);break;case 1:if(!He&&(Tn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(d){Se(n,t,d)}Ht(e,t,n);break;case 21:Ht(e,t,n);break;case 22:n.mode&1?(He=(r=He)||n.memoizedState!==null,Ht(e,t,n),He=r):Ht(e,t,n);break;default:Ht(e,t,n)}}function Pa(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new bd),t.forEach(function(r){var l=cf.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function ht(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var l=n[r];try{var o=e,i=t,d=i;e:for(;d!==null;){switch(d.tag){case 5:Le=d.stateNode,pt=!1;break e;case 3:Le=d.stateNode.containerInfo,pt=!0;break e;case 4:Le=d.stateNode.containerInfo,pt=!0;break e}d=d.return}if(Le===null)throw Error(u(160));Ca(o,i,l),Le=null,pt=!1;var f=l.alternate;f!==null&&(f.return=null),l.return=null}catch(g){Se(l,t,g)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)_a(t,e),t=t.sibling}function _a(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ht(t,e),wt(e),r&4){try{yr(3,e,e.return),kl(3,e)}catch(V){Se(e,e.return,V)}try{yr(5,e,e.return)}catch(V){Se(e,e.return,V)}}break;case 1:ht(t,e),wt(e),r&512&&n!==null&&Tn(n,n.return);break;case 5:if(ht(t,e),wt(e),r&512&&n!==null&&Tn(n,n.return),e.flags&32){var l=e.stateNode;try{Un(l,"")}catch(V){Se(e,e.return,V)}}if(r&4&&(l=e.stateNode,l!=null)){var o=e.memoizedProps,i=n!==null?n.memoizedProps:o,d=e.type,f=e.updateQueue;if(e.updateQueue=null,f!==null)try{d==="input"&&o.type==="radio"&&o.name!=null&&ni(l,o),Jl(d,i);var g=Jl(d,o);for(i=0;i<f.length;i+=2){var j=f[i],C=f[i+1];j==="style"?ci(l,C):j==="dangerouslySetInnerHTML"?ui(l,C):j==="children"?Un(l,C):Z(l,j,C,g)}switch(d){case"input":Kl(l,o);break;case"textarea":oi(l,o);break;case"select":var N=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!o.multiple;var F=o.value;F!=null?cn(l,!!o.multiple,F,!1):N!==!!o.multiple&&(o.defaultValue!=null?cn(l,!!o.multiple,o.defaultValue,!0):cn(l,!!o.multiple,o.multiple?[]:"",!1))}l[sr]=o}catch(V){Se(e,e.return,V)}}break;case 6:if(ht(t,e),wt(e),r&4){if(e.stateNode===null)throw Error(u(162));l=e.stateNode,o=e.memoizedProps;try{l.nodeValue=o}catch(V){Se(e,e.return,V)}}break;case 3:if(ht(t,e),wt(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Yn(t.containerInfo)}catch(V){Se(e,e.return,V)}break;case 4:ht(t,e),wt(e);break;case 13:ht(t,e),wt(e),l=e.child,l.flags&8192&&(o=l.memoizedState!==null,l.stateNode.isHidden=o,!o||l.alternate!==null&&l.alternate.memoizedState!==null||(js=ke())),r&4&&Pa(e);break;case 22:if(j=n!==null&&n.memoizedState!==null,e.mode&1?(He=(g=He)||j,ht(t,e),He=g):ht(t,e),wt(e),r&8192){if(g=e.memoizedState!==null,(e.stateNode.isHidden=g)&&!j&&(e.mode&1)!==0)for(B=e,j=e.child;j!==null;){for(C=B=j;B!==null;){switch(N=B,F=N.child,N.tag){case 0:case 11:case 14:case 15:yr(4,N,N.return);break;case 1:Tn(N,N.return);var A=N.stateNode;if(typeof A.componentWillUnmount=="function"){r=N,n=N.return;try{t=r,A.props=t.memoizedProps,A.state=t.memoizedState,A.componentWillUnmount()}catch(V){Se(r,n,V)}}break;case 5:Tn(N,N.return);break;case 22:if(N.memoizedState!==null){Ta(C);continue}}F!==null?(F.return=N,B=F):Ta(C)}j=j.sibling}e:for(j=null,C=e;;){if(C.tag===5){if(j===null){j=C;try{l=C.stateNode,g?(o=l.style,typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"):(d=C.stateNode,f=C.memoizedProps.style,i=f!=null&&f.hasOwnProperty("display")?f.display:null,d.style.display=ai("display",i))}catch(V){Se(e,e.return,V)}}}else if(C.tag===6){if(j===null)try{C.stateNode.nodeValue=g?"":C.memoizedProps}catch(V){Se(e,e.return,V)}}else if((C.tag!==22&&C.tag!==23||C.memoizedState===null||C===e)&&C.child!==null){C.child.return=C,C=C.child;continue}if(C===e)break e;for(;C.sibling===null;){if(C.return===null||C.return===e)break e;j===C&&(j=null),C=C.return}j===C&&(j=null),C.sibling.return=C.return,C=C.sibling}}break;case 19:ht(t,e),wt(e),r&4&&Pa(e);break;case 21:break;default:ht(t,e),wt(e)}}function wt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(ja(n)){var r=n;break e}n=n.return}throw Error(u(160))}switch(r.tag){case 5:var l=r.stateNode;r.flags&32&&(Un(l,""),r.flags&=-33);var o=Ea(e);Ss(e,o,l);break;case 3:case 4:var i=r.stateNode.containerInfo,d=Ea(e);ws(e,d,i);break;default:throw Error(u(161))}}catch(f){Se(e,e.return,f)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function tf(e,t,n){B=e,Ma(e)}function Ma(e,t,n){for(var r=(e.mode&1)!==0;B!==null;){var l=B,o=l.child;if(l.tag===22&&r){var i=l.memoizedState!==null||Sl;if(!i){var d=l.alternate,f=d!==null&&d.memoizedState!==null||He;d=Sl;var g=He;if(Sl=i,(He=f)&&!g)for(B=l;B!==null;)i=B,f=i.child,i.tag===22&&i.memoizedState!==null?Da(l):f!==null?(f.return=i,B=f):Da(l);for(;o!==null;)B=o,Ma(o),o=o.sibling;B=l,Sl=d,He=g}Ra(e)}else(l.subtreeFlags&8772)!==0&&o!==null?(o.return=l,B=o):Ra(e)}}function Ra(e){for(;B!==null;){var t=B;if((t.flags&8772)!==0){var n=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:He||kl(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!He)if(n===null)r.componentDidMount();else{var l=t.elementType===t.type?n.memoizedProps:ft(t.type,n.memoizedProps);r.componentDidUpdate(l,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;o!==null&&Tu(t,o,r);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Tu(t,i,n)}break;case 5:var d=t.stateNode;if(n===null&&t.flags&4){n=d;var f=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":f.autoFocus&&n.focus();break;case"img":f.src&&(n.src=f.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var g=t.alternate;if(g!==null){var j=g.memoizedState;if(j!==null){var C=j.dehydrated;C!==null&&Yn(C)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(u(163))}He||t.flags&512&&xs(t)}catch(N){Se(t,t.return,N)}}if(t===e){B=null;break}if(n=t.sibling,n!==null){n.return=t.return,B=n;break}B=t.return}}function Ta(e){for(;B!==null;){var t=B;if(t===e){B=null;break}var n=t.sibling;if(n!==null){n.return=t.return,B=n;break}B=t.return}}function Da(e){for(;B!==null;){var t=B;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{kl(4,t)}catch(f){Se(t,n,f)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var l=t.return;try{r.componentDidMount()}catch(f){Se(t,l,f)}}var o=t.return;try{xs(t)}catch(f){Se(t,o,f)}break;case 5:var i=t.return;try{xs(t)}catch(f){Se(t,i,f)}}}catch(f){Se(t,t.return,f)}if(t===e){B=null;break}var d=t.sibling;if(d!==null){d.return=t.return,B=d;break}B=t.return}}var nf=Math.ceil,Nl=te.ReactCurrentDispatcher,ks=te.ReactCurrentOwner,it=te.ReactCurrentBatchConfig,oe=0,Te=null,Ee=null,Oe=0,nt=0,Dn=It(0),Pe=0,gr=null,ln=0,jl=0,Ns=0,xr=null,Xe=null,js=0,zn=1/0,_t=null,El=!1,Es=null,Vt=null,Cl=!1,Wt=null,Pl=0,wr=0,Cs=null,_l=-1,Ml=0;function Ke(){return(oe&6)!==0?ke():_l!==-1?_l:_l=ke()}function Qt(e){return(e.mode&1)===0?1:(oe&2)!==0&&Oe!==0?Oe&-Oe:Bd.transition!==null?(Ml===0&&(Ml=Ei()),Ml):(e=ue,e!==0||(e=window.event,e=e===void 0?16:Li(e.type)),e)}function mt(e,t,n,r){if(50<wr)throw wr=0,Cs=null,Error(u(185));Wn(e,n,r),((oe&2)===0||e!==Te)&&(e===Te&&((oe&2)===0&&(jl|=n),Pe===4&&Kt(e,Oe)),Je(e,r),n===1&&oe===0&&(t.mode&1)===0&&(zn=ke()+500,rl&&Bt()))}function Je(e,t){var n=e.callbackNode;Bc(e,t);var r=Ur(e,e===Te?Oe:0);if(r===0)n!==null&&ki(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&ki(n),t===1)e.tag===0?Ud(La.bind(null,e)):xu(La.bind(null,e)),Ld(function(){(oe&6)===0&&Bt()}),n=null;else{switch(Ci(r)){case 1:n=lo;break;case 4:n=Ni;break;case 16:n=Lr;break;case 536870912:n=ji;break;default:n=Lr}n=Ha(n,za.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function za(e,t){if(_l=-1,Ml=0,(oe&6)!==0)throw Error(u(327));var n=e.callbackNode;if(Ln()&&e.callbackNode!==n)return null;var r=Ur(e,e===Te?Oe:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||t)t=Rl(e,r);else{t=r;var l=oe;oe|=2;var o=Fa();(Te!==e||Oe!==t)&&(_t=null,zn=ke()+500,sn(e,t));do try{of();break}catch(d){Oa(e,d)}while(!0);Wo(),Nl.current=o,oe=l,Ee!==null?t=0:(Te=null,Oe=0,t=Pe)}if(t!==0){if(t===2&&(l=oo(e),l!==0&&(r=l,t=Ps(e,l))),t===1)throw n=gr,sn(e,0),Kt(e,r),Je(e,ke()),n;if(t===6)Kt(e,r);else{if(l=e.current.alternate,(r&30)===0&&!rf(l)&&(t=Rl(e,r),t===2&&(o=oo(e),o!==0&&(r=o,t=Ps(e,o))),t===1))throw n=gr,sn(e,0),Kt(e,r),Je(e,ke()),n;switch(e.finishedWork=l,e.finishedLanes=r,t){case 0:case 1:throw Error(u(345));case 2:un(e,Xe,_t);break;case 3:if(Kt(e,r),(r&130023424)===r&&(t=js+500-ke(),10<t)){if(Ur(e,0)!==0)break;if(l=e.suspendedLanes,(l&r)!==r){Ke(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=zo(un.bind(null,e,Xe,_t),t);break}un(e,Xe,_t);break;case 4:if(Kt(e,r),(r&4194240)===r)break;for(t=e.eventTimes,l=-1;0<r;){var i=31-at(r);o=1<<i,i=t[i],i>l&&(l=i),r&=~o}if(r=l,r=ke()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*nf(r/1960))-r,10<r){e.timeoutHandle=zo(un.bind(null,e,Xe,_t),r);break}un(e,Xe,_t);break;case 5:un(e,Xe,_t);break;default:throw Error(u(329))}}}return Je(e,ke()),e.callbackNode===n?za.bind(null,e):null}function Ps(e,t){var n=xr;return e.current.memoizedState.isDehydrated&&(sn(e,t).flags|=256),e=Rl(e,t),e!==2&&(t=Xe,Xe=n,t!==null&&_s(t)),e}function _s(e){Xe===null?Xe=e:Xe.push.apply(Xe,e)}function rf(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var l=n[r],o=l.getSnapshot;l=l.value;try{if(!ct(o(),l))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Kt(e,t){for(t&=~Ns,t&=~jl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-at(t),r=1<<n;e[n]=-1,t&=~r}}function La(e){if((oe&6)!==0)throw Error(u(327));Ln();var t=Ur(e,0);if((t&1)===0)return Je(e,ke()),null;var n=Rl(e,t);if(e.tag!==0&&n===2){var r=oo(e);r!==0&&(t=r,n=Ps(e,r))}if(n===1)throw n=gr,sn(e,0),Kt(e,t),Je(e,ke()),n;if(n===6)throw Error(u(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,un(e,Xe,_t),Je(e,ke()),null}function Ms(e,t){var n=oe;oe|=1;try{return e(t)}finally{oe=n,oe===0&&(zn=ke()+500,rl&&Bt())}}function on(e){Wt!==null&&Wt.tag===0&&(oe&6)===0&&Ln();var t=oe;oe|=1;var n=it.transition,r=ue;try{if(it.transition=null,ue=1,e)return e()}finally{ue=r,it.transition=n,oe=t,(oe&6)===0&&Bt()}}function Rs(){nt=Dn.current,me(Dn)}function sn(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,zd(n)),Ee!==null)for(n=Ee.return;n!==null;){var r=n;switch(Bo(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&tl();break;case 3:Mn(),me(qe),me(Be),Zo();break;case 5:Xo(r);break;case 4:Mn();break;case 13:me(xe);break;case 19:me(xe);break;case 10:Qo(r.type._context);break;case 22:case 23:Rs()}n=n.return}if(Te=e,Ee=e=qt(e.current,null),Oe=nt=t,Pe=0,gr=null,Ns=jl=ln=0,Xe=xr=null,tn!==null){for(t=0;t<tn.length;t++)if(n=tn[t],r=n.interleaved,r!==null){n.interleaved=null;var l=r.next,o=n.pending;if(o!==null){var i=o.next;o.next=l,r.next=i}n.pending=r}tn=null}return e}function Oa(e,t){do{var n=Ee;try{if(Wo(),pl.current=yl,hl){for(var r=we.memoizedState;r!==null;){var l=r.queue;l!==null&&(l.pending=null),r=r.next}hl=!1}if(rn=0,Re=Ce=we=null,fr=!1,pr=0,ks.current=null,n===null||n.return===null){Pe=1,gr=t,Ee=null;break}e:{var o=e,i=n.return,d=n,f=t;if(t=Oe,d.flags|=32768,f!==null&&typeof f=="object"&&typeof f.then=="function"){var g=f,j=d,C=j.tag;if((j.mode&1)===0&&(C===0||C===11||C===15)){var N=j.alternate;N?(j.updateQueue=N.updateQueue,j.memoizedState=N.memoizedState,j.lanes=N.lanes):(j.updateQueue=null,j.memoizedState=null)}var F=sa(i);if(F!==null){F.flags&=-257,ia(F,i,d,o,t),F.mode&1&&oa(o,g,t),t=F,f=g;var A=t.updateQueue;if(A===null){var V=new Set;V.add(f),t.updateQueue=V}else A.add(f);break e}else{if((t&1)===0){oa(o,g,t),Ts();break e}f=Error(u(426))}}else if(ve&&d.mode&1){var Ne=sa(i);if(Ne!==null){(Ne.flags&65536)===0&&(Ne.flags|=256),ia(Ne,i,d,o,t),Ho(Rn(f,d));break e}}o=f=Rn(f,d),Pe!==4&&(Pe=2),xr===null?xr=[o]:xr.push(o),o=i;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var v=ra(o,f,t);Ru(o,v);break e;case 1:d=f;var p=o.type,y=o.stateNode;if((o.flags&128)===0&&(typeof p.getDerivedStateFromError=="function"||y!==null&&typeof y.componentDidCatch=="function"&&(Vt===null||!Vt.has(y)))){o.flags|=65536,t&=-t,o.lanes|=t;var R=la(o,d,t);Ru(o,R);break e}}o=o.return}while(o!==null)}Ua(n)}catch(Q){t=Q,Ee===n&&n!==null&&(Ee=n=n.return);continue}break}while(!0)}function Fa(){var e=Nl.current;return Nl.current=yl,e===null?yl:e}function Ts(){(Pe===0||Pe===3||Pe===2)&&(Pe=4),Te===null||(ln&268435455)===0&&(jl&268435455)===0||Kt(Te,Oe)}function Rl(e,t){var n=oe;oe|=2;var r=Fa();(Te!==e||Oe!==t)&&(_t=null,sn(e,t));do try{lf();break}catch(l){Oa(e,l)}while(!0);if(Wo(),oe=n,Nl.current=r,Ee!==null)throw Error(u(261));return Te=null,Oe=0,Pe}function lf(){for(;Ee!==null;)Ia(Ee)}function of(){for(;Ee!==null&&!Rc();)Ia(Ee)}function Ia(e){var t=Aa(e.alternate,e,nt);e.memoizedProps=e.pendingProps,t===null?Ua(e):Ee=t,ks.current=null}function Ua(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&32768)===0){if(n=Jd(n,t,nt),n!==null){Ee=n;return}}else{if(n=Zd(n,t),n!==null){n.flags&=32767,Ee=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Pe=6,Ee=null;return}}if(t=t.sibling,t!==null){Ee=t;return}Ee=t=e}while(t!==null);Pe===0&&(Pe=5)}function un(e,t,n){var r=ue,l=it.transition;try{it.transition=null,ue=1,sf(e,t,n,r)}finally{it.transition=l,ue=r}return null}function sf(e,t,n,r){do Ln();while(Wt!==null);if((oe&6)!==0)throw Error(u(327));n=e.finishedWork;var l=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(u(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if($c(e,o),e===Te&&(Ee=Te=null,Oe=0),(n.subtreeFlags&2064)===0&&(n.flags&2064)===0||Cl||(Cl=!0,Ha(Lr,function(){return Ln(),null})),o=(n.flags&15990)!==0,(n.subtreeFlags&15990)!==0||o){o=it.transition,it.transition=null;var i=ue;ue=1;var d=oe;oe|=4,ks.current=null,ef(e,n),_a(n,e),Cd(To),Ar=!!Ro,To=Ro=null,e.current=n,tf(n),Tc(),oe=d,ue=i,it.transition=o}else e.current=n;if(Cl&&(Cl=!1,Wt=e,Pl=l),o=e.pendingLanes,o===0&&(Vt=null),Lc(n.stateNode),Je(e,ke()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)l=t[n],r(l.value,{componentStack:l.stack,digest:l.digest});if(El)throw El=!1,e=Es,Es=null,e;return(Pl&1)!==0&&e.tag!==0&&Ln(),o=e.pendingLanes,(o&1)!==0?e===Cs?wr++:(wr=0,Cs=e):wr=0,Bt(),null}function Ln(){if(Wt!==null){var e=Ci(Pl),t=it.transition,n=ue;try{if(it.transition=null,ue=16>e?16:e,Wt===null)var r=!1;else{if(e=Wt,Wt=null,Pl=0,(oe&6)!==0)throw Error(u(331));var l=oe;for(oe|=4,B=e.current;B!==null;){var o=B,i=o.child;if((B.flags&16)!==0){var d=o.deletions;if(d!==null){for(var f=0;f<d.length;f++){var g=d[f];for(B=g;B!==null;){var j=B;switch(j.tag){case 0:case 11:case 15:yr(8,j,o)}var C=j.child;if(C!==null)C.return=j,B=C;else for(;B!==null;){j=B;var N=j.sibling,F=j.return;if(Na(j),j===g){B=null;break}if(N!==null){N.return=F,B=N;break}B=F}}}var A=o.alternate;if(A!==null){var V=A.child;if(V!==null){A.child=null;do{var Ne=V.sibling;V.sibling=null,V=Ne}while(V!==null)}}B=o}}if((o.subtreeFlags&2064)!==0&&i!==null)i.return=o,B=i;else e:for(;B!==null;){if(o=B,(o.flags&2048)!==0)switch(o.tag){case 0:case 11:case 15:yr(9,o,o.return)}var v=o.sibling;if(v!==null){v.return=o.return,B=v;break e}B=o.return}}var p=e.current;for(B=p;B!==null;){i=B;var y=i.child;if((i.subtreeFlags&2064)!==0&&y!==null)y.return=i,B=y;else e:for(i=p;B!==null;){if(d=B,(d.flags&2048)!==0)try{switch(d.tag){case 0:case 11:case 15:kl(9,d)}}catch(Q){Se(d,d.return,Q)}if(d===i){B=null;break e}var R=d.sibling;if(R!==null){R.return=d.return,B=R;break e}B=d.return}}if(oe=l,Bt(),vt&&typeof vt.onPostCommitFiberRoot=="function")try{vt.onPostCommitFiberRoot(Or,e)}catch{}r=!0}return r}finally{ue=n,it.transition=t}}return!1}function Ba(e,t,n){t=Rn(n,t),t=ra(e,t,1),e=At(e,t,1),t=Ke(),e!==null&&(Wn(e,1,t),Je(e,t))}function Se(e,t,n){if(e.tag===3)Ba(e,e,n);else for(;t!==null;){if(t.tag===3){Ba(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Vt===null||!Vt.has(r))){e=Rn(n,e),e=la(t,e,1),t=At(t,e,1),e=Ke(),t!==null&&(Wn(t,1,e),Je(t,e));break}}t=t.return}}function uf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=Ke(),e.pingedLanes|=e.suspendedLanes&n,Te===e&&(Oe&n)===n&&(Pe===4||Pe===3&&(Oe&130023424)===Oe&&500>ke()-js?sn(e,0):Ns|=n),Je(e,t)}function $a(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var n=Ke();e=Et(e,t),e!==null&&(Wn(e,t,n),Je(e,n))}function af(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$a(e,n)}function cf(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(u(314))}r!==null&&r.delete(t),$a(e,n)}var Aa;Aa=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qe.current)Ye=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Ye=!1,Xd(e,t,n);Ye=(e.flags&131072)!==0}else Ye=!1,ve&&(t.flags&1048576)!==0&&wu(t,ol,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;wl(e,t),e=t.pendingProps;var l=kn(t,Be.current);_n(t,n),l=ts(null,t,r,e,l,n);var o=ns();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ge(r)?(o=!0,nl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Go(t),l.updater=gl,t.stateNode=l,l._reactInternals=t,us(t,r,e,n),t=fs(null,t,r,!0,o,n)):(t.tag=0,ve&&o&&Uo(t),Qe(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(wl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=ff(r),e=ft(r,e),l){case 0:t=ds(null,t,r,e,n);break e;case 1:t=pa(null,t,r,e,n);break e;case 11:t=ua(null,t,r,e,n);break e;case 14:t=aa(null,t,r,ft(r.type,e),n);break e}throw Error(u(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),ds(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),pa(e,t,r,l,n);case 3:e:{if(ha(t),e===null)throw Error(u(387));r=t.pendingProps,o=t.memoizedState,l=o.element,Mu(e,t),dl(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=Rn(Error(u(423)),t),t=ma(e,t,r,n,l);break e}else if(r!==l){l=Rn(Error(u(424)),t),t=ma(e,t,r,n,l);break e}else for(tt=Ft(t.stateNode.containerInfo.firstChild),et=t,ve=!0,dt=null,n=Pu(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(En(),r===l){t=Pt(e,t,n);break e}Qe(e,t,r,n)}t=t.child}return t;case 5:return Du(t),e===null&&Ao(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,Do(r,l)?i=null:o!==null&&Do(r,o)&&(t.flags|=32),fa(e,t),Qe(e,t,i,n),t.child;case 6:return e===null&&Ao(t),null;case 13:return va(e,t,n);case 4:return Yo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Cn(t,null,r,n):Qe(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),ua(e,t,r,l,n);case 7:return Qe(e,t,t.pendingProps,n),t.child;case 8:return Qe(e,t,t.pendingProps.children,n),t.child;case 12:return Qe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,pe(ul,r._currentValue),r._currentValue=i,o!==null)if(ct(o.value,i)){if(o.children===l.children&&!qe.current){t=Pt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var d=o.dependencies;if(d!==null){i=o.child;for(var f=d.firstContext;f!==null;){if(f.context===r){if(o.tag===1){f=Ct(-1,n&-n),f.tag=2;var g=o.updateQueue;if(g!==null){g=g.shared;var j=g.pending;j===null?f.next=f:(f.next=j.next,j.next=f),g.pending=f}}o.lanes|=n,f=o.alternate,f!==null&&(f.lanes|=n),Ko(o.return,n,t),d.lanes|=n;break}f=f.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(u(341));i.lanes|=n,d=i.alternate,d!==null&&(d.lanes|=n),Ko(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}Qe(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,_n(t,n),l=ot(l),r=r(l),t.flags|=1,Qe(e,t,r,n),t.child;case 14:return r=t.type,l=ft(r,t.pendingProps),l=ft(r.type,l),aa(e,t,r,l,n);case 15:return ca(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),wl(e,t),t.tag=1,Ge(r)?(e=!0,nl(t)):e=!1,_n(t,n),ta(t,r,l),us(t,r,l,n),fs(null,t,r,!0,e,n);case 19:return ga(e,t,n);case 22:return da(e,t,n)}throw Error(u(156,t.tag))};function Ha(e,t){return Si(e,t)}function df(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ut(e,t,n,r){return new df(e,t,n,r)}function Ds(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ff(e){if(typeof e=="function")return Ds(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Me)return 11;if(e===Ue)return 14}return 2}function qt(e,t){var n=e.alternate;return n===null?(n=ut(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Tl(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")Ds(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ye:return an(n.children,l,o,t);case ce:i=8,l|=8;break;case ge:return e=ut(12,n,t,l|2),e.elementType=ge,e.lanes=o,e;case ze:return e=ut(13,n,t,l),e.elementType=ze,e.lanes=o,e;case Ie:return e=ut(19,n,t,l),e.elementType=Ie,e.lanes=o,e;case H:return Dl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Fe:i=10;break e;case Ve:i=9;break e;case Me:i=11;break e;case Ue:i=14;break e;case je:i=16,r=null;break e}throw Error(u(130,e==null?e:typeof e,""))}return t=ut(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function an(e,t,n,r){return e=ut(7,e,r,t),e.lanes=n,e}function Dl(e,t,n,r){return e=ut(22,e,r,t),e.elementType=H,e.lanes=n,e.stateNode={isHidden:!1},e}function zs(e,t,n){return e=ut(6,e,null,t),e.lanes=n,e}function Ls(e,t,n){return t=ut(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function pf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=so(0),this.expirationTimes=so(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=so(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Os(e,t,n,r,l,o,i,d,f){return e=new pf(e,t,n,d,f),t===1?(t=1,o===!0&&(t|=8)):t=0,o=ut(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Go(o),e}function hf(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:ae,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function Va(e){if(!e)return Ut;e=e._reactInternals;e:{if(Xt(e)!==e||e.tag!==1)throw Error(u(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ge(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(u(171))}if(e.tag===1){var n=e.type;if(Ge(n))return yu(e,n,t)}return t}function Wa(e,t,n,r,l,o,i,d,f){return e=Os(n,r,!0,e,l,o,i,d,f),e.context=Va(null),n=e.current,r=Ke(),l=Qt(n),o=Ct(r,l),o.callback=t??null,At(n,o,l),e.current.lanes=l,Wn(e,l,r),Je(e,r),e}function zl(e,t,n,r){var l=t.current,o=Ke(),i=Qt(l);return n=Va(n),t.context===null?t.context=n:t.pendingContext=n,t=Ct(o,i),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=At(l,t,i),e!==null&&(mt(e,l,i,o),cl(e,l,i)),i}function Ll(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Qa(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Fs(e,t){Qa(e,t),(e=e.alternate)&&Qa(e,t)}function mf(){return null}var Ka=typeof reportError=="function"?reportError:function(e){console.error(e)};function Is(e){this._internalRoot=e}Ol.prototype.render=Is.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(u(409));zl(e,t,null,null)},Ol.prototype.unmount=Is.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;on(function(){zl(null,e,null,null)}),t[St]=null}};function Ol(e){this._internalRoot=e}Ol.prototype.unstable_scheduleHydration=function(e){if(e){var t=Mi();e={blockedOn:null,target:e,priority:t};for(var n=0;n<zt.length&&t!==0&&t<zt[n].priority;n++);zt.splice(n,0,e),n===0&&Di(e)}};function Us(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Fl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function qa(){}function vf(e,t,n,r,l){if(l){if(typeof r=="function"){var o=r;r=function(){var g=Ll(i);o.call(g)}}var i=Wa(t,r,e,0,null,!1,!1,"",qa);return e._reactRootContainer=i,e[St]=i.current,lr(e.nodeType===8?e.parentNode:e),on(),i}for(;l=e.lastChild;)e.removeChild(l);if(typeof r=="function"){var d=r;r=function(){var g=Ll(f);d.call(g)}}var f=Os(e,0,!1,null,null,!1,!1,"",qa);return e._reactRootContainer=f,e[St]=f.current,lr(e.nodeType===8?e.parentNode:e),on(function(){zl(t,f,n,r)}),f}function Il(e,t,n,r,l){var o=n._reactRootContainer;if(o){var i=o;if(typeof l=="function"){var d=l;l=function(){var f=Ll(i);d.call(f)}}zl(t,i,e,l)}else i=vf(n,t,e,l,r);return Ll(i)}Pi=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Vn(t.pendingLanes);n!==0&&(io(t,n|1),Je(t,ke()),(oe&6)===0&&(zn=ke()+500,Bt()))}break;case 13:on(function(){var r=Et(e,1);if(r!==null){var l=Ke();mt(r,e,1,l)}}),Fs(e,1)}},uo=function(e){if(e.tag===13){var t=Et(e,134217728);if(t!==null){var n=Ke();mt(t,e,134217728,n)}Fs(e,134217728)}},_i=function(e){if(e.tag===13){var t=Qt(e),n=Et(e,t);if(n!==null){var r=Ke();mt(n,e,t,r)}Fs(e,t)}},Mi=function(){return ue},Ri=function(e,t){var n=ue;try{return ue=e,t()}finally{ue=n}},eo=function(e,t,n){switch(t){case"input":if(Kl(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var l=el(r);if(!l)throw Error(u(90));ei(r),Kl(r,l)}}}break;case"textarea":oi(e,n);break;case"select":t=n.value,t!=null&&cn(e,!!n.multiple,t,!1)}},hi=Ms,mi=on;var yf={usingClientEntryPoint:!1,Events:[ir,wn,el,fi,pi,Ms]},Sr={findFiberByHostInstance:Jt,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},gf={bundleType:Sr.bundleType,version:Sr.version,rendererPackageName:Sr.rendererPackageName,rendererConfig:Sr.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:te.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=xi(e),e===null?null:e.stateNode},findFiberByHostInstance:Sr.findFiberByHostInstance||mf,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Ul=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ul.isDisabled&&Ul.supportsFiber)try{Or=Ul.inject(gf),vt=Ul}catch{}}return Ze.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=yf,Ze.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Us(t))throw Error(u(200));return hf(e,t,null,n)},Ze.createRoot=function(e,t){if(!Us(e))throw Error(u(299));var n=!1,r="",l=Ka;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(l=t.onRecoverableError)),t=Os(e,1,!1,null,null,n,!1,r,l),e[St]=t.current,lr(e.nodeType===8?e.parentNode:e),new Is(t)},Ze.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(u(188)):(e=Object.keys(e).join(","),Error(u(268,e)));return e=xi(t),e=e===null?null:e.stateNode,e},Ze.flushSync=function(e){return on(e)},Ze.hydrate=function(e,t,n){if(!Fl(t))throw Error(u(200));return Il(null,e,t,!0,n)},Ze.hydrateRoot=function(e,t,n){if(!Us(e))throw Error(u(405));var r=n!=null&&n.hydratedSources||null,l=!1,o="",i=Ka;if(n!=null&&(n.unstable_strictMode===!0&&(l=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=Wa(t,null,e,1,n??null,l,!1,o,i),e[St]=t.current,lr(e),r)for(e=0;e<r.length;e++)n=r[e],l=n._getVersion,l=l(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,l]:t.mutableSourceEagerHydrationData.push(n,l);return new Ol(t)},Ze.render=function(e,t,n){if(!Fl(t))throw Error(u(200));return Il(null,e,t,!1,n)},Ze.unmountComponentAtNode=function(e){if(!Fl(e))throw Error(u(40));return e._reactRootContainer?(on(function(){Il(null,null,e,!1,function(){e._reactRootContainer=null,e[St]=null})}),!0):!1},Ze.unstable_batchedUpdates=Ms,Ze.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Fl(n))throw Error(u(200));if(e==null||e._reactInternals===void 0)throw Error(u(38));return Il(e,t,n,!1,r)},Ze.version="18.3.1-next-f1338f8080-20240426",Ze}var tc;function Cf(){if(tc)return As.exports;tc=1;function s(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(c){console.error(c)}}return s(),As.exports=Ef(),As.exports}var nc;function Pf(){if(nc)return Bl;nc=1;var s=Cf();return Bl.createRoot=s.createRoot,Bl.hydrateRoot=s.hydrateRoot,Bl}var _f=Pf(),$=Js();const Yt={methods:new Set,path:"",minDurationMs:null,maxDurationMs:null,includeErrors:!0,includeSuccesses:!0,sortBy:"timestamp",sortDir:"desc"},hc=$.createContext(null),Ks=200;function Mf({children:s,initialEntries:c}){const u=$.useMemo(()=>Df(c).slice(0,Ks),[c]),[m,x]=$.useState(u),[E,P]=$.useState(Zs()),S=$.useMemo(()=>Lf(m),[m]);$.useEffect(()=>{x(u)},[u]);const T=$.useCallback(W=>{const G={...W,id:mc(),timestamp:Date.now()};x(L=>[G,...L].slice(0,Ks))},[]),K=$.useCallback(()=>x([]),[]),I=$.useCallback(W=>{P({...W,methods:new Set(W.methods),sortBy:W.sortBy||"timestamp",sortDir:W.sortDir||"desc"})},[]),z=$.useCallback(W=>{P(G=>({methods:W.methods?new Set(W.methods):G.methods,path:W.path??G.path,minDurationMs:W.minDurationMs!==void 0?W.minDurationMs:G.minDurationMs,maxDurationMs:W.maxDurationMs!==void 0?W.maxDurationMs:G.maxDurationMs,includeErrors:W.includeErrors??G.includeErrors,includeSuccesses:W.includeSuccesses??G.includeSuccesses,sortBy:W.sortBy??G.sortBy,sortDir:W.sortDir??G.sortDir}))},[]),O=$.useMemo(()=>({entries:m,addEntry:T,clearHistory:K,filters:E,setFilters:I,updateFilters:z,statsByRoute:S}),[T,K,m,E,I,S,z]);return a.jsx(hc.Provider,{value:O,children:s})}function Wl(){const s=$.useContext(hc);if(!s)throw new Error("useHistoryStore must be used within HistoryProvider");return s}function Rf(s){const c=new URLSearchParams;return s.methods.size&&c.set("methods",Array.from(s.methods).join(",")),s.path&&c.set("path",s.path),s.minDurationMs!==null&&s.minDurationMs!==void 0&&c.set("minDuration",String(s.minDurationMs)),s.maxDurationMs!==null&&s.maxDurationMs!==void 0&&c.set("maxDuration",String(s.maxDurationMs)),s.includeErrors&&c.set("errors","1"),s.sortBy&&s.sortBy!=="timestamp"&&c.set("sortBy",s.sortBy),s.sortDir&&s.sortDir!=="desc"&&c.set("sortDir",s.sortDir),c}function Tf(s){const c=s.get("methods"),u=s.get("path")||void 0,m=rc(s.get("minDuration")),x=rc(s.get("maxDuration")),E=s.get("errors")==="1",P=s.get("sortBy"),S=s.get("sortDir"),T={};return c&&(T.methods=new Set(c.split(",").filter(Boolean).map(K=>K.toUpperCase()))),u&&(T.path=u),m!==null&&(T.minDurationMs=m),x!==null&&(T.maxDurationMs=x),E&&(T.includeErrors=!0),P&&Of(P)&&(T.sortBy=P),S&&Ff(S)&&(T.sortDir=S),Object.keys(T).length?T:void 0}function Zs(){return{methods:new Set(Yt.methods),path:Yt.path,minDurationMs:Yt.minDurationMs,maxDurationMs:Yt.maxDurationMs,includeErrors:Yt.includeErrors,includeSuccesses:Yt.includeSuccesses,sortBy:Yt.sortBy,sortDir:Yt.sortDir}}function qs(s,c){return c?{methods:c.methods?new Set(c.methods):new Set(s.methods),path:c.path??s.path,minDurationMs:c.minDurationMs!==void 0?c.minDurationMs:s.minDurationMs,maxDurationMs:c.maxDurationMs!==void 0?c.maxDurationMs:s.maxDurationMs,includeErrors:c.includeErrors??s.includeErrors,includeSuccesses:c.includeSuccesses??s.includeSuccesses,sortBy:c.sortBy??s.sortBy,sortDir:c.sortDir??s.sortDir}:{methods:new Set(s.methods),path:s.path,minDurationMs:s.minDurationMs,maxDurationMs:s.maxDurationMs,includeErrors:s.includeErrors,includeSuccesses:s.includeSuccesses,sortBy:s.sortBy,sortDir:s.sortDir}}function Df(s){if(!Array.isArray(s))return[];const c=Date.now();return s.slice(0,Ks).map((u,m)=>zf(u,c-m*1e3)).filter(Boolean)}function rc(s){if(!s)return null;const c=Number(s);return Number.isFinite(c)?c:null}function mc(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2)}function zf(s,c){if(!s||typeof s!="object")return null;const u=String(s.method||"").toUpperCase(),m=typeof s.path=="string"?s.path:"",x=Number(s.durationMs);if(!u||!m||!Number.isFinite(x))return null;const E=lc(s.params),P=lc(s.query),S=Hl(s.body),T=Hl(s.output),K=s.status!==void 0&&Number.isFinite(Number(s.status))?Number(s.status):void 0,I=typeof s.timestamp=="number"&&Number.isFinite(s.timestamp)?s.timestamp:c;return{id:typeof s.id=="string"?s.id:mc(),timestamp:I,method:u,path:m,fullUrl:typeof s.fullUrl=="string"&&s.fullUrl?s.fullUrl:m,params:E,query:P,body:S,output:T,status:K,durationMs:Math.max(0,x),error:Hl(s.error)}}function Hl(s){if(s==null)return"";if(typeof s=="string")return s;try{return JSON.stringify(s)}catch{return String(s)}}function lc(s){return!s||typeof s!="object"||Array.isArray(s)?{}:Object.fromEntries(Object.entries(s).map(([c,u])=>[c,Hl(u)]))}function vc(s,c){return`${s.toUpperCase()}::${c}`}function Lf(s){const c={};return s.forEach(u=>{const m=vc(u.method,u.path);c[m]||(c[m]={durations:[],successes:0,total:0,latest:void 0});const x=c[m];x.total+=1,!u.error&&u.status!==void 0&&u.status<400&&(x.successes+=1),x.durations.push(u.durationMs),(!x.latest||u.timestamp>x.latest.timestamp)&&(x.latest=u)}),new Map(Object.entries(c).map(([u,m])=>{var E,P;const x=m.durations.slice().sort((S,T)=>S-T);return[u,{total:m.total,successRate:m.total?m.successes/m.total*100:0,avgDuration:m.durations.reduce((S,T)=>S+T,0)/Math.max(m.durations.length,1),p95Duration:If(x,.95),lastStatus:(E=m.latest)==null?void 0:E.status,lastDuration:(P=m.latest)==null?void 0:P.durationMs}]}))}function Of(s){return s==="timestamp"||s==="path"||s==="duration"}function Ff(s){return s==="asc"||s==="desc"}function If(s,c){if(!s.length)return 0;const u=(s.length-1)*c,m=Math.floor(u),x=Math.ceil(u);if(m===x)return s[m];const E=u-m;return s[m]*(1-E)+s[x]*E}function $l({node:s}){const c=$.useMemo(()=>s?Bf(s):[],[s]),[u,m]=$.useState(new Set),x=$.useMemo(()=>new Map(c.map(I=>[I.path,I])),[c]),E=$.useCallback(I=>{m(z=>{const O=new Set(z);return O.has(I)?O.delete(I):O.add(I),O})},[]),P=$.useCallback(()=>{m(new Set(c.filter(I=>I.hasChildren).map(I=>I.path)))},[c]),S=$.useCallback(()=>{m(new Set)},[]),T=$.useCallback(I=>{let z=I.parentPath;for(;z;){const O=x.get(z);if(O!=null&&O.hasChildren&&!u.has(O.path))return!1;z=O==null?void 0:O.parentPath}return!0},[u,x]);if(!s||c.length===0)return null;const K=c.filter(I=>T(I));return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"schema-actions-inline",children:[a.jsx("button",{className:"expand-all",type:"button",onClick:P,children:"Expand all"}),a.jsx("button",{className:"collapse-all",type:"button",onClick:S,children:"Collapse all"})]}),a.jsxs("table",{className:"schema-table",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"col-name",children:"Field"}),a.jsx("th",{className:"col-type",children:"Type"}),a.jsx("th",{children:"Req"}),a.jsx("th",{children:"Description"})]})}),a.jsx("tbody",{children:K.map(I=>{const z=u.has(I.path);return a.jsxs("tr",{children:[a.jsx("td",{className:"col-name",children:a.jsxs("div",{className:`schema-name-cell schema-depth-${I.depth}`,children:[I.hasChildren?a.jsx("button",{className:"schema-toggle",type:"button","aria-label":z?"Collapse field":"Expand field",onClick:O=>{O.stopPropagation(),E(I.path)},children:z?"▼":"▶"}):a.jsx("span",{className:"schema-toggle-placeholder"}),a.jsx("span",{className:"schema-name-text",children:I.name})]})}),a.jsx("td",{className:"col-type",children:Ys(I.node)}),a.jsx("td",{children:a.jsx("span",{className:`req-badge ${I.node.optional?"req-false":"req-true"}`,children:I.node.optional?"OPT":"REQ"})}),a.jsx("td",{children:a.jsx(Uf,{node:I.node})})]},I.path)})})]})]})}function Uf({node:s}){const c=[];return s.description&&c.push(a.jsx("span",{children:s.description},"desc")),s.kind==="enum"&&Array.isArray(s.enumValues)&&c.push(a.jsxs("span",{children:["Allowed:"," ",s.enumValues.map(u=>a.jsx("code",{children:u},u))]},"enum")),s.kind==="literal"&&s.literal!==void 0&&c.push(a.jsxs("span",{children:["Value: ",a.jsx("code",{children:JSON.stringify(s.literal)})]},"lit")),c.length===0?null:a.jsx($.Fragment,{children:c.map((u,m)=>a.jsxs($.Fragment,{children:[u,m<c.length-1?a.jsx("br",{}):null]},m))})}function Bf(s){return s.kind==="object"&&s.properties?Object.entries(s.properties).flatMap(([c,u])=>Fn(c,u,0,c,void 0)):Fn("value",s,0,"root",void 0)}function Fn(s,c,u,m,x){const E=Gs(c),P=[{name:s,node:c,depth:u,path:m,parentPath:x,hasChildren:E}];return c.kind==="object"&&c.properties?Object.entries(c.properties).forEach(([S,T])=>{P.push(...Fn(S,T,u+1,`${m}.${S}`,m))}):c.kind==="array"&&c.element?P.push(...yc(c.element,u+1,`${m}[]`,m)):c.kind==="union"&&c.union&&c.union.forEach((S,T)=>{P.push(...Fn(`Option ${T+1}`,S,u+1,`${m}.oneof${T}`,m))}),P}function yc(s,c,u,m){return s.kind==="object"&&s.properties?Object.entries(s.properties).flatMap(([x,E])=>Fn(x,E,c,`${u}.${x}`,m)):s.kind==="array"&&s.element?yc(s.element,c,`${u}[]`,m):s.kind==="union"&&s.union?s.union.flatMap((x,E)=>Fn(`Option ${E+1}`,x,c,`${u}.oneof${E}`,m)):[]}function Gs(s){return s.kind==="object"&&s.properties?Object.keys(s.properties).length>0:s.kind==="array"&&s.element?Gs(s.element):s.kind==="union"&&s.union?s.union.some(c=>Gs(c)):!1}function Ys(s){return s?s.kind==="array"?s.element?`array<${Ys(s.element)}>`:"array":s.kind==="union"&&s.union?s.union.map(Ys).join(" | "):s.kind==="literal"?"literal":s.kind==="enum"?"enum":s.kind||"any":"any"}function $f({leaf:s,expanded:c,onToggle:u,onTry:m,onHistory:x}){var I,z,O,W,G,L,q,le,D;const E=(s.method||"GET").toUpperCase(),P=((I=s.cfg)==null?void 0:I.tags)||[],{statsByRoute:S}=Wl(),T=$.useMemo(()=>S.get(vc(E,s.path||"")),[S,E,s.path]),K=Z=>{Z.stopPropagation(),navigator.clipboard&&navigator.clipboard.writeText(s.path||"")};return a.jsxs("article",{className:"endpoint-card","data-expanded":c,children:[a.jsxs("div",{className:"card-header",onClick:u,children:[a.jsx("button",{className:`method-badge m-${E}`,onClick:Z=>{Z.stopPropagation(),m()},children:a.jsx("span",{children:E})}),a.jsxs("div",{className:"path-container","data-path":s.path,children:[a.jsx("span",{className:"path-text",children:s.path}),a.jsx("button",{className:"copy-icon",onClick:K,"aria-label":"Copy path",children:"📋"})]}),a.jsx("div",{className:"tags-container",children:P.map(Z=>a.jsx("span",{className:`status-badge ${Af(Z)}`,children:Z},Z))}),a.jsx("div",{className:"header-spacer"}),a.jsx("div",{className:"expand-icon",children:c?"▼":"▶"})]}),c&&a.jsxs("div",{className:"card-body",children:[a.jsx("div",{className:"section-block",children:a.jsxs("div",{className:"summary-text",children:[a.jsx("strong",{children:((z=s.cfg)==null?void 0:z.summary)||""}),a.jsx("br",{}),a.jsx("span",{className:"description-text",children:((O=s.cfg)==null?void 0:O.description)||""})]})}),a.jsx(Al,{title:"History",onClick:()=>{x()},children:a.jsx(Hf,{stats:T})}),(((W=s.cfg)==null?void 0:W.paramsSchema)||((G=s.cfg)==null?void 0:G.querySchema))&&a.jsxs(Al,{title:"Parameters",children:[a.jsx($l,{node:(L=s.cfg)==null?void 0:L.paramsSchema}),a.jsx($l,{node:(q=s.cfg)==null?void 0:q.querySchema})]}),((le=s.cfg)==null?void 0:le.bodySchema)&&a.jsx(Al,{title:`Request Body ${s.cfg.hasBody?"":"(Optional)"}`,children:a.jsx($l,{node:s.cfg.bodySchema})}),((D=s.cfg)==null?void 0:D.outputSchema)&&a.jsx(Al,{title:"Response Schema",children:a.jsx($l,{node:s.cfg.outputSchema})})]})]})}function Al({title:s,children:c,onClick:u}){const m=u?"section-block highlightOnHover":"section-block";return a.jsxs("div",{className:m,onClick:u?x=>{x.stopPropagation(),u()}:void 0,children:[a.jsx("div",{className:"section-header-row",children:a.jsx("div",{className:"section-title section-title-no-border",children:s})}),c]})}function Af(s){if(s==="not-implemented")return"not-implemented";let c=0;for(let u=0;u<s.length;u++)c=s.charCodeAt(u)+((c<<5)-c);return"tag-"+Math.abs(c%7)}function Hf({stats:s}){if(!s)return a.jsx("div",{className:"history-mini-empty",children:"No history for this endpoint yet."});const c=[{label:"Requests",value:s.total.toLocaleString()},{label:"Success",value:`${Math.round(s.successRate)}%`},{label:"Avg duration",value:Ws(s.avgDuration)},{label:"p95",value:Ws(s.p95Duration)},{label:"Last",value:s.lastDuration===void 0?"—":`${s.lastStatus!==void 0?s.lastStatus:"ERR"} · ${Ws(s.lastDuration)}`}];return a.jsx("div",{className:"endpoint-history-stats",children:c.map(u=>a.jsxs("div",{className:"endpoint-history-stat",children:[a.jsx("div",{className:"endpoint-history-label",children:u.label}),a.jsx("div",{className:"endpoint-history-value",children:u.value})]},u.label))})}function Ws(s){return Number.isFinite(s)?`${Math.round(s)}ms`:"–"}function Vf({allMethods:s,allTags:c,filters:u,onFiltersChange:m}){const x=S=>m({...u,search:S.toLowerCase()}),E=S=>{const T=new Set(u.methods);T.has(S)?T.delete(S):T.add(S),m({...u,methods:T})},P=S=>{const T=new Set(u.tags);T.has(S)?T.delete(S):T.add(S),m({...u,tags:T})};return a.jsxs("div",{className:"filters-row",children:[a.jsxs("div",{className:"left-column",children:[a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Search"}),a.jsxs("div",{className:"search-box",children:[a.jsx("span",{className:"search-icon",children:"🔍"}),a.jsx("input",{type:"text",id:"searchInput",className:"search-input",placeholder:"Filter endpoints...",value:u.search,onChange:S=>x(S.target.value)})]})]}),a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Methods"}),a.jsx("div",{className:"checkbox-group",id:"methodFilters",children:s.map(S=>a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",value:S,checked:u.methods.has(S),onChange:()=>E(S)}),a.jsx("span",{children:S})]},S))})]})]}),a.jsxs("div",{className:"filter-group tag-filters-container",children:[a.jsx("div",{className:"filter-label",children:"Tags"}),a.jsxs("div",{className:"checkbox-group",id:"tagFilters",children:[c.length===0&&a.jsx("div",{className:"no-tags",children:"No tags"}),c.map(S=>a.jsxs("label",{className:"pill-checkbox colored-tag",children:[a.jsx("input",{type:"checkbox",value:S,checked:u.tags.has(S),onChange:()=>P(S)}),a.jsx("span",{className:`tag-filter-pill ${Wf(S)}`,children:S})]},S))]})]})]})}function Wf(s){if(s==="not-implemented")return"not-implemented";let c=0;for(let u=0;u<s.length;u++)c=s.charCodeAt(u)+((c<<5)-c);return"tag-"+Math.abs(c%7)}function Qf({onFiltersChange:s}){const{entries:c,filters:u,setFilters:m,clearHistory:x}=Wl(),[E,P]=$.useState(new Set),S=D=>{s?s(D):m(D)},T=$.useMemo(()=>Array.from(new Set(c.map(D=>D.method))).sort(),[c]),K=$.useMemo(()=>c.filter(D=>np(D,u)),[c,u]),I=$.useMemo(()=>tp(K,u),[K,u]),z=$.useMemo(()=>Yf(K),[K]),O=K.length>0,W=D=>P(Z=>{const te=new Set(Z);return te.has(D)?te.delete(D):te.add(D),te}),G=D=>{const Z=qs(u,D);S(Z)},L=(D,Z)=>{const te=Z===""?null:Number(Z);G({[D]:Number.isFinite(te)?te:null})},q=()=>{const D=Zs();S(D),P(new Set)},le=c.length===0;return a.jsxs("div",{className:"history-view",children:[a.jsxs("div",{className:"history-toolbar",children:[a.jsxs("div",{className:"history-toolbar-grid",children:[a.jsxs("div",{className:"filter-group history-path-filter",children:[a.jsx("div",{className:"filter-label",children:"Path"}),a.jsx("input",{className:"search-input",placeholder:"Filter by path...",value:u.path,onChange:D=>G({path:D.target.value})})]}),a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Operations"}),a.jsxs("div",{className:"checkbox-group history-methods",children:[T.length===0&&a.jsx("div",{className:"no-tags",children:"No requests yet"}),T.map(D=>a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",value:D,checked:u.methods.has(D),onChange:()=>{const Z=new Set(u.methods);Z.has(D)?Z.delete(D):Z.add(D),G({methods:Z})}}),a.jsx("span",{children:D})]},D))]})]}),a.jsxs("div",{className:"filter-group history-duration",children:[a.jsx("div",{className:"filter-label",children:"Duration (ms)"}),a.jsxs("div",{className:"duration-inputs",children:[a.jsx("input",{type:"number",className:"search-input duration-input",placeholder:"Min",value:u.minDurationMs??"",onChange:D=>L("minDurationMs",D.target.value)}),a.jsx("input",{type:"number",className:"search-input duration-input",placeholder:"Max",value:u.maxDurationMs??"",onChange:D=>L("maxDurationMs",D.target.value)})]})]}),a.jsxs("div",{className:"filter-group",children:[a.jsx("div",{className:"filter-label",children:"Result"}),a.jsxs("div",{className:"checkbox-group",children:[a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",checked:u.includeErrors,onChange:D=>G({includeErrors:D.target.checked})}),a.jsx("span",{children:"Errors"})]}),a.jsxs("label",{className:"pill-checkbox",children:[a.jsx("input",{type:"checkbox",checked:u.includeSuccesses,onChange:D=>G({includeSuccesses:D.target.checked})}),a.jsx("span",{children:"Successes"})]})]})]}),a.jsxs("div",{className:"filter-group history-sort",children:[a.jsx("div",{className:"filter-label",children:"Sort"}),a.jsxs("div",{className:"history-sort-row",children:[a.jsxs("select",{className:"search-input sort-select",value:u.sortBy,onChange:D=>G({sortBy:D.target.value}),children:[a.jsx("option",{value:"timestamp",children:"Timestamp"}),a.jsx("option",{value:"path",children:"Alphabetical"}),a.jsx("option",{value:"duration",children:"Duration"})]}),a.jsx("button",{className:"sort-direction-btn",type:"button",onClick:()=>G({sortDir:u.sortDir==="asc"?"desc":"asc"}),title:`Sort ${u.sortDir==="asc"?"descending":"ascending"}`,children:u.sortDir==="asc"?"↑":"↓"})]})]})]}),a.jsxs("div",{className:"history-toolbar-actions",children:[a.jsx("button",{className:"preset-nav-btn",onClick:()=>lp(I),children:"Export CSV"}),a.jsx("button",{className:"preset-nav-btn ghost-btn",onClick:q,children:"Reset filters"}),a.jsx("button",{className:"preset-nav-btn",onClick:()=>{x(),P(new Set)},disabled:le,children:"Clear history"})]})]}),O&&a.jsxs(a.Fragment,{children:[a.jsx(Kf,{analytics:z}),a.jsxs("div",{className:"history-graphs-grid",children:[a.jsx(Nr,{title:"Duration over time",subtitle:"Sorted by send time",empty:!z.timeline.length,className:"graph-timeline",children:a.jsx(qf,{points:z.timeline})}),a.jsx(Nr,{title:"Status mix",subtitle:"Grouped by class",empty:!z.statusBuckets.length,className:"graph-status",children:a.jsx(Qs,{data:z.statusBuckets})}),a.jsx(Nr,{title:"Volume by method",subtitle:"Count + avg duration",empty:!z.methodBuckets.length,className:"graph-volume",children:a.jsx(Qs,{data:z.methodBuckets})}),a.jsx(Nr,{title:"Duration spread by method",subtitle:"Box plots from filtered data",empty:!z.methodBoxPlots.length,className:"graph-boxplot",children:a.jsx(Gf,{data:z.methodBoxPlots})}),a.jsx(Nr,{title:"Top paths",subtitle:"Most frequent routes",empty:!z.topPaths.length,className:"graph-top-paths",children:a.jsx(Qs,{data:z.topPaths})})]})]}),a.jsx("div",{className:"history-list",children:le?a.jsx("div",{className:"no-results",children:"No requests yet. Run something in the playground."}):K.length===0?a.jsx("div",{className:"no-results",children:"No history matches your filters."}):I.map(D=>{const Z=E.has(D.id),te=!!D.error||D.status!==void 0&&D.status>=400;return a.jsxs("article",{className:"history-card","data-expanded":Z,children:[a.jsxs("header",{className:"history-card-header",onClick:()=>W(D.id),children:[a.jsxs("div",{className:"history-title",children:[a.jsx("span",{className:`method-badge m-${D.method}`,children:D.method}),a.jsx("span",{className:"history-path",children:D.path})]}),a.jsxs("div",{className:"history-meta-row",children:[a.jsx("span",{className:`history-status ${te?"history-status-error":""}`,children:D.status!==void 0?D.status:"ERR"}),a.jsxs("span",{className:"history-chip",children:[D.durationMs,"ms"]}),a.jsx("span",{className:"history-chip",children:sc(D.timestamp)})]}),a.jsx("div",{className:"expand-icon",children:Z?"▼":"▶"})]}),Z&&a.jsxs("div",{className:"history-card-body",children:[a.jsxs("div",{className:"history-meta-grid",children:[a.jsx(Mt,{label:"URL",value:a.jsx("code",{children:D.fullUrl})}),a.jsx(Mt,{label:"Duration",value:`${D.durationMs}ms`}),a.jsx(Mt,{label:"Status",value:D.status!==void 0?String(D.status):"Network error"}),a.jsx(Mt,{label:"Sent at",value:sc(D.timestamp)})]}),a.jsx(Mt,{label:"Path params",value:oc(D.params,"No params")}),a.jsx(Mt,{label:"Query params",value:oc(D.query,"No query params")}),a.jsx(Mt,{label:"Body",value:a.jsx(ic,{text:D.body,placeholder:"—"})}),a.jsx(Mt,{label:"Output",value:a.jsx(ic,{text:D.output,placeholder:"—"})}),D.error?a.jsx(Mt,{label:"Error",value:a.jsx("div",{className:"history-error",children:D.error})}):null]})]},D.id)})})]})}function Kf({analytics:s}){const c=[{label:"Requests",value:s.total.toLocaleString(),hint:"Filtered total"},{label:"Success rate",value:`${s.successRate.toFixed(1)}%`,hint:`${s.errorCount} error(s)`,tone:s.successRate>=95?"good":s.successRate>=70?"warn":"bad"},{label:"Avg duration",value:Er(s.avgDuration),hint:`p50 ${Er(s.p50)}`},{label:"p95 duration",value:Er(s.p95),hint:"Tail latency",tone:s.p95<=400?"good":s.p95<=800?"warn":"bad"}];return a.jsx("div",{className:"history-stats-grid",children:c.map(u=>a.jsxs("div",{className:"history-stat-card","data-tone":u.tone||"",children:[a.jsx("div",{className:"history-stat-label",children:u.label}),a.jsx("div",{className:"history-stat-value",children:u.value}),u.hint?a.jsx("div",{className:"history-stat-hint",children:u.hint}):null]},u.label))})}function Nr({title:s,subtitle:c,children:u,empty:m,className:x=""}){return a.jsxs("div",{className:`history-graph-card ${x}`,children:[a.jsx("div",{className:"history-graph-header",children:a.jsxs("div",{children:[a.jsx("div",{className:"history-graph-title",children:s}),c?a.jsx("div",{className:"history-graph-subtitle",children:c}):null]})}),a.jsx("div",{className:"history-graph-body",children:m?a.jsx(Cr,{}):u})]})}function Qs({data:s}){if(!s.length)return a.jsx(Cr,{});const c=Math.max(...s.map(u=>u.value),1);return a.jsx("div",{className:"history-bar-chart",children:s.map(u=>{const m=Math.max(u.value/c*100,4);return a.jsxs("div",{className:"history-bar-row",children:[a.jsx("div",{className:"history-bar-label",children:u.label}),a.jsx("div",{className:"history-bar-track",children:a.jsx("div",{className:`history-bar-fill ${u.tone?`tone-${u.tone}`:""}`,style:{width:`${m}%`}})}),a.jsxs("div",{className:"history-bar-value",children:[u.value,u.hint?a.jsx("span",{className:"history-bar-hint",children:u.hint}):null]})]},u.label)})})}function qf({points:s}){if(!s.length)return a.jsx(Cr,{});const c=Math.max(...s.map(z=>z.value),1),u=240,m=60,x={top:5,right:0,bottom:10,left:10},E=u-x.left-x.right,P=m-x.top-x.bottom,S=s.length>1?E/(s.length-1):0,T=s.map((z,O)=>{const W=x.left+O*S,G=x.top+P-z.value/c*P;return`${O===0?"M":"L"} ${W} ${G}`}).join(" "),K=gc(c),I=ep(s);return a.jsx("div",{className:"history-line-wrapper",children:a.jsxs("svg",{className:"history-line-chart",viewBox:`0 0 ${u} ${m}`,preserveAspectRatio:"none",role:"presentation",children:[K.map(z=>{const O=x.top+P-z/c*P;return a.jsxs("g",{children:[a.jsx("line",{x1:0,x2:u-x.right,y1:O,y2:O,className:"history-line-grid"}),a.jsx("text",{x:0,y:O-2,className:"history-line-axis-label",children:Er(z)})]},`y-${z}`)}),a.jsx("line",{x1:x.left,x2:u-x.right,y1:m-x.bottom,y2:m-x.bottom,className:"history-line-axis"}),a.jsx("path",{d:T,className:"history-line-path"}),s.map((z,O)=>{const W=x.left+O*S,G=x.top+P-z.value/c*P;return a.jsx("circle",{cx:W,cy:G,r:1,className:`history-line-dot ${z.isError?"dot-error":""}`},`${z.label}-${O}`)}),I.map(z=>{const O=x.left+z.index*S;return a.jsxs("g",{children:[a.jsx("line",{x1:O,x2:O,y1:x.top,y2:m-x.bottom,className:"history-line-grid vertical"}),a.jsx("text",{x:O,y:m-4,className:"history-line-axis-label x-axis",children:rp(z.timestamp)})]},`x-${z.index}`)})]})})}function Gf({data:s}){if(!s.length)return a.jsx(Cr,{});const c=Math.max(...s.map(u=>u.max),0);return c<=0?a.jsx(Cr,{}):a.jsxs("div",{className:"history-boxplot-vertical",children:[a.jsx("div",{className:"boxplot-scale",children:gc(c).map(u=>{const m=u/c*100;return a.jsxs("div",{className:"scale-row",style:{bottom:`${m}%`},children:[a.jsx("span",{className:"scale-label",children:Er(u)}),a.jsx("span",{className:"scale-line"})]},u)})}),a.jsx("div",{className:"boxplot-columns",children:s.map(u=>{const m=u.min/c*100,x=u.max/c*100,E=u.q1/c*100,P=Math.max((u.q3-u.q1)/c*100,2),S=u.median/c*100;return a.jsx("div",{className:"boxplot-column",children:a.jsxs("div",{className:"boxplot-vert-track",children:[a.jsx("div",{className:"boxplot-vert-whisker",style:{bottom:`${m}%`,height:`${Math.max(x-m,2)}%`}}),a.jsx("div",{className:"boxplot-vert-box",style:{bottom:`${E}%`,height:`${P}%`}}),a.jsx("div",{className:"boxplot-vert-median",style:{bottom:`${S}%`}})]})},u.label)})}),a.jsx("div",{className:"boxplot-columns",children:s.map(u=>a.jsxs("div",{className:"boxplot-column",children:[a.jsx("div",{className:"boxplot-col-label",children:u.label}),a.jsxs("div",{className:"boxplot-col-meta",children:[u.sampleSize," sample",u.sampleSize===1?"":"s"]})]},u.label))})]})}function Cr(){return a.jsx("div",{className:"history-graph-empty",children:"Not enough data"})}function Yf(s){if(!s.length)return{total:0,successRate:0,errorCount:0,avgDuration:0,p50:0,p95:0,methodBuckets:[],statusBuckets:[],topPaths:[],methodBoxPlots:[],timeline:[]};const c=s.length,u=s.map(L=>L.durationMs).filter(L=>Number.isFinite(L)),m=u.slice().sort((L,q)=>L-q),x=u.reduce((L,q)=>L+q,0)/Math.max(u.length,1),E=jr(m,.5),P=jr(m,.95),S=s.filter(L=>!Vl(L)).length,T=c-S,K=c?S/c*100:0,I=s.slice().sort((L,q)=>L.timestamp-q.timestamp).map(L=>({value:L.durationMs,label:L.path,isError:Vl(L),status:L.status,timestamp:L.timestamp})),z=Xf(s),O=Jf(s),W=Zf(s),G=bf(s);return{total:c,successRate:K,errorCount:T,avgDuration:x,p50:E,p95:P,methodBuckets:z,statusBuckets:O,topPaths:W,methodBoxPlots:G,timeline:I}}function Xf(s){const c={};return s.forEach(u=>{const m=u.method;c[m]||(c[m]={count:0,durations:[]}),c[m].count+=1,c[m].durations.push(u.durationMs)}),Object.entries(c).map(([u,m])=>{const x=m.durations.reduce((E,P)=>E+P,0)/Math.max(m.durations.length,1);return{label:u,value:m.count,hint:`${Math.round(x)}ms avg`,tone:void 0}}).sort((u,m)=>m.value-u.value||u.label.localeCompare(m.label))}function Jf(s){const c={"2xx":{label:"2xx",value:0,tone:"good"},"3xx":{label:"3xx",value:0,tone:"warn"},"4xx":{label:"4xx",value:0,tone:"warn"},"5xx":{label:"5xx",value:0,tone:"bad"},Error:{label:"Error",value:0,tone:"bad"}};return s.forEach(u=>{if(u.error&&!u.status){c.Error.value+=1;return}if(u.status===void 0){c.Error.value+=1;return}u.status>=500?c["5xx"].value+=1:u.status>=400?c["4xx"].value+=1:u.status>=300?c["3xx"].value+=1:u.status>=200&&(c["2xx"].value+=1)}),Object.values(c).filter(u=>u.value>0)}function Zf(s){const c=new Map;return s.forEach(u=>{c.set(u.path,(c.get(u.path)||0)+1)}),Array.from(c.entries()).map(([u,m])=>({label:u,value:m})).sort((u,m)=>m.value-u.value).slice(0,6)}function bf(s){const c={};return s.forEach(u=>{c[u.method]||(c[u.method]=[]),c[u.method].push(u.durationMs)}),Object.entries(c).map(([u,m])=>{const x=m.slice().sort((E,P)=>E-P);return{label:u,min:x[0],q1:jr(x,.25),median:jr(x,.5),q3:jr(x,.75),max:x[x.length-1],sampleSize:x.length}}).filter(u=>Number.isFinite(u.min)&&Number.isFinite(u.max)).sort((u,m)=>m.sampleSize-u.sampleSize)}function jr(s,c){if(!s.length)return 0;const u=(s.length-1)*c,m=Math.floor(u),x=Math.ceil(u);if(m===x)return s[m];const E=u-m;return s[m]*(1-E)+s[x]*E}function gc(s){if(!Number.isFinite(s)||s<=0)return[0];const u=Array.from({length:5},(m,x)=>Math.round(s*x/4));return Array.from(new Set(u))}function ep(s){if(!s.length)return[];const c=[],m=Math.max(1,Math.floor((s.length-1)/(4-1)));for(let E=0;E<s.length;E+=m)c.push(E);return c[c.length-1]!==s.length-1&&c.push(s.length-1),Array.from(new Set(c)).map(E=>({index:E,timestamp:s[E].timestamp}))}function Vl(s){return s.error||s.status===void 0?!0:s.status>=400}function Er(s){return Number.isFinite(s)?s>=1e3?`${Math.round(s)} ms`:`${Math.round(s)} ms`:"–"}function Mt({label:s,value:c}){return a.jsxs("div",{className:"history-detail",children:[a.jsx("div",{className:"history-detail-label",children:s}),a.jsx("div",{className:"history-detail-value",children:c})]})}function oc(s,c){const u=Object.entries(s).filter(([m])=>m.trim().length>0);return u.length===0?a.jsx("div",{className:"history-empty",children:c}):a.jsx("div",{className:"history-kv",children:u.map(([m,x])=>a.jsxs("div",{className:"history-kv-row",children:[a.jsx("span",{className:"history-kv-key",children:m}),a.jsx("span",{className:"history-kv-value",children:x||"—"})]},m))})}function tp(s,c){const u=c.sortBy||"timestamp",m=c.sortDir==="asc"?1:-1;return s.slice().sort((x,E)=>{let P=0;return u==="path"?P=x.path.localeCompare(E.path):u==="duration"?P=x.durationMs-E.durationMs:P=x.timestamp-E.timestamp,P*m})}function np(s,c){const u=c.methods.size===0||c.methods.has(s.method),m=!c.path||s.path.toLowerCase().includes(c.path.toLowerCase()),x=c.minDurationMs===null||c.minDurationMs===void 0?!0:s.durationMs>=c.minDurationMs,E=c.maxDurationMs===null||c.maxDurationMs===void 0?!0:s.durationMs<=c.maxDurationMs,P=c.includeErrors&&c.includeSuccesses?!0:c.includeErrors?Vl(s):c.includeSuccesses?!Vl(s):!0;return u&&m&&x&&E&&P}function sc(s){return new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function rp(s){return new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function ic({text:s,placeholder:c}){const u=s||"",m=()=>{navigator.clipboard&&navigator.clipboard.writeText(u)};return a.jsxs("div",{className:"copy-pre-wrapper",children:[a.jsx("button",{className:"copy-btn",type:"button",onClick:m,children:"Copy"}),a.jsx("pre",{className:"history-pre",children:u||c||"—"})]})}function lp(s){if(typeof window>"u"||!s.length)return;const c=["timestamp","method","path","status","durationMs","error","url","params","query","body","output"],u=s.map(S=>[new Date(S.timestamp).toISOString(),S.method,S.path,S.status!==void 0?S.status:"ERR",S.durationMs,S.error||"",S.fullUrl,JSON.stringify(S.params),JSON.stringify(S.query),S.body||"",S.output||""]),m=[c.join(","),...u.map(S=>S.map(op).join(","))].join(`
41
+ `),x=new Blob([m],{type:"text/csv;charset=utf-8;"}),E=URL.createObjectURL(x),P=document.createElement("a");P.href=E,P.download="history.csv",document.body.appendChild(P),P.click(),document.body.removeChild(P),setTimeout(()=>URL.revokeObjectURL(E),500)}function op(s){const c=String(s??"");return c.includes('"')||c.includes(",")||c.includes(`
42
+ `)?`"${c.replace(/"/g,'""')}"`:c}const On=(s="",c="")=>({id:Math.random().toString(36).slice(2),key:s,value:c}),sp=s=>{if(!s)return"";const c=s.endsWith("/")&&s.length>1?s.slice(0,-1):s;return c.startsWith("/")?c:`/${c}`},xc=s=>typeof window>"u"?"":window.location.origin+sp(s);function Xs(s,c){return{baseUrl:xc(c),pathParams:dp(s.path),queryRows:fp(s),bodyText:""}}function ip(s,c,u){const m=Xs(s,u);if(!c)return m;const x={...m.pathParams};c.params&&typeof c.params=="object"&&!Array.isArray(c.params)&&Object.entries(c.params).forEach(([P,S])=>{x[P]=uc(S)});let E=m.queryRows;if(c.query&&typeof c.query=="object"&&!Array.isArray(c.query)){const P=Object.entries(c.query);P.length&&(E=P.map(([S,T])=>On(S,uc(T))))}return{...m,pathParams:x,queryRows:E,bodyText:c.body!==void 0&&c.body!==null?kc(c.body):m.bodyText}}function up({leaf:s,onClose:c,inputs:u,onInputsChange:m,onClearInputs:x,baseUrlSuffix:E}){return s?a.jsx(wc,{leaf:s,inputs:u,onInputsChange:m,onClearInputs:x,onClose:c,baseUrlSuffix:E,variant:"overlay"}):null}function ap(s){return a.jsx(wc,{...s,variant:"inline"})}function wc({leaf:s,onClose:c,inputs:u,onInputsChange:m,onClearInputs:x,headingNote:E,exposeSendRef:P,baseUrlSuffix:S,variant:T}){const[K,I]=$.useState(()=>(u==null?void 0:u.baseUrl)??xc(S)),[z,O]=$.useState((u==null?void 0:u.pathParams)??{}),[W,G]=$.useState((u==null?void 0:u.queryRows)??[On()]),[L,q]=$.useState((u==null?void 0:u.bodyText)??""),[le,D]=$.useState(!1),[Z,te]=$.useState(""),[_e,ae]=$.useState(""),{addEntry:ye}=Wl(),ce=$.useRef(""),ge=$.useMemo(()=>((s==null?void 0:s.method)||"GET").toUpperCase(),[s]),Fe=s?`${ge}::${s.path}`:"";$.useEffect(()=>{const H=Xs(s,S);I((u==null?void 0:u.baseUrl)??H.baseUrl),q((u==null?void 0:u.bodyText)??H.bodyText),O((u==null?void 0:u.pathParams)??H.pathParams),G((u==null?void 0:u.queryRows)??H.queryRows),ce.current!==Fe&&(te(""),ae("")),ce.current=Fe},[S,u==null?void 0:u.baseUrl,u==null?void 0:u.bodyText,u==null?void 0:u.pathParams,u==null?void 0:u.queryRows,s,Fe]),$.useEffect(()=>{m({baseUrl:K,pathParams:z,queryRows:W,bodyText:L})},[K,L,m,z,W]),$.useEffect(()=>{if(P)return P(()=>Ve()),()=>P(null)},[P,Fe,K,L,z,W,ye]);const Ve=async()=>{D(!0),te(""),ae("");const H={...z},w={};let _=(K||"").replace(/\/$/,"")+(s.path||"");Object.entries(H).forEach(([U,b])=>{_=_.replace(":"+U,b).replace("{"+U+"}",b)});const M=W.filter(U=>U.key.trim()).map(U=>{const b=U.key.trim(),ne=U.value.trim();return w[b]=ne,`${encodeURIComponent(b)}=${encodeURIComponent(ne)}`});M.length&&(_+="?"+M.join("&"));const h={};let k;if(["POST","PUT","PATCH"].includes(ge)&&L.trim())try{k=JSON.stringify(JSON.parse(L)),h["Content-Type"]="application/json"}catch{te("Invalid JSON in request body"),D(!1);return}let J=0;try{J=performance.now();const U=await fetch(_,{method:ge,headers:h,body:k}),b=Number(Math.max(performance.now()-J,0).toFixed(1)),ie=(U.headers.get("content-type")||"").includes("application/json")?await U.json():await U.text(),fe=pp(ie),We=`${U.status} ${U.statusText} · ${b}ms`;te(We),ae(fe),ye({method:ge,path:s.path||"",fullUrl:_,params:H,query:w,body:L,output:fe,status:U.status,durationMs:b,error:U.ok?void 0:`${U.status} ${U.statusText}`})}catch(U){const b=Number(Math.max(performance.now()-J,0).toFixed(1)),ne=(U==null?void 0:U.message)||"Request failed";te("Network error"),ae(ne),ye({method:ge,path:s.path||"",fullUrl:_,params:H,query:w,body:L,output:ne,status:void 0,durationMs:b,error:ne})}finally{D(!1)}},Me=()=>{const H=Xs(s,S);I(H.baseUrl),O(H.pathParams),G(H.queryRows),q(H.bodyText),te(""),ae(""),x(H)},ze=()=>G(H=>[...H,On()]),Ie=(H,w)=>G(_=>_.map(M=>M.id===H?w:M)),Ue=H=>G(w=>{const _=w.filter(M=>M.id!==H);return _.length?_:[On()]}),je=T==="overlay"?"playground-overlay open":"playground-inline";return a.jsxs("div",{className:je,children:[a.jsxs("div",{className:"pg-header",children:[a.jsxs("div",{className:"pg-title",children:[a.jsx("span",{className:`method-badge m-${ge}`,children:ge})," ",a.jsx("span",{children:s.path}),E?a.jsx("span",{className:"pg-note",children:E}):null]}),T==="overlay"&&a.jsx("button",{className:"pg-close",onClick:c,"aria-label":"Close playground",children:"×"})]}),a.jsxs("div",{className:"pg-content",children:[a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Base URL"}),a.jsx("input",{className:"pg-input",value:K,onChange:H=>I(H.target.value),placeholder:"https://api.example.com"})]}),a.jsx(cp,{path:s.path,params:z,onChange:O}),a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Query Parameters"}),a.jsx("div",{className:"param-grid param-grid-queries",children:W.map(H=>a.jsxs("div",{className:"param-row",children:[a.jsx("input",{className:"pg-input pg-query-key",placeholder:"Name",value:H.key,onChange:w=>Ie(H.id,{...H,key:w.target.value})}),a.jsx("input",{className:"pg-input pg-query-val",placeholder:"Value",value:H.value,onChange:w=>Ie(H.id,{...H,value:w.target.value})}),a.jsx("button",{type:"button",className:"btn-remove-param","aria-label":"Remove query parameter",onClick:()=>Ue(H.id),disabled:W.length===1,children:"×"})]},H.id))}),a.jsx("button",{type:"button",id:"pgAddQuery",className:"btn-add-query",onClick:ze,children:"+ Add Parameter"})]}),["POST","PUT","PATCH"].includes(ge)&&a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Request Body (JSON)"}),a.jsx("textarea",{className:"pg-textarea",value:L,onChange:H=>q(H.target.value),placeholder:"{ ... }"})]}),Z&&a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Response"}),a.jsxs("div",{className:"response-box",children:[a.jsxs("div",{className:"response-meta",children:[Z,a.jsx("button",{type:"button",className:"copy-btn",onClick:()=>{var H;return(H=navigator.clipboard)==null?void 0:H.writeText(_e)},children:"Copy"})]}),a.jsx("pre",{className:"response-pre",children:_e})]})]})]}),a.jsxs("div",{className:"pg-footer",children:[a.jsx("button",{className:"btn-clear",type:"button",onClick:Me,disabled:le,children:"Clear"}),a.jsx("button",{className:"btn-send",onClick:Ve,disabled:le,children:le?"Sending...":"Send Request"})]})]})}function cp({path:s,params:c,onChange:u}){const m=$.useMemo(()=>Sc(s),[s]);return m.length===0?null:a.jsxs("div",{className:"pg-section",children:[a.jsx("div",{className:"pg-label",children:"Path Variables"}),a.jsx("div",{className:"param-grid",children:m.map(x=>a.jsxs("div",{className:"param-row",children:[a.jsx("input",{className:"pg-input pg-input-disabled-label",value:x,disabled:!0}),a.jsx("input",{className:"pg-input pg-path-input",placeholder:"value",value:c[x]||"",onChange:E=>u({...c,[x]:E.target.value})})]},x))})]})}function Sc(s){const c=/[:{]([a-zA-Z0-9_]+)}?/g;return[...s.matchAll(c)].map(u=>u[1])}function dp(s){return Sc(s).reduce((u,m)=>({...u,[m]:""}),{})}function fp(s){var u,m;const c=(m=(u=s.cfg)==null?void 0:u.querySchema)==null?void 0:m.properties;if(c&&typeof c=="object"){const x=Object.keys(c);if(x.length)return x.map(E=>On(E,""))}return[On()]}function kc(s){try{return JSON.stringify(s,null,2)}catch{return String(s??"")}}function uc(s){return s==null?"":typeof s=="string"||typeof s=="number"||typeof s=="boolean"?String(s):kc(s)}function pp(s){if(s===null)return"null";if(typeof s=="string")return s;try{return JSON.stringify(s,null,2)}catch{return String(s)}}function hp({presets:s,leaves:c,baseUrlSuffix:u,onBackToRoutes:m}){const[x,E]=$.useState(null),P=$.useMemo(()=>vp(c),[c]);return s.length?x?a.jsx(mp,{preset:x,leafMap:P,baseUrlSuffix:u,onBack:()=>E(null),onBackToRoutes:m}):a.jsxs("div",{className:"preset-menu",children:[a.jsx("div",{className:"preset-menu-header",children:a.jsxs("div",{children:[a.jsx("h2",{className:"preset-menu-title",children:"Preset Library"}),a.jsx("p",{className:"preset-menu-subtitle",children:"Launch predefined flows without wiring requests by hand."})]})}),a.jsx("div",{className:"preset-grid",children:s.map(S=>a.jsxs("article",{className:"preset-card",onClick:()=>E(S),children:[a.jsx("div",{className:"preset-card-title",children:S.name}),S.description?a.jsx("div",{className:"preset-card-desc",children:S.description}):null,a.jsxs("div",{className:"preset-card-meta",children:[a.jsxs("span",{className:"status-badge",children:[S.ops.length," ops"]}),S.docsGroup?a.jsx("span",{className:"status-badge",children:S.docsGroup}):null]}),a.jsx("div",{className:"preset-tag-row",children:S.tags.map(T=>a.jsx("span",{className:"preset-tag",children:T},T))})]},S.name))})]}):a.jsx("div",{className:"preset-empty",children:a.jsx("p",{children:"No presets provided."})})}function mp({preset:s,leafMap:c,baseUrlSuffix:u,onBack:m,onBackToRoutes:x}){const[E,P]=$.useState({}),S=$.useRef({}),[T,K]=$.useState(!1),[I,z]=$.useState(""),O=s.ops.map((L,q)=>({op:L,idx:q,key:yp(L,q)}));$.useEffect(()=>{P({}),S.current={},z("")},[s]);const W=L=>q=>{q?S.current[L]=q:delete S.current[L]},G=async()=>{K(!0);try{for(const{key:L,op:q}of O){const le=S.current[L];le&&(z(`Running ${String(q.method).toUpperCase()} ${q.path}`),await le())}z("Completed"),setTimeout(()=>z(""),1200)}finally{K(!1)}};return a.jsxs("div",{className:"preset-detail",children:[a.jsx("div",{className:"preset-detail-header",children:a.jsxs("div",{children:[a.jsxs("div",{className:"preset-breadcrumb",children:[a.jsx("button",{className:"link-button",onClick:m,children:"Presets"}),a.jsx("span",{className:"breadcrumb-sep",children:"/"}),a.jsx("span",{children:s.name})]}),a.jsx("h2",{className:"preset-detail-title",children:s.name}),s.description?a.jsx("p",{className:"preset-detail-desc",children:s.description}):null]})}),a.jsxs("div",{className:"preset-meta-row",children:[a.jsxs("div",{className:"preset-tags",children:[s.tags.map(L=>a.jsx("span",{className:"preset-tag",children:L},L)),s.docsGroup?a.jsx("span",{className:"preset-tag ghost-tag",children:s.docsGroup}):null]}),a.jsxs("div",{className:"preset-meta-count",children:[s.ops.length," operation(s)"]})]}),a.jsx("div",{className:"preset-ops-list",children:O.map(({op:L,idx:q,key:le})=>{var ae,ye;const D=String(L.method||"GET").toUpperCase(),Z=c.get(bs(L.method,L.path));if(!Z)return a.jsxs("div",{className:"preset-op-card preset-op-missing",children:[a.jsxs("div",{className:"preset-op-header",children:[a.jsxs("div",{className:"preset-op-title",children:[a.jsx("span",{className:`method-badge m-${D}`,children:D}),a.jsx("span",{className:"preset-op-path",children:L.path})]}),a.jsx("span",{className:"status-badge not-implemented",children:"Not in docs"})]}),a.jsx("p",{className:"preset-op-desc",children:"This operation is not available in the current docs bundle."})]},le);const te=E[le]??ip(Z,L,u),_e=W(le);return a.jsxs("div",{className:"preset-op-card",children:[a.jsx("div",{className:"preset-op-header",children:a.jsxs("div",{children:[a.jsxs("div",{className:"preset-op-label",children:["Step ",q+1]}),(ae=Z.cfg)!=null&&ae.summary?a.jsx("div",{className:"preset-op-summary",children:Z.cfg.summary}):null,(ye=Z.cfg)!=null&&ye.description?a.jsx("div",{className:"preset-op-desc",children:Z.cfg.description}):null]})}),a.jsx(ap,{leaf:Z,inputs:te,onInputsChange:ce=>P(ge=>({...ge,[le]:ce})),onClearInputs:ce=>P(ge=>({...ge,[le]:ce})),baseUrlSuffix:u,exposeSendRef:_e})]},le)})}),a.jsxs("div",{className:"preset-run-all",children:[a.jsx("button",{className:"btn-send",onClick:G,disabled:T||s.ops.length===0,children:T?"Running...":"Run all"}),I?a.jsx("span",{className:"preset-run-status",children:I}):null]})]})}function vp(s){const c=new Map;return s.forEach(u=>c.set(bs(u.method,u.path),u)),c}const bs=(s,c)=>`${String(s||"").toUpperCase()}::${c||""}`,yp=(s,c)=>`${bs(s.method,s.path)}::${c}`;function gp(s){return s.reduce((c,u)=>{var x;const m=((x=u.leaf.cfg)==null?void 0:x.docsGroup)||"UNGROUPED";return c[m]||(c[m]=[]),c[m].push(u),c},{})}function ac(s){return s.sort((c,u)=>c==="UNGROUPED"?1:u==="UNGROUPED"?-1:c.localeCompare(u))}function xp(s,c){return(s||"").localeCompare(c||"")}const wp=s=>({search:"",methods:new Set(s),tags:new Set}),cc=(s,c)=>`${(s.method||"GET").toUpperCase()}::${s.path}::${c}`;function Sp({initialLeaves:s,presets:c,basePath:u,baseUrlSuffix:m}){const x=$.useMemo(()=>Np(u),[u]),{filters:E,setFilters:P}=Wl(),S=$.useMemo(()=>Array.from(new Set(s.map(w=>(w.method||"GET").toUpperCase()))).sort(),[s]),T=$.useMemo(()=>Array.from(new Set(s.flatMap(w=>{var _;return Array.isArray((_=w.cfg)==null?void 0:_.tags)?w.cfg.tags:[]}).map(String))).sort(),[s]),[K,I]=$.useState(wp(S)),[z,O]=$.useState(new Set),[W,G]=$.useState(null),[L,q]=$.useState({}),[le,D]=$.useState(()=>dc(x)),Z=$.useMemo(()=>s.map((w,_)=>({leaf:w,idx:_})).filter(({leaf:w})=>{var J,U;const _=(w.method||"GET").toUpperCase(),M=((J=w.cfg)==null?void 0:J.tags)||[],h=(w.path||"").toLowerCase(),k=(((U=w.cfg)==null?void 0:U.summary)||"").toLowerCase();return!(!K.methods.has(_)||K.tags.size>0&&!M.some(b=>K.tags.has(b))||K.search&&!h.includes(K.search)&&!k.includes(K.search))}),[K.methods,K.search,K.tags,s]),te=$.useMemo(()=>gp(Z),[Z]),_e=(w,_)=>{O(M=>{const h=new Set(M);return!h.has(w)?h.add(w):h.delete(w),h})},ae=(w,_)=>{const M=te[w]||[];O(h=>{const k=new Set(h);return M.forEach(({leaf:J,idx:U})=>{const b=cc(J,U);_?k.add(b):k.delete(b)}),k})},ye=Object.keys(te).length>0,ce=W?kp(W):"",ge=$.useCallback(w=>{!ce||!W||q(_=>({..._,[ce]:w}))},[W,ce]),Fe=$.useCallback(w=>{!ce||!W||q(_=>({..._,[ce]:w}))},[W,ce]);$.useEffect(()=>{le!=="routes"&&G(null)},[le]);const Ve=$.useCallback(()=>{if(typeof window>"u")return;const w=new URLSearchParams(window.location.search),_=Tf(w),M=qs(Zs(),_);P(M)},[P]);$.useEffect(()=>{le==="history"&&Ve()},[le,Ve]),$.useEffect(()=>{const w=()=>{const _=dc(x);D(_),_==="history"&&Ve()};return window.addEventListener("popstate",w),()=>window.removeEventListener("popstate",w)},[x,Ve]);const Me=$.useCallback((w,_)=>{const M=_!=null&&_.replace?"replaceState":"pushState";let h=E;w==="history"&&(h=qs(E,_==null?void 0:_.historyFilters),_!=null&&_.historyFilters&&P(h));const k=fc(x,w,h);typeof window<"u"&&window.history[M]({page:w},"",k),D(w)},[x,E,P]),ze=$.useCallback(w=>{P(w);const _=fc(x,"history",w);typeof window<"u"&&window.history.replaceState({page:"history"},"",_)},[x,P]),Ie=c.length>0,Ue=le==="presets",je=le==="history",H=le==="routes";return a.jsxs("div",{className:"page",children:[a.jsxs("header",{className:"header",children:[a.jsx("div",{className:"header-title",children:a.jsx("h1",{children:je?"Request History":Ue?"Presets":"API Reference"})}),a.jsxs("div",{className:"header-actions",children:[a.jsx("button",{className:"preset-nav-btn nav-pill","data-active":H,onClick:()=>Me("routes"),children:"Endpoints"}),a.jsx("button",{className:"preset-nav-btn nav-pill","data-active":Ue,disabled:!Ie,onClick:()=>Me("presets"),children:"Presets"}),a.jsx("button",{className:"preset-nav-btn nav-pill","data-active":je,onClick:()=>Me("history"),children:"History"})]})]}),Ue?a.jsx(hp,{presets:c,leaves:s,baseUrlSuffix:m,onBackToRoutes:()=>Me("routes")}):je?a.jsx(Qf,{onFiltersChange:ze}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"controls-container",children:[a.jsx(Vf,{allMethods:S,allTags:T,filters:K,onFiltersChange:I}),a.jsxs("div",{className:"overview-row",id:"overviewList",children:[a.jsx("span",{className:"overview-label",children:"JUMP TO:"}),ac(Object.keys(te)).map(w=>a.jsx("a",{href:`#group-${w}`,className:"group-chip",children:w},w))]})]}),a.jsxs("main",{id:"routeList",children:[!ye&&a.jsx("div",{className:"no-results",children:"No endpoints match filters."}),ac(Object.keys(te)).map(w=>{const _=te[w].sort((M,h)=>xp(M.leaf.path,h.leaf.path));return a.jsxs("div",{className:"api-group",id:`group-${w}`,children:[a.jsxs("div",{className:"group-header",children:[a.jsx("h2",{className:"group-title",children:w}),a.jsxs("div",{className:"group-actions",children:[a.jsx("button",{onClick:()=>ae(w,!0),children:"Expand All"}),a.jsx("button",{onClick:()=>ae(w,!1),children:"Collapse All"})]})]}),a.jsx("div",{className:"cards-list",children:_.map(({leaf:M,idx:h})=>{const k=cc(M,h),J=z.has(k),U=(M.method||"GET").toUpperCase();return a.jsx($f,{leaf:M,expanded:J,onToggle:()=>_e(k),onTry:()=>G(M),onHistory:()=>Me("history",{historyFilters:{methods:new Set([U]),path:M.path||""}})},k)})})]},w)})]}),a.jsx(up,{leaf:W,inputs:H&&W?L[ce]:void 0,onInputsChange:ge,onClearInputs:Fe,baseUrlSuffix:m,onClose:()=>G(null)})]})]})}const kp=s=>`${(s.method||"GET").toUpperCase()}::${s.path||""}`;function Np(s){return s?_r(Pr(s)):typeof window>"u"?"":_r(Pr(window.location.pathname)).replace(/\/(history|presets)$/,"")||"/"}function dc(s){if(typeof window>"u")return"routes";const c=_r(Pr(window.location.pathname)),u=_r(Pr(s||"")),m=u&&c.startsWith(u)?c.slice(u.length):c,x=m.startsWith("/")?m.slice(1):m;return x.startsWith("presets")?"presets":x.startsWith("history")?"history":"routes"}function fc(s,c,u){const m=_r(Pr(s||"")),E=c==="routes"?m||"/":`${m==="/"?"":m}/${c}`;if(c!=="history")return E||"/";const P=u?Rf(u).toString():"";return P?`${E}?${P}`:E||"/"}function Pr(s){return s?s==="/"?"/":s.endsWith("/")?s.slice(0,-1):s:""}function _r(s){return s?s.startsWith("/")?s:`/${s}`:""}function jp(){const s=document.getElementById("leaf-data");if(!s)return[];try{return JSON.parse(s.textContent||"[]")}catch(c){return console.error("Failed to parse docs data",c),[]}}function Ep(){const s=document.getElementById("preset-data");if(!s)return[];try{return JSON.parse(s.textContent||"[]")}catch(c){return console.error("Failed to parse preset data",c),[]}}function Cp(){const s=document.getElementById("history-data");if(!s)return[];try{const c=JSON.parse(s.textContent||"[]");return Array.isArray(c)?c:[]}catch(c){return console.error("Failed to parse history seed data",c),[]}}function Pp(){const s=document.getElementById("docs-config");if(!s)return{};try{return JSON.parse(s.textContent||"{}")}catch(c){return console.error("Failed to parse docs config",c),{}}}function _p(){const s=document.getElementById("docs-root");if(s)return s;const c=document.createElement("div");return c.id="docs-root",document.body.appendChild(c),c}const Mp=jp(),Rp=Ep(),pc=Pp(),Tp=Cp(),Dp=_p();_f.createRoot(Dp).render(a.jsx(Mf,{initialEntries:Tp,children:a.jsx(Sp,{initialLeaves:Mp,presets:Rp,basePath:pc.docsBasePath,baseUrlSuffix:pc.baseUrlSuffix})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emeryld/rrroutes-openapi",
3
- "version": "2.2.26",
3
+ "version": "2.2.27",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",